OSDN Git Service

PR middle-end/37931
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-10-28  Jakub Jelinek  <jakub@redhat.com>
2
3         PR middle-end/37931
4         * fold-const.c (distribute_bit_expr): Convert common, left and
5         right arguments to type.
6
7 2008-10-28  Nick Clifton  <nickc@redhat.com>
8
9         * config/mn10300/mn10300.h (CALL_REALLY_USED_REGISTERS): Define.
10         * config/mn10300/mn10300.c (fp_regs_to_save): Test the
11         call_really_used_regs array rather than the call_used_regs array.
12         (mn10300_get_live_callee_saved_regs, expand_prologue,
13         expand_epilogue, output_tst): Likewise.
14
15 2008-10-27  Jakub Jelinek  <jakub@redhat.com>
16
17         PR target/37378
18         * df-scan.c (df_bb_refs_collect): Don't handle EH_USES here.
19         (df_get_entry_block_def_set): Neither here.
20         (df_get_regular_block_artificial_uses): Add EH_USES registers.
21
22         PR tree-optimization/37879
23         * predict.c (tree_estimate_probability): Check if last_stmt is
24         non-NULL before dereferencing it.
25
26 2008-10-27  Vladimir Makarov  <vmakarov@redhat.com>
27
28         * ira-int.h (ira_allocno): Add member updated_cover_class_cost.
29         (ALLOCNO_UPDATED_COVER_CLASS_COST): New.
30         (ira_fast_allocation): Remove the prototype.
31         
32         * ira-color.c (update_copy_costs, allocno_cost_compare_func,
33         assign_hard_reg, calculate_allocno_spill_cost): Use updated costs.
34         (color_pass): Modify the updated costs.
35         (ira_color): Rename to color.  Make it static.
36         (ira_fast_allocation): Rename to fast_allocation.  Make it static.
37         (ira_color): New function.
38         
39         * ira-conflicts.c (process_regs_for_copy): Propagate hard reg cost
40         change.
41
42         * ira-lives.c (last_call_num, allocno_saved_at_call): New
43         variables.
44         (set_allocno_live, clear_allocno_live, mark_ref_live,
45         mark_ref_dead): Invalidate corresponding element of
46         allocno_saved_at_call.
47         (process_bb_node_lives): Increment last_call_num.  Setup
48         allocno_saved_at_call.  Don't increase ALLOCNO_CALL_FREQ if the
49         allocno was already saved.
50         (ira_create_allocno_live_ranges): Initiate last_call_num and
51         allocno_saved_at_call.
52
53         * ira-build.c (ira_create_allocno): Initiate
54         ALLOCNO_UPDATED_COVER_CLASS_COST.
55         (create_cap_allocno, propagate_allocno_info,
56         remove_unnecessary_allocnos): Remove setting updated costs.
57         (ira_flattening): Set up ALLOCNO_UPDATED_COVER_CLASS_COST.
58
59         * ira.c (ira):  Don't call ira_fast_allocation.
60
61         * ira-costs.c (setup_allocno_cover_class_and_costs): Don't set up
62         updated costs.
63         
64 2008-10-27  Vladimir Makarov  <vmakarov@redhat.com>
65
66         PR middle-end/37813
67         * ira-conflicts.c (process_regs_for_copy): Remove class subset
68         check.
69
70         * ira-int.h (ira_hard_regno_cover_class): New.
71
72         * ira-lives.c (mark_reg_live, mark_reg_dead,
73         process_bb_node_lives): Use ira_hard_regno_cover_class.
74
75         * ira.c (reg_class ira_hard_regno_cover_class): New global
76         variable.
77         (setup_hard_regno_cover_class): New function.
78         (ira_init): Call setup_hard_regno_cover_class.
79
80         * ira-costs.c (cost_class_nums): Add comment.
81         (find_allocno_class_costs): Initiate cost_class_nums.
82         (setup_allocno_cover_class_and_costs): Check cost_class_nums.
83
84 2008-10-27  Vladimir Makarov  <vmakarov@redhat.com>
85
86         PR middle-end/37884
87         * ira-build.c (copy_live_ranges_to_removed_store_destinations):
88         Rename to copy_info_to_removed_store_destinations.  Propagate
89         conflict hard regs and register stack attribute.
90
91 2008-10-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
92
93         PR middle-end/37316
94         * pa.c (function_arg_padding):  Pad complex and vector types upward in
95         64-bit runtime.
96         (function_arg): Use BLKmode for PARALLEL in 64-bit runtime.
97
98 2008-10-26  Matthias Klose  <doko@ubuntu.com>
99
100         * doc/install.texi: Document requirements on antlr.
101
102 2008-10-25  Richard Sandiford  <rdsandiford@googlemail.com>
103
104         * config/mips/mips.h (REG_ALLOC_ORDER): Put call-clobbered registers
105         first.
106
107 2008-10-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
108
109         PR target/37841
110         * function.c (locate_and_pad_parm): If FUNCTION_ARG_ADJUST_OFFSET
111         is defined, use it to modify the constant offset.
112
113         * doc/tm.texi (FUNCTION_ARG_OFFSET): Document new macro.
114
115         * config/spu/spu.h (FUNCTION_ARG_OFFSET): New macro to move char
116         and short arguments to the correct location as mandated by the
117         ABI.
118
119 2008-10-24  Kaz Kojima  <kkojima@gcc.gnu.org>
120
121         PR rtl-optimization/37769
122         * regmove.c (optimize_reg_copy_2): Update REG_INC note if needed.
123
124 2008-10-24  Kaz Kojima  <kkojima@gcc.gnu.org>
125
126         * config/sh/t-sh: Use $(MULTILIB_CFLAGS) when compiling to
127         unwind-dw2-Os-4-200.o.
128
129 2008-10-24  Joseph Myers  <joseph@codesourcery.com>
130
131         * c-typeck.c (enum impl_conv): Remove ic_argpass_nonproto.
132         (convert_for_assignment): Remove ic_argpass_nonproto cases.
133
134 2008-10-24  Jakub Jelinek  <jakub@redhat.com>
135
136         PR tree-optimization/36038
137         * tree-ssa-loop-ivopts.c (add_old_iv_candidates): For pointer bases
138         add sizetype IV with initial value zero instead of pointer type.
139
140 2008-10-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
141
142         PR c/7543
143         * value-prof.c (gimple_stringop_fixed_value): Use parentheses
144         around bit operation.
145         * profile.c (is_edge_inconsistent): Likewise.
146         * fold-const.c (truth_value_p): Move from here...
147         * tree.h (truth_value_p): ... to here.
148         * c-tree.h (c_expr): Update description of original_code.
149         * c-typeck.c (parser_build_unary_op): Set original_code.
150         (parser_build_binary_op): Update call to warn_about_parentheses.
151         * c-common.c (warn_about_parentheses): Take two additional
152         arguments of the operands. Use a switch. Quote operators
153         appropriately. Define macro APPEARS_TO_BE_BOOLEAN_EXPR_P.
154         Add warning about !x | y and !x & y.
155         * c-common.h (warn_about_parentheses): Update declaration.
156
157 2008-10-24  Jakub Jelinek  <jakub@redhat.com>
158
159         * Makefile.in (lang_checks_parallelized, check_gcc_parallelize,
160         check_p_tool, check_p_vars, check_p_subno, check_p_comma,
161         check_p_subwork, check_p_numbers, check_p_subdir, check_p_subdirs):
162         New variables.
163         (check-subtargets, check-%-subtargets, check-parallel-%): New
164         targets.
165         (check-%): For test targets listed in lang_checks_parallelized
166         if -j is used and RUNTESTFLAGS doesn't specify tests to execute,
167         run the testing in multiple make goals, possibly parallel, and
168         afterwards run dg-extract-results.sh to merge the sum and log files.
169
170 2008-10-24  Richard Sandiford  <rdsandiford@googlemail.com>
171
172         * config/mips/mips.c (mips_canonicalize_move_class): New function.
173         (mips_move_to_gpr_cost): Likewise.
174         (mips_move_from_gpr_cost): Likewise.
175         (mips_register_move_cost): Make more fine-grained.
176
177 2008-10-23  Tobias Grosser  <grosser@fim.uni-passau.de>
178
179         * graphite.c (graphite_apply_transformations): Check for
180         -fgraphite-identity.
181         * toplev.c (process_options): Add graphite_identity.
182         * tree-ssa-loop.c (gate_graphite_transforms): Add graphite_identity.
183
184 2008-10-23  Bernd Schmidt  <bernd.schmidt@analog.com>
185
186         * config/bfin/bfin.c (bdesc_2arg): Add mulhisill, mulhisilh,
187         mulhisihl and mulhisihh builtins.
188
189         From Jie Zhang  <jie.zhang@analog.com>
190         * config/bfin/bfin.md (composev2hi): Put operands into vector
191         with correct order.
192         
193 2008-10-22  Chao-ying Fu  <fu@mips.com>
194
195         * config/mips/mips.opt (msmartmips): Accept -mno-smartmips.
196
197 2008-10-22  Bernd Schmidt  <bernd.schmidt@analog.com>
198
199         From Mike Frysinger  <michael.frysinger@analog.com>
200         * config/bfin/bfin-protos.h (bfin_cpu_type): Add BFIN_CPU_BF512,
201         BFIN_CPU_BF514, BFIN_CPU_BF516, and BFIN_CPU_BF518.
202         * config/bfin/bfin.c (bfin_cpus[]): Add 0.0 for bf512, bf514, bf516,
203         and bf518.  Add 0.2 for bf522, bf523, bf524, bf526, and bf527.
204         Add 0.6 for bf533, bf532, and bf531.  Add 0.5 for bf538 and bf539.
205         Add 0.2 for bf542, bf544, bf547, bf548, and bf549.
206         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF512__
207         for BFIN_CPU_BF512, __ADSPBF514__ for BFIN_CPU_BF514, __ADSPBF516__
208         for BFIN_CPU_BF516, and __ADSPBF518__ for BFIN_CPU_BF518.  Define
209         __ADSPBF51x__ for all of them.
210         * config/bfin/elf.h (LIB_SPEC): Select proper linker scripts for
211         -mcpu bf512, bf514, bf516, and bf518.
212         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
213         bf512-none, bf514-none, bf516-none, and bf518-none.
214         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
215         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
216         * doc/invoke.texi (Blackfin Options): Document that
217         -mcpu now accepts bf512, bf514, bf516, and bf518.
218
219 2008-10-22  Jakub Jelinek  <jakub@redhat.com>
220
221         PR middle-end/37882
222         * fold-const.c (build_range_type): For 1 .. signed_max
223         range call build_nonstandard_inter_type if signed_type_for
224         returned a type with bigger precision.
225
226 2008-10-22  Richard Guenther  <rguenther@suse.de>
227
228         * tree.def (COMPLEX_TYPE): Constrain element type.
229         * tree.c (build_complex_type): Assert that.
230         * tree-ssa-structalias.c (could_have_pointers): Complex types
231         cannot have pointers.
232
233 2008-10-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
234
235         PR c/30949
236         * c-typeck.c (convert_for_assignment): Do not give declaration's
237         location for builtins. Spell out which type was expected and which
238         was given.
239
240 2008-10-22  Nick Clifton  <nickc@redhat.com>
241
242         * config/frv/frv.h (HARD_REGNO_RENAME_OK): Define.  Do not allow
243         the fdpic register to be a target when running in fdpic mode.
244
245 2008-10-22 Rafael Espindola  <espindola@google.com>
246
247         * ipa-struct-reorg.c (create_new_alloc_sites): Properly insert the
248         newly created statements.
249
250 2008-10-22  Kaz Kojima  <kkojima@gcc.gnu.org>
251
252         PR target/37633
253         * config/sh/sh.c (sh_hard_regno_mode_ok): New function.
254         * config/sh/sh.h (HARD_REGNO_MODE_OK): Use it.
255         * config/sh/sh-protos.h (sh_hard_regno_mode_ok): Declare.
256
257 2008-10-22  Jakub Jelinek  <jakub@redhat.com>
258
259         PR target/37880
260         * doc/invoke.texi: Fix spelling of -mlarge-data-threshold option.
261         Adjust -mcmodel=medium description for 2005-07-31 changes.
262
263 2008-10-22  Jan Hubicka  <jh@suse.cz>
264             Jakub Jelinek  <jakub@redhat.com>
265
266         PR middle-end/35853
267         * doc/invoke.texi: Remove references to obsoleted -d dumps.
268
269 2008-10-21  Richard Henderson  <rth@redhat.com>
270
271         PR 37815
272         * emit-rtl.c (get_spill_slot_decl): Export.
273         * emit-rtl.h (get_spill_slot_decl): Declare.
274         * var-tracking.c (vt_add_function_parameters): Relax assertion
275         on the contents of MEM_EXPR in a PARM_DECL to include a spill slot.
276
277 2008-10-21  Bob Wilson  <bob.wilson@acm.org>
278
279         * var-tracking.c (insn_stack_adjust_offset_pre_post): If insn has a
280         REG_FRAME_RELATED_EXPR note, examine the pattern from the note instead
281         of from insn.
282
283 2008-10-21  Adam Nemet  <anemet@caviumnetworks.com>
284
285         PR middle-end/37669
286         * tree-ssa-ccp.c (ccp_fold_builtin): Only allow one argument to be
287         processed by get_maxval_strlen.
288
289 2008-10-21  David Edelsohn  <edelsohn@gnu.org>
290
291         PR target/35485
292         * tree.c (get_file_function_name): Copy first_global_object_name.
293         Centralize call to clean_symbol_name.
294
295 2008-10-21  Sandra Loosemore  <sandra@codesourcery.com>
296
297         * config.gcc (powerpc-*): Make t-ppcgas imply usegas.h.
298         * config/svr4.h (SVR4_ASM_SPEC): New.
299         (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
300         * config/rs6000/sysv4.h (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
301
302         * doc/invoke.texi (Option Summary): Add -T to linker options.
303         (Link Options): Document -T.
304         
305 2008-10-21  Jakub Jelinek  <jakub@redhat.com>
306
307         * tree-inline.c (tree_inlinable_function_p): Remove tuples
308         debugging hack.
309
310         * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from
311         INTEGER_CSTs.
312
313         PR debug/37020
314         * c-decl.c (merge_decls): Don't call outlining_inline_function hook.
315
316 2008-10-20  Daniel Berlin  <dberlin@dberlin.org>
317
318         * tree-ssa-pre.c (insert_into_preds_of_block): Don't rewrite constant
319         part of expression.
320
321 2008-10-20  Tobias SchlÃ\83¼ter  <tobi@gcc.gnu.org>
322
323         * doc/install.texi: Fix typos in previous patch.
324
325 2008-10-19  Tobias SchlÃ\83¼ter  <tobi@gcc.gnu.org>
326
327         * doc/install.texi: Document in-tree building of gcc and mpfr.
328
329 2008-10-19  Richard Guenther  <rguenther@suse.de>
330
331         * tree-ssa-alias.c (may_alias_p): Remove bogus shortcut.
332
333 2008-10-19  Manuel LÃ\83³pez-IbÃ\83¡Ã\83±ez  <manu@gcc.gnu.org>
334
335         PR c/30260
336         * c-decl.c (finish_enum): Convert non-integer enumerators to enum
337         type.
338         (build_enumerator): Convert enumerators that fit in integer to
339         integer type.
340
341 2008-10-18  Uros Bizjak  <ubizjak@gmail.com>
342
343         * config/i386/i386.md (unnamed peephole2): Do not force memory
344         operands of arith or logical instructions into registers for
345         non-TARGET_READ_MODIFY targets.
346
347         (ffs_cmove): Change operand 0 predicate to register_operand.
348         Change operand 1 predicate to nonimmediate_operand.
349         (ffsdi2): Ditto.
350         (*ffs_no_cmove): Change operand 0 predicate to register_operand.
351
352 2008-10-18  Richard Guenther  <rguenther@suse.de>
353
354         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Guard
355         VIEW_CONVERT_EXPR case against invalid gimple.
356
357 2008-10-17  Andreas Krebbel  <krebbel1@de.ibm.com>
358
359         * c-parser.c (c_parser_binary_expression): Silence the
360         uninitialized variable warning emitted for binary_loc.
361
362 2008-10-16  Daniel Berlin  <dberlin@dberlin.org>
363
364         * tree-ssa-pre.c (phi_translate_set): Add constants to phi
365         translation cache.
366
367 2008-10-16  Joseph Myers  <joseph@codesourcery.com>
368
369         PR c/33192
370         * c-typeck.c (build_unary_op): Use omit_one_operand for
371         IMAGPART_EXPR of real argument.
372
373 2008-10-16  Jakub Jelinek  <jakub@redhat.com>
374
375         PR tree-optimization/37664
376         * fold-const.c (fold_binary): When optimizing comparison with
377         highest or lowest type's value, don't consider TREE_OVERFLOW.
378
379 2008-10-16  David Edelsohn  <edelsohn@gnu.org>
380
381         PR target/35483
382         * Makefile.in (coverage.o): Depend on $(TM_P_H).
383         * coverage.c: Include tm_p.h.
384         * config/rs6000/x-aix (jc1): Override LDFLAGS.
385         * config/rs6000/xcoff.h (ASM_GENERATE_INTERNAL_LABEL): Strip
386         dollar signs from PREFIX.
387         * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
388         instead of manual strip_name_encoding.
389
390 2008-10-16  Richard Guenther  <rguenther@suse.de>
391
392         PR middle-end/37418
393         * tree-ssa.c (useless_type_conversion_p_1): Do not treat
394         volatile qualified functions or methods as relevant.
395
396 2008-10-16  Jakub Jelinek  <jakub@redhat.com>
397
398         PR tree-optimization/37525
399         * tree.c (int_fits_type_p): Rewrite using double_int.  Zero extend
400         sizetype unsigned constants, both in the case of C and bounds.
401
402 2008-10-15  Jan Hubicka  <jh@suse.cz>
403
404         * ira-emit.c (change_regs): Return false when replacing reg by
405         itself.
406
407 2008-10-14  Vladimir Makarov  <vmakarov@redhat.com>
408
409         PR target/37633
410         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Check
411         HARD_REGNO_CALL_PART_CLOBBERED.
412
413 2008-10-15  Vladimir Makarov  <vmakarov@redhat.com>
414
415         PR middle-end/37535
416         * ira-lives.c (mark_early_clobbers): Remove.
417         (make_pseudo_conflict, check_and_make_def_use_conflicts,
418         check_and_make_def_conflicts,
419         make_early_clobber_and_input_conflicts,
420         mark_hard_reg_early_clobbers): New functions.
421         (process_bb_node_lives): Call
422         make_early_clobber_and_input_conflicts and
423         mark_hard_reg_early_clobbers.  Make hard register inputs live again.
424
425         * doc/rtl.texi (clobber): Change descriotion of RA behaviour for
426         early clobbers of pseudo-registers.
427         
428 2008-10-15  Vladimir Makarov  <vmakarov@redhat.com>
429
430         PR middle-end/37674
431         * ira-build.c (ira_flattening): Recalculate
432         ALLOCNO_TOTAL_NO_STACK_REG_P and ALLOCNO_TOTAL_CONFLICT_HARD_REGS
433         from the scratch instead of the propagation.
434         
435 2008-10-15  Richard Sandiford  <rdsandiford@googlemail.com>
436
437         * doc/rtl.texi (const_double): Remove the "addr" operand.
438         Describe CONST_DOUBLE_* macros under const_double rather
439         than const_vector.
440         (const_fixed): Fix the operand description.
441         (const): Add an @findex directive.
442         (CONST0_RTX, CONST1_RTX, CONST2_RTX): Move description
443         after the constant rtl table.
444         (fix): Combine floating-point and fixed-point descriptions.
445         Fix hyphenation.
446         * sched-deps.c (sched_analyze_2): Remove reference to
447         CONST_DOUBLE_CHAIN.
448
449 2008-10-15  Richard Sandiford  <rdsandiford@googlemail.com>
450
451         * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Handle
452         UNSPEC_GOTSYM_OFFs.
453         * config/mn10300/mn10300.c (legitimate_pic_operand_p): Return true
454         for UNSPEC_GOTSYM_OFFs.
455         * config/mn10300/mn10300.md (UNSPEC_GOTSYM_OFF): New unspec.
456         (add_GOT_to_pic_reg): Use it.
457         * config/mn10300/constraints.md (S): Allow UNSPEC_GOTSYM_OFF.
458
459 2008-10-15  Jan Sjodin  <jan.sjodin@amd.com>
460             Harsha Jagasia  <harsha.jagasia@amd.com>
461
462         PR tree-optimization/37485
463         * graphite.c (gmp_cst_to_tree): Moved.
464         (iv_stack_entry_is_constant): New.
465         (iv_stack_entry_is_iv): New.
466         (loop_iv_stack_push): Renamed to loop_iv_stack_push_iv.
467         (loop_iv_stack_insert_constant): New.
468         (loop_iv_stack_pop): Use new datatpype.
469         (loop_iv_stack_get_iv): Same.
470         (loop_iv_stack_get_iv_from_name): Same.
471         (loop_iv_stack_debug): Renamed to debug_loop_iv_stack.
472         (loop_iv_stack_patch_for_consts): New.
473         (loop_iv_stack_remove_constants): New.
474         (graphite_create_new_loop): Use loop_iv_stack_push_iv.
475         (translate_clast): Call loop_iv_stack_patch_for_consts and
476         loop_iv_stack_remove_constants.
477         (gloog): Use new datatype.  Redirect construction edge to end
478         block to avoid accidental deletion.
479         * graphite.h (enum iv_stack_entry_kind): New.  Tag for data in
480         iv stack entry.
481         (union iv_stack_entry_data): New.  Data in iv stack entry.
482         (struct iv_stack_entry): New.  Datatype for iv stack entries.
483
484 2008-10-15  Sebastian Pop  <sebastian.pop@amd.com>
485
486         * tree-data-ref.c (stmt_simple_memref_p): Fix memleak.
487         * graphite.c (free_scop): Same.
488         (build_scops): Same.
489         (free_scattering): New.
490         (build_cloog_prog): Call free_scattering.
491         (patch_phis_for_virtual_defs): Fix memleak.
492         (graphite_trans_bb_strip_mine): Same.
493         (limit_scops): Same.
494
495 2008-10-15  Sebastian Pop  <sebastian.pop@amd.com>
496             Harsha Jagasia  <harsha.jagasia@amd.com>
497
498         PR tree-optimization/37828
499         * graphite.c (graphite_trans_loop_block): Do not loop block
500         single nested loops.
501
502 2008-10-15  Sebastian Pop  <sebastian.pop@amd.com>
503
504         PR tree-optimization/37686
505         * tree-loop-linear.c (linear_transform_loops): Build a
506         loop nest vector.  Pass it to lambda_compute_access_matrices.
507         * tree-data-ref.h (struct access_matrix): Store the loop nest
508         relative to which it encodes the information.
509         (AM_LOOP_NEST_NUM): Renamed AM_LOOP_NEST.
510         (am_vector_index_for_loop): Reimplemented: iterate over the
511         loop nest for finding the loop index in the access matrix.
512         (lambda_compute_access_matrices): Update declaration.
513         * lambda-code.c (build_access_matrix): Pass the loop nest and
514         record it.
515         (lambda_compute_access_matrices): Same.
516
517 2008-10-15  Andreas Krebbel  <krebbel1@de.ibm.com>
518
519         * config/s390/s390.h: (TARGET_DFP): This requires TARGET_HARD_FLOAT.
520         * config/s390/s390.md: Replace "TARGET_HARD_FLOAT &&
521         TARGET_(HARD_)DFP" with only TARGET_(HARD_)DFP since this
522         already implies hard float.  Also fix several insn condition
523         with TARGET_DFP which shall require TARGET_HARD_DFP instead.
524
525 2008-10-15  David Edelsohn  <edelsohn@gnu.org>
526
527         PR target/35483
528         Based on patches by Laurent Vivier.
529         * xcoffout.h (DBX_FINISH_STABS): Translate dollar sign to underscore.
530         * config/rs6000/rs6000-protos.h (rs6000_xcoff_strip_dollar): Declare.
531         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Translate
532         dollar sign to underscore.
533         (ASM_OUTPUT_EXTERNAL): Same.
534         (ASM_OUTPUT_LABELREF): New.
535         * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): New.
536
537         * config/rs6000/aix51.h (TARGET_USE_JCR_SECTION): Define.
538         * config/rs6000/aix52.h (TARGET_USE_JCR_SECTION): Define.
539         * config/rs6000/aix53.h (TARGET_USE_JCR_SECTION): Define.
540         * config/rs6000/aix61.h (TARGET_USE_JCR_SECTION): Define.
541
542 2008-10-15  Jakub Jelinek  <jakub@redhat.com>
543
544         PR tree-optimization/36881
545         * tree-switch-conversion.c (check_final_bb): For flag_pic, check
546         that each value doesn't need runtime relocations, for !flag_pic
547         check that each value is just a valid initializer constant.
548
549 2008-10-14  Richard Sandiford  <rdsandiford@googlemail.com>
550
551         * config/mips/mips.h (reg_class): Remove HI_AND_GR_REGS,
552         LO_AND_GR_REGS, HI_AND_FP_REGS, COP0_AND_GR_REGS, COP2_AND_GR_REGS,
553         COP3_AND_GR_REGS, ALL_COP_REGS and ALL_COP_AND_GR_REGS.
554         Add GR_AND_MD0_REGS, GR_AND_MD1_REGS, GR_AND_MD_REGS and
555         GR_AND_ACC_REGS.
556         (REG_CLASS_NAMES): Update accordingly.
557         (REG_CLASS_CONTENTS): Likewise.  Use the class name in the comments,
558         rather than an unpredictable descriptive string.
559         * config/mips/mips.c (mips_register_move_cost): Remove comment.
560         (mips_register_move_cost): Check for specific COP*_REGS classes,
561         instead of ALL_COP_AND_GR_REGS.
562         (mips_ira_cover_classes): New function.
563         (mips_secondary_reload_class): Remove MTLO and MTHI workarounds.
564         (TARGET_IRA_COVER_CLASSES): Define.
565
566 2008-10-14  Douglas Gregor  <doug.gregor@gmail.com>
567
568         PR c++/37553
569         * tree.c (build_type_attribute_qual_variant): Hash on the
570         unqualified type, and don't overwrite an existing
571         (type_hash_eq): Make the TYPE_NAME of the types significant, to
572         allow distinguishing between wchar_t and its underlying type. This
573         also means that we'll retain a little more typedef information.
574
575 2008-10-14  Andrey Belevantsev  <abel@ispras.ru>
576             Dmitry Melnik  <dm@ispras.ru>
577             Dmitry Zhurikhin  <zhur@ispras.ru>
578             Alexander Monakov  <amonakov@ispras.ru>
579             Maxim Kuvyrkov  <maxim@codesourcery.com>
580
581         * target.h (struct gcc_target): Update prototypes of needs_block_p
582         and gen_spec_check.
583         * haifa-sched.c (create_check_block_twin): Update calls to the above.
584         * sel-sched.c (create_speculation_check): Likewise.
585         * doc/tm.texi: Provide documentation for new target hooks.
586                 
587         * config/ia64/ia64.c: Include sel-sched.h.  Rewrite speculation hooks.
588         (ia64_gen_spec_insn): Removed.
589         (get_spec_check_gen_function, insn_can_be_in_speculative_p,
590         ia64_gen_spec_check): New static functions.
591         (ia64_alloc_sched_context, ia64_init_sched_context,
592         ia64_set_sched_context, ia64_clear_sched_context,
593         ia64_free_sched_context, ia64_get_insn_spec_ds,
594         ia64_get_insn_checked_ds, ia64_skip_rtx_p): Declare functions.
595         (ia64_needs_block_p): Change prototype.
596         (ia64_gen_check): Rename to ia64_gen_spec_check.
597         (ia64_adjust_cost): Rename to ia64_adjust_cost_2.  Add new parameter
598         into declaration, add special memory dependencies handling.
599         (TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
600         TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
601         TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_SPEC_DS,
602         TARGET_SCHED_GET_INSN_CHECKED_DS, TARGET_SCHED_SKIP_RTX_P):
603         Define new target hooks.
604         (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
605         (ia64_optimization_options): Turn on selective scheduling with -O3,
606         disable -fauto-inc-dec. Set mflag_sched_control_spec to true by default
607         with selective scheduling.
608         (ia64_override_options): Initialize align_loops and align_functions
609         to 32 and 64, respectively.  Set global selective scheduling flags
610         according to target-dependent flags.
611         (rtx_needs_barrier): Support UNSPEC_LDS_A.
612         (group_barrier_needed): Use new mstop-bit-before-check flag.
613         Add heuristic.
614         (dfa_state_size): Make global.
615         (spec_check_no, max_uid): Remove.
616         (mem_ops_in_group, current_cycle): New variables.
617         (ia64_sched_init): Disable checks for !SCHED_GROUP_P after reload.
618         Initialize new variables.
619         (is_load_p, record_memory_reference): New functions.
620         (ia64_dfa_sched_reorder): Lower priority of loads when limit is
621         reached.
622         (ia64_variable_issue): Change use of current_sched_info to
623         sched_deps_info.  Update comment.  Note if a load or a store is issued.
624         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Require a cycle
625         advance if maximal number of loads or stores was issued on current
626         cycle.
627         (scheduled_good_insn): New static helper function.
628         (ia64_dfa_new_cycle): Assert that last_scheduled_insn is set when
629         a group barrier is needed.  Fix vertical spacing.  Guard the code
630         doing state transition with last_scheduled_insn check.
631         Mark that a stop bit should be before current insn if there was a 
632         cycle advance.  Update current_cycle and mem_ops_in_group.
633         (ia64_h_i_d_extended): Change use of current_sched_info to
634         sched_deps_info. Reallocate stops_p by larger chunks.
635         (struct _ia64_sched_context): New structure.
636         (ia64_sched_context_t): New typedef.
637         (ia64_alloc_sched_context, ia64_init_sched_context,
638         ia64_set_sched_context, ia64_clear_sched_context,
639         ia64_free_sched_context): New static functions.
640         (gen_func_t): New typedef.
641         (get_spec_load_gen_function): New function.
642         (SPEC_GEN_EXTEND_OFFSET): Declare.      
643         (ia64_set_sched_flags): Check common_sched_info instead of *flags.
644         (get_mode_no_for_insn): Change the condition that prevents use of
645         special hardware registers so it can now handle pseudos.
646         (get_spec_unspec_code): New function.
647         (ia64_skip_rtx_p, get_insn_spec_code, ia64_get_insn_spec_ds,
648         ia64_get_insn_checked_ds, ia64_gen_spec_load): New static functions.
649         (ia64_speculate_insn, ia64_needs_block_p): Support branchy checks
650         during selective scheduling.
651         (ia64_speculate_insn): Use ds_get_speculation_types when
652         determining whether we need to change the pattern.
653         (SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET): Declare.
654         (ia64_spec_check_src_p): Support new speculation/check codes.
655         (struct bundle_state): New field.
656         (issue_nops_and_insn): Initialize it.
657         (insert_bundle_state): Minimize mid-bundle stop bits.
658         (important_for_bundling_p): New function.
659         (get_next_important_insn): Use important_for_bundling_p.
660         (bundling): When shifting TImode from unimportant insns, ignore
661         also group barriers.  Assert that best state is found before
662         the backward bundling pass.  Print number of mid-bundle stop bits.
663         Minimize mid-bundle stop bits.  Check correct calculation of
664         mid-bundle stop bits.
665         (ia64_sched_finish, final_emit_insn_group_barriers): Fix formatting.
666         (final_emit_insn_group_barriers): Emit stop bits before insns starting
667         a new cycle.
668         (sel2_run): New variable.
669         (ia64_reorg): When flag_selective_scheduling2 is set, run the selective
670         scheduling pass instead of schedule_ebbs.
671         
672         * config/ia64/ia64.md (speculable1, speculable2): New attributes.
673         (UNSPEC_LDS_A): New UNSPEC.
674         (movqi_internal, movhi_internal, movsi_internal, movdi_internal,
675         movti_internal, movsf_internal, movdf_internal,
676         movxf_internal): Make visible.  Add speculable* attributes.
677         (output_c_nc): New mode attribute.
678         (mov<mode>_speculative_a, zero_extend<mode>di2_speculative_a,
679         mov<mode>_nc, zero_extend<mode>di2_nc,
680         advanced_load_check_nc_<mode>): New insns.
681         (zero_extend*): Add speculable* attributes.
682
683         * config/ia64/ia64.opt (msched_fp_mem_deps_zero_cost): New option.
684         (msched-stop-bits-after-every-cycle): Likewise.
685         (msched-max-memory-insns, msched-max-memory-insns-hard-limit):
686         Likewise.
687         (msched-spec-verbose): Remove.
688         (msched-prefer-non-data-spec-insns,
689         msched-prefer-non-control-spec-insns,
690         msched-count-spec-in-critical-path,
691         msel-sched-dont-check-control-spec): Use Target  Report Var
692         instead of Common Report Var.
693
694         * config/ia64/itanium2.md: Remove incorrect bypass.
695         
696         * config/ia64/t-ia64 (ia64.o): Add dependency on sel-sched.h.
697
698 2008-10-14  Jakub Jelinek  <jakub@redhat.com>
699
700         PR middle-end/37805
701         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
702         and -fhelp=separate.
703
704 2008-10-14  Ben Elliston  <bje@au.ibm.com>
705
706         * config/rs6000/rs6000.md (cell_micro): Fix formatting.
707
708 2008-10-13  Joseph Myers  <joseph@codesourcery.com>
709
710         * combine.c (simplify_set): Avoid calling LOAD_EXTEND_OP on
711         non-integer modes.
712
713 2008-10-13  Matthias Klose  <doko@ubuntu.com>
714
715         * config/pa/linux-atomic.c: Work around missing header file
716         for hppa64-linux-gnu targets.
717
718 2008-10-13  Andrew Pinski  <andrew_pinski@playstation.sony.com>
719             Kaushal Kantawala <Kaushal_Kantawala@playstation.sony.com>
720             Trevor Smigiel  <Trevor_Smigiel@playstation.sony.com>
721             Grace Cao  <grace_cao@playstation.sony.com>
722
723         * doc/invoke.texi (-mgen-cell-microcode): Document.
724         (-mwarn-cell-microcode): Document.
725         * cfglayout.c (locator_location): Export.
726         * rtl.h (locator_location): Define prototype.
727         * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand):
728         New predicate.
729         * rs6000/rs6000-protos.h (rs6000_final_prescan_insn): Define prototype.
730         * config/rs6000/rs6000.opt (mgen-cell-microcode): New option.
731         (mwarn-cell-microcode): New option.
732         * rs6000/rs6000.c (rs6000_cell_dont_microcode): Delete unused variable.
733         (rs6000_override_options): Set rs6000_gen_cell_microcode if tuning for
734         cell and not already set.
735         Turn off string instructions if not generating cell microcode.
736         (rs6000_final_prescan_insn): New function that warns about microcoded
737         instructions.
738         * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Define.
739         * config/rs6000/rs6000.md
740         Replace cc_reg_not_cr0_operand with cc_reg_not_micro_cr0_operand if
741         the instruction would have been microcoded on the Cell.  Set cell_micro
742         to always on unnamed patterns for the string instructions.
743         (cell_micro): Update definition, remove load/store conditional
744         microcoded.
745         (sign_extend:DI): Define new pattern for non microcoded version.
746         (sign_extend:SI): Likewise.
747         (compare (div:P)): Set cell_micro to not.
748         (andsi3): Define as an expand.
749         (andsi3_mc): New pattern.
750         (andsi3_nomc): New pattern.
751         (andsi3_internal0_nomc): New pattern.
752         (andsi3_internal2): Rename to ...
753         (andsi3_internal2_mc): this and enable iff generating microcode.
754         (andsi3_internal3): Rename to ...
755         (andsi3_internal3_mc): this and enable iff generating microcode.
756         (andsi3_internal4): Enable iif generating microcode.
757         (andsi3_internal5): Rename to ..
758         (andsi3_internal5_mc): this and enable iff generating microcode.
759         (andsi3_internal5_nomc): New pattern.
760         (extzvdi_internal1): Enable iff generating microcode.
761         (extzvdi_internal2): Likewise.
762         (rotlsi3_internal7): Set cell_micro to always if non immediate form.
763         (anddi3): Change to expand.
764         (anddi3_mc): Rename from anddi3.
765         (anddi3_no_mc): New pattern.
766         (anddi3_internal2): Rename to ..
767         (anddi3_internal2_mc): this and enable iff generating microcode.
768         (anddi3_internal2_nomc): New pattern.
769         (anddi3_internal3): Rename to ..
770         (anddi3_internal3_mc): this and enable iff generating microcode.
771         (anddi3_internal3_nomc): New pattern.
772         (movti_string): Set cell_micro to always if TARGET_STRING.
773         (stmsi8): Set cell_micro to always.
774         (stmsi7): Likewise.
775         (stmsi6): Likewise.
776         (stmsi5): Likewise.
777         (stmsi4): Likewise.
778         (stmsi3): Likewise.
779         (stmsi8_power): Likewise.
780         (stmsi7_power): Likewise.
781         (stmsi6_power): Likewise.
782         (stmsi5_power): Likewise.
783         (stmsi4_power): Likewise.
784         (stmsi3_power): Likewise.
785         (movsi_update2): Enable iff generating microcode.
786         (movhi_update3): Likewise.
787         (lmw): Set cell_micro to always.
788
789 2008-10-13  Richard Sandiford  <rdsandiford@googlemail.com>
790
791         * config/s390/s390.md (UNSPEC_POOL_OFFSET): New constant.
792         * config/s390/s390.c (machine_function): Remove
793         decomposed_literal_pool_addresses_ok_p.
794         (s390_decompose_address): Check for UNSPEC_POOL_OFFSET instead of
795         the difference of two labels.
796         (s390_output_addr_const_extra): Handle UNSPEC_POOL_OFFSET.
797         (s390_pool_offset): New function.
798         (s390_find_constant, s390_find_execute, s390_dump_pool): Use it.
799         (s390_reorg): Don't set decomposed_literal_pool_addresses_ok_p.
800
801 2008-10-13  Nathan Froyd  <froydnj@codesourcery.com>
802
803         * doc/install.texi (powerpc-*-*): Require binutils 2.15.
804         (powerpc*-*-linux-gnu*): Describe.
805         * config/rs6000/ppc-asm.h (HIDDEN_FUNC): New macro.
806         * config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
807         config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
808         config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
809         config/rs6000/e500crtres32gpr.asm,
810         config/rs6000/e500crtres64gpr.asm,
811         config/rs6000/e500crtres64gprctr.asm,
812         config/rs6000/e500crtrest32gpr.asm,
813         config/rs6000/e500crtrest64gpr.asm,
814         config/rs6000/e500crtresx32gpr.asm,
815         config/rs6000/e500crtresx64gpr.asm,
816         config/rs6000/e500crtsav32gpr.asm,
817         config/rs6000/e500crtsav64gpr.asm,
818         config/rs6000/e500crtsav64gprctr.asm,
819         config/rs6000/e500crtsavg32gpr.asm,
820         config/rs6000/e500crtsavg64gpr.asm,
821         config/rs6000/e500crtsavg64gprctr.asm: Use it.
822         * config/rs6000/crtsavres.asm: Really remove.
823
824 2008-10-13  Kai Tietz  <kai.tietz@onevision.com>
825
826         Fix PR/25502
827         * c-format.c (convert_format_name_to_system_name): Use
828         TARGET_OVERRIDES_FORMAT_INIT.
829         * config.gcc (extra_options): Add for mingw targets mingw.opt.
830         * config/i386/mingw.opt: New.
831         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_INIT): New.
832         * config/i386/msformat-c.c (TARGET_OVERRIDES_FORMAT_INIT): New.
833         (ms_printf_length_specs): Removed const specifier.
834         * doc/tm.texi (TARGET_OVERRIDES_FORMAT_INIT): New.
835         * doc/invoke.texi (Wno-pedantic-ms-format): New.
836
837 2008-10-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
838
839         * builtins.c: Remove MPFR_VERSION_NUM(2,3,0) conditionals.
840         * doc/install.texi: Bump recommended MPFR to 2.3.2.
841
842 2008-10-12  Kenneth Zadeck <zadeck@naturalbridge.com>
843
844         PR middle-end/37808
845         * df-scan.c (df_ref_change_reg_with_loc_1): Added test to make
846         sure that ref has valid bb.
847         
848 2008-10-12  Richard Henderson  <rth@redhat.com>
849
850         PR middle-end/37447
851         * Makefile.in (reload1.o): Depend on EMIT_RTL_H.
852         * alias.c (value_addr_p, stack_addr_p): Remove.
853         (nonoverlapping_memrefs_p): Remove IRA special case.
854         * emit-rtl.c (get_spill_slot_decl, set_mem_attrs_for_spill): New.
855         * emit-rtl.h (set_mem_attrs_for_spill): Declare.
856         * reload1.c (alter_reg): Use it.
857
858 2008-10-12  Uros Bizjak  <ubizjak@gmail.com>
859
860         * config/i386/driver-i386.c (detect_caches_cpuid2): Use array
861         of registers instead of eax, ebx, ecx and edx.  Use for loop
862         and check register for non-zero value before the call
863         to decode_caches_intel.
864
865 2008-10-11  Kenneth Zadeck <zadeck@naturalbridge.com>
866
867         PR rtl-optimization/37448
868         * df.h: (df_ref_class): New enum.
869         (DF_REF_TYPE_NAMES, df_ref_extract): Removed.
870         (struct df_ref): Replaced with union df_ref_d.
871         (df_base_ref, df_artificial_ref, df_regular_ref, df_extract_ref):
872         New members of df_ref_d union.
873         (DF_REF_REAL_REG, DF_REF_REGNO, DF_REF_REAL_LOC, DF_REF_REG,
874         DF_REF_LOC, DF_REF_BB, DF_REF_INSN_INFO, DF_REF_INSN,
875         DF_REF_CLASS, DF_REF_TYPE, DF_REF_CHAIN, DF_REF_ID, DF_REF_FLAGS,
876         DF_REF_ORDER, DF_REF_IS_ARTIFICIAL, DF_REF_NEXT_REG,
877         DF_REF_PREV_REG, DF_REF_EXTRACT_WIDTH, DF_REF_EXTRACT_OFFSET,
878         DF_REF_EXTRACT_MODE): Replaced definition to access union df_ref_d.
879         (DF_MWS_REG_DEF_P, DF_MWS_REG_USE_P, DF_MWS_TYPE): New macros.
880         (df_scan_bb_info, df_bb_regno_first_def_find,
881         df_bb_regno_last_def_find, df_find_def, df_find_use,
882         df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
883         debug_df_ref, df_chain_create, df_chain_unlink, df_chain_copy,
884         df_ref_create, df_ref_remove, df_compute_accessed_bytes,
885         df_get_artificial_defs, df_get_artificial_uses, union_defs)
886         Replaced struct df_ref * with df_ref.
887         * df-scan.c (df_collection_rec, df_null_ref_rec,
888         df_ref_chain_delete_du_chain, df_ref_chain_delete, df_install_ref,
889         df_grow_ref_info, df_ref_create, df_reg_chain_unlink,
890         df_ref_compress_rec, df_ref_remove, df_ref_chain_delete_du_chain,
891         df_ref_chain_delete, df_free_collection_rec, df_insn_rescan,
892         df_reorganize_refs_by_reg_by_reg,
893         df_reorganize_refs_by_reg_by_insn, df_reorganize_refs_by_reg,
894         df_ref_change_reg_with_loc_1, df_notes_rescan, df_swap_refs,
895         df_sort_and_compress_refs, df_install_ref, df_install_refs,
896         df_ref_record, df_get_conditional_uses, df_get_call_refs,
897         df_bb_refs_record, df_exit_block_uses_collect,
898         df_record_exit_block_uses, df_reg_chain_mark,
899         df_reg_chain_verify_unmarked, df_refs_verify): Replaced struct
900         df_ref * with df_ref.
901         (df_ref_record, df_uses_record, df_ref_create_structure): Added
902         df_ref_class parameter.
903         (df_scan_problem_data): Added new pools for different types of refs.
904         (df_scan_free_internal, df_scan_alloc, df_free_ref,
905         df_ref_create_structure): Processed new ref pools.
906         (df_scan_start_dump): Added counts of refs and insns.
907         (df_ref_create, df_notes_rescan, df_def_record_1, df_uses_record,
908         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
909         df_entry_block_defs_collect, df_exit_block_uses_collect): Added
910         code to pass df_ref_class down to ref creation functions.
911         (df_reg_chain_unlink, df_ref_remove, df_ref_change_reg_with_loc_1,
912         df_reg_chain_mark): Use macros to hide references to df_refs.
913         (df_ref_chain_change_bb): Removed.
914         (df_insn_change_bb): Remove calls to df_ref_insn_change_bb.
915         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
916         Enhanced to understand df_ref union structure.
917         * fwprop.c (local_ref_killed_between_p, use_killed_between,
918         all_uses_available_at, update_df, try_fwprop_subst,
919         forward_propagate_subreg, forward_propagate_and_simplify,
920         forward_propagate_into, fwprop, fwprop_addr): Replaced struct
921         df_ref * with df_ref.
922         (use_killed_between, all_uses_available_at): Use macros to hide
923         references to df_refs.
924         * regstat.c (regstat_bb_compute_ri,
925         regstat_bb_compute_calls_crossed): Replaced struct df_ref * with
926         df_ref.
927         * see.c (see_handle_relevant_defs, see_handle_relevant_uses,
928         see_handle_relevant_refs, see_analyze_one_def,
929         see_update_relevancy, see_propagate_extensions_to_uses): Replaced
930         struct df_ref * with df_ref.
931         * ra-conflict.c (record_one_conflict, clear_reg_in_live,
932         global_conflicts): Replaced struct df_ref * with df_ref.
933         * ddg.c (create_ddg_dep_from_intra_loop_link,
934         add_cross_iteration_register_deps, build_inter_loop_deps):
935         Replaced struct df_ref * with df_ref.
936         (create_ddg_dep_from_intra_loop_link,
937         add_cross_iteration_register_deps): Use macros to hide references
938         to df_refs.
939         * auto-inc-dec.c (find_inc, merge_in_block): Replaced struct
940         df_ref * with df_ref.
941         * df-core.c (df_bb_regno_first_def_find,
942         df_bb_regno_last_def_find, df_find_def, df_find_use,
943         df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
944         debug_df_ref): Replaced struct df_ref * with df_ref.
945         (df_mws_dump, df_ref_debug): Use macros to hide references to df_refs.
946         * cse.c (cse_extended_basic_block): Replaced struct df_ref * with
947         df_ref.
948         * web.c (union_defs, entry_register, replace_ref, web_main):
949         Replaced struct df_ref * with df_ref.
950         (union_defs, replace_ref): Use macros to hide references to df_refs.
951         * global.c (compute_regs_asm_clobbered, build_insn_chain):
952         Replaced struct df_ref * with df_ref.
953         * ifcvt.c (dead_or_predicable): Replaced struct df_ref * with df_ref.
954         * sel-sched-ir.c (maybe_downgrade_id_to_use, setup_id_reg_sets, ):
955         Replaced struct df_ref * with df_ref.
956         * ira-lives.c (mark_ref_live, def_conflicts_with_inputs_p,
957         mark_ref_dead, process_bb_node_lives): Replaced struct df_ref *
958         with df_ref.
959         * local-alloc.c (block_alloc): Replaced struct df_ref * with df_ref.
960         * df-byte-scan.c (df_compute_accessed_bytes_extract,
961         df_compute_accessed_bytes_strict_low_part,
962         df_compute_accessed_bytes_subreg, df_compute_accessed_bytes):
963         Replaced struct df_ref * with df_ref.
964         (df_compute_accessed_bytes): Use macros to hide references to df_refs.
965         * init-regs.c (initialize_uninitialized_regs): Replaced struct
966         df_ref * with df_ref.
967         * loop-invariant.c (invariant_for_use, hash_invariant_expr_1,
968         check_dependency, check_dependencies, record_uses): Replaced
969         struct df_ref * with df_ref.
970         (invariant_for_use, check_dependency): Use macros to hide
971         references to df_refs.
972         * loop-iv.c (iv_analysis_loop_init, iv_get_reaching_def,
973         get_biv_step_1, get_biv_step, record_iv, iv_analyze_def,
974         iv_analyze, biv_p): Replaced struct df_ref * with df_ref.
975         (iv_analysis_loop_init, iv_get_reaching_def): Use macros to hide
976         references to df_refs.
977         * ira.c (compute_regs_asm_clobbered): Replaced struct df_ref *
978         with df_ref.
979         * combine.c (create_log_links): Replaced struct df_ref * with df_ref.
980         * df-problems.c (df_rd_bb_local_compute_process_def,
981         df_lr_bb_local_compute, df_live_bb_local_compute, df_chain_create,
982         df_chain_unlink_1, df_chain_unlink, df_chain_copy,
983         df_chain_remove_problem, df_chain_create_bb_process_use,
984         df_chain_create_bb, df_chain_top_dump, df_chain_bottom_dump,
985         df_byte_lr_check_regs, df_byte_lr_bb_local_compute,
986         df_byte_lr_simulate_defs, df_byte_lr_simulate_uses,
987         df_byte_lr_simulate_artificial_refs_at_top,
988         df_byte_lr_simulate_artificial_refs_at_end, df_create_unused_note,
989         df_note_bb_compute, df_note_add_problem, df_simulate_defs,
990         df_simulate_uses, df_simulate_artificial_refs_at_end,
991         df_simulate_artificial_refs_at_top): Replaced struct df_ref * with
992         df_ref.
993         (df_chain_dump): Use macros to hide references to df_refs.
994         * config/mips/mips.c (r10k_simplify_address): Replaced struct
995         df_ref * with df_ref.
996         * dce.c (mark_nonreg_stores, delete_corresponding_reg_eq_notes,
997         mark_artificial_uses, mark_reg_dependencies,
998         byte_dce_process_block): Replaced struct df_ref * with df_ref.
999
1000 2008-10-11  Eric Botcazou  <ebotcazou@adacore.com>
1001
1002         * tree.h (contains_packed_reference): Mention ARRAY_RANGE_REF in
1003         head comment.
1004         (array_ref_element_size): Likewise.
1005         (array_ref_low_bound): Likewise.
1006         (array_ref_up_bound): Likewise.
1007         * expr.c (contains_packed_reference): Likewise.
1008         (array_ref_element_size): Likewise.
1009         (array_ref_low_bound): Likewise.
1010         (array_ref_up_bound): Likewise.
1011         * tree-ssa-loop-ivopts.c (idx_contains_abnormal_ssa_name_p): Deal
1012         with ARRAY_RANGE_REF.
1013         (idx_find_step): Likewise.
1014         (idx_record_use): Likewise.
1015         (strip_offset_1): Likewise.
1016         (idx_remove_ssa_names): Likewise.
1017
1018 2008-10-11  Uros Bizjak  <ubizjak@gmail.com>
1019             Andi Kleen  <ak@linux.intel.com>
1020
1021         * config/i386/cpuid.h (__cpuid_count): New defines.
1022         * config/i386/driver-i386.c (struct cache_desc): New structure.
1023         (describe_cache): Use struct cache_desc to pass cache descriptions.
1024         (detect_l2_cache): Ditto. Rename from decode_l2_cache.
1025         (detect_caches_amd): Use struct cache_desc to describe caches.
1026         (decode_caches_intel): Use struct cache_desc to pass cache
1027         descriptions.  Update descriptions to match latest (rev -032,
1028         December 2007) CPUID documentation.  Do not check valid bit here.
1029         Check for Xeon MP value 0x49 problems.
1030         (detect_caches_cpuid2): New function, split from detect_caches_intel.
1031         Check valid bit before calling decode_caches_intel.  Detect number
1032         of times to repeat CPUID instruction.
1033         (detect_caches_cpuid4): New function.
1034         (detect_caches_intel): Depending on max_level, call
1035         detect_caches_cpuid2 or detect_caches_cpuid4.  Call detect_l2_cache
1036         only when other methods fail to provide valid L2 cache description.
1037
1038 2008-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1039
1040         PR middle-end/37608
1041         * pa.md (call, call_value): Generate an rtx for register r4 and pass
1042         it to PIC call patterns.
1043         (call_symref_pic): Revise pattern to expose PIC register save.  Remove
1044         code generation and attributes from pattern.  Change peephole2 to split
1045         for noreturn case.  Revise split pattern for non noreturn case.
1046         (call_symref_64bit, call_reg_pic, call_reg_64bit, call_val_symref_pic,
1047         call_val_symref_64bit, call_val_reg_pic, call_val_reg_64bit): Likewise.
1048         * pa.c (attr_length_call): Simplify extraction of call rtx.  Add some
1049         asserts.
1050
1051 2008-10-11  David Edelsohn  <edelsohn@gnu.org>
1052
1053         * config/rs6000/rs6000.md (aux_truncdfsf2): Remove TARGET_SINGLE_FLOAT.
1054         (addsf3, subsf3, mulsf3 ! TARGET_POWERPC): Remove TARGET_SINGLE_FLOAT
1055         and fp_type.
1056         (divdf3): Reformat long line.
1057
1058 2008-10-11  Michael J. Eager  <eager@eagercon.com>
1059
1060         * config/rs6000/rs6000.c (rs6000_parse_fpu_option): Interpret
1061         -mfpu options.
1062         (rs6000_handle_option): Process -mfpu options.
1063         * config/rs6000/rs6000.h: (TARGET_XILINX_FPU): New.
1064         (enum fpu_type_t): New.
1065         * config/rs6000/rs6000.md (attr fp_type): New.  Include xfpu.md.
1066         (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3, trunctfdf2): Set
1067         fp_type.
1068         (floatsisf2): Remove TARGET_SINGLE_FPU condition.
1069         (floatdidf2): Add TARGET_SINGLE_FPU condition.
1070         * config/rs6000/rs6000.opt (-mfpu): New.
1071         (-mxilinx-fpu): New.
1072         * config/rs6000/sysv4.h: (DRIVER_SELF_SPECS): New.
1073         * config/rs6000/xfpu.h: New. Define TARGET_XILINX_FPU.
1074         * config/rs6000/xfpu.md: New. Define Xilinx pipeline.
1075         * gcc/config.gcc: powerpc-xilinx-eabi target: New.
1076         * gcc/doc/invoke.texi (RS/6000 and PowerPC Options): Add -mfpu option.
1077
1078 2008-10-11  Jakub Jelinek  <jakub@redhat.com>
1079
1080         PR target/35760
1081         * config/rs6000/rs6000.c (rs6000_legitimize_address): Only create
1082         LO_SUM on Darwin if mode has just one unit.
1083
1084 2008-10-10  H.J. Lu  <hongjiu.lu@intel.com>
1085
1086         PR debug/37002
1087         * dwarf2out.c (mem_loc_descriptor): Use DRAP for vDRAP which
1088         has been optimized out.
1089
1090 2008-10-10  Richard Sandiford  <rdsandiford@googlemail.com>
1091
1092         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Test PIC_ADDR_P
1093         instead of PIC_DIRECT_ADDR_P.
1094         (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
1095         (IS_LITERAL_OR_SYMBOLIC_S16_P, IS_LITERAL_OR_SYMBOLIC_U16_P): Delete.
1096         (IS_NON_EXPLICIT_CONSTANT_P): Don't test PIC_OFFSET_P.
1097         (PIC_OFFSET_P): Rename to...
1098         (PCREL_SYMOFF_P): ...this.
1099         (PIC_DIRECT_ADDR_P): Delete.
1100         (MOVI_SHORI_BASE_OPERAND_P): Check PCREL_SYMOFF_P instead of
1101         PIC_OFFSET_P.
1102         (OUTPUT_ADDR_CONST_EXTRA): Don't require unspecs to have a
1103         single argument.  Handle UNSPEC_EXTRACT_S16, UNSPEC_EXTRACT_U16,
1104         UNSPEC_SYMOFF and UNSPEC_PCREL_SYMOFF.
1105         * config/sh/sh.c (print_operand): Remove CONST handling.
1106         (unspec_caller_rtx_p): Rewrite to use split_const and check
1107         the operands of UNSPEC bases.
1108         (fixup_mova): Replace (unspec [(minus A B)] UNSPEC_PIC)
1109         with (unspec [A B] UNSPEC_SYMOFF).
1110         (nonpic_symbol_mentioned_p): Check for UNSPEC_SYMOFF and
1111         UNSPEC_PCREL_SYMOFF.
1112         (sh_secondary_reload): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
1113         * config/sh/sh.md (UNSPEC_EXTRACT_S16): New unspec.
1114         (UNSPEC_EXTRACT_U16): Likewise.
1115         (UNSPEC_SYMOFF): Likewise.
1116         (UNSPEC_PCREL_SYMOFF): Likewise.
1117         (movsi_const): Use UNSPEC_EXTRACT_*16s to extract 16-bit portions
1118         of constants.
1119         (movsi_const_16bit): Likewise.
1120         (movdi_const, movdi_const_32bit, movdi_const_16bit): Likewise.
1121         (GOTaddr2picreg): Replace (unspec [(minus A (minus B pc))] UNSPEC_PIC)
1122         with (unspec [A B] UNSPEC_PCREL_SYMOFF).
1123         (sym_label2reg): Replace (minus (const (unspec [A] UNSPEC_PIC)) B)
1124         with (unspec [A B] UNSPEC_SYMOFF).
1125         (symPLT_label2reg): Replace (minus A (minus B pc)) with
1126          (unspec [A B] PCREL_UNSPEC_SYMOFF).
1127         * config/sh/constraints.md (Css): Check for an UNSPEC_EXTRACT_S16.
1128         (Csu): Likewise UNSPEC_EXTRACT_U16.
1129         (Csy): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
1130         (Cpg): Update after changes to IS_NON_EXPLICIT_CONSTANT_P.
1131
1132 2008-10-10  Stepan Kasal  <skasal@redhat.com>
1133
1134         * gcc/doc/invoke.texi (Optimize Options): Fix typo in examples
1135         for loop strip mining and loop blocking.
1136
1137 2008-10-10  Alexandre Oliva  <aoliva@redhat.com>
1138
1139         * fortran/trans-types.c (gfc_get_nodesc_array_type): Don't
1140         vary types depending on debug info.
1141
1142 2008-10-10  Alexandre Oliva  <aoliva@redhat.com>
1143
1144         * c-gimplify.c (c_genericize): Don't refer to DECL_ASSEMBLER_NAME
1145         before ensuring it's already computed.
1146
1147 2008-10-09  Jakub Jelinek  <jakub@redhat.com>
1148
1149         * rtl.h (locator_eq): New decl.
1150         * cfglayout.c (locator_scope): New function.
1151         (insn_scope): Use it.
1152         (locator_eq): New function.
1153         (fixup_reorder_chain): Search for last insn in src bb
1154         that has locator set or first insn in dest bb.  Use
1155         locator_eq instead of == to compare locators.
1156         * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
1157         * cfgcleanup.c (try_forward_edges): Use locator_eq instead of
1158         == to compare locators.
1159
1160         * tree-ssa-live.c (remove_unused_locals): Mark all edge's goto_block
1161         as used.
1162         * gimple-low.c (lower_function_body, lower_gimple_return,
1163         lower_builtin_setjmp): Set gimple_block on the newly created stmts.
1164         * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Only set
1165         goto_block on edges if goto_locus is known.
1166
1167         PR middle-end/37774
1168         * tree.h (get_object_alignment): Declare.
1169         * emit-rtl.c (set_mem_attributes_minus_bitpos): Call
1170         get_object_alignment if needed.
1171         * builtins.c (get_pointer_alignment): Move ADDR_EXPR operand handling
1172         to ...
1173         (get_object_alignment): ... here.  New function.  Try harder to
1174         determine alignment from get_inner_reference returned offset.
1175
1176 2008-10-08  Jakub Jelinek  <jakub@redhat.com>
1177
1178         * graphite.c (gloog): Don't call find_unreachable_blocks
1179         before delte_unreachable_blocks.
1180
1181         * cfgexpand.c (expand_gimple_cond): Convert also goto_block and
1182         goto_locus of true_edge into RTL locator.
1183
1184 2008-10-08  Uros Bizjak  <ubizjak@gmail.com>
1185
1186         * config/i386/i386.md (*jcc_btdi_rex64): Clobber FLAGS_REG.
1187         (*jcc_btdi_mask_rex64): Ditto.
1188         (*jcc_btsi): Ditto.
1189         (*jcc_btsi_mask): Ditto.
1190         (*jcc_btsi_1): Ditto.
1191         (*jcc_btsi_mask_1): Ditto.
1192
1193 2008-10-08  Paul Brook  <paul@codesourcery.com>
1194
1195         * config/arm/bpabi.h (ARM_FUNCTION_PROFILER): Define new EABI
1196         compatible profiler (__gnu_mcount_nc).
1197         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
1198
1199 2008-10-08  H.J. Lu  <hongjiu.lu@intel.com>
1200
1201         * config/i386/i386.c (initial_ix86_tune_features): Add
1202         X86_TUNE_USE_VECTOR_FP_CONVERTS.
1203         * config/i386/i386.h (ix86_tune_indices): Likewise.
1204         (TARGET_USE_VECTOR_FP_CONVERTS): New.
1205
1206         * config/i386/i386.md: Check TARGET_USE_VECTOR_FP_CONVERTS
1207         instead of (TARGET_USE_VECTOR_CONVERTS || TARGET_GENERIC)
1208         for FP to FP splitters.
1209
1210 2008-10-08  H.J. Lu  <hongjiu.lu@intel.com>
1211
1212         * config/i386/i386.md: Add missing gen_sse2_cvtdq2p to convert
1213         splitter.
1214
1215 2008-10-08  Jakub Jelinek  <jakub@redhat.com>
1216
1217         PR target/36635
1218         PR target/37290
1219         PR rtl-optimization/37341
1220         * cse.c (cse_cc_succs): Add ORIG_BB argument, don't follow edges
1221         to ORIG_BB, pass through ORIG_BB recursively.
1222         (cse_condition_code_reg): Adjust caller.
1223
1224 2008-10-08  Kai Tietz  <kai.tietz@onevision.com>
1225
1226         * sdbout.c (sdbout_one_type): Treat the value type
1227         CONST_DECL for enumerals.
1228
1229 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
1230
1231         * config/i386/i386.md: Remove trailing white spaces.
1232
1233 2008-10-07  Kenneth Zadeck <zadeck@naturalbridge.com>
1234
1235         PR rtl-optimization/37448
1236         * alloc-pool.c (struct alloc_pool_descriptor) [elt_size]: New field.
1237         (stuct alloc_pool_descriptor) [created, allocated, current, peak]:
1238         Make unsigned long.
1239         (struct output_info) [count]: Renamed total_created and made
1240         unsigned long.
1241         (struct output_info) [size]: Renamed total_allocated and made
1242         unsigned long.
1243         (create_alloc_pool, empty_alloc_pool, pool_alloc, pool_free):
1244         Properly keep track of desc->size.
1245         (print_statistics, dump_alloc_pool_statistics): Enhance the
1246         printing of statistics to print the number of elements and to use
1247         unsigned longs.
1248         
1249 2008-10-07  Jakub Jelinek  <jakub@redhat.com>
1250
1251         PR middle-end/37576
1252         * opts.h (CL_SAVE): Move up to flags range.
1253         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET,
1254         CL_COMMON): Renumber.
1255         (CL_MIN_OPTION_CLASS): Set to CL_PARAMS.
1256         * opts.c (common_handle_option): Revert last change.
1257
1258 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
1259
1260         * config/i386/i386-protos.h (ix86_schedule): New.
1261
1262         * config/i386/i386.c (ix86_schedule): New.
1263         (override_options): Add schedule to processor_alias_table.  Set
1264         ix86_schedule from the schedule field in processor_alias_table.
1265         (ix86_function_specific_save): Save ix86_schedule.
1266         (ix86_function_specific_restore): Restore ix86_schedule.
1267
1268         * config/i386/i386.md (cpu): Map to ix86_schedule instead of
1269         ix86_tune.  Add none and remove i386, i486, pentium4, nocona
1270         and generic32.
1271
1272         * config/i386/i386.opt: Add schedule.
1273
1274         * config/i386/ppro.md: Remove generic32.
1275
1276 2008-10-07  Simon Martin  <simartin@users.sourceforge.net>
1277
1278         PR c/35437
1279         * expr.c (count_type_elements): Handle ERROR_MARK.
1280
1281 2008-10-07  Jakub Jelinek  <jakub@redhat.com>
1282
1283         PR debug/29609
1284         PR debug/36690
1285         PR debug/37616
1286         * basic-block.h (struct edge_def): Add goto_block field.
1287         * cfglayout.c (fixup_reorder_chain): Ensure that there is at least
1288         one insn with locus corresponding to edge's goto_locus if !optimize.
1289         * profile.c (branch_prob): Copy edge's goto_block.
1290         * cfgrtl.c (force_nonfallthru_and_redirect): Use goto_locus for
1291         emitted jumps.
1292         (cfg_layout_merge_blocks): Emit a nop with edge's goto_locus
1293         locator in between the merged basic blocks if !optimize and needed.
1294         * cfgexpand.c (expand_gimple_cond): Convert goto_block and
1295         goto_locus into RTL locator.  For unconditional jump use that
1296         locator for the jump insn.
1297         (expand_gimple_cond): Convert goto_block and goto_locus into
1298         RTL locator for all remaining edges.  For unconditional jump
1299         use that locator for the jump insn.
1300         * cfgcleanup.c (try_forward_edges): Avoid the optimization if
1301         there is more than one edge or insn locator along the forwarding
1302         edges and !optimize.  If there is just one, set e->goto_locus.
1303         * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Set also
1304         edge's goto_block.
1305         (move_block_to_fn): Adjust edge's goto_block.
1306
1307 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
1308
1309         PR middle-end/37731
1310         * expmed.c (expand_mult): Properly check DImode constant in
1311         CONST_DOUBLE.
1312
1313 2008-10-07  Jakub Jelinek  <jakub@redhat.com>
1314
1315         PR debug/37738
1316         * dwarf2out.c (common_block_die_table): New variable.
1317         (common_block_die_table_hash, common_block_die_table_eq): New
1318         functions.
1319         (gen_variable_die): Look up a DW_TAG_common_block die for a particular
1320         COMMON block in the current scope rather than globally.  Optimize
1321         DW_OP_addr SYMBOL_REF DW_OP_plus_uconst off into
1322         DW_OP_addr SYMBOL_REF+off.
1323
1324 2008-10-07  Eric Botcazou  <ebotcazou@adacore.com>
1325
1326         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p) <VIEW_CONVERT_EXPR>:
1327         Return true for non-addressable GIMPLE operands.
1328
1329 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
1330
1331         PR target/24765
1332         * config/i386/i386.c (initial_ix86_tune_features): Remove
1333         X86_TUNE_USE_BIT_TEST.
1334         * config/i386/i386.h (ix86_tune_indices): Likewise.
1335         (TARGET_USE_BIT_TEST): Removed.
1336
1337 2008-10-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1338
1339         * config.gcc (arm*-*-*): Add aapcs-linux to supported ABIs.
1340
1341 2008-10-06  Adam Nemet  <anemet@caviumnetworks.com>
1342
1343         * config/mips/mips.md (mulsi3_mul3, muldi3_mul3): Merge these ...
1344         (mul<mode>3_mul3): ... into this new template.
1345
1346 2008-10-06  Aldy Hernandez  <aldyh@redhat.com>
1347
1348         * gimplify.c (gimplify_arg): Add location argument.  Use it.
1349         (gimplify_call_expr): Pass location to gimplify_arg.
1350         (gimplify_modify_expr_to_memcpy): Same.
1351         (gimplify_modify_expr_to_memset): Same.
1352
1353 2008-10-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1354
1355         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1356         Update calls to build_unary_op and build_indirect_ref for location
1357         changes.
1358
1359 2008-10-06  Aldy Hernandez  <aldyh@redhat.com>
1360
1361         build_modify_expr.
1362         * c-decl.c (finish_decl): Pass input_location to build_unary_op.
1363         * c-typeck.c (array_to_pointer_conversion): Pass location to
1364         build_unary_op.
1365         (function_to_pointer_conversion): Use error_at and warning_at.
1366         (build_indirect_ref): Same.
1367         (build_array_ref): Pass location to build_binary_op.
1368         (parser_build_unary_op): Do not set location after calling
1369         build_unary_op.
1370         (build_unary_op): Add location argument.  Use it throughout.  Set
1371         EXPR_LOCATION before returning new tree.
1372         (build_modify_expr): Same.
1373         (build_binary_op): Use location throughout.  Set EXPR_LOCATION before
1374         returning node.
1375         * c-omp.c (c_finish_omp_atomic): Pass location to build_unary_op,
1376         build_indirect_ref, build_modify_expr.
1377         (c_finish_omp_for): Same.  Use error_at instead of error.
1378         * c-common.c (c_common_truthvalue_conversion): Pass location to
1379         build_unary_op.
1380         (warn_for_div_by_zero): Add location argument.
1381         * c-common.h: Add argument to build_modify_expr, build_indirect_ref,
1382         build_unary_op, warn_for_div_by_zero.
1383         * c-parser.c (c_parser_typeof_specifier): Use
1384         protected_set_expr_location.
1385         (c_parser_statement_after_labels): Same.
1386         (c_parser_condition): Same.
1387         (c_parser_expr_no_commas): Pass correct location to build_modify_expr.
1388         (c_parser_conditional_expression): Use protected_set_expr_location.
1389         (c_parser_unary_expression): Pass location to build_indirect_ref.
1390         (c_parser_postfix_expression_after_primary): Pass location to
1391         build_indirect_ref, build_unary_op.
1392         (c_parser_omp_for_loop): Set the increment expression's EXPR_LOCATION.
1393
1394 2008-10-06  Joshua Kinard  <kumba@gentoo.org>
1395
1396         * doc/invoke.texi: List r1x000 family under the -march MIPS option.
1397         * config/mips/mips.h (PROCESSOR_R10000): New processor_type.
1398         * config/mips/mips.c (mips_cpu_info_table): Add r10000, r12000,
1399         r14000 and r16000.
1400         (mips_rtx_cost_data): Add a PROCESSOR_R10000 entry.
1401         (mips_issue_rate): Handle PROCESSOR_R10000.
1402         * config/mips/mips.md (cpu): Add r10000.
1403         Include r10000.md.
1404         * config/mips/10000.md: New file.
1405
1406 2008-10-06  Richard Sandiford  <rdsandiford@googlemail.com>
1407
1408         * config/rs6000/rs6000-protos.h (rs6000_find_base_term): Declare.
1409         * config/rs6000/rs6000.h (FIND_BASE_TERM): New macro.
1410         * config/rs6000/rs6000.c (rs6000_find_base_term): New function.
1411
1412 2008-10-06  Richard Sandiford  <rdsandiford@googlemail.com>
1413
1414         * config/darwin-protos.h (machopic_function_base_name): Delete.
1415         (machopic_function_base_sym): Likewise.
1416         (machopic_gen_offset): Declare.
1417         * config/darwin.h (MACHOPIC_FUNCTION_BASE_NAME): New macro.
1418         (ASM_OUTPUT_LABELREF): Use it instead of a hard-coded string constant.
1419         * config/darwin.c (machopic_function_base_name): Delete.
1420         (machopic_function_base_sym): Likewise.
1421         (gen_pic_offset): Rename to...
1422         (machopic_gen_offset): ...this and remove the pic_base argument.
1423         Instead use MACHO_DYNAMIC_NO_PIC_P to decide whether a PIC offset
1424         is needed.  Create an UNSPEC_MACHOPIC_OFFSET if so, and set
1425         crtl->uses_pic_offset_table.
1426         (machopic_indirect_data_reference): Use new machopic_gen_offset
1427         interface.
1428         (machopic_legitimize_pic_address): Likewise.
1429         (machopic_operand_p): Check for UNSPEC_MACHOPIC_OFFSET.
1430
1431         * config/i386/darwin.h (GOT_SYMBOL_NAME): Use
1432         MACHOPIC_FUNCTION_BASE_NAME instead of machopic_function_base_name.
1433         * config/i386/i386.c (output_set_got): Likewise.
1434         (darwin_local_data_pic): Check for an UNSPEC_MACHOPIC_OFFSET
1435         instead of a MINUS.
1436         (legitimate_pic_operand_p): Handle UNSPEC_MACHOPIC_OFFSET.
1437         (legitimate_address_p): Likewise.
1438         (output_pic_addr_const): Likewise.
1439         (output_addr_const_extra): Likewise.
1440         (ix86_delegitimize_address): Expect darwin_local_data_pic to
1441         match an UNSPEC rather than a MINUS.
1442         * config/i386/i386.md (UNSPEC_MACHOPIC_OFFSET): Define.
1443         (builtin_setjmp_receiver): Use machopic_gen_offset.
1444         * config/i386/predicates.md (pic_symbolic_operand): Handle
1445         UNSPEC_MACHOPIC_OFFSET.
1446
1447         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
1448         Use machopic_gen_offset and machopic_operand_p.
1449         (rs6000_output_addr_const_extra): Handle UNSPEC_MACHOPIC_OFFSET.
1450         (rs6000_emit_prologue): Use MACHOPIC_FUNCTION_BASE_NAME.
1451         * config/rs6000/rs6000.md (UNSPEC_MACHOPIC_OFFSET): Define.
1452         (builtin_setjmp_receiver): Use MACHOPIC_FUNCTION_BASE_NAME.
1453         Set crtl->uses_pic_offset_table.
1454
1455 2008-10-06  Richard Sandiford  <rdsandiford@googlemail.com>
1456
1457         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
1458         Declare.
1459         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): New macro.
1460         * config/rs6000/rs6000.md (UNSPEC_TOCREL): New constant.
1461         * config/rs6000/rs6000.c (constant_pool_expr_1): Delete.
1462         (constant_pool_expr_p): Use split_const and check the base.
1463         (toc_relative_expr_p): Likewise, checking for an UNSPEC_TOCREL
1464         instead of a MINUS.
1465         (legitimate_constant_pool_address_p): Check toc_relative_p
1466         instead of constant_pool_expr_p.
1467         (print_operand_address): Always use output_addr_const for
1468         constant pool addresses.
1469         (rs6000_output_addr_const_extra): New function.
1470         (create_TOC_reference): Create an UNSPEC_TOCREL instead of a MINUS.
1471
1472 2008-10-06  Vladimir Makarov  <vmakarov@redhat.com>
1473
1474         PR middle-end/37535
1475
1476         * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
1477         (mark_ref_live, mark_ref_dead): Use them.
1478         (def_conflicts_with_inputs_p): Remove.
1479         (mark_early_clobbers): New function.
1480         (process_bb_node_lives): Call preprocess_constraints and
1481         mark_early_clobbers.
1482
1483         * doc/rtx.texi (clobber): Change how RA deals with clobbers.
1484
1485 2008-10-06  Danny Smith  <dannysmith@users.sourceforge.net>
1486
1487         * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Add thread cleanup
1488         lib with -mthread switch.
1489
1490 2008-10-05  Dodji Seketeli  <dodji@redhat.com>
1491
1492         PR c++/37410
1493         * dwarf2out.c (dwarf2out_imported_module_or_decl): Split this
1494         function in two, making it call a new and reusable
1495         dwarf2out_imported_module_or_decl() that takes the containing
1496         BLOCK of the declaration in argument.
1497         (dwarf2out_imported_module_or_decl_real): New function.
1498         (decls_for_scope, gen_decl_die, dwarf2out_decl): Take
1499         IMPORTED_DECL in account.
1500         * tree.def: Added IMPORTED_DECL node type.
1501         * tree.h: Added accessors for IMPORTED_DECL nodes.
1502         * tree.c (init_ttree): Initialise IMPORTED_DECL node type.
1503
1504 2008-10-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1505
1506         * doc/gimple.texi: Fix some typos, wrap some long lines,
1507         fix some broken wraps with continuations.
1508         * tree-ssa-reassoc.c: Fix comment typos.
1509
1510 2000-10-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1511
1512         PR target/37603
1513         * pa.c (legitimize_pic_address): Force function labels to memory in
1514         word mode.
1515
1516 2008-10-04  Anton Blanchard  <anton@samba.org>
1517
1518         * config/rs6000/rs6000.c (rs6000_emit_sync): Use gen_lwsync().
1519         (rs6000_split_atomic_op): Same.
1520         (rs6000_split_compare_and_swap): Same.
1521         (rs6000_split_compare_and_swapqhi): Same.
1522
1523 2008-10-04  Richard Guenther  <rguenther@suse.de>
1524
1525         * tree-ssa-sccvn.c (vn_reference_op_eq): Use types_compatible_p
1526         instead of pointer equality.
1527         (vn_nary_op_eq): Likewise.
1528
1529 2008-10-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1530
1531         * config/rs6000/rs6000.md (fseldfsf4): Add TARGET_SINGLE_FLOAT 
1532         condition.
1533         (fselsfdf4): Make condition on "TARGET_HARD_FLOAT && TARGET_FPRS &&
1534         TARGET_DOUBLE_FLOAT && TARGET_SINGLE_FLOAT".
1535
1536 2008-10-03  Danny Smith  <dannysmith@users.sourceforge.net>
1537
1538         * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
1539         Revert previous change.
1540
1541 2008-10-03  Tom Tromey  <tromey@redhat.com>
1542
1543         * stringpool.c (ggc_alloc_string): Terminate string.
1544
1545 2008-10-03  Jakub Jelinek  <jakub@redhat.com>
1546
1547         * gimplify.c (gimplify_function_tree): For -finstrument-functions
1548         use gimple_bind_{,set_}block instead of gimple_{,set_}block.
1549         * gimple.h (gimple_bind_set_block): Allow second argument to be NULL.
1550
1551         PR debug/37726
1552         * gimplify.c (declare_vars): Use gimple_bind_block instead of
1553         gimple_block.
1554
1555 2008-10-03  Pascal Obry  <obry@adacore.com>
1556
1557         * gcov.c (create_file_names): Properly handle UNIX and DOS
1558         directory separators.
1559         (make_gcov_file_name): Likewise + convert the ':' DOS drive
1560         separator to '~' to ensure clean filenames on Windows.
1561
1562 2008-10-02  Danny Smith  <dannysmith@users.sourceforge.net>
1563
1564         * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
1565         Add a null terminator to the stripped name.
1566
1567 2008-10-02  David Edelsohn  <edelsohn@gnu.org>
1568
1569         * config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Revert
1570         TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
1571         (function_arg_advance): Condition on TARGET_DOUBLE_FLOAT,
1572         TARGET_SINGLE_FLOAT.  Revert SCALAR_FLOAT_MODE_P condition.
1573         (function_arg): Condition on TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
1574         (rs6000_function_value): Revert TARGET_DOUBLE_FLOAT,
1575         TARGET_SINGLE_FLOAT.
1576
1577 2008-10-02  Daniel Jacobowitz  <dan@codesourcery.com>
1578
1579         * builtins.c (fold_builtin_pow): Check for 0 ** NEGATIVE.
1580
1581 2008-10-02  Richard Guenther  <rguenther@suse.de>
1582
1583         PR middle-end/37713
1584         * tree-ssa.c (useless_type_conversion_p_1): For COMPLEX_TYPE
1585         and VECTOR_TYPE recurse with useless_type_conversion_p which
1586         properly handles void pointer conversion.
1587
1588 2008-10-02  Danny Smith  <dannysmith@users.sourceforge.net>  
1589
1590         PR target/37528
1591         * config/i386/mingw32.h (LIBGCC_SPEC) : Replace with ..
1592         (REAL_LIBGCC_SPEC): New.  Always include -lgcc.
1593
1594 2008-10-01  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1595
1596         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1597         Handle ALTIVEC_BUILTIN_VEC_SPLATS, ALTIVEC_BUILTIN_VEC_PROMOTE,
1598         ALTIVEC_BUILTIN_VEC_EXTRACT, and ALTIVEC_BUILTIN_VEC_INSERT specially,
1599         they translate to non builtins.
1600         * config/rs6000/rs6000.c (altivec_init_builtins): Add new variable
1601         opaque_ftype_opaque.  Define builtins __builtin_vec_splats,
1602         __builtin_vec_promote, __builtin_vec_extract, and
1603         __builtin_vec_insert.
1604         * config/rs6000/rs6000.h (enum rs6000_builtins): Add
1605         ALTIVEC_BUILTIN_VEC_EXTRACT, ALTIVEC_BUILTIN_VEC_PROMOTE,
1606         ALTIVEC_BUILTIN_VEC_INSERT, and ALTIVEC_BUILTIN_VEC_SPLATS.
1607         * config/rs6000/altivec.h (vec_extract): Define
1608         (vec_insert): Define.
1609         (vec_splats): Define.
1610         (vec_promote): Define.
1611
1612 2008-10-01  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1613             Yukishige Shibata  <shibata@rd.scei.sony.co.jp>
1614             Trevor Smigiel  <Trevor_Smigiel@playstation.sony.com>
1615
1616         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add Cell
1617         Altivec intrinsics.
1618         * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Delete
1619         prototype.  Add new parameter, blk.
1620         Use BLKmode for the MEM if blk is true.
1621         (altivec_expand_builtin): Handle ALTIVEC_BUILTIN_STVLX,
1622         ALTIVEC_BUILTIN_STVLXL, ALTIVEC_BUILTIN_STVRX, and
1623         ALTIVEC_BUILTIN_STVRXL.
1624         Update usage of altivec_expand_lv_builtin.
1625         Handle ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL,
1626         ALTIVEC_BUILTIN_LVRX, and ALTIVEC_BUILTIN_LVRXL.
1627         (altivec_init_builtins): If compiling for the Cell, also define the
1628         cell VMX builtins.
1629         * config/rs6000/rs6000.h (rs6000_builtins): Define
1630         ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL, ALTIVEC_BUILTIN_LVRX,
1631         ALTIVEC_BUILTIN_LVRXL, ALTIVEC_BUILTIN_STVLX, ALTIVEC_BUILTIN_STVLXL,
1632         ALTIVEC_BUILTIN_STVRX, ALTIVEC_BUILTIN_STVRXL,
1633         ALTIVEC_BUILTIN_VEC_LVLX, ALTIVEC_BUILTIN_VEC_LVLXL,
1634         ALTIVEC_BUILTIN_VEC_LVRX, ALTIVEC_BUILTIN_VEC_LVRXL,
1635         ALTIVEC_BUILTIN_VEC_STVLX, ALTIVEC_BUILTIN_VEC_STVLXL,
1636         ALTIVEC_BUILTIN_VEC_STVRX, and ALTIVEC_BUILTIN_VEC_STVRXL.
1637         * config/rs6000/altivec.md (define_constants): Define UNSPEC_LVLX,
1638         UNSPEC_LVLXL, UNSPEC_LVRX, UNSPEC_LVRXL, UNSPEC_STVLX, UNSPEC_STVLXL,
1639         UNSPEC_STVRX, and UNSPEC_STVRXL.
1640         (altivec_lvlx): New pattern.
1641         (altivec_lvlxl): New pattern.
1642         (altivec_lvrx): New pattern.
1643         (altivec_lvrxl): New pattern.
1644         (altivec_stvlx): New pattern.
1645         (altivec_stvlxl): New pattern.
1646         (altivec_stvrx): New pattern.
1647         (altivec_stvrxl): New pattern.
1648         * config/rs6000/altivec.h (vec_lvlx): Define if PPU is defined.
1649         (vec_lvlxl): Likewise.
1650         (vec_lvrx): Define if PPU is defined.
1651         (vec_lvrxl): Likewise.
1652         (vec_stvlx): Define if PPU is defined.
1653         (vec_stvlxl): Likewise.
1654         (vec_stvrx): Define if PPU is defined.
1655         (vec_stvrxl): Likewise.
1656
1657 2008-10-01  Geert Bosch  <bosch@adacore.com>
1658
1659         * tree.c (contains_placeholder_p): Return 0 for a SAVE_EXPR.
1660
1661 2008-10-01  Richard Guenther  <rguenther@suse.de>
1662
1663         PR tree-optimization/37617
1664         * tree-ssa-pre.c (create_expression_by_pieces): During FRE
1665         do not add to the NEW_SETS.
1666
1667 2008-10-01  Richard Guenther  <rguenther@suse.de>
1668
1669         PR middle-end/37285
1670         * tree-vrp.c (execute_vrp): If we optimized away the default
1671         case make sure to promote the label that got in place of it
1672         to a default case label.
1673
1674 2008-10-01  Richard Henderson  <rth@redhat.com>
1675
1676         PR tree-opt/35737
1677         * tree-complex.c (set_component_ssa_name): Don't optimize
1678         is_gimple_min_invariant values with ssa_names in abnormal phis.
1679
1680 2008-09-30  Paolo Bonzini  <bonzini@gnu.org>
1681
1682         PR tree-optimization/37662
1683         * tree-ssa-ccp.c (fold_gimple_assign): Invert the operands of a
1684         commutative binary operation if they are in the wrong order and
1685         fold_build2 produces non-GIMPLE.
1686
1687 2008-09-30  Jakub Jelinek  <jakub@redhat.com>
1688
1689         PR tree-optimization/37662
1690         PR tree-optimization/37663
1691         * tree-vrp.c (simplify_truth_ops_using_ranges): Don't call
1692         get_value_range with non-SSA_NAME.  Don't assert operands have been
1693         folded, instead just bail out.
1694
1695 2008-09-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1696
1697         * config/rs6000/rs6000.md (fnmadds combiner): Revert typo.
1698
1699 2008-09-30  Richard Guenther  <rguenther@suse.de>
1700
1701         PR middle-end/37491
1702         * tree-vect-transform.c (vect_create_data_ref_ptr): Properly
1703         build restrict-qualified pointers.
1704         (vectorizable_store): Move alias check later.
1705         (vectorizable_load): Likewise.
1706
1707 2008-09-30  Paolo Bonzini  <bonzini@gnu.org>
1708
1709         * c-common.c (empty_if_body_warning): Remove.
1710         * c-common.h (empty_if_body_warning): Remove.
1711         * c-parser.c (c_parser_if_body, c_parser_else_body): Implement
1712         here the -Wempty-body warning for `if' and `else' statements.
1713         * c-typeck.c (c_finish_if_stmt): Do not call empty_body_warning.
1714
1715 2008-09-29  H.J. Lu  <hongjiu.lu@intel.com>
1716
1717         * config/i386/i386.opt: Add msse2avx.
1718
1719         * config/i386/linux.h (ASM_SPEC): New.  Support -msse2avx.
1720         * config/i386/linux64.h (ASM_SPEC): Likewise.
1721
1722         * doc/invoke.texi: Document -msse2avx.
1723
1724 2008-09-29  Eric Botcazou  <ebotcazou@adacore.com>
1725
1726         * dwarf2out.c (constant_size): Use HOST_WIDE_INT in parameter type.
1727
1728 2008-09-29  Joseph Myers  <joseph@codesourcery.com>
1729
1730         * ifcvt.c (noce_emit_store_flag): If using condition from original
1731         jump, reverse it if if_info->cond was reversed.
1732
1733 2008-09-29  Eric Botcazou  <ebotcazou@adacore.com>
1734
1735         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
1736         non-constant memory if it cannot be forced to constant memory.
1737         Overhaul surrounding code and factor out common condition.
1738
1739 2008-09-29  Jeff Law <law@redhat.com>
1740
1741         * reload1.c (alter_reg): Add missing curly braces.
1742
1743 2008-09-29  Michael J. Eager  <eager@eagercon.com>
1744
1745         * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
1746         are easy.
1747         * config/rs6000/rs6000.c (rs6000_override_options): Move
1748         rs6000_init_hard_regno_mode_ok after all options changed.
1749         Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
1750         (rs6000_handle_option): Process -msingle-float, -mdouble-float,
1751         -msimple-fpu flags.  Add warning messages if single FP not configured.
1752         (rs6000_file_start): Output gnu_attribute for single-float.
1753         (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
1754         (rs6000_legitimize_address): Likewise.
1755         (rs6000_legitimize_reload_address): Likewise.
1756         (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
1757         TARGET_SINGLE_FLOAT.
1758         (function_arg_advance): Likewise (partial conversion).
1759         (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
1760         (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
1761         TARGET_SINGLE_FLOAT.
1762         (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
1763         (rs6000_emit_prologue): Likewise.
1764         (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
1765         TARGET_SINGLE_FLOAT.
1766         (rs6000_libcall_value): Likewise.
1767         * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
1768         (TARGET_DOUBLE_FLOAT): New default to 1
1769         (TARGET_SIMPLE_FPU): New default to 0
1770         (TARGET_SINGLE_FPU): New default to 0
1771         (TARGET_SINGLE_FLOAT_MODE): New.
1772         (TARGET_DOUBLE_FLOAT_MODE): New.
1773         * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
1774         TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
1775         UNITS_PER_FP_WORD
1776         * config/rs6000/rs6000.md (define_mode_iterator): Condition on
1777         TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
1778         (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
1779         copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
1780         nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
1781         muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
1782         movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
1783         floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
1784         *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
1785         fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
1786         rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
1787         floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
1788         movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
1789         extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
1790         abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
1791         cmptf_internal1, *cmptf_internal2): Condition on
1792         TARGET_DOUBLE_FLOAT.
1793         (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
1794         mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
1795         *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
1796         btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
1797         floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
1798         *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
1799         TARGET_SINGLE_FLOAT.
1800         (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
1801         * config/rs6000/rs6000.opt (-msingle-float): New.
1802         (-mdouble-float): New.
1803         (-msimple-fpu): New.
1804         * doc/invoke.texi (RS/6000 and PowerPC Options): Add
1805         -msingle-float, -mdouble-float, -msimple-fpu options.
1806         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
1807         _SOFT_DOUBLE for -msingle-float.
1808         * config.gcc: New config for target=powerpc-xilinx-eabi.
1809
1810 2008-09-29  Tobias Grosser  <grosser@fim.uni-passau.de>
1811
1812         * graphite.c (dot_all_scops_1): Remove unused checks. SCoPs always
1813         have exit and entry.
1814         (new_scop): Take entry and exit edge to define new SCoP.
1815         (sd_region_p): New structure used during SCoP detection.
1816         (move_scops): Delete.
1817         (move_sd_regions): New.
1818         (scopdet_info): Change the definition from edges back to basic_blocks.
1819         (scopdet_edge_info):  Work on basic_blocks and rename to
1820         scopdet_basic_block_info.
1821         (split_difficult_bb): At the moment removed. We should later
1822         add it at another place.
1823         (build_scops_1): Work on basic_blocks.
1824         (bb_in_sd_region): New.
1825         (find_single_entry_edge): New.
1826         (find_single_exit_edge): New.
1827         (create_single_entry_edge): New.
1828         (sd_region_without_exit): New.
1829         (create_single_exit_edge): New.
1830         (unmark_exit_edges): New.
1831         (mark_exit_edges): New.
1832         (create_sese_edges): New.
1833         (build_graphite_scops): New.
1834         (build_scops): Make SCoPs SESE.
1835         (limit_scops): Use the new functions.
1836
1837 2008-09-29  Hans-Peter Nilsson  <hp@axis.com>
1838
1839         * config/cris/cris.h (IRA_COVER_CLASSES): Define.
1840
1841 2008-09-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1842
1843         PR target/37640
1844         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Force
1845         address to a register before taking the lower part.
1846
1847 2008-09-28  Kaz Kojima  <kkojima@gcc.gnu.org>
1848
1849         * config/sh/sh.h (OVERRIDE_OPTIONS): Unset flag_dwarf2_cfi_asm
1850         for SHmedia.
1851
1852 2008-09-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1853             Kaushal Kantawala  <kaushal_kantawala@playstation.sony.com>
1854
1855         PR tree-opt/36891
1856         * tree-ssa-loop-im.c (rewrite_reciprocal): Set DECL_GIMPLE_REG_P on
1857         the newly created variable.
1858         Create a VECTOR_CST of all 1s for vector types.
1859
1860 2008-09-28  Eric Botcazou  <ebotcazou@adacore.com>
1861
1862         PR middle-end/36575
1863         * fold-const.c (div_and_round_double) <ROUND_DIV_EXPR>: Fix typo.
1864
1865 2008-09-28  Eric Botcazou  <ebotcazou@adacore.com>
1866
1867         * expmed.c (store_fixed_bit_field): Always use convert_to_mode in
1868         order to convert between modes.
1869         (extract_bit_field_1): Test TRULY_NOOP_TRUNCATION on the right mode.
1870
1871 2008-09-27  Kaz Kojima  <kkojima@gcc.gnu.org>
1872
1873         * config/sh/sh.c (sh_gimplify_va_arg_expr): Use VIEW_CONVERT_EXPR
1874         if needed.
1875
1876 2008-09-26  Vladimir Makarov  <vmakarov@redhat.com>
1877
1878         Revert:
1879         2008-09-25  Vladimir Makarov  <vmakarov@redhat.com>
1880         * ira-lives.c:...
1881         * doc/rtl.texi:...
1882
1883 2008-09-26  Adam Nemet  <anemet@caviumnetworks.com>
1884
1885         * config/mips/mips.h (ISA_HAS_DMUL3, ISA_HAS_BADDU, ISA_HAS_BBIT,
1886         ISA_HAS_CINS, ISA_HAS_EXTS, ISA_HAS_SEQ_SNE, ISA_HAS_POP): Change
1887         them to yield false with MIPS16.
1888
1889 2008-09-26  Jakub Jelinek  <jakub@redhat.com>
1890
1891         PR middle-end/37275
1892         * dwarf2out.c (tls_mem_loc_descriptor): New function.
1893         (mem_loc_descriptor): Use it for MEM.  For PLUS fail if second
1894         mem_loc_descriptor failed.  Accept UNSPEC.
1895         (loc_descriptor): Use tls_mem_loc_descriptor for MEM.  For PARALLEL
1896         fail if one of the loc_descriptor calls for pieces failed.
1897         (loc_descriptor_from_tree_1): Handle even DECL_EXTERNAL __thread vars,
1898         as long as they bind locally.  For COMPONENT_REF, ARRAY_REF etc. fail
1899         if loc_descriptor_from_tree_1 on offset failed.
1900
1901         PR middle-end/37576
1902         * opts.c (common_handle_option): Don't call print_specific_help with
1903         CL_SAVE as first argument.
1904
1905 2008-09-26  Peter O'Gorman  <pogma@thewrittenword.com>
1906             Steve Ellcey  <sje@cup.hp.com>
1907
1908         * configure: Regenerate for new libtool.
1909         * aclocal.m4: Ditto.
1910
1911 2008-09-26  Pat Haugen  <pthaugen@us.ibm.com>
1912
1913         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Use correct
1914         alias set on MEM when saving stack pointer.
1915         * config/rs6000/rs6000.md (allocate_stack): Likewise
1916
1917 2008-09-26  Dorit Nuzman  <dorit@il.ibm.com>
1918
1919         PR tree-optimization/37574
1920         * tree-vectorizer.c (vect_is_simple_use): Fix indentation.
1921         * tree-vect-transform.c (vect_get_constant_vectors): Use vectype
1922         instead of vector_type for constants. Take computation out of loop.
1923         (vect_get_vec_def_for_operand): Use only vectype for constant case,
1924         and use only vector_type for invariant case.
1925         (get_initial_def_for_reduction): Use vectype instead of vector_type.
1926
1927 2008-09-25  Jakub Jelinek  <jakub@redhat.com>
1928
1929         PR c/37645
1930         * c-common.c (handle_weakref_attribute): Ignore the attribute unless
1931         the decl is a VAR_DECL or FUNCTION_DECL.
1932
1933 2008-09-25  Vladimir Makarov  <vmakarov@redhat.com>
1934
1935         PR middle-end/37535
1936         * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
1937         (mark_ref_live, mark_ref_dead): Use them.
1938         (def_conflicts_with_inputs_p): Remove.
1939         (mark_early_clobbers): New function.
1940         (process_bb_node_lives): Call preprocess_constraints and
1941         mark_early_clobbers.
1942
1943         * doc/rtl.texi (clobber): Change how RA deals with clobbers.
1944
1945 2008-09-25  Vladimir Makarov  <vmakarov@redhat.com>
1946
1947         PR middle-end/37448
1948         * ira-int.h (IRA_ALLOCNO_TEMP): Rename to ALLOCNO_TEMP.
1949         (ira_compress_allocno_live_ranges): New prototype.
1950
1951         * ira-color.c: Rename IRA_ALLOCNO_TEMP to ALLOCNO_TEMP.
1952         (coalesced_allocnos_living_at_program_points): New.
1953         (coalesced_allocnos_live_at_points_p,
1954         set_coalesced_allocnos_live_points): New functions.
1955         (coalesce_spill_slots): Rewrite.
1956         
1957         * ira-lives.c (remove_some_program_points_and_update_live_ranges,
1958         ira_compress_allocno_live_ranges): New functions.
1959
1960         * ira-build.c (ira_flattening): Call
1961         ira_compress_allocno_live_ranges.
1962         (ira_build): Ditto.
1963
1964 2008-09-25  H.J. Lu  <hongjiu.lu@intel.com>
1965
1966         * config/i386/i386.md: Check cmp/branch fuse for cmp peephole
1967         optimization.
1968
1969 2008-09-25  Richard Sandiford  <rdsandiford@googlemail.com>
1970
1971         * combine.c (make_compound_operation): Handle the 'E' format.
1972         (count_rtxs): Likewise.
1973         (update_table_tick): Likewise.
1974         (get_last_value_validate): Likewise.
1975
1976 2008-09-25  Eric Botcazou  <ebotcazou@adacore.com>
1977
1978         * dbxout.c (dbxout_parms): Fetch the inner REG inside a PARALLEL.
1979
1980 2008-09-25 Sergei Dyshel <sergeid@il.ibm.com>
1981
1982         * matrix-reorg.c (transform_allocation_sites): Initializers 
1983         added to avoid the warning.
1984
1985 2008-09-25  Martin Jambor  <mjambor@suse.cz>
1986
1987         * cgraph.c (free_nodes): New variable.
1988         (NEXT_FREE_NODE): New macro.
1989         (cgraph_create_node): Reuse nodes from the free list.  Do not
1990         update uid if doing so.
1991         (cgraph_remove_node): Add the node to the free list.
1992
1993 2008-09-25  Gerald Pfeifer  <gerald@pfeifer.com>
1994
1995         * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
1996
1997 2008-09-24  Richard Henderson  <rth@redhat.com>
1998
1999         * dwarf2.h (DW_OP_GNU_encoded_addr): New.
2000         * unwind-dw2.c (execute_stack_op): Handle it.
2001
2002 2008-09-24  David Edelsohn  <edelsohn@gnu.org>
2003
2004         Revert:
2005         2008-09-24  Michael J. Eager  <eager@eagercon.com>
2006
2007 2008-09-24  Aldy Hernandez  <aldyh@redhat.com>
2008
2009         * c-common.c (fname_decl): New location argument.
2010         * c-common.h (fname_decl): Same.
2011         * c-parser.c (c_lex_one_token): Use {warning,error}_at instead of
2012         {warning,error}.
2013         (c_parser_typeof_specifier): Same.
2014         (c_parser_parms_list_declarator): Same.
2015         (c_parser_asm_string_literal): Same.
2016         (c_parser_compound_statement_nostart): Same.
2017         (c_parser_label): Same.
2018         (c_parser_do_statement): Same.
2019         (c_parser_asm_statement): Same.
2020         (c_parser_unary_expression): Same.
2021         (c_parser_sizeof_expression): Same.
2022         (c_parser_postfix_expression): Same.
2023         (c_parser_pragma): Same.
2024         (c_parser_omp_clause_collapse): Same.
2025         (c_parser_omp_clause_num_threads): Same.
2026         (c_parser_omp_clause_schedule): Same.
2027         (c_parser_omp_all_clauses): Same.
2028         (c_parser_omp_sections_scope): Same.
2029         (c_parser_omp_for_loop): Same.  Pass condition's location to
2030         c_objc_common_truthvalue_conversion.
2031         (c_parser_enum_specifier): Remove comment.
2032
2033 2008-09-24  Michael J. Eager  <eager@eagercon.com>
2034
2035         * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
2036         are easy.
2037         * config/rs6000/rs6000.c (rs6000_override_options): Move
2038         rs6000_init_hard_regno_mode_ok after all options changed.
2039         Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
2040         (rs6000_handle_option): Process -msingle-float, -mdouble-float,
2041         -msimple-fpu flags.  Add warning messages if single FP not configured.
2042         (rs6000_file_start): Output gnu_attribute for single-float.
2043         (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
2044         (rs6000_legitimize_address): Likewise.
2045         (rs6000_legitimize_reload_address): Likewise.
2046         (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
2047         TARGET_SINGLE_FLOAT.
2048         (function_arg_advance): Likewise.
2049         (function_arg): Likewise.
2050         (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
2051         (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
2052         TARGET_SINGLE_FLOAT.
2053         (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
2054         (rs6000_emit_prologue): Likewise.
2055         (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
2056         TARGET_SINGLE_FLOAT.
2057         (rs6000_libcall_value): Likewise.
2058         * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
2059         (TARGET_DOUBLE_FLOAT): New default to 1
2060         (TARGET_SIMPLE_FPU): New default to 0
2061         (TARGET_SINGLE_FPU): New default to 0
2062         (TARGET_SINGLE_FLOAT_MODE): New.
2063         (TARGET_DOUBLE_FLOAT_MODE): New.
2064         * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
2065         TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
2066         UNITS_PER_FP_WORD
2067         * config/rs6000/rs6000.md (define_mode_iterator): Condition on
2068         TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
2069         (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
2070         copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
2071         nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
2072         muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
2073         movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
2074         floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
2075         *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
2076         fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
2077         rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
2078         floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
2079         movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
2080         extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
2081         abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
2082         cmptf_internal1, *cmptf_internal2): Condition on
2083         TARGET_DOUBLE_FLOAT.
2084         (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
2085         mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
2086         *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
2087         btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
2088         floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
2089         *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
2090         TARGET_SINGLE_FLOAT.
2091         (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
2092         * config/rs6000/rs6000.opt (-msingle-float): New.
2093         (-mdouble-float): New.
2094         (-msimple-fpu): New.
2095         * doc/invoke.texi (RS/6000 and PowerPC Options): Add
2096         -msingle-float, -mdouble-float, -msimple-fpu options.
2097         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
2098         _SOFT_DOUBLE for -msingle-float.
2099         * config.gcc: New config for target=powerpc-xilinx-eabi.
2100
2101 2008-09-23  Eric Botcazou  <ebotcazou@adacore.com>
2102
2103         * config/sparc/constraints.md: New file.
2104         * config/sparc/sparc.md: Include it.
2105         * config/sparc/sparc-protos.h (memory_ok_for_ldd): Declare.
2106         (sparc_extra_constraint_check): Delete.
2107         * config/sparc/sparc.c (register_ok_for_ldd): Minor tweaks.
2108         (memory_ok_for_ldd): New predicate.
2109         (sparc_extra_constraint_check): Delete.
2110         * config/sparc/sparc.h (REG_CLASS_FROM_LETTER): Likewise.
2111         (CONST_OK_FOR_LETTER_P): Likewise.
2112         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
2113         (EXTRA_CONSTRAINT): Likewise.
2114
2115 2008-08-23  Steve Ellcey  <sje@cup.hp.com>
2116
2117         * regrename.c (do_replace): Copy REG_POINTER value to new reg.
2118
2119 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
2120
2121         * alias.c (find_base_value): Use FIND_BASE_TERM.
2122         * doc/tm.texi (FIND_BASE_TERM): Update documentation.
2123
2124 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
2125
2126         * config/i386/i386.c: Include cselib.h.
2127         (ix86_pic_register_p): New function.
2128         (ix86_delegitimize_address): Use it to check for the PIC register.
2129
2130 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
2131
2132         * doc/tm.texi (FIND_BASE_TERM): Expand documentation.
2133         * config/i386/i386.c (ix86_find_base_term): Don't check for
2134         SYMBOL_REF and LABEL_REF.
2135
2136 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
2137
2138         * config/i386/i386.c (ix86_delegitimize_address): Wrap the
2139         constant PLUS in a CONST.
2140
2141 2008-09-23  Kai Tietz  <kai.tietz@onevision.com>
2142
2143         * config/i386/i386.c (ix86_function_ok_for_sibcall): Correct
2144         check for sibcall support for w64.
2145
2146 2008-09-23  Eric Botcazou  <ebotcazou@adacore.com>
2147
2148         * c-ppoutput.c (cb_used_define): Do nothing for a builtin node.
2149
2150 2008-09-23  Aldy Hernandez  <aldyh@redhat.com>
2151
2152         * c-tree.h: Add argument to c_objc_common_truthvalue_conversion,
2153         parser_build_binary_op.
2154         * c-decl.c (build_enumerator): Pass location to build_binary_op.
2155         * c-typeck.c (build_array_ref): Same.
2156         (parser_build_unary_op): New location argument.
2157         (pointer_diff): Pass location to build_binary_op,
2158         c_objc_common_truthvalue_conversion.
2159         (build_modify_expr): Same.
2160         (build_unary_op): New location argument.
2161         (build_binary_op): New location argument.
2162         (c_objc_common_truthvalue_conversion): Pass location to
2163         c_*common_truthvalue_conversion.
2164         * c-convert.c (convert): Same.
2165         * c-common.c (binary_op_error): New location argument.
2166         (pointer_int_sum): Pass location to build_binary_op.
2167         (c_common_truthvalue_conversion): New location argument.
2168         (warn_for_sign_compare): Same.
2169         * c-common.h: Add location argument to c_common_truthvalue_conversion,
2170         binary_op_error, build_binary_op, warn_for_sign_compare.
2171         * c-parser.c (c_parser_condition): Pass location to
2172         c_*common_truthvalue_conversion.
2173         (c_parser_conditional_expression): Save condition's location and pass
2174         it on down.
2175         (c_parser_binary_expression): Same, but for the binary operator's
2176         location.
2177         (c_parser_omp_for_loop): Pass location to
2178         c_objc_common_truthvalue_conversion.
2179
2180 2008-09-23  Martin Jambor  <mjambor@suse.cz>
2181
2182         * cgraph.c (cgraph_free_edge): Use sizeof(*e).
2183         (cgraph_node_remove_callees): New temporary f.  Hold the next item
2184         in f when looping.
2185         (cgraph_node_remove_callers): Likewise.
2186
2187         * ipa-prop.c (ipa_edge_removal_hook): Use ATTRIBUTE_UNUSED.
2188         (ipa_node_removal_hook): Likewise.
2189
2190         * doc/gimple.texi (gimple_copy_call_skip_args): Changed to
2191         gimple_call_copy_skip_args and moved to the gimple_call section.
2192         * gimple.c (gimple_copy_call_skip_args): Renamed to
2193         gimple_call_copy_skip_args.  Changed al users.
2194
2195 2008-09-22  Vladimir Makarov  <vmakarov@redhat.com>
2196
2197         * ira-color.c (start_allocno_priorities): Rename to
2198         setup_allocno_priorities.  Use costs and
2199         ALLOCNO_EXCESS_PRESSURE_POINTS_NUM instead of frequencies and
2200         range lengths.  Get rid off doubles.
2201         (ira_fast_allocations): Call start_allocno_priorities.
2202         
2203 2008-09-22  David Daney  <ddaney@avtrex.com>
2204
2205         PR target/37593
2206         * config/mips/mips.h (FUNCTION_PROFILER): Call _mcount via a
2207         register if TARGET_LONG_CALLS.
2208
2209 2008-09-22  Richard Guenther  <rguenther@suse.de>
2210
2211         PR tree-optimization/37145
2212         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Re-enable
2213         value-numbering union accesses with their offset and size only.
2214         (visit_reference_op_load): Fix simplification of inserted conversions.
2215         * tree-ssa-pre.c (find_or_generate_expression): Do not
2216         recursively generate expressions if running FRE.
2217
2218 2008-09-22  Adam Nemet  <anemet@caviumnetworks.com>
2219
2220         * config/mips/mips.h (ISA_HAS_BADDU): New macro.
2221         * config/mips/mips.md (*baddu_si_eb, *baddu_si_el, *baddu_di<mode>):
2222         New patterns.
2223
2224 2008-09-22  Richard Guenther  <rguenther@suse.de>
2225
2226         PR tree-optimization/37145
2227         * tree-ssa-pre.c (fully_constant_expression): Simplify builtin calls.
2228         (phi_translate_1): Constant fold references.
2229
2230 2008-09-22  Ira Rosen  <irar@il.ibm.com>
2231
2232         PR tree-optimization/37482
2233         * tree-vectorizer.h (struct _slp_instance): Add new field.
2234         (SLP_INSTANCE_FIRST_LOAD_STMT): New.
2235         (get_earlier_stmt): New function.
2236         * tree-vect-analyze.c (vect_find_first_load_in_slp_instance): New
2237         function.
2238         (vect_analyze_slp_instance): Set SLP_INSTANCE_FIRST_LOAD_STMT.
2239         * tree-vect-transform.c (vect_finish_stmt_generation): Remove the
2240         asserts that GSI points to the scalar statement being vectorized.
2241         Set new statement location according to GSI.
2242         (vect_schedule_slp_instance): Use GSI of
2243         SLP_INSTANCE_FIRST_LOAD_STMT when vectorizing loads.
2244
2245 2008-09-21  Jan Hubicka  <jh@suse.cz>
2246
2247         * ipa-cp.c (ipcp_estimate_growth): Check recursive calls.
2248         (ipcp_insert_stage): Update dead_nodes bitmap.
2249
2250 2008-09-22  Danny Smith  <dannysmith@users.sourceforge.net>
2251
2252         PR target/37528 
2253         * config/i386/t-cygming (SHLIB_LC): Remove.
2254         (SHLIB_LINK): Don't add static objects to SHLIB_IMPLIB
2255         * config/i386/t-cygwin (SHLIB_LC): Specify all required libraries.
2256
2257 2008-09-22  Hans-Peter Nilsson  <hp@axis.com>
2258
2259         PR middle-end/37170
2260         PR middle-end/37280
2261         * final.c (mark_symbol_ref_as_used): New helper function.
2262         (output_operand): Instead of just looking inside MEMs for
2263         SYMBOL_REFs, use new helper function and for_each_rtx.
2264         * varasm.c (assemble_external): Move #ifndef ASM_OUTPUT_EXTERNAL
2265         to after weak-handling.  Don't mark decls with TREE_STATIC as weak.
2266         Make head comment more general.
2267         * config/darwin.c (machopic_output_indirection): Handle weak
2268         references here, like in assemble_external.
2269
2270 2008-09-21  Eric Botcazou  <ebotcazou@adacore.com>
2271
2272         * config/sparc/sparc-protos.h (gen_compare_operator): Declare.
2273         (sparc_emit_float_lib_cmp): Change return type.
2274         * config/sparc/sparc.c (gen_compare_reg): Add comment about TFmode.
2275         (gen_compare_operator): New function.
2276         (sparc_emit_float_lib_cmp): Return the new operator to be used in
2277         the comparison sequence.  Minor tweaks.
2278         * config/sparc/sparc.md (seq, sne, sgt, slt, sge, sle): Assert
2279         that the final operator and the result of sparc_emit_float_lib_cmp
2280         match for software TFmode; use emit_insn in lieu of emit_jump_insn.
2281         (beq, bne, bgt, blt, bge, ble, bunordered, bordered, bungt, bunlt,
2282         buneq, bunge, bunle, bltgt): Assert that the final operator and the
2283         result of sparc_emit_float_lib_cmp match for software TFmode.
2284         (movqicc, movhicc, movsicc, movdicc): Merge into...
2285         (mov<I:mode>cc): ...this.
2286         (movsfcc, movdfcc, movtfcc): Merge into...
2287         (mov<F:mode>cc): ...this.
2288         (movqi_cc_sp64, movhi_cc_sp64, movsi_cc_sp64, movdi_cc_sp64): Merge
2289         into...
2290         (mov<I:mode>_cc_v9): ...this.
2291         (movdi_cc_sp64_trunc): Delete.
2292         (movqi_cc_reg_sp64, movhi_cc_reg_sp64, movsi_cc_reg_sp64,
2293         movdi_cc_reg_sp64): Merge into...
2294         (mov<I:mode>_cc_reg_sp64): ...this.
2295         (movsf_cc_sp64): Rename into...
2296         (movsf_cc_v9): ...this.
2297         (movdf_cc_sp64): Rename into...
2298         (movdf_cc_v9): ...this.
2299         (movtf_cc_hq_sp64): Rename into...
2300         (movtf_cc_hq_v9): ...this.
2301         (movtf_cc_sp64): Rename into...
2302         (movtf_cc_v9): ...this.  Adjust for renaming of movdf_cc_sp64.
2303
2304 2008-09-21  Diego Novillo  <dnovillo@google.com>
2305
2306         * doc/gccint.texi: Include generic.texi and gimple.texi.
2307         Re-order index.
2308         * doc/tree-ssa.texi (GENERIC): Move to generic.texi.
2309         (GIMPLE): Move to gimple.texi.
2310         (Annotations): Remove references to to stmt_ann_t and
2311         ssa_name_ann_t.
2312         (SSA Operands): Rename from 'Statement Operands'.
2313         * doc/generic.texi: New.
2314         * doc/gimple.texi: New.
2315         * Makefile.in (TEXI_GCCINT_FILES): Add generic.texi and gimple.texi.
2316         * Makefile.in (TEXI_GCCINT_FILES):
2317         * gimple.c (gimple_copy_call_skip_args): Rename from
2318         giple_copy_call_skip_args.  Update all users.
2319         * doc/gimple.texi (gimple_copy_call_skip_args): Document.
2320
2321 2008-09-21  Ira Rosen  <irar@il.ibm.com>
2322
2323         PR tree-optimization/37539
2324         * tree-vect-transform.c (vect_transform_strided_load): Save vector
2325         statement in related statement field only for the first load of the
2326         group of loads with the same data reference.
2327
2328 2008-09-20  Adam Nemet  <anemet@caviumnetworks.com>
2329
2330         * config/mips/mips.h (TUNE_OCTEON): New macro.
2331         * config/mips/mips.c (mips_issue_rate): Return 2 for Octeon.
2332         (mips_multipass_dfa_lookahead): Return 2 for Octeon.
2333         * config/mips/octeon.md: New file.
2334         * config/mips/mips.md: Include octeon.md.  Restore
2335         semi-alphabetical order of include files.
2336
2337 2008-09-20  H.J. Lu  <hongjiu.lu@intel.com>
2338
2339         PR target/37571
2340         * config/i386/i386.md (*jcc_fused_1): Removed.
2341         (*jcc_fused_2): Likewise.
2342         (*jcc_fused_3): Likewise.
2343         (*jcc_fused_4): Likewise.
2344
2345 2008-09-20  Richard Sandiford  <rdsandiford@googlemail.com>
2346
2347         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Define.
2348         (IRA_COVER_CLASSES): Refer to TARGET_IRA_COVER_CLASSES.
2349         * target.h (gcc_target): Add ira_cover_classes.
2350         * ira.c: Remove IRA_COVER_CLASSES guards.
2351         (setup_cover_and_important_classes): Use targetm.ira_cover_classes
2352         instead of IRA_COVER_CLASSES.
2353         (setup_cover_and_important_classes): Remove IRA_COVER_CLASSES guard.
2354         (setup_class_translate): Likewise.
2355         (setup_reg_class_intersect_union): Likewise.
2356         (find_reg_class_closure): Replace IRA_COVER_CLASSES guard with a
2357         test of targetm.ira_cover_classes.
2358         * opts.c (decode_options): Use targetm.ira_cover_classes instead
2359         of IRA_COVER_CLASSES.
2360         * target-def.h (TARGET_IRA_COVER_CLASSES): Define.
2361         (TARGET_INITIALIZER): Include it.
2362         * targhooks.h (default_ira_cover_classes): Declare.
2363         * targhooks.c (default_ira_cover_classes): New function.
2364
2365 2008-09-19  Bob Wilson  <bob.wilson@acm.org>
2366         
2367         * config/xtensa/xtensa.md (reload<mode>_literal): Handle MEM operands.
2368         
2369 2008-09-19  Ian Lance Taylor  <iant@google.com>
2370
2371         * varasm.c (narrowing_initializer_constant_valid_p): Return
2372         NULL_TREE if ENDTYPE is not an integer.
2373
2374 2008-09-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2375
2376         PR tree-opt/30930
2377         * tree-ssa.c (execute_update_addresses_taken): Also update
2378         DECL_GIMPLE_REG_P for vector and complex types.
2379
2380 2008-09-19  Andrew MacLeod  <amacleod@redhat.com>
2381             Jan Hubicka  <jh@suse.cz>
2382
2383         PR middle-end/37567
2384         * tree-ssa-ter.c (free_temp_expr_table): Make sure fields are actually
2385         empty before freeing them.
2386         (find_replaceable_exprs): Move asserts to free_temp_expr_table.
2387
2388 2008-09-18  Bob Wilson  <bob.wilson@acm.org>
2389
2390         * configure.ac: Add HAVE_AS_TLS check for Xtensa.
2391         * config/xtensa/predicates.md (tls_symbol_operand): New.
2392         * config/xtensa/xtensa.c (TARGET_HAVE_TLS): Define.
2393         (TARGET_CANNOT_FORCE_MEM): Define.
2394         (xtensa_tls_symbol_p): New.
2395         (xtensa_emit_move_sequence): Check for and legitimize TLS addresses.
2396         (xtensa_legitimate_address_p): Disallow constant pool TLS references.
2397         (xtensa_tls_module_base): New.
2398         (xtensa_call_tls_desc): New.
2399         (xtensa_legitimize_tls_address): New.
2400         (xtensa_legitimize_address): Handle TLS symbols.
2401         (xtensa_tls_referenced_p_1): New.
2402         (xtensa_tls_referenced_p): New.
2403         (xtensa_output_addr_const_extra): Handle UNSPEC_TPOFF and
2404         UNSPEC_DTPOFF.
2405         (XTENSA_BUILTIN_THREAD_POINTER): New.
2406         (XTENSA_BUILTIN_SET_THREAD_POINTER): New.
2407         (xtensa_init_builtins): Set NOTHROW and READONLY for umulsidi3
2408         builtin.  Add declarations for __builtin_thread_pointer and
2409         __builtin_set_thread_pointer.
2410         (xtensa_fold_builtin): Recognize new builtins.
2411         (xtensa_expand_builtin): Expand new builtins.
2412         * config/xtensa/xtensa.h (XCHAL_HAVE_THREADPTR): Define default value.
2413         (TARGET_THREADPTR): Define.
2414         (HAVE_AS_TLS): Define default value.
2415         (LEGITIMATE_CONSTANT_P): Disallow TLS references.
2416         * config/xtensa/xtensa.md (UNSPEC_TPOFF, UNSPEC_DTPOFF): New.
2417         (UNSPEC_TLS_FUNC, UNSPEC_TLS_ARG, UNSPEC_TLS_CALL, UNSPEC_TP): New.
2418         (UNSPECV_SET_TP): New.
2419         (sym_TPOFF, sym_DTPOFF): New.
2420         (load_tp, set_tp, tls_func, tls_arg, tls_call): New.
2421         * config/xtensa/xtensa-protos.h (xtensa_tls_referenced_p): Declare.
2422         * configure: Regenerated.
2423         
2424 2008-09-18  H.J. Lu  <hongjiu.lu@intel.com>
2425
2426         PR target/37394
2427         * config/ia64/ia64.c (ia64_optimization_options): Move
2428         checking and setting flag_schedule_insns_after_reload and
2429         ia64_flag_schedule_insns2 back to ...
2430         (ia64_override_options): Here.
2431
2432 2008-09-18  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2433
2434         PR rtl-opt/37451
2435         * loop-doloop.c (doloop_modify): New argument zero_extend_p and
2436         zero extend count after the correction to it is done.
2437         (doloop_optimize): Update call to doloop_modify, don't zero extend
2438         count before call.
2439
2440 2008-09-18  Martin Jambor  <mjambor@suse.cz>
2441
2442         * ipa-cp.c (ipcp_estimate_growth): Return 0 instead of false.
2443
2444         * ipa-prop.c: Correct comments.
2445         * ipa-prop.h: Likewise.
2446
2447 2008-09-18  Jan Hubicka  <jh@suse.cz>
2448
2449         PR middle-end/37448
2450         * ipa-reference.c (ipa_reference_local_vars_info_d,
2451         ipa_reference_global_vars_info_d,
2452         ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
2453         ipa_reference_vars_info_t): Move here from ipa-reference.h
2454         (node_duplication_hook_holder, node_removal_hook_holder): New.
2455         (get_reference_vars_info_from_cgraph): Rename to ...
2456         (get_reference_vars_info): ... this one, use cgraph uids.
2457         (get_local_reference_vars_info, get_global_reference_vars_info):
2458         Use cgraph instead of decl.
2459         (ipa_reference_get_read_local, ipa_reference_get_written_local):
2460         Remove.
2461         (ipa_reference_get_read_global, ipa_reference_get_not_read_global
2462         ipa_reference_get_written_global,
2463         ipa_reference_get_not_written_global): Use cgraph argument.
2464         (check_call): Simplify avail check.
2465         (scan_stmt_for_static_refs): Update.
2466         (propagate_bits): Update.
2467         (merge_callee_local_info): Remove.
2468         (init_function_info): Use cgraph nodes.
2469         (clean_function_local_data): Break out from ...
2470         (clean_function): ... here.
2471         (copy_local_bitmap, copy_global_bitmap): New functions.
2472         (duplicate_node_data, remove_node_data): New functions.
2473         (generate_summary): Register hooks; use visibility instead of
2474         master clones.
2475         (propafate): Use cgraph nodes; copy bitmap to each node in cycle.
2476         * ipa-reference.h (ipa_reference_local_vars_info_d,
2477         ipa_reference_global_vars_info_d,
2478         ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
2479         ipa_reference_vars_info_t): Move to ipa-reference.c
2480         (ipa_reference_get_read_local, ipa_reference_get_written_local):
2481         Remove.
2482         (ipa_reference_get_read_global, ipa_reference_get_written_global,
2483         ipa_reference_get_not_read_global,
2484         ipa_reference_get_not_written_global): Update prototype.
2485         * ipa-pure-const.c (funct_state_vec): Turn into VECtor.
2486         (init_state): Remove.
2487         (node_duplication_hook_holder, node_removal_hook_holder): New.
2488         (get_function_state, set_function_state): Use VECtor.
2489         (analyze_function): Check body availability.
2490         (add_new_function): Likewise.
2491         (duplicate_node_data, remove_node_data): New.
2492         (generate_summary): Register hooks; do not care about clones.
2493         (propafate): Do not care about clones; recursive functions are
2494         not looping.
2495         * ipa-utils.c (searchc, ipa_utils_reduced_inorder): Do not skip clones.
2496         * ipa-prop.c (edge_removal_hook_holder, node_removal_hook_holder,
2497         * edge_duplication_hook_holder, node_duplication_hook_holder): Make
2498         static.
2499         * tree-flow.h (function_ann_d): Remove reference_vars_info.
2500         * tree-ssa-opreands.c (add_call_clobber_ops, add_call_read_ops):
2501         Update call of ipa-reference accesors.
2502
2503 2008-09-18  Simon Baldwin  <simonb@google.com>
2504
2505         * c-opts.c (c_common_handle_option): Add handling for
2506         -Wbuiltin-macro-redefined command line option.
2507         * c.opt: Added builtin-macro-redefined option.
2508         * doc/invoke.texi (Warning Options): Add -Wbuiltin-macro-redefined
2509         documentation.
2510
2511 2008-09-18  Richard Guenther  <rguenther@suse.de>
2512
2513         PR tree-optimization/37258
2514         * tree-ssa-sccvn.c (vn_phi_compute_hash): Include the precision
2515         and signedness for integral types.
2516         (vn_phi_eq): Require compatible types.
2517
2518 2008-09-18  Jakub Jelinek  <jakub@redhat.com>
2519
2520         PR debug/34037
2521         * gimplify.c (gimplify_type_sizes): When not optimizing, ensure
2522         TYPE_MIN_VALUE and TYPE_MAX_VALUE is not is not DECL_IGNORED_P
2523         VAR_DECL.
2524         * cfgexpand.c (expand_used_vars): Keep DECL_ARTIFICIAL
2525         !DECL_IGNORED_P vars in local_decls list for instantiate_decls,
2526         ggc_free other TREE_LIST nodes from that chain.
2527         * function.c (instantiate_decls): Instantiate also DECL_RTL
2528         of vars in cfun->local_decls, free that list afterwards.
2529
2530 2008-09-18  Eric Botcazou  <ebotcazou@adacore.com>
2531
2532         * config/sparc/sol2.h (WIDEST_HARDWARE_FP_SIZE): Move to...
2533         * config/sparc/sparc.h (WIDEST_HARDWARE_FP_SIZE): ...here.
2534
2535 2008-09-18  Andrew MacLeod  <amacleod@redhat.com>
2536
2537         * tree-outof-ssa.c (eliminate_useless_phis): Fix formatting.
2538         * tree-flow-.h (struct immediate_use_iterator_d): Fix comment.
2539
2540 2008-09-18  Andrew MacLeod  <amacleod@redhat.com>
2541
2542         PR tree-optimization/37102
2543         * tree-outof-ssa.c (remove_gimple_phi_args): Remove all the PHI args
2544         from a node. Check to see if another PHI is dead.
2545         (eliminate_useless_phis): Rename from eliminate_virtual_phis and 
2546         remove real PHIs which have no uses.
2547         (rewrite_out_of_ssa): Call eliminate_useless_phis.
2548
2549 2008-09-18  Richard Guenther  <rguenther@suse.de>
2550
2551         PR middle-end/37284
2552         * tree-cfg.c (remove_useless_stmts_1): Remove
2553         GIMPLE_CHANGE_DYNAMIC_TYPE if not optimizing.
2554
2555 2008-09-18  Nick Clifton  <nickc@redhat.com>
2556
2557         * config/frv/frv.h (IRA_COVER_CLASSES): Define.
2558         (SECONDARY_INPUT_RELOAD_CLASS): Omit unused argument in call
2559         to frv_secondary_reload_class.
2560         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
2561         * config/frv/frv.c (TARGET_SECONDARY_RELOAD): Define.
2562         (frv_secondary_reload_class): Omit unused parameter.
2563         (frv_secondary_reload): New function.  Handle the case when
2564         secondary_reload_class() is called before the reload_(in|out)
2565         _optabs have been initialised.
2566         * config/frv/frv-protos.h (frv_secondary_reload_class): Omit
2567         unused parameter.
2568         * config/frv/frv.md: Define an exclusion set between fr550_m0
2569         and fr550_f0.
2570
2571 2008-09-18  Richard Guenther  <rguenther@suse.de>
2572
2573         PR tree-optimization/37456
2574         * tree-ssa-reassoc.c (build_and_add_sum): If the stmt we
2575         want to insert after ends a BB insert on the single fallthru
2576         outgoing edge.
2577
2578 2008-09-18  Andreas Krebbel  <krebbel1@de.ibm.com>
2579
2580         * doc/invoke.texi: Document -mhard-dfp, -mno-hard-dfp.
2581         Mention -march=z9-109, z9-ec and z10.
2582
2583 2008-09-18  Uros Bizjak  <ubizjak@gmail.com>
2584
2585         PR rtl-optimization/37544
2586         * regrename.c (maybe_mode_change): Exit early when copy_mode
2587         is narrower than orig_mode and narrower than new_mode.
2588
2589 2008-09-18  Alexander Monakov  <amonakov@ispras.ru>
2590
2591         PR middle-end/37499
2592         * sched-int.h (struct _haifa_insn_data): Remove unused field ref_count.
2593
2594         * sched-rgn.c (ref_counts): Remove.
2595         (insn_referenced): New static variable.
2596         (INSN_REF_COUNT): Remove.
2597         (sched_run_compute_dependencies): Use insn_referenced instead of
2598         INSN_REF_COUNT.
2599         (add_branch_dependences): Likewise.  Delete dead assignment.
2600
2601 2008-09-17  Adam Nemet  <anemet@caviumnetworks.com>
2602
2603         * haifa-sched.c (dep_cost_1): Recognize the producer even if the
2604         consumer is an asm.  Add comment why this is important.
2605         (choose_ready): Add comment to the "INSN_CODE (insn) >= 0 ||
2606         recog_memoized (insn) < 0" assert.  Put ENABLE_CHECKING around it.
2607
2608 2008-09-17  Joseph Myers  <joseph@codesourcery.com>
2609
2610         * expr.c (emit_group_store): Do not shift before moving via a
2611         stack slot.
2612
2613 2008-09-17  Eric Botcazou  <ebotcazou@adacore.com>
2614
2615         * varasm.c (initializer_constant_valid_p): Forbid view-conversions
2616         from aggregate to non-aggregate type if the bit pattern is not fully
2617         preserved afterwards.
2618
2619 2008-09-17  Richard Guenther  <rguenther@suse.de>
2620
2621         * tree-cfg.c (verify_types_in_gimple_assign): Rename to ...
2622         (verify_gimple_assign): ... this.  Split into ...
2623         (verify_gimple_assign_unary): ... this,
2624         (verify_gimple_assign_binary): ... that,
2625         (verify_gimple_assign_single): ... and this.
2626         (verify_types_in_gimple_stmt): Call verify_gimple_assign.
2627         Fix GIMPLE_CHANGE_DYNAMIC_TYPE handling.
2628         (verify_types_in_gimple_min_lval): Handle TARGET_MEM_REF.
2629         (verify_types_in_gimple_reference): Be forgiving with
2630         VIEW_CONVERT_EXPRs.
2631         (verify_gimple_phi): Deal with virtual operands.
2632
2633         * tree.def (PREDICT_EXPR): Change to tcc_expression.
2634
2635 2008-09-17  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2636
2637         * tree.c (get_callee_fndecl): Don't call the language hook.
2638         * langhooks.h (lang_hooks): Remove lang_get_callee_fndecl.
2639         * langhooks-def.h (LANG_HOOKS_GET_CALLEE_FNDECL): Kill.
2640         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_GET_CALLEE_FNDECL.
2641
2642 2008-09-17  Jakub Jelinek  <jakub@redhat.com>
2643
2644         * tree.c (protected_set_expr_location): Don't unnecessarily
2645         check for error_mark_node.
2646
2647 2008-09-17  Art Haas  <ahaas@impactweather.com>
2648
2649         * ipa-reference.c (analyze_function): Declare step only if
2650         ENABLE_CHECKING is defined.
2651
2652 2008-09-17  Jan Hubicka  <jh@suse.cz>
2653
2654         PR c++/18071
2655         * tree.h (DECL_INLINE): remove.
2656         (DECL_DECLARED_INLINE_P): Update docs.
2657         (DECL_NO_INLINE_WARNING_P): new.
2658         (tree_function_decl): Replace inline_flag by no_inline_warning_flag.
2659         * tree-inline.c (inlinable_function_p): Set DECL_NO_INLINE_WARNING_P.
2660
2661 2008-09-17  Jakub Jelinek  <jakub@redhat.com>
2662             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2663
2664         PR bootstrap/37441
2665         * dwarf2out.c (dwarf2out_do_cfi_asm) [MIPS_DEBUGGING_INFO]: Return
2666         false.
2667
2668 2008-09-17  Jan Hubicka  <jh@suse.cz>
2669
2670         * ipa-reference.c (ipa_obstack): Remove.
2671         (local_info_obstack, global_info_obstack): New.
2672         (add_static_var): We now handle variables only.
2673         (mark_address_taken, mark_load, mark_store): New functions based on ...
2674         (check_operand): ... remove.
2675         (get_asm_stmt_operands): Rename to ...
2676         (check_asm_memory_clobber): ... this. Look only for memory clobber.
2677         (scan_stmt_for_static_refs): Rewrite.
2678         (scan_op_for_static_refs): Rename to ...
2679         (scan_initializer_for_static_refs): do not look for VAR_DECL
2680         initializers; stop recursion on types and decls.
2681         (ipa_init): Use proper obstacks.
2682         (analyze_variable): Use scan_initializer_for_static_refs.
2683         (init_function_info): Use local obstack.
2684         (analyze_function): Simplify.
2685         (add_new_function): We don't need visited_nodes obstack.
2686         (generate_summary): Use proper obstacks; cleanup after propagation.
2687
2688 2008-09-17  Richard Guenther  <rguenther@suse.de>
2689
2690         PR middle-end/37385
2691         PR tree-optimization/37491
2692         * alias.c (get_alias_set): Use the canonical type.
2693         * tree-vect-transform.c (vectorizable_store): Use the type of
2694         the lhs for the vector type.  Adjust checking.
2695         (vectorizable_load): Adjust checking.
2696
2697 2008-09-16  Jakub Jelinek  <jakub@redhat.com>
2698             Adam Nemet  <anemet@caviumnetworks.com>
2699
2700         PR rtl-optimization/37483
2701         * ifcvt.c (noce_try_sign_mask): Use if_info->test_bb instead of
2702         if_info->insn_b's bb as argument to optimize_bb_for_speed_p.
2703         Rearrange code to better match the original comment.  Check
2704         t_unconditional first.  Improve comment.
2705
2706 2008-09-16  Jakub Jelinek  <jakub@redhat.com>
2707
2708         PR c/37529
2709         * gimplify.c (gimplify_expr) <case GOTO_EXPR>: If gimplification of
2710         GOTO_DESTINATION failed, don't create GIMPLE_GOTO.
2711
2712         PR c++/37530
2713         * gimplify.c (gimplify_expr) <case TRY_CATCH_EXPR>: Don't create
2714         GIMPLE_TRY if cleanup sequence is empty.
2715
2716 2008-09-16  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2717
2718         PR middle-end/37263
2719         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Prefer the
2720         eliminate IV if the cost are the same.
2721
2722 2008-09-16  Richard Guenther  <rguenther@suse.de>
2723
2724         PR middle-end/37380
2725         * tree-sra.c (sra_build_assignment): Do not call the gimplifier
2726         if not necessary.
2727
2728 2008-09-16  Richard Guenther  <rguenther@suse.de>
2729
2730         PR tree-optimization/37508
2731         * tree-vrp.c (simplify_truth_ops_using_ranges): Also allow -1.
2732
2733 2008-09-15  Kaz Kojima  <kkojima@gcc.gnu.org>
2734
2735         * config/sh/sh.md (movsf_ie): Fix length for TARGET_SH2A.
2736
2737 2008-09-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2738
2739         * config/rs6000/rs6000.md (floatsidf2): Rewrite PowerPC64 case to
2740         use gen_floatdidf2 directly.
2741         (floatunssidf2): Likewise.
2742         (floatsidf_ppc64_mfpgpr): Remove.
2743         (floatsidf_ppc64): Remove.
2744         (floatunssidf_ppc64): Remove.
2745
2746 2008-09-15  Jakub Jelinek  <jakub@redhat.com>
2747
2748         * ira-color.c (finish_cost_update): Free update_cost_queue_elems
2749         rather than update_cost_queue.
2750
2751         * tree-ssa-alias.c (init_alias_info): Call bitmap_obstack_release
2752         in every call starting with the second one, instead of only when
2753         alias_bitmap_obstack.elements != NULL.
2754
2755         * tree-predcom.c (filter_suitable_components): Free all refs in
2756         act->refs vector before calling release_component.
2757         (add_ref_to_chain): Free ref if not adding it to chain->refs.
2758
2759         * tree-data-ref.c (free_subscripts): Free all subscript objects.
2760
2761         * tree-loop-linear.c (linear_transform_loops): Initialize
2762         lambda_obstack only after calling perfect_loop_nest_depth.
2763         Goto free_and_continue instead of just continue for later failures.
2764
2765         PR middle-end/37479
2766         * doc/invoke.texi: Document -fno-dwarf2-cfi-asm.
2767
2768         PR libmudflap/36397
2769         * tree-mudflap.c (mf_xform_derefs_1): Handle VIEW_CONVERT_EXPR.
2770
2771 2008-09-14  Andreas Schwab  <schwab@suse.de>
2772
2773         * tree-call-cdce.c (check_target_format): Accept Motorola formats.
2774
2775 2008-09-14  Jan Hubicka  <jh@suse.cz>
2776
2777         * invoke.texi (-fconserve-stack): Document.
2778         * opts.c (decode_options): Handle conserve_stack.
2779         * common.opt (fconvserve_stack): New.
2780
2781 2008-09-14  David Edelsohn  <edelsohn@gnu.org>
2782
2783         * config.host: Add x-aix to host_xmake_file.
2784         * config/rs6000/t-aix52: Do not override LDFLAGS.
2785         * config/rs6000/x-aix: New file.
2786
2787 2008-09-14  Andy Hutchinson  <hutchinsonandy@aim.com>
2788
2789         PR target/19636
2790         PR target/24894
2791         PR target/31644
2792         PR target/31786
2793         * config/avr/avr.c (legitimate_address_p): Fix problem where subreg
2794         is not recognized as a valid register usage. Allow REG_X to be used
2795         as a base pointer.
2796         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Remove code that
2797         forces a reload when using a base register.
2798
2799 2008-09-14  Danny Smith  <dannysmith@users.sourceforge.net>
2800
2801         * config/i386/cygming-crtend.c (register_frame_ctor): If
2802         DEFAULT_USE_CXA_ATEXIT, register __gcc_deregister_frame
2803         directly with atexit.
2804         (deregister_frame_ctor): Rename to ...
2805         (deregister_frame_dtor): Use to call __gcc_deregister_frame
2806         if !DEFAULT_USE_CXA_ATEXIT.
2807
2808 2008-09-13  Jan Hubicka  <jh@suse.cz>
2809
2810         * cgraph.c: Include value-prof.h
2811         * Makefile.in (cgraph.o): Add value-prof.h dependency.
2812
2813 2008-09-13  Jan Hubicka  <jh@suse.cz>
2814
2815         PR middle-end/32581
2816         * tree-profile.c (add_abnormal_goto_call_edges): New function.
2817         (tree_gen_interval_profiler, tree_gen_pow2_profiler,
2818         tree_gen_one_value_profiler, tree_gen_average_profiler,
2819         tree_gen_ic_func_profiler, tree_gen_ior_profiler): Use it.
2820
2821 2008-09-13  Jan Hubicka  <jh@suse.cz>
2822
2823         * i386.c (ix86_expand_movmem, ix86_expand_movstr): Avoid processing
2824         too many bytes on misalligned blocks.
2825
2826 2008-09-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2827
2828         * doc/cfg.texi: Fix some typos.
2829         * doc/extend.texi: Likewise.
2830         * doc/install.texi: Likewise.
2831         * doc/invoke.texi: Likewise.
2832         * doc/rtl.texi: Likewise.
2833         * doc/tree-ssa.texi: Likewise.
2834
2835 2008-09-13  Richard Guenther  <rguenther@suse.de>
2836
2837         PR middle-end/30141
2838         * tree-nested.c (finalize_nesting_tree_1): Generate valid
2839         gimple stores for memory rhs.
2840
2841 2008-09-13  H.J. Lu  <hongjiu.lu@intel.com>
2842
2843         PR rtl-optimization/37489
2844         * cse.c (fold_rtx): Don't return const_true_rtx for float
2845         compare if FLOAT_STORE_FLAG_VALUE is undefined.
2846
2847 2008-09-13  Jan Hubicka  <jh@suse.cz>
2848
2849         PR tree-optimization/37392
2850         * tree-inline.c (remap_gimple_stmt): Do not remap return value.
2851
2852 2008-09-13  Martin Jambor  <mjambor@suse.cz>
2853             Jan Hubicka  <jh@suse.cz>
2854
2855         * cgraph.c (free_edges): New variable.
2856         (NEXT_FREE_EDGE): New macro.
2857         (cgraph_free_edge): New function.
2858         (cgraph_remove_edge): Call cgraph_remove_edge_1.
2859         (cgraph_node_remove_callees): Likewise.
2860         (cgraph_node_remove_callers): Likewise.
2861         (cgraph_create_edge): Reuse edges from the free list.  Do not
2862         update uid if doing so.
2863         (cgraph_remove_*_hook): Add free call.
2864
2865 2008-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
2866
2867         * ira-color.c (conflict_allocno_vec): Delete.
2868         (update_cost_queue_elem): New structure.
2869         (update_cost_queue): New variable.
2870         (update_cost_queue_tail): Likewise.
2871         (update_cost_queue_elems): Likewise.
2872         (allocno_update_cost_check): Delete.
2873         (initiate_cost_update): Allocate update_cost_queue_elems
2874         instead of allocno_update_cost_check.
2875         (finish_cost_update): Update the free()s accordingly.
2876         (start_update_cost): New function.
2877         (queue_update_cost): Likewise.
2878         (get_next_update_cost): Likewise.
2879         (update_copy_costs_1): Inline into...
2880         (update_copy_costs): ...here.  Use a queue instead of recursive calls.
2881         Use cover_class instead of ALLOCNO_COVER_CLASS (another_allocno),
2882         once we've established they are equal.  Don't allocate update
2883         costs if there is nothing to add to them.
2884         (update_conflict_hard_regno_costs): Remove ALLOCNO and
2885         DIVISOR arguments.  Use a queue instead of recursive calls;
2886         process all the allocnos in the initial queue, rather than
2887         a single allocno.
2888         (assign_hard_reg): Use queue_update_cost instead of
2889         conflict_allocno_vec.  Queue coalesced allocnos instead
2890         of calling update_conflict_hard_regno_costs for each one.
2891         Just call update_conflict_hard_regno_costs once for the
2892         entire queue.
2893         (ira_color): Remove conflict_allocno_vec handling.
2894
2895 2008-09-12  Sebastian Pop  <sebastian.pop@amd.com>
2896
2897         PR tree-optimization/37484
2898         * graphite.c (scop_record_loop): Use snprintf instead of sprintf.
2899         (save_var_name): Same.
2900         (initialize_cloog_names): Same.
2901         (initialize_cloog_names): Same.
2902
2903 2008-09-12  Sebastian Pop  <sebastian.pop@amd.com>
2904
2905         * tree-scalar-evolution.c (set_instantiated_value): Set
2906         instantiated_below.
2907
2908 2008-09-12  Vladimir Makarov  <vmakarov@redhat.com>
2909
2910         PR rtl-opt/37377
2911
2912         * ira-build.c (common_loop_tree_node_dominator): Remove.
2913         (copy_live_ranges_to_removed_store_destinations): New function.
2914         (regno_top_level_allocno_map): Move to top level from ...
2915         (ira_flattening): ... here.  Use
2916         copy_live_ranges_to_removed_store_destinations.
2917
2918         * ira-emit.c (generate_edge_moves): Fix a comment.
2919
2920 2008-09-12  Anatoly Sokolov  <aesok@post.ru>
2921
2922         PR target/37466
2923         * config/avr/avr.md (movsi_lreg_const peephole2): Add match_dup for
2924         scratch register after 'set' pattern.
2925
2926 2008-09-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2927
2928         * emit-rtl.c (set_reg_attrs_from_value): Fix invalid alignment
2929         information passed to mark_reg_pointer.
2930         * explow.c (force_reg): Likewise.
2931
2932 2008-09-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2933
2934         * config/spu/spu.c (spu_override_options): Default to -mno-safe-hints
2935         when building for the celledp architecture.
2936
2937 2008-09-12  Richard Guenther  <rguenther@suse.de>
2938
2939         * tree-vrp.c (simplify_truth_ops_using_ranges): Fix types.
2940
2941 2008-09-12  Eric Botcazou  <ebotcazou@adacore.com>
2942
2943         PR rtl-optimization/37424
2944         * ira-color.c (coalesced_pseudo_reg_slot_compare): Untie by comparing
2945         the regnos instead of the addresses.
2946
2947 2008-09-11  Janis Johnson  <janis187@us.ibm.com>
2948
2949         * ginclude/float.h (DEC_EVAL_METHOD): Correct the macro name.
2950
2951 2008-09-11  Richard Guenther  <rguenther@suse.de>
2952
2953         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Avoid
2954         entering the weaker equivalence recording.
2955
2956         * tree-ssa-phiprop.c (propagate_with_phi): Fix tuplification.
2957
2958 2008-09-11  Jeff Law <law@redhat.com>
2959
2960         * reload1.c (alter_reg): Undo the BYTE_BIG_ENDIAN correction performed
2961         by assign_stack_local on the IRA path for stack slot sharing
2962         as well as the non-IRA path.
2963
2964 2008-09-11  Uros Bizjak  <ubizjak@gmail.com>
2965
2966         * config/i386/i386.h: Fix whitespace issues.
2967
2968 2008-09-11  Martin Jambor  <mjambor@suse.cz>
2969
2970         * ipa-prop.h (struct ipa_param_flags): Removed.
2971         (struct ipa_param_descriptor): New structure.
2972         (struct ipa_node_params): ipcp_lattices, param_decls and
2973         param_flags moved to ipa_param_description.
2974         (ipa_get_ith_param): Renamed to ipa_get_param, changed to access
2975         descriptors.  Renamed all users.
2976         (ipa_is_ith_param_modified): Renamed to ipa_is_param_modified,
2977         changed to access descriptors.  Renamed all users.
2978         (ipa_is_ith_param_called): Renamed to ipa_is_param_called, changed
2979         to access descriptors. Renamed all users.
2980         * ipa-cp.c (ipcp_init_cloned_node): Call
2981         ipa_initialize_node_params instead of ipa_count_formal_params and
2982         ipa_create_param_decls_array.
2983         (ipcp_analyze_node): Likewise.
2984         (ipcp_get_ith_lattice): Renamed to ipcp_get_lattice, changed to access
2985         descriptors.  Renamed all users.
2986         (ipcp_initialize_node_lattices): Remove allocation.
2987         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
2988         ipa_initialize_node_params instead of ipa_count_formal_params and
2989         ipa_create_param_decls_array.
2990         * ipa-prop.c (ipa_create_param_decls_array): Renamed to
2991         ipa_populate_param_decls, made static, added parameter info,
2992         renamed mt to node, removed allocation, changed to use
2993         descriptors.
2994         (ipa_count_formal_params): Made static, added parameter info,
2995         renamed mt to node.
2996         (ipa_initialize_node_params): New function.
2997         (ipa_check_stmt_modifications): Changed to use descriptors.
2998         (ipa_detect_param_modifications): Removed allocation, changed to
2999         use descriptors.
3000         (ipa_note_param_call): Changed to use descriptors.
3001         (ipa_analyze_params_uses): Removed allocation.
3002         (ipa_free_node_params_substructures): Changed to use descriptors.
3003         (ipa_edge_duplication_hook): Use the unused attribute.
3004         (ipa_node_duplication_hook): Use the unused attribute, changed to
3005         use descriptors, changed to duplicate descriptors.
3006
3007         * ipa-inline.c (cgraph_mark_inline_edge): New parameter new_edges,
3008         changed all callers.  Call ipa_propagate_indirect_call_infos if doing
3009         indirect inlining.  Made static.
3010         (cgraph_decide_inlining): Freeing ipa-prop structures after inlining
3011         functions called only once.
3012         (cgraph_decide_recursive_inlining): Don't call
3013         ipa_propagate_indirect_call_infos, pass new_edges to
3014         cgraph_mark_inline_edge instead.
3015         (cgraph_decide_inlining_of_small_functions): Don't call
3016         ipa_propagate_indirect_call_infos, pass new_edges to
3017         cgraph_mark_inline_edge instead.
3018         (cgraph_decide_inlining): Don't call
3019         ipa_propagate_indirect_call_infos.
3020         * ipa-prop.c: Check that vectors are allocated.
3021
3022         * ipa-inline.c (cgraph_mark_inline_edge): Returns boolean, true
3023         iff a new cgraph edges have been created.
3024         (cgraph_decide_inlining): New variable redo_always_inline.
3025         Flattening and always_inlining loop until callgraph stabilizes.
3026         * ipa-prop.c (update_call_notes_after_inlining): Returns boolean,
3027         true iff new cgraph edges have been created.
3028         (propagate_info_to_inlined_callees): Likewise.
3029         (ipa_propagate_indirect_call_infos): Likewise.
3030
3031 2008-09-11  Richard Guenther  <rguenther@suse.de>
3032
3033         * tree-vectorizer.c (slpeel_add_loop_guard): Fix types.
3034         (set_prologue_iterations): Likewise.
3035         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref):
3036         Likewise.
3037         (vect_update_init_of_dr): Likewise.
3038         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Fix
3039         type verification.
3040         * fold-const.c (fold_unary): Do not generate calculations
3041         in sub-types.
3042
3043 2008-09-11  Paolo Bonzini  <bonzini@gnu.org>
3044
3045         * dojump.c (do_jump) [BIT_AND_EXPR]: Move below.  Fall through to
3046         TRUTH_AND_EXPR for boolean (1-bit precision) expressions.
3047         (do_jump) [BIT_IOR_EXPR]: Compile as TRUTH_OR_EXPR.
3048
3049         * tree-flow.h (simplify_stmt_using_ranges): Accept a GSI, return
3050         a bool.
3051         * tree-ssa-propagate.c (substitute_and_fold): Pass a GSI to
3052         VRP's simplify_stmt_using_ranges.  Do simplify_stmt_using_ranges
3053         before finalizing the changes.
3054         * tree-vrp.c (extract_range_from_binary_expr): Add limited support
3055         for BIT_IOR_EXPR.
3056         (simplify_truth_ops_using_ranges): New.
3057         (simplify_div_or_mod_using_ranges, simplify_abs_using_ranges,
3058         simplify_cond_using_ranges, simplify_switch_using_ranges): Return
3059         whether a simplification was made.
3060         (simplify_stmt_using_ranges): Ditto, and accept a GSI.  For GS_ASSIGN,
3061         use a switch statement and also call simplify_truth_ops_using_ranges.
3062
3063 2008-09-11  Jan Hubicka  <jh@suse.cz>
3064
3065         * ggc-common.c (loc_array): Make static.
3066         * dce.c (rest_of_handle_ud_dce): Free worklist.
3067
3068 2008-09-11  Jan Hubicka  <jh@suse.cz>
3069
3070         * cgraph.c (cgraph_release_function_body): Plug memory leak on
3071         ipa_transforms_to_apply and CFG; ggc_free gimple df and struct
3072         function so we are sure we do not dangle it forever.
3073         * function.c (outer_function_chain, find_function_data): Remove.
3074         (function_context_stack): New.
3075         (push_function_context, pop_function_context): Update.
3076         * function.h (struct function): Remove pointer outer.
3077         (outer_function_chain, find_function_data): Remove.
3078         * stmt.c (force_label_rtx): Remove dead call of find_function_data.
3079
3080 2008-09-11  Jan Hubicka  <jh@suse.cz>
3081
3082         PR middle-end/37448
3083         * cgraph.c (cgraph_create_edge): Use !cgraph_edge for sanity check.
3084
3085 2008-09-11  Jan Hubicka  <jh@suse.cz>
3086
3087         * tree-ssa-pre.c (phi_translate_1): Fix memory leak
3088
3089 2008-09-11  Jan Hubicka  <jh@suse.cz>
3090
3091         * tree-ssa.c (redirect_edge_var_map_clear): Fix formatting.
3092         (free_var_map_entry): New function.
3093         (redirect_edge_var_map_destroy): Use it.
3094
3095 2008-09-11  Jan Hubicka  <jh@suse.cz>
3096
3097         PR middle-end/37448
3098         * tree-inline.c (add_lexical_block): Replace with ...
3099         (prepend_lexical_block): ... prepend at begginig.
3100         (remap_blocks): Use it and reverse later.
3101         (expand_call_inline): Use prepend_lexical_block.
3102
3103 2008-09-11  Jan Hubicka  <jh@suse.cz>
3104
3105         * gimplify.c (pop_gimplify_context): Free bind_expr_stack.
3106
3107 2008-09-11  Jan Hubicka  <jh@suse.cz>
3108
3109         * function.c (free_after_compilation): Call insn_locators_free.
3110         * cfglayout.c (insn_locators_free): New function.
3111         * rtl.h (insn_locators_free): Declare.
3112
3113 2008-09-11  Jan Hubicka  <jh@suse.cz>
3114
3115         * ifcvt.c (check_cond_move_block): Make regs argument pointer to
3116         vector pointer.
3117         (cond_move_process_if_block): Update call.
3118
3119 2008-09-11  Jan Hubicka  <jh@suse.cz>
3120
3121         * toplev.c (dump_memory_report): Call dump_vec_loc_statistics.
3122         * vec.c: Include hashtab.h
3123         (vec_descriptor, ptr_hash_entry): New structures.
3124         (vec_desc_hash, vec_ptr_map): New static variables.
3125         (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr, vec_descriptor,
3126         register_overhead, free_overhead, vec_heap_free): New functions.
3127         (vec_gc_o_reserve_1): ggc_free when resizing to 0.
3128         (vec_heap_o_reserve_1): free when resizing to 0; add statistics.
3129         (cmp_statistic, add_statistics, dump_vec_loc_statistics):
3130         New functions.
3131
3132 2008-09-11  Ira Rosen  <irar@il.ibm.com>
3133
3134         PR tree-optimization/37474
3135         * tree-vect-analyze.c (vect_supported_load_permutation_p): Check the
3136         length of load permutation.
3137
3138 2008-09-11  Andreas Schwab  <schwab@suse.de>
3139
3140         * config/m68k/m68k.h (IRA_COVER_CLASSES): Define.
3141
3142 2008-09-11  Jakub Jelinek  <jakub@redhat.com>
3143
3144         PR target/37382
3145         * expmed.c (extract_low_bits): Avoid creating invalid subregs.
3146         * dse.c (find_shift_sequence): Use extract_low_bits instead of
3147         simplify_gen_subreg.
3148
3149 2008-09-11  Ira Rosen  <irar@il.ibm.com>
3150
3151         * tree-vect-transform.c (vectorizable_store): Use the rhs vector type
3152         for alias check.
3153
3154 2008-09-10  Jakub Jelinek  <jakub@redhat.com>
3155
3156         PR middle-end/37338
3157         * gimplify.c (gimplify_body): Call default_rtl_profile.
3158
3159         PR target/36904
3160         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Return NULL
3161         instead of tok->val.node if not expanding to something else.  Handle
3162         intervening CPP_PADDING tokens.
3163         (altivec_categorize_keyword): Remove unneeded comparisons.
3164
3165 2008-09-10  Richard Guenther  <rguenther@suse.de>
3166
3167         * tree-ssa-pre.c (phi_translate_1): Fix memory leak.
3168
3169 2008-09-10  Richard Guenther  <rguenther@suse.de>
3170
3171         PR middle-end/37432
3172         * tree-inline.c (insert_init_stmt): Make sure to not
3173         insert invalid gimple stores.
3174
3175 2008-09-10  Sebastian Pop  <sebastian.pop@amd.com>
3176
3177         PR tree-optimization/37388
3178         * toplev.c (process_options): Fail and warn when graphite
3179         flags are used, but the compiler has not been configured
3180         with graphite libraries.
3181         * graphite.c (graphite_transform_loops): Remove printfs
3182         to dump_file for the case when graphite is not available.
3183
3184 2008-09-10  H.J. Lu  <hongjiu.lu@intel.com>
3185
3186         PR target/37434:
3187         * config/i386/i386.c (ix86_expand_vector_init_interleave): Force
3188         the even element into register.
3189         (ix86_expand_vector_init_general): Don't use
3190         ix86_expand_vector_init_interleave on V16QImode and V8HImode
3191         if we can't move from GPR to SSE register directly.
3192
3193 2008-09-10  Bernd Schmidt  <bernd.schmidt@analog.com>
3194
3195         * config/bfin/bfin.c (workaround_speculation): Correct algorithm to
3196         not lose track of the number of NOPs needed.  Number of NOPs needed
3197         for sync vs. loads workaround was switched; corrected.  Run second
3198         pass for all workarounds.  No NOPs needed after call insns.  Change
3199         second pass to use find_next_insn_start and find_load helpers in order
3200         to properly detect parallel insns.
3201         * config/bfin/bfin.md (cbranch_with_nops): Increase length.
3202
3203 2008-09-10  Jan Hubicka  <jh@suse.cz>
3204
3205         * value-prof.c (gimple_ic): Fix tuplification bug.
3206         * sched-deps.c (sched_insns_conditions_mutex_p): Silence unitialized
3207         var warning.
3208
3209 2008-09-10  Jakub Jelinek  <jakub@redhat.com>
3210
3211         PR tree-optimization/37353
3212         * tree-call-cdce.c (cond_dead_built_in_calls): Remove.
3213         (shrink_wrap_conditional_dead_built_in_calls): Add calls argument, use
3214         calls instead of cond_dead_built_in_calls.
3215         (tree_call_cdce): Add cond_dead_built_in_calls automatic variable,
3216         initalize the vector only before adding first entry.  Use VEC_safe_push
3217         instead of VEC_quick_push.  Pass cond_dead_built_in_calls to
3218         shrink_wrap_conditional_dead_built_in_calls call.
3219
3220 2008-09-10  Ira Rosen  <irar@il.ibm.com>
3221
3222         PR tree-optimization/37385
3223         * tree-vect-transform.c (vect_create_data_ref_ptr): Add a new
3224         argument, and use it as a vector type if not NULL.
3225         (vectorizable_store): Call vect_create_data_ref_ptr with the type of
3226         vectorized rhs.
3227         (vect_setup_realignment): Call vect_create_data_ref_ptr with
3228         additional argument.
3229         (vectorizable_load): Likewise.
3230
3231 2008-09-10  Jakub Jelinek  <jakub@redhat.com>
3232
3233         * config/i386/i386.md (SWI32): New mode iterator.
3234         (jcc_fused_1, jcc_fused_2, jcc_fused_3, jcc_fused_4): Use it instead
3235         of SWI.
3236
3237 2008-09-09  Vladimir Makarov  <vmakarov@redhat.com>
3238
3239         PR rtl-optimization/37435
3240         * caller-save.c (insert_restore, insert_save): Check the mode by
3241         reg_save_code.
3242
3243 2008-09-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3244
3245         PR other/37265
3246         * dwarf2asm.c (dw2_force_const_mem): Use unstripped symbol name for
3247         splay tree lookup.
3248         (dw2_output_indirect_constant_1): Use unstripped name in symbol
3249         reference.
3250
3251 2008-09-09  Sandra Loosemore  <sandra@codesourcery.com>
3252
3253         * doc/invoke.texi (ARM Options): Correct errors in discussion
3254         of -mfloat-abi, -mhard-float, and -msoft-float.
3255
3256 2008-09-09  Jakub Jelinek  <jakub@redhat.com>
3257             Jan Hubicka  <jh@suse.cz>
3258
3259         PR middle-end/37356
3260         * tree-inline.c (copy_bb): Insert stmt into copy_basic_block before
3261         calling gimple_regimplify_operands on it.  Iterate over all newly
3262         added statements, not just the last one.
3263         (insert_init_stmt): Insert stmt into seq first, then call
3264         gimple_regimplify_operands on it.  Don't create new gimplification
3265         context, nor find referenced vars.
3266
3267 2008-09-09  Jakub Jelinek  <jakub@redhat.com>
3268
3269         PR other/37419
3270         * ipa-prop.h (ipa_propagate_indirect_call_infos): Change last argument
3271         to pointer to vector pointer.
3272         * ipa-prop.c (ipa_propagate_indirect_call_infos,
3273         propagate_info_to_inlined_callees): Likewise.
3274         (update_call_notes_after_inlining): Likewise.  Push new indirect edge
3275         to *new_edges instead of new_edges.  Reread IPA_EDGE_REF after
3276         ipa_check_create_edge_args.
3277         * ipa-inline.c (cgraph_decide_recursive_inlining): Change last
3278         argument to pointer to vector pointer.
3279         (cgraph_decide_inlining_of_small_function): Adjust
3280         cgraph_decide_recursive_inlining and ipa_propagate_indirect_call_infos
3281         calls.
3282
3283         PR target/37438
3284         * config/i386/i386.md (zero_extendqihi2_movzbl): Enable when
3285         optimizing for size, not speed.
3286
3287         PR rtl-optimization/37408
3288         * function.c (assign_parm_find_stack_rtl): Set correct MEM_SIZE
3289         if parm is promoted.
3290
3291 2008-09-09  Sebastian Pop  <sebastian.pop@amd.com>
3292
3293         PR tree-optimization/37375
3294         * tree-scalar-evolution.c (scev_info_str): Add field
3295         instantiated_below.
3296         (new_scev_info_str, eq_scev_info, find_var_scev_info,
3297         set_scalar_evolution, get_scalar_evolution, get_instantiated_value,
3298         set_instantiated_value): Pass instantiated_below.
3299         (analyze_scalar_evolution_1, analyze_scalar_evolution): Update calls
3300         to above functions.
3301         (instantiate_scev_1, instantiate_scev): Pass a basic block above which
3302         the definitions are not instantiated.
3303
3304         * tree-scalar-evolution.h (instantiate_scev): Update declaration.
3305         (block_before_loop): New.
3306         * tree-data-ref.c (dr_analyze_indices): Update uses of
3307         instantiate_scev.
3308         * graphite.c (block_before_scop): New.
3309         (loop_affine_expr, stmt_simple_for_scop_p, harmful_stmt_in_bb): Pass a
3310         basic block, not a loop for determining the parameters.
3311         (scopdet_edge_info, build_scops_1): Do not pass outermost loop in the
3312         scop.
3313         (idx_record_params, find_params_in_bb, find_scop_parameters,
3314         build_loop_iteration_domains, add_conditions_to_domain): Update calls
3315         to instantiate_scev.
3316
3317         * Makefile.in (cfgloopmanip.o): Add missing dependency on TREE_FLOW_H.
3318
3319 2008-09-09  Vladimir Makarov  <vmakarov@redhat.com>
3320
3321         PR rtl-opt/37333
3322
3323         * ira-build.c (ira_create_allocno): Setup frequency to 0.
3324
3325         * ira-color.c (update_conflict_hard_regno_costs): Remove assert.
3326         Check zero freq and increase if necessary.
3327
3328 2008-09-09  Vladimir Makarov  <vmakarov@redhat.com>
3329
3330         * ira-conflicts.c (process_regs_for_copy): Check that the hard
3331         regno is in the right range.  Add comments.
3332
3333 2008-09-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3334
3335         * Makefile.in (mips-tfile.o-warn): Don't error out on mips-tfile.c
3336         warnings.
3337         * mips-tfile.c (copy_object): Cast alloca result to int *.
3338         * mips-tdump.c (print_symbol): Cast xmalloc return values to
3339         proper types.
3340         Rename class to sclass.
3341         (read_tfile): Cast read_seek return values to proper types.
3342         Cast xcalloc return value to proper type.
3343
3344 2008-09-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3345
3346         * config/sol2.h (REGISTER_TARGET_PRAGMAS): Move ...
3347         * config/i386/sol2.h (REGISTER_SUBTARGET_PRAGMAS): ... here.
3348         * config/sparc/sol2.h (REGISTER_TARGET_PRAGMAS): ... and here.
3349
3350 2008-09-09  Jan Hubicka  <jh@suse.cz>
3351
3352         * profile.c (is_edge_inconsistent): Add debug output; ignore
3353         negative count on fake edges.
3354         (is_inconsistent): Add debug output.
3355
3356 2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
3357
3358         * haifa-sched.c (advance_one_cycle): Do not print '\n' before printing
3359         dump message.
3360         (choose_ready): When first insn is chosen from the ready list, also
3361         dump it.
3362
3363 2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
3364
3365         PR rtl-optimization/37360
3366         * haifa-sched.c (max_issue): Do not assert that we never issue more
3367         insns than issue_rate.  Add comment.
3368
3369 2008-09-09  Richard Guenther  <rguenther@suse.de>
3370
3371         * tree-cfg.c (verify_types_in_gimple_op): Remove.
3372         (verify_types_in_gimple_call): Rename to ...
3373         (verify_gimple_call): ... this.  Enhance.
3374         (verify_types_in_gimple_cond): Remove.
3375         (verify_gimple_comparison): New function ...
3376         (verify_types_in_gimple_assign): ... split out from here.
3377         (verify_types_in_gimple_return): Rename to ...
3378         (verify_gimple_return): ... this.  Enhance.
3379         (verify_types_in_gimple_switch): Rename to ...
3380         (verify_gimple_switch): ... this.  Enhance.
3381         (verify_gimple_goto): New function.
3382         (verify_types_in_gimple_phi): Rename to ...
3383         (verify_gimple_phi): ... this.  Enhance.
3384         (verify_types_in_gimple_stmt): Adjust calls to helper functions.
3385         Fold in single-statement cases from verify_types_in_gimple_seq_2.
3386         (verify_types_in_gimple_seq_2): Remove cases handled in
3387         verify_types_in_gimple_stmt.
3388
3389 2008-09-09  Bernd Schmidt  <bernd.schmidt@analog.com>
3390
3391         * config/bfin/bfin.c (n_regs_to_save): New static variable.
3392         (push_multiple_operation, pop_multiple_operation): Set it.
3393         (workaround_rts_anomaly): New function.
3394         (workaround_speculation): New function, broken out of bfin_reorg.
3395         (bfin_reorg): Call the new functions.
3396
3397 2008-09-09  Richard Guenther  <rguenther@suse.de>
3398
3399         PR middle-end/37354
3400         PR middle-end/30165
3401         * gimplify.c (gimplify_conversion): Change conversions of
3402         non-register type to VIEW_CONVERT_EXPRs.
3403         (gimplify_addr_expr): If we need to make the operand
3404         addressable make sure to use a properly initialized
3405         temporary for that so it gets a valid gimple store.
3406
3407 2008-09-09  Aldy Hernandez  <aldyh@redhat.com>
3408
3409         * function.h (struct function): Add function_start_locus.
3410         * cfgexpand.c (gimple_expand_cfg): Use it.
3411         * c-parser.c (c_parser_declaration_or_fndef): Set it.
3412
3413 2008-09-09  Richard Guenther  <rguenther@suse.de>
3414
3415         PR tree-optimization/37433
3416         * tree-ssa-ccp.c (ccp_fold): Properly guard folding of
3417         function calls.
3418
3419 2008-09-09  Richard Guenther  <rguenther@suse.de>
3420
3421         PR tree-optimization/37387
3422         * tree-ssa-ifcombine.c (ifcombine_iforif): Convert the name
3423         and bits to a common type.
3424
3425 2008-09-09  Nick Clifton  <nickc@redhat.com>
3426
3427         * config/v850/v850.md (return): Restore frame size restriction.
3428
3429 2008-09-09  Paolo Bonzini  <bonzini@gnu.org>
3430
3431         * c-common.c (c_expand_decl): Remove.
3432         * c-common.h (anon_aggr_type_p): Remove prototype.
3433         (DECL_ANON_UNION_ELEMS): Remove.
3434         * c-objc-common.h (LANG_HOOKS_EXPAND_DECL): Remove.
3435         * c-decl.c (anon_aggr_type_p): Remove.
3436         * langhooks-def.h (LANG_HOOKS_EXPAND_DECL): Remove.
3437         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_EXPAND_DECL.
3438         * langhooks.h (struct lang_hooks): Remove expand_decl.
3439         * langhooks.c (lhd_expand_decl): Remove.
3440         * stmt.c (expand_anon_union_decl): Remove.
3441         * tree.h (expand_anon_union_decl): Remove prototype.
3442
3443 2008-08-09  Andy Hutchinson  <hutchinsonandy@aim.com>
3444
3445         PR target/36609
3446         * config/avr/avr.c (avr_reorg): Create RTL for reversed compare with
3447         zero.
3448         * config/avr/avr.md  (QISI) : Define mode iterator.
3449         (negated_tst<mode>) : Redefine as split using mode macro.
3450         (reversed_tstqi): Define insn as reversed compare with zero.
3451         (reversed_tsthi): Ditto.
3452         (reversed_tstsi): Ditto.
3453
3454 2008-09-08  Jakub Jelinek  <jakub@redhat.com>
3455
3456         PR middle-end/37393
3457         * tree-inline.c (copy_bb): When replacing a gimple_call_va_arg_pack_p
3458         call stmt by new_call, clear gimple_bb on stmt after gsi_replace.
3459
3460         PR middle-end/37414
3461         * predict.c (optimize_function_for_size_p): Don't segfault if
3462         FUN is NULL.
3463         * fold-const.c (LOGICAL_OP_NON_SHORT_CIRCUIT, fold_truthop,
3464         tree_swap_operands_p): Don't test cfun != NULL before calling
3465         optimize_function_for_s*_p.
3466
3467 2008-09-08  Eric Botcazou  <ebotcazou@adacore.com>
3468
3469         * ira-color.c (ira_reuse_stack_slot): Set slot_num on success at the
3470         end of the search.
3471
3472 2008-09-08  M R Swami Reddy <MR.Swami.Reddy@nsc.com>
3473
3474         * crx/crx.h (IRA_COVER_CLASSES): Define.
3475
3476 2008-09-08  Jakub Jelinek  <jakub@redhat.com>
3477
3478         PR middle-end/37337
3479         * tree-ssa-dom.c (optimize_stmt): Call maybe_clean_or_replace_eh_stmt
3480         even when a stmt has been gimple_modified_p, but after fold_stmt is
3481         not any longer.  Remove unneeded may_have_exposed_new_symbols
3482         initializations.
3483
3484 2008-09-08  Richard Guenther  <rguenther@suse.de>
3485
3486         PR tree-optimization/37421
3487         * tree-ssa-sccvn.c (visit_copy): Make sure to fully
3488         valueize the RHS.
3489
3490 2008-09-08  Jakub Jelinek  <jakub@redhat.com>
3491
3492         PR middle-end/37415
3493         * opts.c (common_handle_option): Handle OPT_ftree_store_ccp.
3494
3495 2008-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3496
3497         PR driver/37409
3498         * pa-hpux.h (LINK_SPEC): Strip -fwhole-program.
3499         * pa-hpux10.h (LINK_SPEC): Likewise.
3500         * pa-hpux11.h (LINK_SPEC): Likewise.
3501
3502 2008-09-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3503
3504         * pa32-regs.h (IRA_COVER_CLASSES): Define.
3505         * pa64-regs.h (IRA_COVER_CLASSES): Define.
3506
3507 2008-09-07  Helge Deller  <deller@gmx.de>
3508
3509         * pa/linux-atomic.c: New file.
3510         * pa/t-linux (LIB2FUNCS_STATIC_EXTRA): Define.
3511         * pa/t-linux64 (LIB2FUNCS_STATIC_EXTRA): Define.
3512
3513 2008-09-07  Richard Guenther  <rguenther@suse.de>
3514             Ira Rosen  <irar@il.ibm.com>
3515
3516         PR tree-optimization/36630
3517         * tree-vect-transform.c (vect_update_ivs_after_vectorizer):
3518         Call STRIP_NOPS before calling evolution_part_in_loop_num.
3519
3520 2008-09-07  Dorit Nuzman  <dorit@il.ibm.com>
3521             Ira Rosen  <irar@il.ibm.com>
3522
3523         PR tree-optimization/35642
3524         * config/rs6000/altivec.md (mulv8hi3): Implement.
3525
3526 2008-09-06  Jeff Law <law@redhat.com>
3527
3528         * h8300/h8300.h (IRA_COVER_CLASSES): Define.
3529
3530 2008-09-06  Jan Hubicka  <jh@suse.cz>
3531
3532         PR tree-optimization/14703
3533         * tree-ssa-live.c (remove_unused_scope_block_p): Remove ignored
3534         declarations.
3535         * passes.c (init_optimization_passes): Recompute inline parameters.
3536
3537 2008-09-06  Richard Sandiford  <rdsandiford@googlemail.com>
3538
3539         * config/mips/mips.c (mips_function_ok_for_sibcall): Check for
3540         DECL being null.
3541
3542 2008-09-06  Richard Sandiford  <rdsandiford@goolemail.com>
3543             Peter Fuerst  <post@pfrst.de>
3544
3545         * doc/invoke.texi: Document -mr10k-cache-barrier=.
3546         * doc/extend.texi: Document __builtin_mips_cache.
3547         * config/mips/mips-ftypes.def: Add a (VOID, SI, CVPOINTER) entry.
3548         * config/mips/mips.opt (mr10k-cache-barrier=): New option.
3549         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
3550         __GCC_HAVE_BUILTIN_MIPS_CACHE.
3551         (TARGET_CACHE_BUILTIN, ISA_HAS_CACHE): New macros.
3552         * config/mips/mips.c (mips_r10k_cache_barrier_setting): New enum.
3553         (set_push_mips_isas): New variable.
3554         (mips_r10k_cache_barrier): New variable.
3555         (cache): New availability predicate.
3556         (mips_builtins): Add an entry for __builtin_mips_cache.
3557         (mips_build_cvpointer_type): New function.
3558         (MIPS_ATYPE_CVPOINTER): New macro.
3559         (mips_prepare_builtin_arg): Only use the insn's mode if the rtx's
3560         mode is VOIDmode.
3561         (r10k_simplified_address_p, r10k_simplify_address)
3562         (r10k_uncached_address_p, r10k_safe_address_p)
3563         (r10k_needs_protection_p_1, r10k_needs_protection_p_store)
3564         (r10k_needs_protection_p_call, r10k_needs_protection_p)
3565         (r10k_insert_cache_barriers): New functions.
3566         (mips_reorg_process_insns): Delete cache barriers after a
3567         branch-likely instruction.
3568         (mips_reorg): Call r10k_insert_cache_barriers.
3569         (mips_handle_option): Handle OPT_mr10k_cache_barrier_.
3570         * config/mips/mips.md (UNSPEC_MIPS_CACHE): New constant.
3571         (UNSPEC_R10K_CACHE_BARRIER): Likewise.
3572         (mips_cache, r10k_cache_barrier): New define_insns.
3573
3574 2008-09-06  Richard Sandiford  <rdsandiford@googlemail.com>
3575
3576         * ira-int.h (ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete.
3577         * ira-color.c (setup_allocno_left_conflicts_num): Use
3578         hard_reg_set_equal_p instead of a comparison with
3579         ira_zero_hard_reg_set.
3580         * ira.c (setup_reg_subclasses): Likewise.
3581         (setup_cover_and_important_classes): Likewise.
3582         (setup_class_translate): Likewise.
3583         (setup_reg_class_intersect_union): Likewise.
3584         (ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete.
3585         (ira_init_once): Don't initialize them.
3586
3587 2008-09-05  Vladimir Makarov  <vmakarov@redhat.com>
3588
3589         * doc/tm.texi (IRA_COVER_CLASSES): Fix a typo.
3590
3591 2008-09-05  Vladimir Makarov  <vmakarov@redhat.com>
3592
3593         * ira-color.c (ira_fast_allocation): Permit global allocno allocation.
3594
3595 2008-09-05  Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
3596
3597         Improved branch hints, safe hints, and scheduling.
3598
3599         * haifa-sched.c (sched_emit_insn) : Define.
3600         * sched-int.h (sched_emit_insn) : Add prototype.
3601         * doc/invoke.texi (-mdual-nops, -mhint-max-nops,
3602         -mhint-max-distance -msafe-hints) : Document.
3603         * config/spu/spu.c (spu_flag_var_tracking): New.
3604         (TARGET_SCHED_INIT_GLOBAL, TARGET_SCHED_INIT,
3605         TARGET_SCHED_REORDER, TARGET_SCHED_REORDER2,
3606         TARGET_ASM_FILE_START): Define.
3607         (TARGET_SCHED_ADJUST_PRIORITY): Remove.
3608         (STOP_HINT_P, HINTED_P, SCHED_ON_EVEN_P): Define.
3609         (spu_emit_branch_hint): Add blocks argument.
3610         (insert_branch_hints, insert_nops): Remove.
3611         (pad_bb, insert_hbrp_for_ilb_runout, insert_hbrp, in_spu_reorg,
3612         uses_ls_unit, spu_sched_init_global, spu_sched_init,
3613         spu_sched_reorder, asm_file_start): New functions.
3614         (clock_var, spu_sched_length, pipe0_clock,
3615         pipe1_clock, prev_clock_var, prev_priority,
3616         spu_ls_first, prev_ls_clock): New static variables.
3617         * config/spu/spu.h (TARGET_DEFAULT): Add MASK_SAFE_HINTS.
3618         * config/spu.md (iprefetch): Add operand, make it clobber MEM.
3619         (nopn_nv): Add a non-volatile version of nop.
3620         * config/spu/spu.opt (-mdual-nops, -mhint-max-nops,
3621         -mhint-max-distance, -msafe-hints): New options.
3622
3623 2008-09-05  Janis Johnson  <janis187@us.ibm.com>
3624             Samuel Tardieu  <sam@rfc1149.net>
3625
3626         * opts.c (decode_options): Combine nested if statements.
3627
3628         PR target/37283
3629         * opts.c (decode_options): Handle more relationships among
3630         unit-at-a-time, toplevel-reorder, and section-anchors.
3631
3632 2008-09-05  David Daney  <ddaney@avtrex.com>
3633
3634         * doc/install.texi (--enable-reduced-reflection): Document new option.
3635
3636 2008-09-05  Bob Wilson  <bob.wilson@acm.org>
3637
3638         * config/xtensa/predicates.md (nonimmed_operand, mem_operand): Use
3639         constantpool_mem_p.
3640         (constantpool_operand): New.
3641         (move_operand): Disallow sub-word modes for the constant pool.
3642         * config/xtensa/xtensa.c (TARGET_SECONDARY_RELOAD): Define.
3643         (xtensa_secondary_reload_class): Replace with....
3644         (xtensa_secondary_reload): this function.  Remove SIGN_EXTEND check.
3645         Set icode for sub-word reloads from the constant pool.
3646         * config/xtensa/xtensa.h (SECONDARY_INPUT_RELOAD_CLASS): Delete.
3647         (SECONDARY_OUTPUT_RELOAD_CLASS): Delete.
3648         * config/xtensa/xtensa.md (reload<mode>_literal): New.
3649         * config/xtensa/xtensa-protos.h: Update prototypes.
3650
3651 2008-09-05  Joseph Myers  <joseph@codesourcery.com>
3652
3653         * config/mips/mips.h (enum reg_class): Add FRAME_REGS.
3654         (REG_CLASS_NAMES): Update.
3655         (REG_CLASS_CONTENTS): Update.
3656         * config/mips/mips.c (mips_regno_to_class): Use FRAME_REGS instead
3657         of ALL_REGS for regs 77 and 78.
3658         * function.c (instantiate_virtual_regs_in_insn): Assert that
3659         return value of simplify_gen_subreg is not NULL.
3660
3661 2008-09-05  Paolo Bonzini  <bonzini@gnu.org>
3662
3663         * emit-rtl.c (gen_rtvec): Rewrite not using gen_rtvec_v.
3664         (gen_rtvec_v): Fix coding standards.
3665
3666 2008-09-04  Jan Hubicka  <jh@suse.cz>
3667
3668         * i386.c (decide_alg): Be more conservative about optimizing for size.
3669
3670 2008-09-04  Ian Lance Taylor  <iant@google.com>
3671
3672         * varasm.c (narrowing_initializer_constant_valid_p): New
3673         static function.
3674         (initializer_constant_valid_p): Call it.
3675
3676 2008-09-04  Jeff Law  <law@redhat.com>
3677
3678         * fold-const.c (native_encode_real): Fix computation of WORDS.
3679         (native_interpret_real): Likewise.
3680
3681 2008-09-04  Janis Johnson  <janis187@us.ibm.com>
3682
3683         * config/rs6000/t-rs6000: Remove target gt-rs6000.h.
3684
3685 2008-09-04  Vladimir Makarov  <vmakarov@redhat.com>
3686
3687         * ira-conflicts.c (process_regs_for_copy): Check insn to check
3688         that the cost is already taken into account in ira-costs.c
3689
3690         * ira-int.h (ira_debug_copy, ira_debug_copies): New.
3691
3692         * ira-build.c (print_copy, print_copies, ira_debug_copy,
3693         ira_debug_copies): New.
3694         (ira_bulid): Call print_copies.
3695
3696         * doc/tm.texi (IRA_COVER_CLASSES): Fix the description.
3697
3698 2008-09-04  Samuel Tardieu  <sam@rfc1149.net>
3699
3700         PR target/32783
3701         * config/rs6000/rs6000.c (optimization_options): Remove check of
3702         flag_toplevel_order.
3703
3704 2008-09-04  Adam Nemet  <anemet@caviumnetworks.com>
3705
3706         * config/mips/mips.h (ISA_HAS_SEQ_SNE): New macro.
3707         * config/mips/mips.c (mips_expand_scc): Also expand seq and sne if
3708         second operand is a reg_imm10_operand.
3709         * config/mips/mips.md (*seq_<GPR:mode><GPR2:mode>_seq,
3710         *sne_<GPR:mode><GPR2:mode>_sne): New patterns.
3711         (*seq_<GPR:mode><GPR2:mode>): Rename to
3712         *seq_zero_<GPR:mode><GPR2:mode>.  Don't match if
3713         ISA_HAS_SEQ_SNE.
3714         (*seq_<GPR:mode><GPR2:mode>_mips16): Rename to
3715         *seq_zero_<GPR:mode><GPR2:mode>_mip16.  Don't match if
3716         ISA_HAS_SEQ_SNE.
3717         (*sne_<GPR:mode><GPR2:mode>): Rename to
3718         *sne_zero_<GPR:mode><GPR2:mode>.  Don't match if
3719         ISA_HAS_SEQ_SNE.
3720
3721 2008-09-04  Adam Nemet  <anemet@caviumnetworks.com>
3722
3723         * config/mips/mips.h (ISA_HAS_EXTS): New macro.
3724         * config/mips/mips.md (*ashr_trunc<mode>): Name the pattern
3725         combining an arithmetic right shift by more than 31 and a
3726         trunction.  Don't match for out-of-range shift amounts.  Set
3727         attribute mode to <MODE>.
3728         (*lshr32_trunc<mode>): Name the pattern combining a logical right
3729         shift by 32 and and a truncation.  Set attribute mode to <MODE>.
3730         (*<optab>_trunc<mode>_exts): New pattern for truncated right
3731         shifts by less than 32.
3732         (extv): Change predicate on first operand to accept registers.
3733         Change predicate of the other operands from immediate_operand to
3734         const_int_operand.  Expand exts when source is a register.
3735         (extzv): Change predicate of the constant operands from
3736         immediate_operand to const_int_operand.
3737         (extzv<mode>): Change predicate of the constant operands from
3738         immediate_operand to const_int_operand and no constraint. Also
3739         remove mode.
3740         (*extzv_trunc<mode>_exts): New pattern.
3741
3742 2008-09-04  Adam Nemet  <anemet@caviumnetworks.com>
3743
3744         * config/mips/mips.h (ISA_HAS_CINS): New macro.
3745         * config/mips/mips-protos.h (mask_low_and_shift_p,
3746         mask_low_and_shift_len): Declare.
3747         * config/mips/mips.c (mask_low_and_shift_p,
3748         mask_low_and_shift_len): New functions.
3749         (mips_print_operand): Handle new operand prefix "m".
3750         * config/mips/mips.md (*cins<mode>): New pattern.
3751
3752 2008-09-04  Bernd Schmidt  <bernd.schmidt@analog.com>
3753
3754         * config/bfin/bfin.c (gen_one_bundle): Don't create new nops when
3755         optimizing for size.
3756
3757 2008-09-04  Richard Sandiford  <rdsandiford@googlemail.com>
3758
3759         * df-scan.c (df_get_entry_block_def_set): Add STACK_POINTER_REGNUM
3760         regardless of epilogue_completed.
3761
3762 2008-09-04  Vladimir Makarov  <vmakarov@redhat.com>
3763
3764         PR middle-end/37359
3765         * ira-lives.c (process_bb_node_lives): Check setjmp.
3766
3767 2008-09-04  Richard Sandiford  <rdsandiford@googlemail.com>
3768
3769         PR middle-end/37243
3770         * ira-build.c (form_loop_tree): Reverse BB walk.
3771         (create_bb_allocnos): Likewise.
3772         * ira-lives.c (make_regno_born_and_dead, regs_set): Delete.
3773         (mark_reg_store): Rename to...
3774         (mark_ref_live): ...this and take a df_ref argument instead of
3775         note_stores arguments.  Assert that we have a register.
3776         (mark_reg_clobber): Delete.
3777         (def_conflicts_with_inputs_p): New function.
3778         (mark_reg_conflicts): Delete.
3779         (mark_reg_death): Rename to...
3780         (mark_ref_dead): ...this and take a df_ref argument instead of
3781         a register.  Assert that we have a register.
3782         (process_bb_node_lives): Hoist frequency calculation out of
3783         instruction walk.  Convert from a forwards scan to a backwards scan.
3784         Use DF_REF_USES and DF_REF_DEFS instead of register notes and
3785         note_stores.  Remove EH_RETURN_DATA_REGNO and regs_set handling.
3786         (create_allocno_live_ranges): Don't create regs_set.
3787
3788 2008-09-04  Ian Lance Taylor  <iant@google.com>
3789
3790         * rtl.h (LABEL_REF_NONLOCAL_P): Don't check for REG_LABEL_OPERAND
3791         or REG_LABEL_TARGET.
3792         * calls.c (emit_library_call_value_1): Use MEM_P rather than
3793         comparing MODE with MEM.
3794         * gimple.c (gimple_build_predict): Cast END_PREDICTORS before
3795         comparing with GF_PREDICT_TAKEN.
3796         (gimple_get_lhs): Change code to enum gimple_code.
3797         (gimple_set_lhs): Likewise.
3798         * ifcvt.c (noce_process_if_block): Correct GET_MODE to GET_CODE.
3799         * omp-low.c (find_omp_clause): Change kind parameter to enum
3800         omp_clause_code.
3801         * tree-flow.h (find_omp_clause): Update declaration.
3802         * regrename.c (clear_dead_regs): Change kind parameter to enum
3803         reg_note.
3804         * reload1.c (eliminate_regs_1): Use REG_NOTE_KIND rather than
3805         GET_MODE.
3806         * see.c (see_get_extension_data): Change return type to enum
3807         entry_type.  Change UNKNOWN to NOT_RELEVANT, SIGN_EXTEND to
3808         SIGNED_EXTENDED_DEF, ZERO_EXTEND to ZERO_EXTENDED_DEF.
3809         (see_gen_normalized_extension): Change extension_code parameter to
3810         enum entry_type.
3811         (see_seek_pre_extension_expr): Change extension_code to enum
3812         entry_type.
3813         (see_merge_one_def_extension): Likewise.
3814         (see_handle_relevant_defs): Likewise.
3815         (see_handle_relevant_uses): Likewise.
3816         (see_analyze_one_def): Likewise.
3817         * tree-cfg.c (need_fake_edge_p): Compare gimple code with
3818         GIMPLE_ASM rather than ASM_EXPR.
3819         * tree-ssa-alias.c (is_escape_site): Compare gimple code with
3820         GIMPLE_RETURN rather than RETURN_EXPR.
3821         * tree-ssa-ccp.c (likely_value): Change code to enum gimple_code.
3822         (evaluate_stmt): Likewise.
3823         * tree-vect-analyze.c (vect_analyze_operations): Change relevance
3824         to enum vect_relevant.
3825         (vect_mark_stmts_to_be_vectorized): Change assertion to not
3826         compare gimple codes with tree codes.
3827
3828 2008-09-04  Paul Brook  <paul@codesourcery.com>
3829
3830         * config/arm/arm.c (arm_size_rtx_costs): Call cost function.
3831
3832 2008-09-04  Bernd Schmidt  <bernd.schmidt@analog.com>
3833
3834         * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Restore a null
3835         pointer check lost in the recent no-unit-at-a-time patch.
3836
3837 2008-09-04  Jan Hubicka  <jh@suse.cz>
3838
3839         PR middle-end/37343
3840         * tree-switch-conversion.c (check_final_bb): Accept only IP
3841         invariants.
3842
3843 2008-09-04  Jan Hubicka  <jh@suse.cz>
3844
3845         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
3846         Break out from ...
3847         (vrp_evaluate_conditional_warnv_with_ops): ... this one.  Add
3848         using_ranges argument.
3849         (vrp_evaluate_conditional): Avoid bogus warning for type range.
3850         (vrp_visit_cond_stmt): Update call of
3851         vrp_evaluate_conditional_warnv_with_ops
3852
3853 2008-09-04  Jan Hubicka  <jh@suse.cz>
3854
3855         PR tree-optimization/37345
3856         PR tree-optimization/37358
3857         PR tree-optimization/37357
3858         * tree.c (build_function_type_skip_args): Build distinct type copy;
3859         set TYPE_CONTEXT.
3860         (build_function_decl_skip_args): Set type of new decl not orig decl;
3861         clear DECL_VINDEX for methods turned into functions.
3862
3863 2008-09-04  Nick Clifton  <nickc@redhat.com>
3864
3865         * configure.ac (HAVE_GAS_LCOMM_WITH_ALIGNMENT): New assembler check.
3866         * configure: Regenerate.
3867         * config.in: Regenerate.
3868         * config/i386/bsd.h (ASM_OUTPUT_ALIGNED_LOCAL): Use .lcomm with an
3869         alignment field, if it is supported.
3870
3871 2008-09-04  Kai Tietz  <kai.tietz@onevision.com>
3872
3873         * config/i386/t-mingw32 (SHLIB_LC): Change order of import
3874         libraries.
3875
3876 2008-09-03  David Edelsohn  <edelsohn@gnu.org>
3877
3878         * config/rs6000/rs6000.c (processor_target_table): Do not
3879         enable VMX for POWER6.
3880
3881 2008-09-03  Anton Blanchard  <anton@samba.org>
3882
3883         * config/rs6000/rs6000.c (rs6000_split_lock_test_and_set): Do not
3884         emit memory barrier before operation.
3885
3886 2008-09-03  John David Anglin  <dave.anglin@nrc.cnrc.gc.ca>
3887
3888         PR testsuite/37325
3889         * config/pa/pa64-hpux.h (ASM_OUTPUT_EXTERNAL_REAL): Call
3890         default_elf_asm_output_external.
3891
3892 2008-09-03  Jeff Law  <law@redhat.com>
3893
3894         * h8300.c (expand_a_shift): Avoid invalid RTL sharing.
3895
3896 2008-09-03  Richard Henderson  <rth@redhat.com>
3897
3898         * config/alpha/alpha.c (alpha_split_lock_test_and_set): Move
3899         memory barrier to below the test-and-set.
3900         (alpha_split_lock_test_and_set_12): Likewise.
3901
3902 2008-09-03  Vladimir Makarov  <vmakarov@redhat.com>
3903
3904         PR rtl-opt/37243
3905
3906         * ira-int.h (ira_loop_tree_node): Rename mentioned_allocnos to
3907         all_allocnos.
3908
3909         * ira-color.c (print_loop_title): Use all_allocnos.
3910         (color_pass): Ditto.  Don't add border_allocnos.  Check that
3911         subloop allocno in the correspdoning bitmap all_allocnos.
3912
3913         * ira-emit.c (change_loop): Use all_allocnos.
3914
3915         * ira-build.c (create_loop_tree_nodes, finish_loop_tree_node): Ditto.
3916         (ira_create_allocno): Set up all_allocnos bit for the created allocno.
3917         (create_cap_allocno): Remove setting mentioned_allocnos.
3918         (create_insn_allocnos): Ditto.
3919         (remove_unnecessary_allocnos): Use all_allocnos.
3920         (check_allocno_creation): Check that allocnos are in the
3921         corresponding bitmap all_allocnos.
3922
3923 2008-09-03  Vladimir Makarov  <vmakarov@redhat.com>
3924
3925         PR rtl-opt/37243
3926
3927         * ira-conflicts.c (REG_SUBREG_P, go_through_subreg): New.
3928         (process_regs_for_copy): Process subregs.  Refine check when cost
3929         is taken into account in ira-costs.c.
3930         (process_reg_shuffles): Use REG_SUBREG_P.
3931         (add_insn_allocno_copies): Ditto.  Ignore modes.
3932
3933         * ira-color.c (conflict_allocno_vec): New.
3934         (COST_HOP_DIVISOR): New macro.
3935         (update_copy_costs_1): Use it.
3936         (update_conflict_hard_regno_costs): New function.
3937         (assign_hard_reg): Use it.
3938         (ira_color): Allocate and free conflict_allocno_vec.
3939
3940 2008-09-03  Vladimir Makarov  <vmakarov@redhat.com>
3941
3942         PR rtl-opt/37296
3943
3944         * ira-int.h (ira_sort_insn_chain): Remove.
3945
3946         * ira.c (basic_block_order_nums, chain_insn_order,
3947         chain_freq_compare, chain_bb_compare, ira_sort_insn_chain): Remove.
3948         (ira): Don't call ira_sort_insn_chain.
3949
3950         * reload1.c (reload): Don't call ira_sort_insn_chain.
3951
3952 2008-09-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3953
3954         PR middle-end/37293
3955         * cgraphunit.c (update_call_expr): Remove eh regions from statements
3956         which become non throw.
3957         (cgraph_function_versioning): Also clear DECL_WEAK.  Call
3958         update_call_expr after updating the flags on the decl.
3959
3960 2008-09-03  Jan Hubicka  <jh@suse.cz>
3961
3962         PR tree-optimization/37315
3963         * cgraph.c (cgraph_create_edge): Use gimple_has_body_p.
3964         * cgraphunit.c (verify_cgraph_node): drop gimple_body check.
3965         (cgraph_analyze_functions): Use node->analyzed
3966         (cgraph_mark_functions_to_output): Likewise.
3967         (cgraph_expand_function): All functions can be released after
3968         expanding.
3969         (cgraph_optimize): Use gimple_has_body_p.
3970         * ipa-inline.c (cgraph_clone_inlined_nodes): Use analyzed flag.
3971         (cgraph_decide_inlining_incrementally): Likewise.
3972         (inline_transform): Inline transform.
3973         * tree-inline.c (initialize_cfun): Do now shallow copy structure;
3974         copy fields needed.
3975         (inlinable_function_p): Drop gimple_body check.
3976         (expand_call_inline): Use gimple_has_body_p.
3977         * gimple.c (gimple_has_body_p): New.
3978         * gimple.h (gimple_has_body_p): Add prototype.
3979         * tree-cfg.c (execute_build_cfg): Remove gimple_body.
3980         (dump_function_to_file): Use gimple_has_body_p check.
3981
3982 2008-09-03  Jakub Jelinek  <jakub@redhat.com>
3983
3984         PR c++/37346
3985         * gimple.h (gimple_has_substatements): GIMPLE_OMP_CRITICAL has
3986         substatements.
3987         * tree-inline.c (remap_gimple_stmt): Handle GIMPLE_OMP_CRITICAL.
3988
3989 2008-09-03  Bernd Schmidt  <bernd.schmidt@analog.com>
3990
3991         From Michael Frysinger  <michael.frysinger@analog.com>
3992         * config/bfin/bfin.c (bfin_cpus[]): Add 0.1 for bf522, bf523, bf524,
3993         bf525, bf526, bf527, bf542, bf544, bf547, bf548, and bf549.  Add 0.2
3994         for bf538.
3995
3996 2008-09-03  Hari Sandanagobalane  <hariharan@picochip.com>
3997
3998         Add picoChip port.
3999         * doc/extend.texi: Document picoChip builtin functions.
4000         * doc/invoke.texi: Document picoChip options.
4001         * doc/contrib.texi: Add picoChip contribution.
4002         * doc/md.texi: Document picoChip constraints.
4003         * config.gcc: Add picochip-*-*.
4004         * config/picochip/: Add new port.
4005
4006 2008-09-03  Richard Guenther  <rguenther@suse.de>
4007
4008         PR tree-optimization/37328
4009         * tree-sra.c (sra_build_assignment): Gimplify properly.
4010         (generate_copy_inout): Take the correct stmt as definition,
4011         remove bogus assert.
4012
4013 2008-09-03  Bernd Schmidt  <bernd.schmidt@analog.com>
4014
4015         * config/bfin/bfin.c (bfin_expand_prologue): Honour no_stack_limit
4016         attributes.
4017
4018         From Michael Frysinger  <michael.frysinger@analog.com>
4019         * config/bfin/bfin.c (bfin_handle_option): Remove BF561 warning.
4020
4021 2008-09-03 Danny Smith  <dannysmith@usrs.sourceforge.net>
4022
4023         * gthr-win32.h (CONST_CAST2): Really make sure CONST_CAST2 is defined.
4024         (__gthread_setspecific): Revert 2008-08-31 change to
4025         __GTHREAD_HIDE_W32API case.  Apply it to !__GTHREAD_HIDE_W32API case.
4026
4027 2008-09-02  Aldy Hernandez  <aldyh@redhat.com>
4028
4029         * diagnostic.c (error_at): New.
4030         * toplev.h (error_at): New prototype.
4031         * c-typeck.c (build_array_ref): Call error_at instead of error.
4032         Pass location to pedwarn.
4033
4034 2008-09-02  Adam Nemet  <anemet@caviumnetworks.com>
4035
4036         * sel-sched.c (sel_hard_regno_rename_ok): Mark arguments unused.
4037
4038 2008-09-02  Jakub Jelinek  <jakub@redhat.com>
4039
4040         * dwarf2out.c (tree_add_const_value_attribute): Only handle
4041         VAR_DECL and CONST_DECL.
4042
4043 2008-09-02  H.J. Lu  <hongjiu.lu@intel.com>
4044             Jakub Jelinek  <jakub@redhat.com>
4045
4046         * config/i386/i386.c (X86_64_VARARGS_SIZE): Removed.
4047         (setup_incoming_varargs_64): Assume cum != NULL. Set/check
4048         ix86_varargs_gpr_size and ix86_varargs_fpr_size.  Use
4049         ix86_varargs_gpr_size instead of X86_64_REGPARM_MAX.
4050         Don't set ix86_save_varrargs_registers.
4051         (ix86_setup_incoming_varargs): Assume cum != NULL.
4052         (ix86_va_start): Check ix86_varargs_gpr_size and
4053         ix86_varargs_fpr_size instead of cfun->va_list_gpr_size and
4054         cfun->va_list_fpr_size, respectively.  Subtract 8*X86_64_REGPARM_MAX
4055         from frame pointer if ix86_varargs_gpr_size == 0.
4056         (ix86_compute_frame_layout): Updated.
4057         * config/i386/i386.h (ix86_save_varrargs_registers): Removed.
4058         (ix86_varargs_gpr_size): Define.
4059         (ix86_varargs_fpr_size): Likewise.
4060         (machine_function): Remove save_varrargs_registers.
4061         Add varargs_gpr_size and varargs_fpr_size.
4062
4063 2008-09-02  Jakub Jelinek  <jakub@redhat.com>
4064
4065         * config/alpha/alpha.c (va_list_skip_additions,
4066         alpha_stdarg_optimize_hook, alpha_gimplify_va_arg_1): Tuplify.
4067         (alpha_gimplify_va_arg): Call unshare_expr on second use of
4068         offset_field.
4069
4070         PR tree-optimization/36766
4071         * tree-cfg.c (gimple_purge_all_dead_eh_edges): Do nothing
4072         for already removed basic blocks.
4073
4074         PR target/36332
4075         * real.c (real_maxval): Clear a lower bit to make real_maxval
4076         match get_max_float for IBM long double format.
4077
4078 2008-09-02  Andreas Schwab  <schwab@suse.de>
4079
4080         * configure.ac: Use m4_quote to quote the expansion of m4_do.
4081         * configure: Regenerate.
4082
4083 2008-09-02  Richard Sandiford  <rdsandiford@googlemail.com>
4084
4085         * simplify-rtx.c (simplify_binary_operation_1): Check for CONST,
4086         SYMBOL_REF and LABEL_REF when applying plus_constant, instead of
4087         checking for a non-VOID CONSTANT_P.
4088
4089 2008-09-02  Jan Hubicka  <jh@suse.cz>
4090
4091         * predict.c (pass_strip_predict_hints): Avoid bugs dump file.
4092         * expmed.c (expand_divmod): Fix test of smod_pow2_cheap and
4093         sdiv_pow2_cheap
4094
4095 2008-09-02  H.J. Lu  <hongjiu.lu@intel.com>
4096
4097         * expr.c (emit_group_store): Don't assert stack temp mode size.
4098
4099 2008-09-02  Sebastian Pop  <sebastian.pop@amd.com>
4100             Tobias Grosser  <grosser@fim.uni-passau.de>
4101             Jan Sjodin  <jan.sjodin@amd.com>
4102             Harsha Jagasia  <harsha.jagasia@amd.com>
4103             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
4104             Konrad Trifunovic  <konrad.trifunovic@inria.fr>
4105             Adrien Eliche  <aeliche@isty.uvsq.fr>
4106
4107         Merge from graphite branch.
4108         * graphite.c: New.
4109         * graphite.h: New.
4110         * tree-loop-linear.c (perfect_loop_nest_depth): Export.
4111         * doc/invoke.texi (-floop-block, -floop-interchange,
4112         -floop-strip-mine): Document new flags.
4113         * tree-into-ssa.c (gimple_vec): Moved...
4114         * tree-loop-distribution.c (rdg_component): Moved...
4115         * cfgloopmanip.c: Include tree-flow.h.
4116         (update_dominators_in_loop): New.
4117         (create_empty_if_region_on_edge): New.
4118         (create_empty_loop_on_edge): New.
4119         (loopify): Use update_dominators_in_loop.
4120         * tree-pass.h (pass_graphite_transforms): Declared.
4121         * configure: Regenerate.
4122         * tree-phinodes.c (make_phi_node): Export.
4123         (add_phi_node_to_bb): New, split from create_phi_node.
4124         * tree-chrec.c (for_each_scev_op): New.
4125         * tree-chrec.h (for_each_scev_op): Declared.
4126         * tree-ssa-loop-ivopts.c (get_phi_with_result): New.
4127         (remove_statement): Call get_phi_with_result.
4128         * config.in (HAVE_cloog): Undef.
4129         * gdbinit.in (pgg): New.
4130         * timevar.def (TV_GRAPHITE_TRANSFORMS): New.
4131         * tree-ssa-loop.c (graphite_transforms): New.
4132         (gate_graphite_transforms): New.
4133         (pass_graphite_transforms): New.
4134         * configure.ac (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC,
4135         HAVE_cloog): Defined.
4136         * tree-vectorizer.c (rename_variables_in_bb): Export.
4137         * tree-data-ref.c (dr_may_alias_p): Export.
4138         (stmt_simple_memref_p): New.
4139         (find_data_references_in_stmt): Export.
4140         (find_data_references_in_loop): Export.
4141         (create_rdg_edge_for_ddr): Initialize RDGE_RELATION.
4142         (create_rdg_edges_for_scalar): Initialize RDGE_RELATION.
4143         (create_rdg_vertices): Export.
4144         (build_empty_rdg): New.
4145         (build_rdg): Call build_empty_rdg.  Free dependence_relations.
4146         * tree-data-ref.h (rdg_component): ... here.
4147         (scop_p): New.
4148         (struct data_reference): Add a field scop.
4149         (DR_SCOP): New.
4150         (find_data_references_in_loop): Declared.
4151         (find_data_references_in_stmt): Declared.
4152         (create_rdg_vertices): Declared.
4153         (dr_may_alias_p): Declared.
4154         (stmt_simple_memref_p): Declared.
4155         (struct rdg_edge): Add a field ddr_p relation.
4156         (build_empty_rdg): Declared.
4157         * lambda.h (lambda_matrix): Declare a VEC of.
4158         (find_induction_var_from_exit_cond): Declared.
4159         (lambda_vector_compare): New.
4160         * common.opt (fgraphite, floop-strip-mine,
4161         floop-interchange, floop-block): New flags.
4162         * lambda-code.c (find_induction_var_from_exit_cond): Export.
4163         * cfgloop.c (is_loop_exit): New.
4164         * cfgloop.h (is_loop_exit): Declared.
4165         (create_empty_if_region_on_edge): Declared.
4166         (create_empty_loop_on_edge): Declared.
4167         * tree-flow.h (add_phi_node_to_bb): Declared.
4168         (make_phi_node): Declared.
4169         (rename_variables_in_bb): Declared.
4170         (perfect_loop_nest_depth): Declared.
4171         (graphite_transform_loops): Declared.
4172         * Makefile.in (cfgloopmanip.o): Depend on TREE_FLOW_H.
4173         (graphite.o-warn): Add -Wno-error.
4174         (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC): Declared.
4175         (LIBS): Add GMPLIBS, CLOOGLIBS, PPLLIBS.
4176         (INCLUDES): Add PPLINC, CLOOGINC.
4177         (OBJS-common): Add graphite.o.
4178         (graphite.o): Add rule.
4179         * gimple.h (gimple_vec): ... here.
4180         * tree-cfg.c (print_loops): Start printing at ENTRY_BLOCK_PTR.
4181         * passes.c (init_optimization_passes): Schedule
4182         pass_graphite_transforms.
4183
4184 2008-09-02  Samuel Tardieu  <sam@rfc1149.net>
4185
4186         PR target/37283
4187         * opts.c (decode_options): Move processing of -fno-unit-at-a-time
4188         and -fno-toplevel-reorder after handle_options.
4189
4190 2008-09-02  Paul Brook  <paul@codesourcery.com>
4191
4192         * config/arm/arm.c (arm_tune_cortex_a9): Define.
4193         (arm_override_options): Set arm_tune_cortex_a9.
4194         (arm_rtx_costs_1): Make register shifts more expensive on Cortex-A9.
4195         (arm_issue_rate): Handle cortexa9.
4196         * config/arm/arm.h (arm_tune_cortex_a9): Declare.
4197         * config/arm/arm-cores.def: Add cortex-a9.
4198         * config/arm/arm-tune.md: Regenerate.
4199         * config/arm/arm.md: Include cortex-a9.md.
4200         (generic_sched, generic_vfp): Add cortexa9.
4201         * config/arm/cortex-a9.md: New file.
4202
4203 2008-09-02  Richard Guenther  <rguenther@suse.de>
4204
4205         PR tree-optimization/37327
4206         * tree-vrp.c (register_new_assert_for): Make sure to not have
4207         TREE_OVERFLOW set on the bound.
4208
4209 2008-09-02  Alexander Monakov  <amonakov@ispras.ru>
4210
4211         Fixed typo in date of the 2008-09-01 MOVE_RATIO commit.
4212
4213         * config/ia64/ia64.opt (msched-ar-data-spec): Default to 1.
4214         * config/ia64/ia64.c (ia64_set_sched_flags): Always initialize
4215         spec_info->mask.
4216
4217 2008-09-02  Victor Kaplansky  <victork@il.ibm.com>
4218
4219         * gcc/config/spu/spu.md (divdf3): Removed.
4220
4221 2008-09-02  Jakub Jelinek  <jakub@redhat.com>
4222
4223         PR tree-optimization/37095
4224         * cgraph.c (cgraph_node): When creating new cgraph node after
4225         assembler_name_hash has been populated, record it in the hash
4226         table.
4227
4228 2008-09-01  Paul Brook  <paul@codesourcery.com>
4229
4230         * doc/invoke.texi: Document -mword-relocations.
4231         * config/arm/uclinux-elf.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
4232         * config/arm/symbian.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
4233         * config/arm/vxworks.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
4234         * config/arm/arm.c (arm_split_constant): Use arm_emit_movpair.
4235         (arm_rtx_costs_1, arm_size_rtx_costs): Handle HIGH and LO_SUM.
4236         (arm_emit_movpair): New function.
4237         (arm_print_operand <c>): Handle sybolic addresses.
4238         * config/arm/arm.h (TARGET_USE_MOVT): Define.
4239         (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
4240         * config/arm/arm-protos.h (arm_emit_movpair): Add prototype.
4241         * config/arm/arm.opt: Add -mword-relocations.
4242         * config/arm/arm.md (movsi): Use arm_emit_movpair.
4243         (arm_movt, arm_movw): New.
4244
4245 2008-09-01  Paul Brook  <paul@codesourcery.com>
4246
4247         * config/arm/arm.c (arm_override_options): Set arm_abi earlier.
4248         Allow Interworking on ARMv4 EABI based targets.
4249         * config/arm/bpabi.h (TARGET_FIX_V4BX_SPEC): Define.
4250         (SUBTARGET_EXTRA_ASM_SPEC, LINK_SPEC): Add TARGET_FIX_V4BX_SPEC.
4251
4252 2008-09-01  Paul Brook  <paul@codesourcery.com>
4253
4254         * config/arm/thumb2.md (thumb2_negscc): Match the correct operand for
4255         optimized LT0 test.  Remove optimization for GT.
4256
4257 2008-09-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4258
4259         * pa64-hpux.h (LIB_SPEC): Link against librt when building static
4260         openmp applications.
4261         * pa-hpux11.h (LIB_SPEC): Likewise.
4262
4263         * ira.c (setup_eliminable_regset): Only declare i if ELIMINABLE_REGS
4264         is defined.
4265
4266 2008-09-01  Jan Hubicka  <jh@suse.cz>
4267
4268         * predict.c (maybe_hot_count_p, maybe_hot_edge_p): When profile is
4269         present, use only counts; when guessed use only frequencies.
4270         (estimate_bb_frequencies): Use function_frequency.
4271         * profile.c (compute_branch_probabilities): Exit early when
4272         profile reading failed. Set profile_status.
4273         (branch_prob): Do not set profile_status.
4274
4275 2008-09-01  Aldy Hernandez  <aldyh@redhat.com>
4276
4277         * tree.c (protected_set_expr_location): New.
4278         * tree.h (protected_set_expr_location): New prototype.
4279         * c-tree.h (build_array_ref): Add argument.
4280         (parser_build_unary_op): Same.
4281         * c-typeck.c (build_indirect_ref): Handle new location argument.
4282         (build_array_ref): Same.
4283         (parser_build_unary_op): Same.
4284         * gimplify.c (gimplify_asm_expr): Set input_location before calling
4285         error.
4286         * c-omp.c (c_finish_omp_atomic): Pass location when calling
4287         build_indirect_ref.
4288         * c-common.c (finish_label_address_expr): Handle new location argument.
4289         * c-common.h (build_indirect_ref): Add argument.
4290         (finish_label_address_expr): Same.
4291         * c-parser.c (c_parser_unary_expression): Pass location to build
4292         functions.
4293         (c_parser_postfix_expression): Same.
4294
4295 2008-09-01  Paul Brook  <paul@codesourcery.com>
4296
4297         * config/arm/arm.md: Include cortex-r4f.md.
4298         (attr fpu): Update type list.
4299         (attr type): Add fcpys, ffariths, ffarithd, fadds, faddd, fconsts,
4300         fconstd, fcmps and fcmpd.
4301         (attr tune_cortexr4): Define.
4302         (attr generic_sched, attr generic_vfp): Use tune_cortexr4.
4303         * config/arm/vfp.md: Document fcpys, ffariths, ffarithd, fadds, faddd,
4304         fconsts, fconstd, fcmps and fcmpd.  Use them in insn patterns.
4305         * config/arm/arm.c (arm_issue_rate): Add cortexr4f.
4306         * config/arm/arm1020e.md (v10_ffarith, v10_farith): Use new insn types.
4307         * config/arm/cortex-a8-neon.md (cortex_a8_vfp_add_sub,
4308         cortex_a8_vfp_farith: Ditto.
4309         * config/arm/vfp11.md (vfp_ffarith, vfp_farith): Ditto.
4310         * config/arm/cortex-r4.md: Use tune_cortexr4.
4311         * config/arm/cortex-r4f.md: New file.
4312
4313 2008-09-01  Richard Guenther  <rguenther@suse.de>
4314
4315         PR tree-optimization/37305
4316         * tree-ssa-ccp.c (ccp_fold): Do not set TREE_OVERFLOW on
4317         the result of constant conversions.
4318         (fold_gimple_assign): Likewise.
4319
4320 2008-09-01  Andrey Belevantsev  <abel@ispras.ru>
4321
4322         * sel-sched-ir.c (cmp_v_in_regset_pool): Surround with
4323         #ifdef ENABLE_CHECKING.
4324
4325 2008-09-01  Andrey Belevantsev  <abel@ispras.ru>
4326
4327         * sel-sched-dump.c: Surround with #ifdef INSN_SCHEDULING.
4328         * sched-int.h (print_insn, print_pattern, print_value): Declare also
4329         when !INSN_SCHEDULING.
4330
4331 2008-09-01  Andreas Schwab  <schwab@suse.de>
4332
4333         * config/ia64/ia64.c (TARGET_ADDRESS_COST): Update.
4334
4335 2008-09-01  Paul Brook  <paul@codesourcery.com>
4336
4337         * config/arm/arm.c (arm_no_early_mul_dep): Handle multiply-subtract.
4338
4339 2008-09-01  Jan Hubicka  <jh@suse.cz>
4340
4341         * config/spu/spu.c (spu_expand_block_move) Update call of MOVE_RATIO.
4342
4343         * expr.c (MOVE_BY_PIECES_P, CLEAR_BY_PIECES_P, SET_BY_PIECES_P):
4344         Pass speed operand.
4345         * expr.h (MOVE_RATIO, CLEAR_RATIO, SET_RATIO): Update.
4346         * gimplify.c (gimplify_init_constructor): Add speed operand.
4347         * tree-sra.c (decide_block_copy): Likewise.
4348         * tree-inline.c (estimate_move_cost): Likewise.
4349         * config/alpha/alpha.h (MOVE_RATIO): Update.
4350         * config/frv/frv.c (MOVE_RATIO): Update.
4351         * config/spu/spu.h (MOVE_RATIO): Update.
4352         * config/sparc/sparc.h (MOVE_RATIO): Update.
4353         * config/i386/i386.h (MOVE_RATIO, CLEAR_RATIO): Update.
4354         * config/m68hc11/m68hc11.h (MOVE_RATIO): Update.
4355         * config/cris/cris.h (MOVE_RATIO): Update.
4356         * config/mn10300/mn10300.h (MOVE_RATIO): Update.
4357         * config/arm/arm.h (MOVE_RATIO): Update.
4358         * config/pa/pa.md: Update uses of MOVE_RATIO
4359         * config/pa/pa.h (MOVE_RATIO): Update.
4360         * config/mips/mips.h (MOVE_RATIO, MOVE_BY_PIECES,
4361         CLEAR_RATIO, SET_RATIO): Update.
4362         * config/h8300/h8300.h (MOVE_RATIO): Update.
4363         * config/v850/v850.h (MOVE_RATIO): Update.
4364         * config/bfin/bfin.h (MOVE_RATIO): Update.
4365
4366 2008-08-31  Andrey Belevantsev  <abel@ispras.ru>
4367             Dmitry Melnik  <dm@ispras.ru>
4368             Dmitry Zhurikhin  <zhur@ispras.ru>
4369             Alexander Monakov  <amonakov@ispras.ru>
4370             Maxim Kuvyrkov  <maxim@codesourcery.com>
4371
4372         * sel-sched.h, sel-sched-dump.h, sel-sched-ir.h, sel-sched.c,
4373         sel-sched-dump.c, sel-sched-ir.c: New files.
4374         * Makefile.in (OBJS-common): Add selective scheduling object files.
4375         (sel-sched.o, sel-sched-dump.o, sel-sched-ir.o): New entries.
4376         (SEL_SCHED_IR_H, SEL_SCHED_DUMP_H): New entries.
4377         (sched-vis.o): Add dependency on $(INSN_ATTR_H).
4378         * cfghooks.h (get_cfg_hooks, set_cfg_hooks): New prototypes.
4379         * cfghooks.c (get_cfg_hooks, set_cfg_hooks): New functions.
4380         (make_forwarder_block): Update loop latch if we have redirected
4381         the loop latch edge.
4382         * cfgloop.c (get_loop_body_in_custom_order): New function.
4383         * cfgloop.h (LOOPS_HAVE_FALLTHRU_PREHEADERS): New enum field.
4384         (CP_FALLTHRU_PREHEADERS): Likewise.
4385         (get_loop_body_in_custom_order): Declare.
4386         * cfgloopmanip.c (has_preds_from_loop): New.
4387         (create_preheader): Honor CP_FALLTHRU_PREHEADERS.
4388         Assert that the preheader edge will be fall thru when it is set.
4389         * common.opt (fsel-sched-bookkeeping, fsel-sched-pipelining,
4390         fsel-sched-pipelining-outer-loops, fsel-sched-renaming,
4391         fsel-sched-substitution, fselective-scheduling): New flags.
4392         * cse.c (hash_rtx_cb): New.
4393         (hash_rtx): Use it.
4394         * dbgcnt.def (sel_sched_cnt, sel_sched_region_cnt,
4395         sel_sched_insn_cnt): New counters.
4396         * final.c (compute_alignments): Export.  Free dominance
4397         info after loop_optimizer_finalize.
4398         * genattr.c (main): Output maximal_insn_latency prototype.
4399         * genautomata.c (output_default_latencies): New.
4400         Factor its code from ...
4401         (output_internal_insn_latency_func): ... here.
4402         (output_internal_maximal_insn_latency_func): New.
4403         (output_maximal_insn_latency_func): New.
4404         * hard-reg-set.h (UHOST_BITS_PER_WIDE_INT): Define unconditionally.
4405         (struct hard_reg_set_iterator): New.
4406         (hard_reg_set_iter_init, hard_reg_set_iter_set,
4407         hard_reg_set_iter_next): New functions.
4408         (EXECUTE_IF_SET_IN_HARD_REG_SET): New macro.
4409         * lists.c (remove_free_INSN_LIST_node,
4410         remove_free_EXPR_LIST_node): New functions.
4411         * loop-init.c (loop_optimizer_init): When
4412         LOOPS_HAVE_FALLTHRU_PREHEADERS, set CP_FALLTHRU_PREHEADERS when
4413         calling create_preheaders.
4414         (loop_optimizer_finalize): Do not verify flow info after reload.
4415         * recog.c (validate_replace_rtx_1): New parameter simplify.
4416         Default it to true.  Update all uses.  Factor out simplifying
4417         code to ...
4418         (simplify_while_replacing): ... this new function.
4419         (validate_replace_rtx_part,
4420         validate_replace_rtx_part_nosimplify): New.
4421         * recog.h (validate_replace_rtx_part,
4422         validate_replace_rtx_part_nosimplify): Declare.
4423         * rtl.c (rtx_equal_p_cb): New.
4424         (rtx_equal_p): Use it.
4425         * rtl.h (rtx_equal_p_cb, hash_rtx_cb): Declare.
4426         (remove_free_INSN_LIST_NODE, remove_free_EXPR_LIST_node,
4427         debug_bb_n_slim, debug_bb_slim,    print_rtl_slim): Likewise.
4428         * vecprim.h: Add a vector type for unsigned int.
4429         * haifa-sched.c: Include vecprim.h and cfgloop.h.
4430         (issue_rate, sched_verbose_param, note_list, dfa_state_size,
4431         ready_try, cycle_issued_insns, spec_info): Make global.
4432         (readyp): Initialize.
4433         (dfa_lookahead): New global variable.
4434         (old_max_uid, old_last_basic_block): Remove.
4435         (h_i_d): Make it a vector.
4436         (INSN_TICK, INTER_TICK, QUEUE_INDEX, INSN_COST): Make them work
4437         through HID macro.
4438         (after_recovery, adding_bb_to_current_region_p):
4439         New variables to handle correct insertion of the recovery code.
4440         (struct ready_list): Move declaration to sched-int.h.
4441         (rgn_n_insns): Removed.
4442         (rtx_vec_t): Move to sched-int.h.
4443         (find_insn_reg_weight): Remove.
4444         (find_insn_reg_weight1): Rename to find_insn_reg_weight.
4445         (haifa_init_h_i_d, haifa_finish_h_i_d):
4446         New functions to initialize / finalize haifa instruction data.
4447         (extend_h_i_d, init_h_i_d): Rewrite.
4448         (unlink_other_notes): Move logic to add_to_note_list.  Handle
4449         selective scheduler.
4450         (ready_lastpos, ready_element, ready_sort, reemit_notes,
4451         find_fallthru_edge): Make global, remove static prototypes.
4452         (max_issue): Make global.  Add privileged_n and state parameters.  Use
4453         them.
4454         (extend_global, extend_all): Removed.
4455         (init_before_recovery): Add new param.  Fix the handling of the case
4456         when we insert a recovery code before the EXIT which has a predecessor
4457         with a fallthrough edge to it.
4458         (create_recovery_block): Make global.  Rename to
4459         sched_create_recovery_block.  Update.
4460         (change_pattern): Rename to sched_change_pattern.  Make global.
4461         (speculate_insn): Rename to sched_speculate_insn.  Make global.
4462         Split haifa-specific functionality into ...
4463         (haifa_change_pattern): New static function.
4464         (sched_extend_bb): New static function.
4465         (sched_init_bbs): New function.
4466         (current_sched_info): Change type to struct haifa_sched_info.
4467         (insn_cost): Adjust for selective scheduling.
4468         (dep_cost_1): New function.  Move logic from ...
4469         (dep_cost): ... here.
4470         (dep_cost): Use dep_cost_1.
4471         (contributes_to_priority_p): Use sched_deps_info instead of
4472         current_sched_info.
4473         (priority): Adjust to work with selective scheduling.  Process the
4474         corner case when all dependencies don't contribute to priority.
4475         (rank_for_schedule): Use ds_weak instead of dep_weak.
4476         (advance_state): New function.  Move logic from ...
4477         (advance_one_cycle): ... here.
4478         (add_to_note_list, concat_note_lists): New functions.
4479         (rm_other_notes): Make static.  Adjust for selective scheduling.
4480         (remove_notes, restore_other_notes): New functions.
4481         (move_insn): Add two arguments.  Update assert.  Don't call
4482         reemit_notes.
4483         (choose_ready): Remove lookahead variable, use dfa_lookahead.
4484         Remove more_issue, max_points.  Move the code to initialize
4485         max_lookahead_tries to max_issue.
4486         (schedule_block): Remove rgn_n_insns1 parameter.  Don't allocate
4487         ready.  Adjust use of move_insn.  Call restore_other_notes.
4488         (luid): Remove.
4489         (sched_init, sched_finish): Move Haifa-specific initialization/
4490         finalization to ...
4491         (haifa_sched_init, haifa_sched_finish): ... respectively.
4492         New functions.
4493         (setup_sched_dump): New function.
4494         (haifa_init_only_bb): New static function.
4495         (haifa_speculate_insn): New static function.
4496         (try_ready): Use haifa_* instead of speculate_insn and change_pattern.
4497         (extend_ready, extend_all): Remove.
4498         (sched_extend_ready_list, sched_finish_ready_list): New functions.
4499         (create_check_block_twin, add_to_speculative_block): Use
4500         haifa_insns_init instead of extend_global.  Update to use new
4501         initialization functions.  Change parameter.  Factor out code from
4502         create_check_block_twin to ...
4503         (sched_create_recovery_edges) ... this new function.
4504         (add_block): Remove.
4505         (sched_scan_info): New.
4506         (extend_bb): Use sched_scan_info.
4507         (init_bb, extend_insn, init_insn, init_insns_in_bb, sched_scan): New
4508         static functions for walking through scheduling region.
4509         (sched_luids): New vector variable to replace uid_to_luid.
4510         (luids_extend_insn): New function.
4511         (sched_max_luid): New variable.
4512         (luids_init_insn): New function.
4513         (sched_init_luids, sched_finish_luids): New functions.
4514         (insn_luid): New debug function.
4515         (sched_extend_target): New function.
4516         (haifa_init_insn): New static function.
4517         (sched_init_only_bb): New hook.
4518         (sched_split_block): New hook.
4519         (sched_split_block_1): New function.
4520         (sched_create_empty_bb): New hook.
4521         (sched_create_empty_bb_1): New function.
4522         (common_sched_info, ready): New global variables.
4523         (current_sched_info_var): Remove.
4524         (move_block_after_check): Use common_sched_info.
4525         (haifa_luid_for_non_insn): New static function.
4526         (init_before_recovery): Use haifa_init_only_bb instead of add_block.
4527         (increase_insn_priority): New.
4528         * modulo-sched.c: (issue_rate): Remove static declaration.
4529         (sms_sched_info): Change type to haifa_sched_info.
4530         (sms_sched_deps_info, sms_common_sched_info): New variables.
4531         (setup_sched_infos): New.
4532         (sms_schedule): Initialize them.  Call haifa_sched_init/finish.
4533         Do not call regstat_free_calls_crossed.
4534         (sms_print_insn): Use const_rtx.
4535         * params.def (PARAM_MAX_PIPELINE_REGION_BLOCKS,
4536         PARAM_MAX_PIPELINE_REGION_INSNS, PARAM_SELSCHED_MAX_LOOKAHEAD,
4537         PARAM_SELSCHED_MAX_SCHED_TIMES, PARAM_SELSCHED_INSNS_TO_RENAME,
4538         PARAM_SCHED_MEM_TRUE_DEP_COST): New.
4539         * sched-deps.c (sched_deps_info): New.  Update all relevant uses of
4540         current_sched_info to use it.
4541         (enum reg_pending_barrier_mode): Move to sched-int.h.
4542         (h_d_i_d): New variable. Initialize to NULL.
4543         ({true, output, anti, spec, forward}_dependency_cache): Initialize
4544         to NULL.
4545         (estimate_dep_weak): Remove static declaration.
4546         (sched_has_condition_p): New function.  Adjust users of
4547         sched_get_condition to use it instead.
4548         (conditions_mutex_p): Add arguments indicating which conditions are
4549         reversed.  Use them.
4550         (sched_get_condition_with_rev): Rename from sched_get_condition.  Add
4551         argument to indicate whether returned condition is reversed.  Do not
4552         generate new rtx when condition should be reversed; indicate it by
4553         setting new argument instead.
4554         (add_dependence_list_and_free): Add deps parameter.
4555         Update all users.  Do not free dependence list when
4556         deps context is readonly.
4557         (add_insn_mem_dependence, flush_pending_lists): Adjust for readonly
4558         contexts.
4559         (remove_from_dependence_list, remove_from_both_dependence_lists): New.
4560         (remove_from_deps): New. Use the above functions.
4561         (cur_insn, can_start_lhs_rhs_p): New static variables.
4562         (add_or_update_back_dep_1): Initialize present_dep_type.
4563         (haifa_start_insn, haifa_finish_insn, haifa_note_reg_set,
4564         haifa_note_reg_clobber, haifa_note_reg_use, haifa_note_mem_dep,
4565         haifa_note_dep): New functions implementing dependence hooks for
4566         the Haifa scheduler.
4567         (note_reg_use, note_reg_set, note_reg_clobber, note_mem_dep,
4568         note_dep): New functions.
4569         (ds_to_dt, extend_deps_reg_info, maybe_extend_reg_info_p): New
4570         functions.
4571         (init_deps): Initialize last_reg_pending_barrier and deps->readonly.
4572         (free_deps): Initialize deps->reg_last.
4573         (sched_analyze_reg, sched_analyze_1, sched_analyze_2,
4574         sched_analyze_insn): Update to use dependency hooks infrastructure
4575         and readonly contexts.
4576         (deps_analyze_insn): New function.  Move part of logic from ...
4577         (sched_analyze): ... here.  Also move some logic to ...
4578         (deps_start_bb): ... here.  New function.
4579         (add_forw_dep, delete_forw_dep): Guard use of INSN_DEP_COUNT with
4580         sel_sched_p.
4581         (sched_deps_init): New function.  Move code from ...
4582         (init_dependency_caches): ... here.  Remove.
4583         (init_deps_data_vector): New.
4584         (sched_deps_finish): New function.  Move code from ...
4585         (free_dependency_caches): ... here.  Remove.
4586         (init_deps_global, finish_deps_global): Adjust for use with
4587         selective scheduling.
4588         (get_dep_weak): Move logic to ...
4589         (get_dep_weak_1): New function.
4590         (ds_merge): Move logic to ...
4591         (ds_merge_1): New static function.
4592         (ds_full_merge, ds_max_merge, ds_get_speculation_types): New functions.
4593         (ds_get_max_dep_weak): New function.
4594         * sched-ebb.c (sched_n_insns): Rename to sched_rgn_n_insns.
4595         (n_insns): Rename to rgn_n_insns.
4596         (debug_ebb_dependencies): New function.
4597         (init_ready_list): Use it.
4598         (begin_schedule_ready): Use sched_init_only_bb.
4599         (ebb_print_insn): Indicate when an insn starts a new cycle.
4600         (contributes_to_priority, compute_jump_reg_dependencies,
4601         add_remove_insn, fix_recovery_cfg): Add ebb_ prefix to function names.
4602         (add_block1): Remove to ebb_add_block.
4603         (ebb_sched_deps_info, ebb_common_sched_info): New variables.
4604         (schedule_ebb): Initialize them.  Use remove_notes instead of
4605         rm_other_notes.  Use haifa_local_init/finish.
4606         (schedule_ebbs): Use haifa_sched_init/finish.
4607         * sched-int.h: Include vecprim.h, remove rtl.h.
4608         (struct ready_list): Delete declaration.
4609         (sched_verbose_param, enum sched_pass_id_t,
4610         bb_vec_t, insn_vec_t, rtx_vec_t): New.
4611         (struct sched_scan_info_def): New structure.
4612         (sched_scan_info, sched_scan, sched_init_bbs,
4613         sched_init_luids, sched_finish_luids, sched_extend_target,
4614         haifa_init_h_i_d, haifa_finish_h_i_d): Declare.
4615         (struct common_sched_info_def): New.
4616         (common_sched_info, haifa_common_sched_info,
4617         sched_emulate_haifa_p): Declare.
4618         (sel_sched_p): New.
4619         (sched_luids): Declare.
4620         (INSN_LUID, LUID_BY_UID, SET_INSN_LUID): Declare.
4621         (sched_max_luid, insn_luid): Declare.
4622         (note_list, remove_notes, restore_other_notes, bb_note): Declare.
4623         (sched_insns_init, sched_insns_finish, xrecalloc, reemit_notes,
4624         print_insn, print_pattern, print_value, haifa_classify_insn,
4625         sel_find_rgns, sel_mark_hard_insn, dfa_state_size, advance_state,
4626         setup_sched_dump, sched_init, sched_finish,
4627         sel_insn_is_speculation_check): Export.
4628         (struct ready_list): Move from haifa-sched.c.
4629         (ready_try, ready, max_issue): Export.
4630         (ebb_compute_jump_reg_dependencies, find_fallthru_edge,
4631         sched_init_only_bb, sched_split_block, sched_split_block_1,
4632         sched_create_empty_bb, sched_create_empty_bb_1,
4633         sched_create_recovery_block, sched_create_recovery_edges): Export.
4634         (enum reg_pending_barrier_mode): Export.
4635         (struct deps): New fields `last_reg_pending_barrier' and `readonly'.
4636         (deps_t): New.
4637         (struct sched_info): Rename to haifa_sched_info.  Use const_rtx for
4638         print_insn field.  Move add_block and fix_recovery_cfg to
4639         common_sched_info_def.  Move compute_jump_reg_dependencies,
4640         use_cselib  ...
4641         (struct sched_deps_info_def): ... this new structure.
4642         (sched_deps_info): Declare.
4643         (struct spec_info_def): Remove weakness_cutoff, add
4644         data_weakness_cutoff and control_weakness_cutoff.
4645         (spec_info): Declare.
4646         (struct _haifa_deps_insn_data): Split from haifa_insn_data.  Add
4647         dep_count field.
4648         (struct haifa_insn_data): Rename to struct _haifa_insn_data.
4649         (haifa_insn_data_def, haifa_insn_data_t): New typedefs.
4650         (current_sched_info): Change type to struct haifa_sched_info.
4651         (haifa_deps_insn_data_def, haifa_deps_insn_data_t): New typedefs.
4652         (h_d_i_d): New variable.
4653         (HDID): New accessor macro.
4654         (h_i_d): Change type to VEC (haifa_insn_data_def, heap) *.
4655         (HID): New accessor macro.  Rewrite h_i_d accessor macros through HID
4656         and HDID.
4657         (IS_SPECULATION_CHECK_P): Update for selective scheduler.
4658         (enum SCHED_FLAGS): Update for selective scheduler.
4659         (enum SPEC_SCHED_FLAGS): New flag SEL_SCHED_SPEC_DONT_CHECK_CONTROL.
4660         (init_dependency_caches, free_dependency_caches): Delete declarations.
4661         (deps_analyze_insn, remove_from_deps, get_dep_weak_1,
4662         estimate_dep_weak, ds_full_merge, ds_max_merge, ds_weak,
4663         ds_get_speculation_types, ds_get_max_dep_weak, sched_deps_init,
4664         sched_deps_finish, haifa_note_reg_set, haifa_note_reg_use,
4665         haifa_note_reg_clobber, maybe_extend_reg_info_p, deps_start_bb,
4666         ds_to_dt): Export.
4667         (rm_other_notes): Delete declaration.
4668         (schedule_block): Remove one argument.
4669         (cycle_issued_insns, issue_rate, dfa_lookahead, ready_sort,
4670         ready_element, ready_lastpos, sched_extend_ready_list,
4671         sched_finish_ready_list, sched_change_pattern, sched_speculate_insn,
4672         concat_note_lists): Export.
4673         (struct region): Move from sched-rgn.h.
4674         (nr_regions, rgn_table, rgn_bb_table, block_to_bb, containing_rgn,
4675         RGN_NR_BLOCKS, RGN_BLOCKS, RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB,
4676         BLOCK_TO_BB, CONTAINING_RGN): Export.
4677         (ebb_head, BB_TO_BLOCK, EBB_FIRST_BB, EBB_LAST_BB, INSN_BB): Likewise.
4678         (current_nr_blocks, current_blocks, target_bb): Likewise.
4679         (dep_cost_1, sched_is_disabled_for_current_region_p, sched_rgn_init,
4680         sched_rgn_finish, rgn_setup_region, sched_rgn_compute_dependencies,
4681         sched_rgn_local_init, extend_regions,
4682         rgn_make_new_region_out_of_new_block, compute_priorities,
4683         debug_rgn_dependencies, free_rgn_deps, contributes_to_priority,
4684         extend_rgns, deps_join rgn_setup_common_sched_info,
4685         rgn_setup_sched_infos, debug_regions, debug_region, dump_region_dot,
4686         dump_region_dot_file, haifa_sched_init, haifa_sched_finish): Export.
4687         (get_rgn_sched_max_insns_priority, sel_add_to_insn_priority,
4688         increase_insn_priority): Likewise.
4689         * sched-rgn.c: Include sel-sched.h.
4690         (ref_counts): New static variable.  Use it ...
4691         (INSN_REF_COUNT): ... here.  Rewrite and move closer to uses.
4692         (FED_BY_SPEC_LOAD, IS_LOAD_INSN): Rewrite to use HID accessor macro.
4693         (sched_is_disabled_for_current_region_p): Delete static declaration.
4694         (struct region): Move to sched-int.h.
4695         (nr_regions, rgn_table, rgn_bb_table, block_to_bb, containing_rgn,
4696         ebb_head): Define and initialize.
4697         (RGN_NR_BLOCKS, RGN_BLOCKS, RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB,
4698         BLOCK_TO_BB, CONTAINING_RGN, debug_regions, extend_regions,
4699         BB_TO_BLOCK, EBB_FIRST_BB, EBB_LAST_BB): Move to
4700         sched-int.h.
4701         (find_single_block_region): Add new argument to indicate that EBB
4702         regions should be constructed.
4703         (debug_live): Delete declaration.
4704         (current_nr_blocks, current_blocks, target_bb):
4705         Remove static qualifiers.
4706         (compute_dom_prob_ps, check_live, update_live, set_spec_fed): Delete
4707         declaration.
4708         (init_regions): Delete declaration.
4709         (debug_region, bb_in_region_p, dump_region_dot_file, dump_region_dot,
4710         rgn_estimate_number_of_insns): New.
4711         (too_large): Use estimate_number_of_insns.
4712         (haifa_find_rgns): New. Move the code from ...
4713         (find_rgns): ... here.  Call either sel_find_rgns or haifa_find_rgns.
4714         (free_trg_info): New.
4715         (compute_trg_info): Allocate candidate tables here instead of ...
4716         (init_ready_list): ... here.
4717         (rgn_print_insn): Use const_rtx.
4718         (contributes_to_priority, extend_regions): Delete static declaration.
4719         (add_remove_insn, fix_recovery_cfg): Add rgn_ to function names.
4720         (add_block1): Rename to rgn_add_block.
4721         (debug_rgn_dependencies): Delete static qualifier.
4722         (new_ready): Use sched_deps_info.  Simplify.
4723         (rgn_common_sched_info, rgn_const_sched_deps_info,
4724         rgn_const_sel_sched_deps_info, rgn_sched_deps_info, rgn_sched_info):
4725         New.
4726         (region_sched_info): Rename to rgn_const_sched_info.
4727         (deps_join): New, extracted from ...
4728         (propagate_deps): ... here.
4729         (compute_block_dependences, debug_dependencies): Update for selective
4730         scheduling.
4731         (free_rgn_deps, compute_priorities): New functions.
4732         (sched_rgn_init, sched_rgn_finish, rgn_setup_region,
4733         sched_rgn_compute_dependencies): New functions.
4734         (schedule_region): Use them.
4735         (sched_rgn_local_init, sched_rgn_local_free, sched_rgn_local_finish,
4736         rgn_setup_common_sched_info, rgn_setup_sched_infos):
4737         New functions.
4738         (schedule_insns): Call new functions that were split out.
4739         (rgn_make_new_region_out_of_new_block): New.
4740         (get_rgn_sched_max_insns_priority): New.
4741         (rest_of_handle_sched, rest_of_handle_sched2): Call selective
4742         scheduling when appropriate.
4743         * sched-vis.c: Include insn-attr.h.
4744         (print_value, print_pattern): Make global.
4745         (print_rtl_slim, debug_bb_slim, debug_bb_n_slim): New functions.
4746         * target-def.h (TARGET_SCHED_ADJUST_COST_2,
4747         TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
4748         TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
4749         TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_CHECKED_DS,
4750         TARGET_SCHED_GET_INSN_SPEC_DS, TARGET_SCHED_SKIP_RTX_P): New target
4751         hooks.  Initialize them to 0.
4752         (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
4753         * target.h (struct gcc_target): Add them.  Rename gen_check field to
4754         gen_spec_check.
4755         * flags.h (sel_sched_switch_set): Declare.
4756         * opts.c (sel_sched_switch_set): New variable.
4757         (decode_options): Unset flag_sel_sched_pipelining_outer_loops if
4758         pipelining is disabled from command line.
4759         (common_handle_option): Record whether selective scheduling is
4760         requested from command line.
4761         * doc/invoke.texi: Document new flags and parameters.
4762         * doc/tm.texi: Document new target hooks.
4763         * config/ia64/ia64.c (TARGET_SCHED_GEN_SPEC_CHECK): Define to
4764         ia64_gen_check.
4765         (dfa_state_size): Do not declare locally.
4766         * config/ia64/ia64.opt (msched-ar-data-spec): Default to 0.
4767         * config/rs6000/rs6000.c (rs6000_init_sched_context,
4768         rs6000_alloc_sched_context, rs6000_set_sched_context,
4769         rs6000_free_sched_context): New functions.
4770         (struct _rs6000_sched_context): New.
4771         (rs6000_sched_reorder2): Do not modify INSN_PRIORITY for selective
4772         scheduling.
4773         (rs6000_sched_finish): Do not run for selective scheduling.
4774
4775 2008-08-31  Jan Hubicka  <jh@suse.cz>
4776
4777         * frv.c (frv_rtx_costs): Update forward declaration.
4778         * spu.c (spu_rtx_costs): Likewise.
4779         * pdp11.c: Include df.h
4780         (pdp11_output_function_epilogue): Use df_set_regs_ever_live.
4781         * m68hc11.c (m68hc11_gen_highpart): Fix call of gen_rtx_SUBREG.
4782         (m68hc11_rtx_costs_1): Fix call of rtx_cost.
4783         * iq2000.c (iq2000_address_cost): Add speed argument.
4784         (iq2000_rtx_costs): Likewise.
4785         * mn10300.c (mn10300_address_cost_1): Remove speed argument;
4786         update call of mn10300_address_cost.
4787         * mcore.c: Include df.h
4788         (mcore_rtx_costs): Update prototype.
4789         * score3.c: Include df.h
4790         (score3_rtx_costs): Remove speed argument.
4791         * score7.c: Include df.h
4792         (score7_address_cost): Remove speed argument.
4793         * score-protos.h (score_address_cost): Update prototype.
4794         * score.c: Include df.h
4795         (score_rtx_costs): Update call of costs functions.
4796         * v850.c (v850_rtx_costs): Add bool argument.
4797
4798 2008-08-31  Hans-Peter Nilsson  <hp@axis.com>
4799
4800         * config/cris/cris.c (cris_rtx_costs): Correct call to rtx_costs.
4801
4802 2008-08-31  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
4803
4804         * gthr-win32.h (__gthread_setspecific): Use CONST_CAST2.
4805         * config/i386/gthr-win32.c (__gthread_setspecific): Same.
4806
4807 2008-08-31  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
4808
4809         * mkmap-flat.awk: Add option pe_dll.
4810         * config/i386/t-cygming (SHLIB_LINK): Support building libgcc_s.
4811         * config/i386/t-cygwin (SHLIB_LC): Add.
4812         * config/i386/t-mingw32 (SHLIB_LC): Add.
4813         * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): New.
4814         (SUBTARGET_EXTRA_SPECS): Use SHARED_LIBGCC_UNDEFS_SPEC.
4815         (LINK_SPEC): Support libgcc_s.
4816         (LIBGCC_SPEC): Support libgcc_s.
4817         (LIBGCC_SONAME): New.
4818
4819 2008-08-31  Jan Hubicka  <jh@suse.cz>
4820
4821         * predict.c (maybe_hot_bb_p, maybe_hot_edge_p): Previous commit
4822         mistakely had old version of patch.
4823
4824         * ipa-cp.c (ipcp_need_original_clone_p): Remove.
4825         (ipcp_estimate_growth): New.
4826         (ipcp_insert_stage): Use ipcp_estimate_growth.
4827         * profile.c (branch_prob): When reading failed, do not consider
4828         profile as read.
4829
4830 2008-08-31  Jan Hubicka  <jh@suse.cz>
4831
4832         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Check that
4833         loop is optimized for speed.
4834
4835 2008-08-31  Richard Guenther  <rguenther@suse.de>
4836
4837         PR middle-end/37289
4838         * fold-const.c (fold_binary): Retain conversions in folding
4839         ~A + 1 to -A.
4840
4841 2008-08-31  Jan Hubicka  <jh@suse.cz>
4842
4843         * postreload-gcse.c (eliminate_partially_redundant_loads):
4844         Use optimize_bb_for_size_p.
4845         * predict.c (maybe_hot_frequency_p): Make inline.
4846         (maybe_hot_count_p): Break out from ...
4847         (maybe_hot_bb_p): ... this one.
4848         (maybe_hot_edge_p): Simplify.
4849         * basic-block.h (probably_cold_bb_p): Remove.
4850
4851 2008-08-31  Jakub Jelinek  <jakub@redhat.com>
4852
4853         PR target/37168
4854         * config/rs6000/rs6000-protos.h (const_vector_elt_as_int): Add
4855         prototype.
4856         * config/rs6000/rs6000.c (const_vector_elt_as_int): No longer static.
4857         * config/rs6000/altivec.md (easy_vector_constant_add_self splitter):
4858         Also split V4SFmode.
4859         * config/rs6000/predicates.md (easy_vector_constant_add_self): Handle
4860         vector float modes.
4861
4862 2008-08-31  Jan Hubicka  <jh@suse.cz>
4863
4864         * predict.c (PROB_VERY_LIKELY): Make small enough so things
4865         become cold.
4866         * predict.def (PRED_NORETURN_CALL, PRED_COLD_CALL): Use it.
4867
4868 2008-08-31  Jakub Jelinek  <jakub@redhat.com>
4869
4870         PR debug/37287
4871         * dwarf2out.c (gen_namespace_die): For DECL_EXTERNAL modules don't
4872         add source coords.
4873
4874         * dwarf2out.c (native_encode_initializer): Subtract min_index for
4875         non-range array index.  Handle VIEW_CONVERT_EXPR and NON_LVALUE_EXPR.
4876
4877 2008-08-31  Jan Hubicka  <jh@suse.cz>
4878
4879         * sparc.h (BRANCH_COST): Fix macro definition.
4880         * avr.c (avr_operand_rtx_cost): Add speed argument.
4881         (avr_rtx_costs): Update calls of avr_operand_rtx_cost.
4882
4883 2008-08-31  Richard Guenther  <rguenther@suse.de>
4884
4885         * tree-cfg.c (verify_types_in_gimple_assign): Dump mismatched
4886         types instead of operands.  Re-instantiate verifying of
4887         binary expression operands.
4888
4889 2008-08-30  Jan Hubicka  <jh@suse.cz>
4890
4891         * fwprop.c (should_replace_address): Add speed attribute.
4892         (PR_OPTIMIZE_FOR_SPEED): New flag.
4893         (propagate_rtx_1): Use it.
4894         (propagate_rtx): Set it.
4895         (try_fwprop_subst): Update call of rtx_costs.
4896         (forward_propagate_and_simplify): LIkewise.
4897         * hooks.c (hook_int_rtx_bool_0): New
4898         (hook_bool_rtx_int_int_intp_false): Replace by ...
4899         (hook_bool_rtx_int_int_intp_bool_false): .. thisone.
4900         * hooks.h (hook_int_rtx_bool_0): New
4901         (hook_bool_rtx_int_int_intp_false): Replace by ...
4902         (hook_bool_rtx_int_int_intp_bool_false): .. thisone.
4903         * optabs.c (avoid_expensive_constant): UPdate call of rtx_cost.
4904         (prepare_cmp_insn): UPdate call of rtx_cost.
4905         * postreload.c (reload_cse_simplify_set): Update call of rtx_cost.
4906         (reload_cse_simplify_operands): Update call of rtx_cost.
4907         (reload_cse_move2add): call of rtx_cost.
4908         * target.h (struct gcc_target): Update rtx_costs and address_costs.
4909         * rtlanal.c (rtx_cost): Add speed argument.
4910         (address_cost): Add speed argument
4911         (default_address_cost): Likewise.
4912         (insn_rtx_cost): Likewise.
4913         * cfgloopanal.c (seq_cost): Add speed argument.
4914         (target_reg_cost, target_spill_cost): Turn to array.
4915         (init_set_costs): Update for speed.
4916         (estimate_reg_pressure_cost): Add speed argument.
4917         * auto-inc-dec.c (attempt_change): Update call of rtx_cost.
4918         * dojump.c (prefer_and_bit_test): UPdate call of rtx_cost.
4919         * tree-ssa-loop-ivopts.c (struct ivopts_data): New field speed.
4920         (seq_cost): Add speed argument.
4921         (computation_cost): Add speed arugment.
4922         (add_cost, multiply_by_const, get_address_cost): add speed argument.
4923         (force_expr_to_var_cost): Update for profile info.
4924         (force_var_cost): Likewise.
4925         (split_address_cost): Likewise.
4926         (ptr_difference_cost): Likewise.
4927         (difference_cost): Likewise.
4928         (get_computation_cost_at): Likewise.
4929         (determine_iv_cost): Likewise.
4930         (ivopts_global_cost_for_size): Likewise.
4931         (rewrite_use_address): Likewise.
4932         (tree_ssa_iv_optimize_loop): Initialize speed field.
4933         * cse.c (optimize_this_for_speed_p): New static var.
4934         (notreg_cost): Update call of rtx_cost.
4935         (cse_extended_basic_block): set optimize_this_for_speed_p.
4936         * ifcvt.c (cheap_bb_rtx_cost_p): Update call of rtx_cost.
4937         (noce_try_cmove_arith): Likewise.
4938         (noce_try_sign_mask): LIkewise.
4939         * expr.c (compress_float_constant): Update rtx_cost calls.
4940         * tree-ssa-address.c (most_expensive_mult_to_index): Add speed
4941         argument.
4942         (addr_to_parts): Likewise.
4943         (create_mem_ref): Likewise.
4944         * dse.c (find_shift_sequence): Add speed argument.
4945         (replace_read): Update call.
4946         * calls.c (precompute_register_parameters): Update call of rtx_cost.
4947         * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost,
4948         * neg_cost, shift_cost, shiftadd_cost,
4949         shiftsub_cost, mul_cost, sdiv_cost, udiv_cost ,mul_widen_cost,
4950         mul_highpart_cost): Increase dimension.
4951         (init_expmed): Initialize for both size and speed.
4952         (expand_shift): Use profile.
4953         (synth_mult): Use profile.
4954         (choose_mult_variant): Use profile.
4955         (expand_mult): Use profile.
4956         (expand_mult_highpart_optab): Use profile.
4957         (expand_mult_highpart): Use profile.
4958         (expand_smod_pow2): Use profile.
4959         (expand_divmod): Use profile.
4960         * simplify-rtx.c (simplify_binary_operation_1): Update call of
4961         rtx_cost.
4962         * loop-invariant.c (create_new_invariant): Use profile.
4963         (gain_for_invariant): Add speed parameter.
4964         (best_gain_for_invariant): Likewise.
4965         (find_invariants_to_move): Likewise.
4966         (move_single_loop_invariants): Set it.
4967         * target-def.h (TARGET_RTX_COSTS): Use hook.
4968         * rtl.h (rtx_cost, address_cost, insn_rtx_cost): Update prototpe.
4969         (optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
4970         * output.h (default_address_cost): Update prototype.
4971         * combine.c (optimize_this_for_speed_p): New static var.
4972         (combine_validate_cost): Update call of rtx_cost.
4973         (combine_instructions): Set optimize_this_for_speed_p.
4974         (expand_compound_operation): Update call of rtx_cost.
4975         (make_extraction):Update call of rtx_cost.
4976         (force_to_mode):Update call of rtx_cost.
4977         (distribute_and_simplify_rtx):Update call of rtx_cost.
4978         * cfgloop.h (target_reg_cost, target_spill_cost): Turn to array.
4979         (estimate_reg_pressure_cost): Update prototype.
4980         * tree-flow.h (multiply_by_cost, create_mem_ref): Update prototype.
4981         * basic-block.h (optimize_insn_for_size_p, optimize_insn_for_speed_p):
4982         Remove.
4983         * config/alpha/alpha.c (alpha_rtx_costs): Update.
4984         (alpha_rtx_costs): Update.
4985         * config/frv/frv.c (frv_rtx_costs): Update.
4986         * config/s390/s390.c (s390_rtx_costs): Update.
4987         * config/m32c/m32c.c (m32c_memory_move_cost): Update.
4988         (m32c_rtx_costs): Update.
4989         * config/spu/spu.c (TARGET_ADDRESS_COST): Upate.
4990         (spu_rtx_costs): Update.
4991         * config/sparc/sparc.c (sparc_rtx_costs): Update.
4992         * config/m32r/m32r.c (m32r_rtx_costs): Update.
4993         * config/i386/i386.c (:ix86_address_cost): Update.
4994         (ix86_rtx_costs): Update.
4995         * config/sh/sh.c (sh_rtx_costs, sh_address_cost): Update.
4996         * config/pdp11/pdp11.c (pdp11_rtx_costs): Update.
4997         * config/avr/avr.c (avr_rtx_costs, avr_address_cost): Update.
4998         * config/crx/crx.c (crx_address_cost): Update.
4999         * config/xtensa/xtensa.c (xtensa_rtx_costs): Update.
5000         * config/stormy16/stormy16.c
5001         (xstormy16_address_cost, xstormy16_rtx_costs): Update.
5002         * config/m68hc11/m68hc11.c
5003         (m68hc11_address_cost, m68hc11_rtx_costs): Update.
5004         * config/cris/cris.c (cris_rtx_costs, cris_address_cost): Update.
5005         * config/iq2000/iq2000.c (iq2000_rtx_costs, iq2000_address_cost):
5006         Update.
5007         * config/mn10300/mn10300.c (mn10300_address_cost, mn10300_rtx_costs):
5008         Update
5009         * config/ia64/ia64.c (ia64_rtx_costs): Update.
5010         * config/m68k/m68k.c (m68k_rtx_costs): Update.
5011         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update.
5012         * config/arc/arc.c (arc_rtx_costs, arc_address_cost): Update.
5013         * config/mcore/mcore.c (TARGET_ADDRESS_COST): Update.
5014         (mcore_rtx_costs): update.
5015         * config/score/score3.c (score3_rtx_costs): Update.
5016         * config/score/score7.c (score7_rtx_costs): Update.
5017         * config/score/score3.h (score3_rtx_costs):Update.
5018         * config/score/score7.h (score7_rtx_costs): Update.
5019         * config/score/score.c (score_rtx_costs): Update.
5020         * config/arm/arm.c (arm_address_cost): Update.
5021         (arm_rtx_costs_1): Update.
5022         (arm_rtx_costs_1): Update.
5023         (arm_size_rtx_costs): Update.
5024         (arm_size_rtx_costs): Update.
5025         (arm_size_rtx_costs): Update.
5026         (arm_xscale_rtx_costs): Update.
5027         (arm_thumb_address_cost): Update.
5028         * config/pa/pa.c (hppa_address_cost): Update.
5029         * config/mips/mips.c (mips_rtx_costs): Update.
5030         * config/vax/vax.c (vax_address_cost): Update.
5031         * config/h8300/h8300.c (h8300_shift_costs): Update.
5032         (h8300_rtx_costs): Update.
5033         * config/v850/v850.c (TARGET_ADDRESS_COST): Update.
5034         (v850_rtx_costs): Update.
5035         * config/mmix/mmix.c (mmix_rtx_costs, mmix_rtx_costs): Update.
5036         * config/bfin/bfin.c
5037         (bfin_address_cost): Update.
5038         (bfin_rtx_costs): Update.
5039         * stmt.c (lshift_cheap_p): Update.
5040
5041 2008-08-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5042
5043         PR middle-end/36444
5044         * expmed.c (extract_bit_field_1): Check the mode size to make
5045         sure the vector modes have the same size.
5046
5047 2008-08-29  Michael Meissner  <gnu@the-meissners.org>
5048
5049         * dojump.c (top level): Include basic-block.h to declare
5050         optimize_insn_for_speed_p
5051
5052         * Makefile.in (dodump.h): Add $(BASIC_BLOCK_H) dependency.
5053
5054         * opts.h (CL_SAVE): New option class for marking options that are
5055         target specific options usable in the target attribute.
5056         (CL_MIN_OPTION_CLASS): CL_SAVE is now the minimum option.
5057
5058         * opt-functions.awk (switch_flags): Add CL_SAVE flag so backends
5059         can easily find the target specific options that are safe to use
5060         in the attribute or pragma.
5061
5062         * attribs.c (decl_attributes): Change #pragma GCC option to
5063         #pragma GCC target, and attribute((option(...))) to
5064         attribute((target(...))).
5065
5066         * doc/extend.texi (target attribute): Change from option
5067         attribute.  Delete push/pop/reset.
5068         (#pragma GCC target): Change from #pragma GCC option.  Delete
5069         push/pop/reset.
5070         (#pragma GCC push_options): Document new pragma.
5071         (#pragma GCC pop_options): Document new pragma.
5072         (#pragma GCC reset_options): Document new pragma.
5073
5074         * targhooks.c (default_target_option_valid_attribute_p): Add
5075         warning about port not supporting target attributes.
5076         (default_target_option_pragma_parse): New function, warn about
5077         #pragma GCC target not being supported.
5078
5079         * targhooks.h (default_target_option_pragma_parse): Add
5080         declaration.
5081
5082         * tree.h (TI_CURRENT_TARGET_PRAGMA): Rename from
5083         TI_CURRENT_OPTION_PRAGMA.
5084         (current_target_pragma): Rename from current_option_pragma.
5085
5086         * target.h: (struct target_option): Delete booleans for changing
5087         the optimization level on hot/cold functions.  Change signature of
5088         pragma_parse hook to take a second tree.
5089
5090         * c-tree.h (c_builtin_function_ext_scope): Add declaration.
5091
5092         * c-decl.c (c_builtin_function_ext_scope): New function, guarantee
5093         that the declaration is done at global scope.
5094
5095         * langhooks.c (add_builtin_function_common): Move most of the code
5096         from add_builtin_function here, calling the hook passed in.
5097         (add_builtin_function): Call add_builtin_function_common with
5098         standard builtin hook.
5099         (add_builtin_function_ext_scope): New function to add builtins to
5100         global scope.
5101
5102         * langhooks.h (struct lang_hooks): Add builtin_function_ext_scope
5103         hook.
5104         (add_builtin_function_ext_scope): Add declaration.
5105
5106         * c-pragma.c (handle_pragma_target): Rename from
5107         handle_pragma_option, #pragma GCC option is now #pragma GCC
5108         target.  Move warning about port not supporting target options to
5109         default pragma parse hook.  Remove push/pop/reset from this
5110         pragma.
5111         (handle_pragma_optimize): Remove push/pop/reset from this pragma.
5112         (option_stack): Delete static variable.
5113         (optimize_stack): Ditto.
5114         (optons_stack): New stack of saved target and optimization
5115         options.
5116         (handle_pragma_push_options): New function to handle pushing both
5117         target and optimization options.
5118         (handle_pragma_pop_options): New function to handle popping both
5119         target and optimization options.
5120         (handle_pragma_reset_options): New function to handle resetting
5121         both target and optimization options to their initial state.
5122         (init_pragma): Rename handle_pragma_option to
5123         handle_pragma_target.  Add support for push_options, pop_options,
5124         and reset_options pragmas.
5125
5126         * target-def.h (TARGET_OPTION_PRAGMA_PARSE): Change default to
5127         default_target_option_pragma_parse.
5128         (TARGET_OPTION_VALID_ATTRIBUTE_P): Change default to
5129         default_target_option_valid_attribute_p.
5130         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
5131         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
5132         (TARGET_OPTION_HOOKS): Delete the fields for whether to change
5133         optimization level on hot/cold functions.
5134
5135         * tree-inline.c (tree_can_inline_p): Disable suppressing inlining
5136         if the caller and callee have different optimization levels.
5137
5138         * c-common.c (handle_target_attribute): Rename from
5139         handle_option_attribute, attribute((option(...))) is now
5140         attribute((target(...))).  Move warning if the port does not
5141         support target attributes to the default hook.
5142         (handle_hot_attribute): Delete code to change the optimization
5143         level of hot functions.
5144         (handle_cold_attribute): Ditto.
5145
5146         * config/i386/i386-c.c (ix86_pragma_target_parse): Take a second
5147         argument that is the binary tree options to use if there are no
5148         arguments.  Call ix86_valid_target_attribute_tree instead of
5149         ix86_valid_option_attribute_tree.
5150         (ix86_pragma_target_parse): Rename from ix86_pragma_option_parse.
5151         (ix86_register_pragmas): Use ix86_pragma_target_parse instead of
5152         ix86_pragma_option_parse.
5153
5154         * config/i386/i386-protos.h (ix86_valid_target_attribute_tree):
5155         Rename from ix86_valid_option_attribute_tree.
5156
5157         * config/i386/i386.c (ix86_add_new_builtins): New function to add
5158         new builtins when the ISA changes.
5159         (ix86_valid_target_attribute_tree): Rename from
5160         ix86_valid_option_attribute_tree.  Change callers.  If the
5161         function specified optimization options, use those as the starting
5162         point before setting up the target attributes.  If the
5163         optimization options were changed in the course of setting the
5164         target attributes, record the new optimization options.
5165         (ix86_valid_target_attribute_tree_inner_p): Rename from
5166         ix86_valid_option_attribute_tree_inner_p.  Change callers.  Call
5167         ix86_add_new_builtins if the ISA changed.
5168         (ix86_valid_target_attribute_p): Rename from
5169         ix86_valid_option_attribute_p.  Change callers.
5170         (enum ix86_builtins): Add IX86_BUILTIN_PCMOV to allow both
5171         __builtin_ia32_pcmov and __builtin_ia32_pcmov_v2di to be declared
5172         as delayed builtin functions.
5173         (struct builtin_isa): New structure to record builtin functions
5174         that should be delayed until the ISA for that function is used.
5175         (ix86_builtins_isa): Change from int to struct to track builtin
5176         functions we want to declare at some point.
5177         (def_builtin): If the front end can delay defining the builtin
5178         functions, don't create builtins for ISAs not part of the default
5179         options.
5180         (def_builtin_const): Ditto.
5181         (bdesc_multi_arg): Declare __builtin_ia32_pcmov and
5182         __builtin_ia32_pcmov_v2di to be different builtin functions.
5183         (ix86_expand_builtin): Changes due to ix86_builtins_isa now being
5184         a structure instead of an int.
5185         (TARGET_OPTION_VALID_ATTRIBUTE_P): Use
5186         ix86_valid_target_attribute_p, not ix86_valid_option_attribute_p.
5187         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
5188         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
5189
5190         * config/ia64/ia64.h
5191         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
5192         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
5193
5194         * langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE): New
5195         hook, default to being the same as LANG_HOOKS_BUILTIN_FUNCTION.
5196         (LANG_HOOKS_INITIALIZER): Add
5197         LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE hook.
5198
5199 2008-08-30  Kaz Kojima  <kkojima@gcc.gnu.org>
5200
5201         PR target/37270
5202         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Generate
5203         the reload address with the index register for SFmode
5204         access with a displacement.
5205
5206 2008-08-30  Jan Hubicka  <jh@suse.cz>
5207
5208         * optabs.c (expand_abs_nojump): Update BRANCH_COST call.
5209         * fold-cost.c (LOGICAL_OP_NON_SHORT_CIRCUIT, fold_truthop): Likewise.
5210         * dojump.c (do_jump): Likewise.
5211         * ifcvt.c (MAX_CONDITIONAL_EXECUTE): Likewise.
5212         (note-if_info): Add BRANCH_COST.
5213         (noce_try_store_flag_constants, noce_try_addcc,
5214         noce_try_store_flag_mask, noce_try_cmove_arith, noce_try_cmove_arith,
5215         noce_try_cmove_arith, noce_find_if_block, find_if_case_1,
5216         find_if_case_2): Use computed branch cost.
5217         * expr.h (BRANCH_COST): Update default.
5218         * predict.c (predictable_edge_p): New function.
5219         * expmed.c (expand_smod_pow2, expand_sdiv_pow2, emit_store_flag):
5220         Update BRANCH_COST call.
5221         * basic-block.h (predictable_edge_p): Declare.
5222         * config/alpha/alpha.h (BRANCH_COST): Update.
5223         * config/frv/frv.h (BRANCH_COST): Update.
5224         * config/s390/s390.h (BRANCH_COST): Update.
5225         * config/spu/spu.h (BRANCH_COST): Update.
5226         * config/sparc/sparc.h (BRANCH_COST): Update.
5227         * config/m32r/m32r.h (BRANCH_COST): Update.
5228         * config/i386/i386.h (BRANCH_COST): Update.
5229         * config/i386/i386.c (ix86_expand_int_movcc): Update use of
5230         BRANCH_COST.
5231         * config/sh/sh.h (BRANCH_COST): Update.
5232         * config/pdp11/pdp11.h (BRANCH_COST): Update.
5233         * config/avr/avr.h (BRANCH_COST): Update.
5234         * config/crx/crx.h (BRANCH_COST): Update.
5235         * config/xtensa/xtensa.h (BRANCH_COST): Update.
5236         * config/stormy16/stormy16.h (BRANCH_COST): Update.
5237         * config/m68hc11/m68hc11.h (BRANCH_COST): Update.
5238         * config/iq2000/iq2000.h (BRANCH_COST): Update.
5239         * config/ia64/ia64.h (BRANCH_COST): Update.
5240         * config/rs6000/rs6000.h (BRANCH_COST): Update.
5241         * config/arc/arc.h (BRANCH_COST): Update.
5242         * config/score/score.h (BRANCH_COST): Update.
5243         * config/arm/arm.h (BRANCH_COST): Update.
5244         * config/pa/pa.h (BRANCH_COST): Update.
5245         * config/mips/mips.h (BRANCH_COST): Update.
5246         * config/vax/vax.h (BRANCH_COST): Update.
5247         * config/h8300/h8300.h (BRANCH_COST): Update.
5248         * params.def (PARAM_PREDICTABLE_BRANCH_OUTCOME): New.
5249         * doc/invoke.texi (predictable-branch-cost-outcome): Document.
5250         * doc/tm.texi (BRANCH_COST): Update.
5251
5252 2008-08-30  Samuel Tardieu  <sam@rfc1149.net>
5253
5254         PR target/37283
5255         * config/arm/arm.c (arm_optimization_options): Set
5256         flag_section_anchors to 2 instead of 1 to distinguish it from
5257         -fsection-anchors given explicitely on the command line.
5258
5259 2008-08-30  Richard Sandiford  <rdsandiford@googlemail.com>
5260
5261         * recog.c (split_insn): Consider attaching a REG_EQUAL note to the
5262         final insn of a split.
5263
5264 2008-08-30  Jan Hubicka  <jh@suse.cz>
5265
5266         * postreload-gcse.c (gate_handle_gcse2): Disable for functions
5267         optimized for speed.
5268         * final.c (compute_alignments): Use optimize_bb_for_size_p.
5269         * tree-call-cdce.c (gate_call_cdce): Use optimize_function_for_speed_p.
5270         * opts.c (flag_predictive_commoning_set, flag_unswitch_loops_set,
5271         flag_gcse_after_reload_set): New static vars.
5272         (common_handle_option): Enable those flags for profile-use.
5273         (decode_options): Remove optimize_size flags that are handled
5274         on higher granuality.
5275         * tree-vectorizer.c (vectorize_loops): Use
5276         optimize_loop_nest_for_speed_p.
5277         * tree-ssa-pre.c (do_pre): Use optimize_function_for_speed_p.
5278         * tree-predcom.c (tree_predictive_commoning): Use
5279         optimize_loop_for_speed_p.
5280         * varasm.c (assemble_start_function): Use
5281         optimize_function_for_speed_p.
5282         * bb-reorder.c (rest_of_handle_reorder_blocks): Likewise.
5283         * predict.c (optimize_loop_for_speed_p): Fix walk.
5284
5285 2008-08-30  Jan Hubicka  <jh@suse.cz>
5286
5287         * ipa-inline.c (cgraph_estimate_growth): Discover self recursive
5288         functions.
5289         (cgraph_decide_inlining_of_small_function): Use edge->count to detect
5290         profile presence locally.
5291
5292 2008-08-29  Joseph Myers  <joseph@codesourcery.com>
5293
5294         PR bootstrap/37086
5295         * tree-vrp.c (find_switch_asserts): Make idx volatile for GCC
5296         versions before 4.0.
5297
5298 2008-08-29  Jan Hubicka  <jh@suse.cz>
5299
5300         * tree-inline.c (insert_init_stmt): Insert sequence even when
5301         not in SSA form.
5302
5303 2008-08-29  Jeff Law  <law@redhat.com>
5304
5305         * mn10300.c (mn10300_secondary_reload_class): We need secondary
5306         reloads for AM33-2 if IN is a pseudo with an equivalent memory
5307         location and class is an FP register.
5308
5309 2008-08-29  Jan Hubicka  <jh@suse.cz>
5310
5311         * see.c (see_merge_one_def_extension): Silence used uninitialized
5312         warning.
5313         * matrix-reorg.c (check_allocation_function): Likewise.
5314         * config/i386/driver-i386.c (detect_caches_amd): Likewise.
5315
5316 2008-08-29  Jakub Jelinek  <jakub@redhat.com>
5317
5318         PR c/37261
5319         * fold-const.c (fold_binary): In (X | C1) & C2 canonicalization
5320         compute new & and | in type rather than TREE_TYPE (arg0).
5321
5322         * dwarf2out.c (fortran_common): Update comment.
5323         (gen_variable_die): Swap com_die and var_die variables in Fortran
5324         COMMON block handling code.
5325
5326         * dwarf2out.c (descr_info_loc): Handle VAR_DECL.
5327
5328         * dwarf2out.c (gen_const_die): New function.
5329         (size_of_die, value_format, output_die): Output larger
5330         dw_val_class_vec using DW_FORM_block2 or DW_FORM_block4.
5331         (native_encode_initializer): New function.
5332         (tree_add_const_value_attribute): Call it.
5333         (gen_decl_die, dwarf2out_decl): Handle CONST_DECLs if is_fortran ().
5334
5335         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): For
5336         DECL_BY_REFERENCE decls don't pass TREE_READONLY and
5337         TREE_THIS_VOLATILE to add_type_attribute.
5338
5339         * dwarf2out.c (add_subscript_info): Stop on Fortran TYPE_STRING_FLAG
5340         types.
5341         (gen_array_type_die): Emit DW_TAG_string_type for Fortran character
5342         types.
5343
5344         * dwarf2out.c (loc_by_reference): New function.
5345         (add_location_or_const_value_attribute): Use it.
5346
5347         PR fortran/23057
5348         * dwarf2out.c (gen_variable_die): Represent Fortran COMMON vars
5349         as DW_TAG_variable children of DW_TAG_common_block rather than
5350         DW_TAG_member children.  Put DW_AT_external to individual
5351         DW_TAG_variable DIEs, not to DW_TAG_common_block.
5352
5353         * dwarf2out.c (add_bound_info): If lookup_decl_die failed, try
5354         loc_descriptor_from_tree_1.
5355
5356         PR fortran/29635
5357         PR fortran/23057
5358         * debug.h (struct gcc_debug_hooks): Add NAME and CHILD
5359         arguments to imported_module_or_decl.
5360         (debug_nothing_tree_tree): Removed.
5361         (debug_nothing_tree_tree_tree_bool): New prototype.
5362         * debug.c (do_nothing_debug_hooks): Adjust.
5363         (debug_nothing_tree_tree): Removed.
5364         (debug_nothing_tree_tree_tree_bool): New function.
5365         * dwarf2out.c (is_symbol_die): Handle DW_TAG_module.
5366         (gen_variable_die): Put all common vars for the
5367         same COMMON block under one DW_TAG_common_block.
5368         (declare_in_namespace): Return new context_die, for Fortran
5369         return the module DIE instead of adding extra declarations into
5370         the namespace.
5371         (gen_type_die_with_usage): Adjust declare_in_namespace caller.
5372         (gen_namespace_die): If is_fortran (), generate DW_TAG_module
5373         instead of DW_TAG_namespace.  If DECL_EXTERNAL is set, add
5374         DW_AT_declaration.
5375         (dwarf2out_global_decl): Don't skip Fortran global vars.
5376         (gen_decl_die): Likewise.  Adjust declare_in_namespace callers.
5377         (dwarf2out_imported_module_or_decl): Add NAME and CHILD arguments.
5378         If NAME is non-NULL, add DW_AT_name.  If CHILD is non-NULL, put
5379         DW_TAG_imported_declaration as child of previous
5380         DW_TAG_imported_module.
5381         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Adjust.
5382         * sdbout.c (sdb_debug_hooks): Likewise.
5383         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
5384
5385 2008-08-29  Jan Hubicka  <jh@suse.cz>
5386
5387         * cgraph.c (cgraph_remove_node): Do not remove nested nodes.
5388
5389         * cgraph.h (cgraph_maybe_hot_edge_p): Declare.
5390         * ipa-cp.c (n_cloning_candidates): New static variable.
5391         (ipcp_print_profile_data, ipcp_function_scale_print): Forward declare.
5392         (ipcp_print_all_lattices): Improve debug output.
5393         (ipcp_cloning_candidate_p): New function.
5394         (ipcp_initialize_node_lattices): Use it.
5395         (ipcp_init_stage): Do only analyzis here; prettier debug output.
5396         (ipcp_propagate_stage): Prettier debug output.
5397         (ipcp_iterate_stage): Initialize latices here; prettier debug output.
5398         (ipcp_print_all_structures): Remove.
5399         (ipcp_need_redirect_p): Test !n_cloning_candidates.
5400         (ipcp_insert_stage): Prettier debug output; call
5401         cgraph_remove_unreachable_nodes before propagating.
5402         (pass_ipa_cp): Schedule function removal pass.
5403         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Better
5404         debug output.
5405         (cgraph_maybe_hot_edge_p): Move to ...
5406         * predict.c (cgraph_maybe_hot_edge_p) ... here.
5407         * opts.c (flag_ipa_cp_set, flag_ipa_cp_clone_set): New.
5408         (common_handle_option): Set them; enable ipa-cp when profiling.
5409         * ipa-prop.c (ipa_print_node_jump_functions): Prettier output.
5410         (ipa_print_all_jump_functions): Likewise.
5411         (ipa_print_all_tree_maps, ipa_print_node_param_flags): Remove.
5412         (ipa_print_node_params, ipa_print_all_params): New.
5413         * ipa-prop.h (ipa_print_all_tree_maps, ipa_print_node_param_flags,
5414         ipa_print_all_param_flags): Remove.
5415         (ipa_print_node_params, ipa_print_all_params): New.
5416
5417 2008-08-29  Bob Wilson  <bob.wilson@acm.org>
5418
5419         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Revert
5420         change from 2008-04-03.
5421         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Define.
5422
5423 2008-08-29  Vladimir Makarov  <vmakarov@redhat.com>
5424
5425         PR rtl-opt/37251
5426         * ira-color.c (push_allocnos_to_stack): Truncate
5427         removed_splay_allocno_vec.
5428
5429 2008-08-29  Vladimir Makarov  <vmakarov@redhat.com>
5430
5431         PR rtl-opt/37243
5432         * ira-color (ira_fast_allocation): Don't assign hard registers to
5433         global allocnos.
5434
5435 2008-08-29  Jan Hubicka  <jh@suse.cz>
5436
5437         PR middle-end/37278
5438         * predict.c (optimize_loop_nest_for_speed_p): Do not ICE
5439         for cold internal loops.
5440
5441 2008-08-29  Richard Guenther  <rguenther@suse.de>
5442
5443         * tree-ssa-structalias.c (create_variable_info_for): Do not
5444         create fields for heap vars or vars with a noalias state.
5445         For NO_ALIAS_ANYTHING variables add a self-constraint, not one
5446         from ESCAPED.
5447
5448 2008-08-29  Richard Guenther  <rguenther@suse.de>
5449
5450         * common.opt (ftree-store-ccp): Mark as preserved for
5451         backward compatibility.
5452         * doc/invoke.texi (-ftree-store-ccp): Remove documentation.
5453         * tree-pass.h (pass_store_ccp): Remove.
5454         * tree-ssa-propagate.h (struct prop_value_d): Remove mem_ref field.
5455         (first_vdef): Remove declaration.
5456         (get_value_loaded_by): Likewise.
5457         * tree-ssa-ccp.c (do_store_ccp): Remove.
5458         (get_default_value): Simplify as do_store_ccp is always false
5459         now.  Do not initialize mem_ref.
5460         (set_value_varying): Likewise.
5461         (canonicalize_float_value): Likewise.
5462         (set_lattice_value): Likewise.
5463         (likely_value): Likewise.
5464         (surely_varying_stmt_p): Likewise.
5465         (ccp_initialize): Likewise.
5466         (ccp_lattice_meet): Likewise.
5467         (ccp_visit_phi_node): Likewise.
5468         (ccp_fold): Likewise.
5469         (evaluate_stmt): Likewise.
5470         (visit_assignment): Likewise.
5471         (ccp_visit_stmt): Likewise.
5472         (execute_ssa_ccp): Fold into ...
5473         (do_ssa_ccp): ... this.
5474         (do_ssa_store_ccp): Remove.
5475         (gate_store_ccp): Likewise.
5476         (pass_store_ccp): Likewise.
5477         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not
5478         initialize mem_ref.
5479         * tree-ssa-propagate.c (first_vdef): Remove.
5480         (get_value_loaded_by): Likewise.
5481         (replace_vuses_in): Likewise.
5482         (substitute_and_fold): Do not call replace_vuses_in.
5483         * opts.c (decode_options): Do not set flag_tree_store_ccp.
5484
5485 2008-08-29  Richard Guenther  <rguenther@suse.de>
5486
5487         PR middle-end/37236
5488         * tree-ssa-structalias.c (intra_create_variable_infos): Mark
5489         PARAM_NOALIAS tags with is_heapvar.
5490         * tree-ssa-operands.c (access_can_touch_variable): Offset
5491         based tests do not apply for heapvars.  Fix offset test.
5492
5493 2008-08-29  Jan Hubicka  <jh@suse.cz>
5494
5495         * doc/invoke.texi (-fipa-cp): Enabled by default at -O2/-Os/-O3
5496         (-fipa-cp-clone): Enabled by default at -O3.
5497         * opts.c (decode_options): Enable ipa-cp at -O2, ipa-cp-clone at -O3;
5498         make ipa-cp-clone to imply ipa-cp; disable cloning at -Os.
5499
5500 2008-08-29  Jan Hubicka  <jh@suse.cz>
5501
5502         * tree.c (build_function_type_skip_args,
5503         build_function_decl_skip_args): New functions.
5504         * tree.h (build_function_type_skip_args,
5505         build_function_decl_skip_args): Declare.
5506         * gimple.c (giple_copy_call_skip_args): New function.
5507         (giple_copy_call_skip_args): Declare.
5508
5509         * cgraph.h (cgraph_function_versioning): Add skip_args arugmnet
5510         * ipa-cp.c (ipcp_node_not_modifiable_p): Rename to ...
5511         (ipcp_node_modifiable_p): ... this one; use
5512         tree_versionable_function_p.
5513         (ipcp_create_replace_map): Improve debug output.
5514         (ipcp_need_redirect_p): Return false when not clonning.
5515         (ipcp_update_callgraph): Skip args.
5516         (ipcp_insert_stage): UPdate call of !ipcp_node_modifiable_p;
5517         skip args.
5518         * cgraphunit.c (cgraph_function_versioning): Add skip_args argument.
5519         (save_inline_function_body): Update call of tree_function_versioning.
5520         * ipa-prop.c (ipa_edge_removal_hook): Do not ICE on unanalyzed nodes.
5521         * tree-inline.c (copy_arguments_for_versioning): Add skip_args
5522         argument.
5523         (tree_function_versioning): Likewise.
5524         * tree-inline.h (tree_function_versioning): Update prototype.
5525
5526 2008-08-29  Jan Hubicka  <jh@suse.cz>
5527
5528         * loop-unswitch.c (unswitch_single_loop): Use
5529         optimize_loop_for_speed_p.
5530         * tree-ssa-threadupdate.c (mark_threaded_blocks):
5531         Use optimize_function_for_size_p.
5532         * tracer.c (ignore_bb_p): Use optimize_bb_for_size_p.
5533         * postreload-gcse.c (eliminate_partially_redundant_load):
5534         Use optimize_bb_for_size_p.
5535         * value-prof.c (gimple_divmod_fixed_value_transform,
5536         gimple_mod_pow2_value_transform, gimple_mod_subtract_transform,
5537         gimple_stringops_transform): Use optimize_bb_for_size_p.
5538         * ipa-cp.c (ipcp_insert_stage): Use optimize_function_for_size_p.
5539         * final.c (compute_alignments): Use optimize_function_for_size_p.
5540         * builtins.c (fold_builtin_cabs): Use optimize_function_for_speed_p.
5541         (fold_builtin_strcpy, fold_builtin_fputs): Use
5542         optimize_function_for_size_p.
5543         * fold-const.c (tree_swap_operands_p): Use
5544         optimize_function_for_size_p.
5545         * recog.c (relax_delay_slots): Likewise.
5546         * tree-ssa-math-opts.c (replace_reciprocal):
5547         Use optimize_bb_for_speed_p.
5548         (execute_cse_reciprocals): Use optimize_bb_for_size_p.
5549         * ipa-inline.c (cgraph_decide_recursive_inlining): Use
5550         optimize_function_for_size_p.
5551         (cgraph_decide_inlining_of_small_function): Use
5552         optimize_function_for_size_p.
5553         * global.c (find_reg): Use optimize_function_for_size_p.
5554         * opts.c (decode_options): Do not clear flag_tree_ch,
5555         flag_inline_functions, flag_unswitch_loops, flag_unroll_loops,
5556         flag_unroll_all_loops and flag_prefetch_loop_arrays. Those can
5557         work it out from profile.
5558         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Use
5559         optimize_loop_for_speed_p.
5560         * predict.c (optimize_bb_for_size_p, optimize_bb_for_speed_p):
5561         Constify argument.
5562         (optimize_loop_nest_for_size_p, optimize_loop_nest_for_speed_p): New.
5563         * tree-parloops.c (parallelize_loops): Use optimize_loop_for_size_p.
5564         * tree-eh.c (decide_copy_try_finally): Use
5565         optimize_function_for_size_p.
5566         * local-alloc.c (block_alloc): Pass BB pointer.
5567         (find_free_reg): Add BB pointer, use optimize_bb_for_size_p.
5568         * gcse.c (gcse_main): Use optimize_function_for_size_p.
5569         * loop-unroll.c (decide_unrolling_and_peeling):
5570         Use optimize_loop_for_size_p.
5571         (decide_peel_completely): Likewise.
5572         * tree-vect-analyze.c (vect_mark_for_runtime_alias_test): Use
5573         optimize_loop_for_size_p.
5574         (vect_enhance_data_refs_alignment): Likewise.
5575         * tree-ssa-coalesce.c (coalesce_cost): Add optimize_for_size argument.
5576         (coalesce_cost_bb, coalesce_cost_edge, create_outofssa_var_map):
5577         Update call.
5578         * cfgcleanup.c (outgoing_edges_match): Use optimize_bb_for_speed_p.
5579         (try_crossjump_bb): Use optimize_bb_for_size_p.
5580         * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
5581         optimize_loop_for_speed_p.
5582         * bb-reorder.c (find_traces_1_round): Likewise.
5583         (copy_bb): Use optimize_bb_for_speed_p.
5584         (duplicate_computed_gotos): Likewise.
5585         * basic-block.h (optimize_loop_nest_for_size_p,
5586         optimize_loop_nest_for_speed_p): New.
5587         * stmt.c (expand_case): Use optimize_insn_for_size_p.
5588
5589 2008-08-29  Tristan Gingold  <gingold@adacore.com>
5590
5591         * gcov.c (main): Call expandargv.
5592
5593 2008-08-29  Jan Hubicka  <jh@suse.cz>
5594
5595         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Check that loop
5596         is not cold.
5597         * predict.c (optimize_bb_for_size_p, optimize_bb_for_speed_p):
5598         Constify arguments.
5599         (optimize_loop_for_size_p, optimize_loop_for_speed_p): New functions.
5600         * basic-block.h (optimize_bb_for_size_p, optimize_bb_for_speed_p):
5601         Constify.
5602         (optimize_loop_for_size_p, optimize_loop_for_speed_p): Declare.
5603
5604 2008-08-29  Jan Hubicka  <jh@suse.cz>
5605
5606         * tree-pass.h (pass_strip_predict_hints): Declare.
5607         * predict.c (strip_builtin_expect): Rename to ...
5608         (strip_predict_hints): ... this one; strip also GIMPLE_PREDICT.
5609         (tree_bb_level_predictions): Do not remove GIMPLE_PREDICT.
5610         (tree_estimate_probability): Do not strip builtin_expect.
5611         (pass_strip_predict_hints): New pass.
5612         * tree-inline.c (expand_call_inline): When inlining cold function,
5613         predict it as unlikely.
5614         * passes.c (init_optimization_passes): Add pass_strip_predict_hints.
5615
5616 2008-08-29  Richard Guenther  <rguenther@suse.de>
5617
5618         PR tree-optimization/37207
5619         * tree-vrp.c (extract_range_from_binary_expr): Also try
5620         to constant fold if only one of the operands is a constant.
5621
5622 2008-08-29  Nick Clifton  <nickc@redhat.com>
5623
5624         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Treat LABEL_REFs in
5625         the same way as SYMBOL_REFs.
5626
5627 2008-08-28  Bob Wilson  <bob.wilson@acm.org>
5628
5629         * config/xtensa/xtensa.md (<u>mulsidi3): Use a temporary register.
5630
5631 2008-08-28  Adam Nemet  <anemet@caviumnetworks.com>
5632
5633         * config/mips/mips.h (ISA_HAS_BBIT): New macro.
5634         * config/mips/mips.md (branch_likely): Remove const.  Fix
5635         comment formatting.
5636         (define_delay for type "branch"): Change to only apply for branch
5637         with likely variant.
5638         (define_delay for type "branch" and "branch_likely" no).  New delay
5639         definition.
5640         (equality_op): New code iterator.
5641         (bbv, bbinv): New code attributes.
5642         (*branch_bit<bbv><mode>, *branch_bit<bbv><mode>_inverted): New
5643         patterns.
5644
5645 2008-08-28  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5646             Andrew Pinski  <pinskia@gcc.gnu.org>
5647
5648         PR 18050
5649         * c-common.c (verify_tree): Fix handling of ADDR_EXPR.
5650
5651 2008-08-28  Paolo Carlini  <paolo.carlini@oracle.com>
5652
5653         * gtrh-posix.h: Fix uses of _POSIX_TIMEOUTS per the normal Posix
5654         rule that a symbolic constant must be defined and >= 0 for the
5655         corresponding facility to be present at compile-time.
5656         * gthr-posix.c: Likewise.
5657
5658 2008-08-28  Adam Nemet  <anemet@caviumnetworks.com>
5659
5660         * config/mips/mips.h (ISA_HAS_DMUL3): New macro.
5661         * config/mips/mips.md (D): New mode attribute.
5662         (mulsi3, muldi3): Merge it into ...
5663         (mul<mode>3): ... new template.  Use _mul3 ending for 3-op patterns.
5664         (muldi3_mul3): New pattern.
5665         (mulsi3_mult3): Rename to mulsi3_mul3.
5666
5667 2008-08-28  Jan Hubicka  <jh@suse.cz>
5668
5669         * expmed.c (store_bit_field_1): Be prepared for movstrict expander
5670         to fail.
5671         * predict.c (always_optimize_for_size_p): Rename to ...
5672         (optimize_function_for_size): ... this one; make extern.
5673         (optimize_function_for_speed_p): New.
5674         (optimize_bb_for_size_p, optimize_bb_for_size_p,
5675         optimize_edge_for_size_p,optimize_edge_for_size_p,
5676         optimize_insn_for_size_p, optimize_insn_for_size_p): Update.
5677         * basic-block.h (optimize_function_for_size_p,
5678         optimize_function_for_speed_p): Declare.
5679         * i386.md (optimize_size checks): Replace them by appropriate
5680         predicate.
5681         (standard_80387_constant_p, ix86_compute_frame_layout,
5682         ix86_expand_epilogue, ix86_decompose_address,
5683         print_operand, emit_i387_cw_initialization,
5684         inline_memory_move_cost, ix86_pad_returns,
5685         ix86_reorg): Replace optimize_size checks.
5686
5687 2008-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
5688
5689         * rtl.h (simplify_subreg_regno): Declare.
5690         * rtlanal.c (simplify_subreg_regno): New function, split out from...
5691         * simplify-rtx.c (simplify_subreg): ...here.
5692         * reload.c (find_reloads): Use simplify_subreg_regno instead of
5693         subreg_offset_representable_p.
5694
5695 2008-08-28  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5696
5697         PR c/30949
5698         * c-typeck.c (convert_for_assignment): Give a note describing what
5699         was passed and what was expected.
5700
5701 2008-08-28  Joey Ye  <joey.ye@intel.com>
5702
5703         * doc/extend.texi: Document AVX built-in functions.
5704         * doc/invoke.texi: Document -mavx.
5705
5706 2008-08-28  H.J. Lu  <hongjiu.lu@intel.com>
5707             Joey Ye  <joey.ye@intel.com>
5708             Xuepeng Guo  <xuepeng.guo@intel.com>
5709
5710         * config.gcc (extra_headers): Add gmmintrin.h for x86 and x86-64.
5711
5712         * config/i386/cpuid.h (bit_FMA): New.
5713         (bit_XSAVE): Likewise.
5714         (bit_OSXSAVE): Likewise.
5715         (bit_AVX): Likewise.
5716
5717         * config/i386/gas.h (ASM_OUTPUT_OPCODE): Undefine before
5718         define.  Use ASM_OUTPUT_AVX_PREFIX.
5719
5720         * config/i386/gmmintrin.h: New.
5721
5722         * config/i386/i386.c (x86_64_reg_class): Add X86_64_AVX_CLASS.
5723         (OPTION_MASK_ISA_AVX_SET): New.
5724         (OPTION_MASK_ISA_FMA_SET): Likewise.
5725         (OPTION_MASK_ISA_AVX_UNSET): Likewise.
5726         (OPTION_MASK_ISA_FMA_SET): Likewise.
5727         (OPTION_MASK_ISA_SSE4_2_UNSET): Updated.
5728         (ix86_handle_option): Handle OPT_mavx and OPT_mfma.
5729         (pta_flags): Add PTA_AVX and PTA_FMA.
5730         (override_options): Handle PTA_AVX and PTA_FMA.
5731         (init_cumulative_args): Handle warn_avx.
5732         (classify_argument): Return 0 for COImode and OImode.  Return
5733         1 and X86_64_AVX_CLASS for 256bit vector types.
5734         (examine_argument): Handle X86_64_AVX_CLASS.
5735         (construct_container): Likewise.
5736         (function_arg_advance_32): Pass OImode and 256bit vector types
5737         in AVX register.
5738         (function_arg_advance_64): Take a new argument to indicate if a
5739         parameter is named.  Handle 256bit vector types.  Return
5740         immediately for unnamed 256bit vector mode parameters.
5741         (function_arg_advance): Updated.
5742         (function_arg_32): Add comments for TImode.  Handle OImode
5743         and 256bit vector types.
5744         (function_arg_64): Take a new argument to indicate if a
5745         parameter is named.  Handle 256bit vector types.  Return NULL
5746         for unnamed 256bit vector mode parameters.
5747         (function_arg): Updated.
5748         (setup_incoming_varargs_64): Support
5749         AVX encoding for *sse_prologue_save_insn.
5750         (ix86_gimplify_va_arg): Handle 256bit vector mode parameters.
5751         (standard_sse_constant_p): Return -2 for all 1s if SSE2 isn't
5752         enabled.  For all 1s in 256bit vector modes, return 3 if AVX is
5753         enabled, otherwise return -3.
5754         (standard_sse_constant_opcode): Handle AVX and 256bit vector
5755         modes.
5756         (print_reg): Support AVX registers.  Handle 'x' and 't'.
5757         Handle 'd' to duplicate the operand.
5758         (print_operand): Likewise.  Also support AVX vector compare
5759         instructions.
5760         (output_387_binary_op): Support AVX.
5761         (output_fp_compare): Likewise.
5762         (ix86_expand_vector_move_misalign): Likewise.
5763         (ix86_attr_length_vex_default): New.
5764         (ix86_builtins): Add IX86_BUILTIN_ADDPD256,
5765         IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256,
5766         IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256,
5767         IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256,
5768         IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_BLENDPD256,
5769         IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256,
5770         IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DIVPD256,
5771         IX86_BUILTIN_DIVPS256, IX86_BUILTIN_DPPS256,
5772         IX86_BUILTIN_HADDPD256, IX86_BUILTIN_HADDPS256,
5773         IX86_BUILTIN_HSUBPD256, IX86_BUILTIN_HSUBPS256,
5774         IX86_BUILTIN_MAXPD256, IX86_BUILTIN_MAXPS256,
5775         IX86_BUILTIN_MINPD256, IX86_BUILTIN_MINPS256,
5776         IX86_BUILTIN_MULPD256, IX86_BUILTIN_MULPS256,
5777         IX86_BUILTIN_ORPD256, IX86_BUILTIN_ORPS256,
5778         IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256,
5779         IX86_BUILTIN_SUBPD256, IX86_BUILTIN_SUBPS256,
5780         IX86_BUILTIN_XORPD256, IX86_BUILTIN_XORPS256,
5781         IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD,
5782         IX86_BUILTIN_CMPPS, IX86_BUILTIN_CMPPD256,
5783         IX86_BUILTIN_CMPPS256, IX86_BUILTIN_CVTDQ2PD256,
5784         IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256,
5785         IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256,
5786         IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256,
5787         IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_EXTRACTF128PD256,
5788         IX86_BUILTIN_EXTRACTF128PS256, IX86_BUILTIN_EXTRACTF128SI256,
5789         IX86_BUILTIN_VZEROALL, IX86_BUILTIN_VZEROUPPER,
5790         IX86_BUILTIN_VZEROUPPER_REX64, IX86_BUILTIN_VPERMILVARPD,
5791         IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256,
5792         IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_VPERMILPD,
5793         IX86_BUILTIN_VPERMILPS, IX86_BUILTIN_VPERMILPD256,
5794         IX86_BUILTIN_VPERMILPS256, IX86_BUILTIN_VPERMIL2PD,
5795         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256,
5796         IX86_BUILTIN_VPERMIL2PS256, IX86_BUILTIN_VPERM2F128PD256,
5797         IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256,
5798         IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256,
5799         IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256,
5800         IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_VINSERTF128PD256,
5801         IX86_BUILTIN_VINSERTF128PS256, IX86_BUILTIN_VINSERTF128SI256,
5802         IX86_BUILTIN_LOADUPD256, IX86_BUILTIN_LOADUPS256,
5803         IX86_BUILTIN_STOREUPD256, IX86_BUILTIN_STOREUPS256,
5804         IX86_BUILTIN_LDDQU256, IX86_BUILTIN_LOADDQU256,
5805         IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_MASKLOADPD,
5806         IX86_BUILTIN_MASKLOADPS, IX86_BUILTIN_MASKSTOREPD,
5807         IX86_BUILTIN_MASKSTOREPS, IX86_BUILTIN_MASKLOADPD256,
5808         IX86_BUILTIN_MASKLOADPS256, IX86_BUILTIN_MASKSTOREPD256,
5809         IX86_BUILTIN_MASKSTOREPS256, IX86_BUILTIN_MOVSHDUP256,
5810         IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256,
5811         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256,
5812         IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256,
5813         IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256,
5814         IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256,
5815         IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256,
5816         IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256,
5817         IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS,
5818         IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256,
5819         IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256,
5820         IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD,
5821         IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS,
5822         IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS,
5823         IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256,
5824         IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256,
5825         IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256,
5826         IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256,
5827         IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256
5828         and IX86_BUILTIN_MOVMSKPS256,
5829         (ix86_special_builtin_type): Add V32QI_FTYPE_PCCHAR,
5830         V8SF_FTYPE_PCV4SF, V8SF_FTYPE_PCFLOAT, V4DF_FTYPE_PCV2DF,
5831         V4DF_FTYPE_PCDOUBLE, V8SF_FTYPE_PCV8SF_V8SF,
5832         V4DF_FTYPE_PCV4DF_V4DF, V4SF_FTYPE_PCV4SF_V4SF,
5833         V2DF_FTYPE_PCV2DF_V2DF, VOID_FTYPE_PCHAR_V32QI,
5834         VOID_FTYPE_PFLOAT_V8SF, VOID_FTYPE_PDOUBLE_V4DF,
5835         VOID_FTYPE_PV8SF_V8SF_V8SF, VOID_FTYPE_PV4DF_V4DF_V4DF,
5836         VOID_FTYPE_PV4SF_V4SF_V4SF and VOID_FTYPE_PV2DF_V2DF_V2DF,
5837         (ix86_builtin_type): Add INT_FTYPE_V8SF_V8SF_PTEST,
5838         INT_FTYPE_V4DI_V4DI_PTEST, INT_FTYPE_V4DF_V4DF_PTEST,
5839         INT_FTYPE_V4SF_V4SF_PTEST, INT_FTYPE_V2DF_V2DF_PTEST,
5840         INT_FTYPE_V8SF, INT_FTYPE_V4DF, V8SI_FTYPE_V8SF, V8SI_FTYPE_V4SI,
5841         V8SF_FTYPE_V8SF, V8SF_FTYPE_V8SI, V8SF_FTYPE_V4SF,
5842         V4SI_FTYPE_V8SI, V4SI_FTYPE_V4DF, V4DF_FTYPE_V4DF,
5843         V4DF_FTYPE_V4SI, V4DF_FTYPE_V4SF, V4DF_FTYPE_V2DF,
5844         V4SF_FTYPE_V4DF, V4SF_FTYPE_V8SF, V2DF_FTYPE_V4DF,
5845         V8SF_FTYPE_V8SF_V8SF, V8SF_FTYPE_V8SF_V8SI,
5846         V4DF_FTYPE_V4DF_V4DF, V4DF_FTYPE_V4DF_V4DI,
5847         V4SF_FTYPE_V4SF_V4SI, V2DF_FTYPE_V2DF_V2DI,
5848         V8SF_FTYPE_V8SF_INT, V4SI_FTYPE_V8SI_INT, V4SF_FTYPE_V8SF_INT,
5849         V2DF_FTYPE_V4DF_INT, V4DF_FTYPE_V4DF_INT,
5850         V8SF_FTYPE_V8SF_V8SF_V8SF, V4DF_FTYPE_V4DF_V4DF_V4DF,
5851         V8SI_FTYPE_V8SI_V8SI_INT, V8SF_FTYPE_V8SF_V8SF_INT,
5852         V4DF_FTYPE_V4DF_V4DF_INT, V4DF_FTYPE_V4DF_V2DF_INT,
5853         V8SF_FTYPE_V8SF_V8SF_V8SI_INT, V4DF_FTYPE_V4DF_V4DF_V4DI_INT,
5854         V4SF_FTYPE_V4SF_V4SF_V4SI_INT and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
5855         (bdesc_special_args): Add IX86_BUILTIN_VZEROALL,
5856         IX86_BUILTIN_VZEROUPPER. IX86_BUILTIN_VZEROUPPER_REX64,
5857         IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256,
5858         IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256,
5859         IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_LOADUPD256,
5860         IX86_BUILTIN_LOADUPS256, IX86_BUILTIN_STOREUPD256,
5861         IX86_BUILTIN_STOREUPS256, IX86_BUILTIN_LOADDQU256,
5862         IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_LDDQU256,
5863         IX86_BUILTIN_MASKLOADPD, IX86_BUILTIN_MASKLOADPS,
5864         IX86_BUILTIN_MASKLOADPD256, IX86_BUILTIN_MASKLOADPS256,
5865         IX86_BUILTIN_MASKSTOREPD, IX86_BUILTIN_MASKSTOREPS,
5866         IX86_BUILTIN_MASKSTOREPD256 and IX86_BUILTIN_MASKSTOREPS256.
5867         (ix86_builtins): Add IX86_BUILTIN_ADDPD256,
5868         IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256,
5869         IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256,
5870         IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256,
5871         IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_DIVPD256,
5872         IX86_BUILTIN_DIVPS256, IX86_BUILTIN_HADDPD256,
5873         IX86_BUILTIN_HSUBPS256, IX86_BUILTIN_HSUBPD256,
5874         IX86_BUILTIN_HADDPS256, IX86_BUILTIN_MAXPD256,
5875         IX86_BUILTIN_MAXPS256, IX86_BUILTIN_MINPD256,
5876         IX86_BUILTIN_MINPS256, IX86_BUILTIN_MULPD256,
5877         IX86_BUILTIN_MULPS256, IX86_BUILTIN_ORPD256,
5878         IX86_BUILTIN_ORPS256, IX86_BUILTIN_SUBPD256,
5879         IX86_BUILTIN_SUBPS256, IX86_BUILTIN_XORPD256,
5880         IX86_BUILTIN_XORPS256, IX86_BUILTIN_VPERMILVARPD,
5881         IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256,
5882         IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_BLENDPD256,
5883         IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256,
5884         IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DPPS256,
5885         IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256,
5886         IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD,
5887         IX86_BUILTIN_CMPPS,
5888         IX86_BUILTIN_CMPPD256,IX86_BUILTIN_CMPPS256,
5889         IX86_BUILTIN_EXTRACTF128PD256, IX86_BUILTIN_EXTRACTF128PS256,
5890         IX86_BUILTIN_EXTRACTF128SI256, IX86_BUILTIN_CVTDQ2PD256,
5891         IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256,
5892         IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256,
5893         IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256,
5894         IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_VPERM2F128PD256,
5895         IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256,
5896         IX86_BUILTIN_VPERMILPD, IX86_BUILTIN_VPERMILPS,
5897         IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256,
5898         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMILPS,
5899         IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256,
5900         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
5901         IX86_BUILTIN_VPERMIL2PD256, IX86_BUILTIN_VPERMIL2PS256,
5902         IX86_BUILTIN_VINSERTF128PD256, IX86_BUILTIN_VINSERTF128PS256,
5903         IX86_BUILTIN_VINSERTF128SI256, IX86_BUILTIN_MOVSHDUP256,
5904         IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256,
5905         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256,
5906         IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256,
5907         IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256,
5908         IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256,
5909         IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256,
5910         IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256,
5911         IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS,
5912         IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256,
5913         IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256,
5914         IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD,
5915         IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS,
5916         IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS,
5917         IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256,
5918         IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256,
5919         IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256,
5920         IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256,
5921         IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256 and
5922         IX86_BUILTIN_MOVMSKPS256.
5923         (ix86_init_mmx_sse_builtins): Support AVX builtins.
5924         (ix86_expand_args_builtin): Likewise.
5925         (ix86_expand_special_args_builtin): Likewise.
5926         (ix86_hard_regno_mode_ok): Handle AVX modes.
5927         (ix86_expand_vector_init_duplicate): Likewise.
5928         (ix86_expand_vector_init_one_nonzero): Likewise.
5929         (ix86_expand_vector_init_one_var): Likewise.
5930         (ix86_expand_vector_init_concat): Likewise.
5931         (ix86_expand_vector_init_general): Likewise.
5932         (ix86_expand_vector_set): Likewise.
5933         (ix86_vector_mode_supported_p): Likewise.
5934         (x86_extended_reg_mentioned_p): Check INSN_P before using
5935         PATTERN.
5936
5937         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
5938         OPTION_MASK_ISA_AVX and OPTION_MASK_ISA_FMA.
5939
5940         * config/i386/i386.h (TARGET_AVX): New.
5941         (TARGET_FMA): Likewise.
5942         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AVX and TARGET_FMA.
5943         (BIGGEST_ALIGNMENT): Set to 256 for TARGET_AVX.
5944         (VALID_AVX256_REG_MODE): New.
5945         (AVX256_VEC_FLOAT_MODE_P): Likewise.
5946         (AVX_FLOAT_MODE_P): Likewise.
5947         (AVX128_VEC_FLOAT_MODE_P): Likewise.
5948         (AVX256_VEC_FLOAT_MODE_P): Likewise.
5949         (AVX_VEC_FLOAT_MODE_P): Likewise.
5950         (ASM_OUTPUT_AVX_PREFIX): Likewise.
5951         (ASM_OUTPUT_OPCODE): Likewise.
5952         (UNITS_PER_SIMD_WORD): Add a FIXME for 32byte vectorizer
5953         support.
5954         (SSE_REG_MODE_P): Allow 256bit vector modes.
5955         (ix86_args): Add a warn_avx field.
5956
5957         * config/i386/i386.md (UNSPEC_PCMP): New.
5958         (UNSPEC_VPERMIL): Likewise.
5959         (UNSPEC_VPERMIL2): Likewise.
5960         (UNSPEC_VPERMIL2F128): Likewise.
5961         (UNSPEC_MASKLOAD): Likewise.
5962         (UNSPEC_MASKSTORE): Likewise.
5963         (UNSPEC_CAST): Likewise.
5964         (UNSPEC_VTESTP): Likewise.
5965         (UNSPECV_VZEROALL): Likewise.
5966         (UNSPECV_VZEROUPPER): Likewise.
5967         (XMM0_REG): Likewise.
5968         (XMM1_REG): Likewise.
5969         (XMM2_REG): Likewise.
5970         (XMM3_REG): Likewise.
5971         (XMM4_REG): Likewise.
5972         (XMM5_REG): Likewise.
5973         (XMM6_REG): Likewise.
5974         (XMM8_REG): Likewise.
5975         (XMM9_REG): Likewise.
5976         (XMM10_REG): Likewise.
5977         (XMM11_REG): Likewise.
5978         (XMM12_REG): Likewise.
5979         (XMM13_REG): Likewise.
5980         (XMM14_REG): Likewise.
5981         (XMM15_REG): Likewise.
5982         (prefix): Likewise.
5983         (prefix_vex_imm8): Likewise.
5984         (prefix_vex_w): Likewise.
5985         (length_vex): Likewise.
5986         (maxmin): Likewise.
5987         (movoi): Likewise.
5988         (*avx_ashlti3): Likewise.
5989         (*avx_lshrti3): Likewise.
5990         (*avx_setcc<mode>): Likewise.
5991         (*fop_<mode>_comm_mixed_avx): Likewise.
5992         (*fop_<mode>_comm_avx): Likewise.
5993         (*fop_<mode>_1_mixed_avx): Likewise.
5994         (*fop_<mode>_1_avx): Likewise.
5995         (*avx_<code><mode>3): Likewise.
5996         (*avx_ieee_smin<mode>3): Likewise.
5997         (*avx_ieee_smax<mode>3): Likewise.
5998         (mode): Add OI, V8SF and V4DF.
5999         (length): Support VEX prefix.
6000         (*cmpfp_i_mixed): Set prefix attribute.
6001         (*cmpfp_i_sse): Likewise.
6002         (*cmpfp_iu_mixed): Likewise.
6003         (*cmpfp_iu_sse): Likewise.
6004         (*movsi_1): Support AVX.
6005         (*movdi_2): Likewise.
6006         (*movdi_1_rex64): Likewise.
6007         (*movti_internal): Likewise.
6008         (*movti_rex64): Likewise.
6009         (*movsf_1): Likewise.
6010         (*movdf_nointeger): Likewise.
6011         (*movdf_integer_rex64): Likewise.
6012         (*movtf_internal): Likewise.
6013         (zero_extendsidi2_32): Likewise.
6014         (zero_extendsidi2_rex64): Likewise.
6015         (*extendsfdf2_mixed): Likewise.
6016         (*extendsfdf2_sse): Likewise.
6017         (*truncdfsf_fast_mixed): Likewise.
6018         (*truncdfsf_fast_sse): Likewise.
6019         (*truncdfsf_mixed): Likewise.
6020         (fix_trunc<mode>di_sse): Likewise.
6021         (fix_trunc<mode>si_sse): Likewise.
6022         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
6023         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
6024         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
6025         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
6026         (*rcpsf2_sse): Likewise.
6027         (*rsqrtsf2_sse): Likewise.
6028         (*sqrt<mode>2_sse): Likewise.
6029         (sse4_1_round<mode>2): Likewise.
6030         (*sse_prologue_save_insn): Disallow REX prefix for AVX.
6031         Support AVX.  Set length attribute properly for AVX.
6032
6033         * config/i386/i386-modes.def (VECTOR_MODES (INT, 32)): New.
6034         (VECTOR_MODES (FLOAT, 32)): Likewise.
6035         (VECTOR_MODE (INT, DI, 8)): Likewise.
6036         (VECTOR_MODE (INT, HI, 32)): Likewise.
6037         (VECTOR_MODE (INT, QI, 64)): Likewise.
6038         (VECTOR_MODE (FLOAT, DF, 8)): Likewise.
6039         (VECTOR_MODE (FLOAT, SF, 16)): Likewise.
6040         (VECTOR_MODE (INT, DI, 4)): Removed.
6041         (VECTOR_MODE (INT, SI, 8)): Likewise.
6042         (VECTOR_MODE (INT, HI, 16)): Likewise.
6043         (VECTOR_MODE (INT, QI, 32)): Likewise.
6044         (VECTOR_MODE (FLOAT, SF, 8)): Likewise.
6045         (INT_MODE (OI, 32)): Likewise.
6046
6047         * config/i386/i386.opt (mavx): New.
6048         (mfma): Likewise.
6049
6050         * config/i386/i386-protos.h (ix86_attr_length_vex_default): New.
6051
6052         * config/i386/mmx.md (*mov<mode>_internal_rex64): Support AVX.
6053         (*mov<mode>_internal_avx): New.
6054         (*movv2sf_internal_rex64_avx): Likewise.
6055         (*movv2sf_internal_avx): Likewise.
6056
6057         * config/i386/predicates.md (const_4_to_5_operand): New.
6058         (const_6_to_7_operand): Likewise.
6059         (const_8_to_11_operand): Likewise.
6060         (const_12_to_15_operand): Likewise.
6061         (avx_comparison_float_operator): Likewise.
6062
6063         * config/i386/sse.md (AVX256MODEI): New.
6064         (AVX256MODE): Likewise.
6065         (AVXMODEQI): Likewise.
6066         (AVXMODE): Likewise.
6067         (AVX256MODEF2P): Likewise.
6068         (AVX256MODE2P): Likewise.
6069         (AVX256MODE4P): Likewise.
6070         (AVX256MODE8P): Likewise.
6071         (AVXMODEF2P): Likewise.
6072         (AVXMODEF4P): Likewise.
6073         (AVXMODEDCVTDQ2PS): Likewise.
6074         (AVXMODEDCVTPS2DQ): Likewise.
6075         (avxvecmode): Likewise.
6076         (avxvecpsmode): Likewise.
6077         (avxhalfvecmode): Likewise.
6078         (avxscalarmode): Likewise.
6079         (avxcvtvecmode): Likewise.
6080         (avxpermvecmode): Likewise.
6081         (avxmodesuffixf2c): Likewise.
6082         (avxmodesuffixp): Likewise.
6083         (avxmodesuffixs): Likewise.
6084         (avxmodesuffix): Likewise.
6085         (vpermilbits): Likewise.
6086         (pinsrbits): Likewise.
6087         (mov<mode>): Likewise.
6088         (*mov<mode>_internal): Likewise.
6089         (push<mode>1): Likewise.
6090         (movmisalign<mode>): Likewise.
6091         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Likewise.
6092         (avx_movdqu<avxmodesuffix>): Likewise.
6093         (avx_lddqu<avxmodesuffix>): Likewise.
6094         (<plusminus_insn><mode>3): Likewise.
6095         (*avx_<plusminus_insn><mode>3): Likewise.
6096         (*avx_vm<plusminus_insn><mode>3): Likewise.
6097         (mul<mode>3): Likewise.
6098         (*avx_mul<mode>3): Likewise.
6099         (*avx_vmmul<mode>3): Likewise.
6100         (divv8sf3): Likewise.
6101         (divv4df3): Likewise.
6102         (avx_div<mode>3): Likewise.
6103         (*avx_div<mode>3): Likewise.
6104         (*avx_vmdiv<mode>3): Likewise.
6105         (avx_rcpv8sf2): Likewise.
6106         (*avx_vmrcpv4sf2): Likewise.
6107         (sqrtv8sf2): Likewise.
6108         (avx_sqrtv8sf2): Likewise.
6109         (*avx_vmsqrt<mode>2): Likewise.
6110         (rsqrtv8sf2): Likewise.
6111         (avx_rsqrtv8sf2): Likewise.
6112         (*avx_vmrsqrtv4sf2): Likewise.
6113         (<code><mode>3): Likewise.
6114         (*avx_<code><mode>3_finite): Likewise.
6115         (*avx_<code><mode>3): Likewise.
6116         (*avx_vm<code><mode>3): Likewise.
6117         (*avx_ieee_smin<mode>3): Likewise.
6118         (*avx_ieee_smax<mode>3): Likewise.
6119         (avx_addsubv8sf3): Likewise.
6120         (avx_addsubv4df3): Likewise.
6121         (*avx_addsubv4sf3): Likewise.
6122         (*avx_addsubv2df3): Likewise.
6123         (avx_h<plusminus_insn>v4df3): Likewise.
6124         (avx_h<plusminus_insn>v8sf3): Likewise.
6125         (*avx_h<plusminus_insn>v4sf3): Likewise.
6126         (*avx_h<plusminus_insn>v2df3): Likewise.
6127         (avx_cmpp<avxmodesuffixf2c><mode>3): Likewise.
6128         (avx_cmps<ssemodesuffixf2c><mode>3): Likewise.
6129         (*avx_maskcmp<mode>3): Likewise.
6130         (avx_nand<mode>3): Likewise.
6131         (*avx_<code><mode>3): Likewise.
6132         (*avx_nand<mode>3): Likewise.
6133         (*avx_<code><mode>3): Likewise.
6134         (*avx_cvtsi2ss): Likewise.
6135         (*avx_cvtsi2ssq): Likewise.
6136         (*avx_cvtsi2sd): Likewise.
6137         (*avx_cvtsi2sdq): Likewise.
6138         (*avx_cvtsd2ss): Likewise.
6139         (avx_cvtss2sd): Likewise.
6140         (avx_cvtdq2ps<avxmodesuffix>): Likewise.
6141         (avx_cvtps2dq<avxmodesuffix>): Likewise.
6142         (avx_cvttps2dq<avxmodesuffix>): Likewise.
6143         (*avx_cvtsi2sd): Likewise.
6144         (*avx_cvtsi2sdq): Likewise.
6145         (avx_cvtdq2pd256): Likewise.
6146         (avx_cvtpd2dq256): Likewise.
6147         (avx_cvttpd2dq256): Likewise.
6148         (*avx_cvtsd2ss): Likewise.
6149         (*avx_cvtss2sd): Likewise.
6150         (avx_cvtpd2ps256): Likewise.
6151         (avx_cvtps2pd256): Likewise.
6152         (*avx_movhlps): Likewise.
6153         (*avx_movlhps): Likewise.
6154         (avx_unpckhps256): Likewise.
6155         (*avx_unpckhps): Likewise.
6156         (avx_unpcklps256): Likewise.
6157         (*avx_unpcklps): Likewise.
6158         (avx_movshdup256): Likewise.
6159         (avx_movsldup256): Likewise.
6160         (avx_shufps256): Likewise.
6161         (avx_shufps256_1): Likewise.
6162         (*avx_shufps_<mode>): Likewise.
6163         (*avx_loadhps): Likewise.
6164         (*avx_storelps): Likewise.
6165         (*avx_loadlps): Likewise.
6166         (*avx_movss): Likewise.
6167         (*vec_dupv4sf_avx): Likewise.
6168         (*vec_concatv2sf_avx): Likewise.
6169         (*vec_concatv4sf_avx): Likewise.
6170         (*vec_setv4sf_0_avx): Likewise.
6171         (*vec_setv4sf_avx): Likewise.
6172         (*avx_insertps): Likewise.
6173         (avx_vextractf128<mode>): Likewise.
6174         (vec_extract_lo_<mode>): Likewise.
6175         (vec_extract_hi_<mode>): Likewise.
6176         (vec_extract_lo_<mode>): Likewise.
6177         (vec_extract_hi_<mode>): Likewise.
6178         (vec_extract_lo_v16hi): Likewise.
6179         (vec_extract_hi_v16hi): Likewise.
6180         (vec_extract_lo_v32qi): Likewise.
6181         (vec_extract_hi_v32qi): Likewise.
6182         (avx_unpckhpd256): Likewise.
6183         (*avx_unpckhpd): Likewise.
6184         (avx_movddup256): Likewise.
6185         (*avx_movddup): Likewise.
6186         (avx_unpcklpd256): Likewise.
6187         (*avx_unpcklpd): Likewise.
6188         (avx_shufpd256): Likewise.
6189         (avx_shufpd256_1): Likewise.
6190         (*avx_punpckhqdq): Likewise.
6191         (*avx_punpcklqdq): Likewise.
6192         (*avx_shufpd_<mode>): Likewise.
6193         (*avx_storehpd): Likewise.
6194         (*avx_loadhpd): Likewise.
6195         (*avx_loadlpd): Likewise.
6196         (*avx_movsd): Likewise.
6197         (*vec_concatv2df_avx): Likewise.
6198         (*avx_<plusminus_insn><mode>3): Likewise.
6199         (*avx_<plusminus_insn><mode>3): Likewise.
6200         (*avx_mulv8hi3): Likewise.
6201         (*avxv8hi3_highpart): Likewise.
6202         (*avx_umulv8hi3_highpart): Likewise.
6203         (*avx_umulv2siv2di3): Likewise.
6204         (*avx_mulv2siv2di3): Likewise.
6205         (*avx_pmaddwd): Likewise.
6206         (*avx_mulv4si3): Likewise.
6207         (*avx_ashr<mode>3): Likewise.
6208         (*avx_lshr<mode>3): Likewise.
6209         (*avx_ashl<mode>3): Likewise.
6210         (*avx_<code><mode>3): Likewise.
6211         (*avx_eq<mode>3): Likewise.
6212         (*avx_gt<mode>3): Likewise.
6213         (*avx_nand<mode>3): Likewise.
6214         (*avx_nand<mode>3): Likewise.
6215         (*avx_<code><mode>3): Likewise.
6216         (*avx_<code><mode>3): Likewise.
6217         (*avx_packsswb): Likewise.
6218         (*avx_packssdw): Likewise.
6219         (*avx_packuswb): Likewise.
6220         (*avx_punpckhbw): Likewise.
6221         (*avx_punpcklbw): Likewise.
6222         (*avx_punpckhwd): Likewise.
6223         (*avx_punpcklwd): Likewise.
6224         (*avx_punpckhdq): Likewise.
6225         (*avx_punpckldq): Likewise.
6226         (*avx_pinsr<avxmodesuffixs>): Likewise.
6227         (*avx_pinsrq): Likewise.
6228         (*avx_loadld): Likewise.
6229         (*vec_extractv2di_1_rex64_avx): Likewise.
6230         (*vec_extractv2di_1_avx): Likewise.
6231         (*vec_dupv2di_avx): Likewise.
6232         (*vec_concatv2si_avx): Likewise.
6233         (*vec_concatv4si_1_avx): Likewise.
6234         (*vec_concatv2di_avx): Likewise.
6235         (*vec_concatv2di_rex64_avx): Likewise.
6236         (*avx_uavgv16qi3): Likewise.
6237         (*avx_uavgv8hi3): Likewise.
6238         (*avx_psadbw): Likewise.
6239         (avx_movmskp<avxmodesuffixf2c>256): Likewise.
6240         (*avx_phaddwv8hi3): Likewise.
6241         (*avx_phadddv4si3): Likewise.
6242         (*avx_phaddswv8hi3): Likewise.
6243         (*avx_phsubwv8hi3): Likewise.
6244         (*avx_phsubdv4si3): Likewise.
6245         (*avx_phsubswv8hi3): Likewise.
6246         (*avx_pmaddubsw128): Likewise.
6247         (*avx_pmulhrswv8hi3): Likewise.
6248         (*avx_pshufbv16qi3): Likewise.
6249         (*avx_psign<mode>3): Likewise.
6250         (*avx_palignrti): Likewise.
6251         (avx_blendp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
6252         (avx_blendvp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
6253         (avx_dpp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
6254         (*avx_mpsadbw): Likewise.
6255         (*avx_packusdw): Likewise.
6256         (*avx_pblendvb): Likewise.
6257         (*avx_pblendw): Likewise.
6258         (avx_vtestp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
6259         (avx_ptest256): Likewise.
6260         (avx_roundp<avxmodesuffixf2c>256): Likewise.
6261         (*avx_rounds<ssemodesuffixf2c>): Likewise.
6262         (*avx_aesenc): Likewise.
6263         (*avx_aesenclast): Likewise.
6264         (*avx_aesdec): Likewise.
6265         (*avx_aesdeclast): Likewise.
6266         (avx_vzeroupper): Likewise.
6267         (avx_vzeroupper_rex64): Likewise.
6268         (avx_vpermil<mode>): Likewise.
6269         (avx_vpermilvar<mode>3): Likewise.
6270         (avx_vpermil2<mode>3): Likewise.
6271         (avx_vperm2f128<mode>3): Likewise.
6272         (avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>): Likewise.
6273         (avx_vbroadcastss256): Likewise.
6274         (avx_vbroadcastf128_p<avxmodesuffixf2c>256): Likewise.
6275         (avx_vinsertf128<mode>): Likewise.
6276         (vec_set_lo_<mode>): Likewise.
6277         (vec_set_hi_<mode>): Likewise.
6278         (vec_set_lo_<mode>): Likewise.
6279         (vec_set_hi_<mode>): Likewise.
6280         (vec_set_lo_v16hi): Likewise.
6281         (vec_set_hi_v16hi): Likewise.
6282         (vec_set_lo_v32qi): Likewise.
6283         (vec_set_hi_v32qi): Likewise.
6284         (avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
6285         (avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>): Likewise.
6286         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
6287         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Likewise.
6288         (vec_init<mode>): Likewise.
6289         (*vec_concat<mode>_avx): Likewise.
6290         (blendbits): Support V8SF and V4DF.
6291         (sse2_movq128): Support AVX.
6292         (<sse>_movnt<mode>): Likewise.
6293         (sse2_movntv2di): Likewise.
6294         (sse_rcpv4sf2): Likewise.
6295         (sse_sqrtv4sf2): Likewise.
6296         (sse_rsqrtv4sf2): Likewise.
6297         (<sse>_comi): Likewise.
6298         (<sse>_ucomi): Likewise.
6299         (sse_cvtss2si): Likewise.
6300         (sse_cvtss2si_2): Likewise.
6301         (sse_cvtss2siq): Likewise.
6302         (sse_cvtss2siq_2): Likewise.
6303         (sse_cvttss2si): Likewise.
6304         (sse_cvttss2siq): Likewise.
6305         (sse2_cvtsd2si): Likewise.
6306         (sse2_cvtsd2si_2): Likewise.
6307         (sse2_cvtsd2siq): Likewise.
6308         (sse2_cvtsd2siq_2): Likewise.
6309         (sse2_cvttsd2si): Likewise.
6310         (sse2_cvttsd2siq): Likewise.
6311         (sse2_cvtdq2pd): Likewise.
6312         (*sse2_cvtpd2dq): Likewise.
6313         (*sse2_cvttpd2dq): Likewise.
6314         (*sse2_cvtpd2ps): Likewise.
6315         (sse2_cvtps2pd): Likewise.
6316         (sse3_movshdup): Likewise.
6317         (sse3_movsldup): Likewise.
6318         (sse_storehps): Likewise.
6319         (*sse4_1_extractps): Likewise.
6320         (sse2_storelpd): Likewise.
6321         (vec_dupv2df_sse3): Likewise.
6322         (*vec_concatv2df_sse3): Likewise.
6323         (*sse4_1_pextrb): Likewise.
6324         (*sse4_1_pextrb_memory): Likewise.
6325         (*sse2_pextrw): Likewise.
6326         (*sse4_1_pextrw_memory): Likewise.
6327         (*sse4_1_pextrd): Likewise.
6328         (*sse4_1_pextrq): Likewise.
6329         (sse2_pshufd_1): Likewise.
6330         (sse2_pshuflw_1): Likewise.
6331         (sse2_pshufhw_1): Likewise.
6332         (*sse2_storeq_rex64): Likewise.
6333         (*vec_dupv4si): Likewise.
6334         (<sse>_movmskp<ssemodesuffixf2c>): Likewise.
6335         (sse2_pmovmskb): Likewise.
6336         (*sse2_maskmovdqu): Likewise.
6337         (*sse2_maskmovdqu_rex64): Likewise.
6338         (sse_ldmxcsr): Likewise.
6339         (sse_stmxcsr): Likewise.
6340         (abs<mode>2): Likewise.
6341         (sse4_1_movntdqa): Likewise.
6342         (sse4_1_phminposuw): Likewise.
6343         (sse4_1_extendv8qiv8hi2): Likewise.
6344         (*sse4_1_extendv8qiv8hi2): Likewise.
6345         (sse4_1_extendv4qiv4si2): Likewise.
6346         (*sse4_1_extendv4qiv4si2): Likewise.
6347         (sse4_1_extendv2qiv2di2): Likewise.
6348         (*sse4_1_extendv2qiv2di2): Likewise.
6349         (sse4_1_extendv4hiv4si2): Likewise.
6350         (*sse4_1_extendv4hiv4si2): Likewise.
6351         (sse4_1_extendv2hiv2di2): Likewise.
6352         (*sse4_1_extendv2hiv2di2): Likewise.
6353         (sse4_1_extendv2siv2di2): Likewise.
6354         (*sse4_1_extendv2siv2di2): Likewise.
6355         (sse4_1_zero_extendv8qiv8hi2): Likewise.
6356         (*sse4_1_zero_extendv8qiv8hi2): Likewise.
6357         (sse4_1_zero_extendv4qiv4si2): Likewise.
6358         (*sse4_1_zero_extendv4qiv4si2): Likewise.
6359         (sse4_1_zero_extendv2qiv2di2): Likewise.
6360         (*sse4_1_zero_extendv2qiv2di2): Likewise.
6361         (sse4_1_zero_extendv4hiv4si2): Likewise.
6362         (*sse4_1_zero_extendv4hiv4si2): Likewise.
6363         (sse4_1_zero_extendv2hiv2di2): Likewise.
6364         (*sse4_1_zero_extendv2hiv2di2): Likewise.
6365         (sse4_1_zero_extendv2siv2di2): Likewise.
6366         (*sse4_1_zero_extendv2siv2di2): Likewise.
6367         (sse4_1_ptest): Likewise.
6368         (sse4_1_roundp<ssemodesuffixf2c>): Likewise.
6369         (sse4_2_pcmpestri): Likewise.
6370         (sse4_2_pcmpestrm): Likewise.
6371         (sse4_2_pcmpistri): Likewise.
6372         (sse4_2_pcmpistrm): Likewise.
6373         (aesimc): Likewise.
6374         (aeskeygenassist): Likewise.
6375
6376 2008-08-28  Uros Bizjak  <ubizjak@gmail.com>
6377
6378         * config/i386/predicates.md (vzeroall_operation): New.
6379
6380         * config/i386/sse.md (avx_vzeroall): New.
6381         (*avx_vzeroall): Likewise.
6382
6383 2008-08-28  Paul Brook  <paul@codesourcery.com>
6384             Mark Shinwell  <shinwell@codesourcery.com>
6385             Richard Earnshaw  <richard.earnshaw@arm.com>
6386
6387         * config/arm/arm.c (TARGET_MAX_ANCHOR_OFFSET): New.
6388         (TARGET_MIN_ANCHOR_OFFSET): New.
6389         (arm_override_options): Set correct anchor ranges for Thumb-1
6390         and Thumb-2 if required.
6391         (legitimize_pic_address): Handle case involving a TLS symbol
6392         reference with an addend.
6393         (arm_optimization_options): Enable section anchors at -O1 and
6394         above.
6395         * config/arm/arm.h (OPTIMIZATION_OPTIONS): New.
6396         * config/arm/arm-protos.h (arm_optimization_options): New.
6397
6398 2008-08-28  Nick Clifton  <nickc@redhat.com>
6399
6400         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Define.
6401         * config/stormy16/stormy16.md (zero_extendqihi2): Fix length
6402         attribute.
6403
6404         * config/v850/v850.h (IRA_COVER_CLASSES): Define.
6405         * config/v850/v850.md (return): Remove frame size restriction.
6406
6407         * config/mcore/mcore.h (IRA_COVER_CLASSES): Define.
6408
6409         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Define.
6410
6411         * config/fr30/fr30.h (IRA_COVER_CLASSES): Define.
6412
6413         * config/m32r/m32r.h (IRA_COVER_CLASSES): Define.
6414
6415 2008-08-28  Paul Brook  <paul@codesourcery.com>
6416
6417         * config/arm/vfp11.md: Update license notice.
6418         * config/arm/cortex-r4.md: Ditto.
6419
6420 2008-08-28  Richard Guenther  <rguenther@suse.de>
6421
6422         PR tree-optimization/37207
6423         * tree-ssa-ifcombine.c (recognize_single_bit_test): Fix
6424         tuplification bug.
6425
6426 2008-08-28  Dodji Seketeli  <dodji@redhat.com>
6427
6428         PR c++/36741
6429         * tree.c (int_fits_type_p): Don't forget unsigned integers
6430           of type sizetype which higher end word equals -1.
6431
6432 2008-08-28  Ira Rosen  <irar@il.ibm.com>
6433
6434         * target.h (struct vectorize): Add new target builtin.
6435         * tree-vectorizer.c (destroy_loop_vec_info): Call
6436         vect_free_slp_instance instead of vect_free_slp_node.
6437         * tree-vectorizer.h (enum slp_load_perm_type): New.
6438         (struct _slp_instance): Add new fields.
6439         (SLP_INSTANCE_LOAD_PERMUTATION): New.
6440         (SLP_INSTANCE_LOADS): New.
6441         (vect_free_slp_tree): Remove.
6442         (vect_free_slp_instance): Declare.
6443         (SLP_TREE_LOADS_PERM_TYPE, TARG_VEC_PERMUTE_COST): New.
6444         (vectorizable_load): Add argument.
6445         (vect_transform_slp_perm_load): New.
6446         * tree-vect-analyze.c (vect_analyze_operations): Add an argument to
6447         vectorizable_load.
6448         (vect_get_place_in_interleaving_chain): New function.
6449         (vect_free_slp_tree): Make static.
6450         (vect_free_slp_instance): New function.
6451         (vect_build_slp_tree): Add new arguments. Allow load permutations and
6452         collect the load location in the interleaving chain.
6453         (vect_supported_slp_permutation_p): New function.
6454         (vect_supported_load_permutation_p): Likewise.
6455         (vect_analyze_slp_instance): In case of loads permutation, call
6456         vect_supported_load_permutation_p to check that the permutation is
6457         supported.
6458         * target-def.h (TARGET_VECTORIZE_BUILTIN_VEC_PERM): New.
6459         * tree-vect-transform.c (vect_transform_stmt): Add new argument.
6460         (vect_create_mask_and_perm): New function.
6461         (vect_get_mask_element, vect_transform_slp_perm_load): Likewise.
6462         (vectorizable_load): Add an argument. Don't keep the created vectors
6463         statements in the node if permutation is required. Call
6464         vect_transform_slp_perm_load to generate the permutation.
6465         (vect_transform_stmt): Add new argument. Call vectorizable_load with
6466         additional argument.
6467         (vect_schedule_slp_instance): In case of loads permutation, allocate
6468         vectorized statements structure for all the related SLP nodes. Call
6469         vect_transform_stmt with addditional argument.
6470         (vect_transform_loop): Call vect_transform_stmt with correct arguments.
6471         * config/spu/spu.c (spu_builtin_vec_perm): New.
6472         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine.
6473         * config/spu/spu.h (TARG_VEC_PERMUTE_COS): Define.
6474         * config/rs6000/rs6000.c (rs6000_builtin_vec_perm): New.
6475         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine.
6476
6477 2008-08-28  Chris Fairles  <chris.fairles@gmail.com>
6478
6479         * gthr-posix.h (__gthread_create,  __gthread_join, __gthread_detach,
6480         __gthread_mutex_timed_lock, __gthread_recursive_mutex_timed_lock,
6481         __gthread_cond_signal, __gthread_cond_timedwait,
6482         __gthread_cond_timedwait_recursive): New functions.
6483         * gthr-posix.c (pthread_mutex_timedlock, pthread_cond_timedwait):
6484         Likewise.
6485         * gthr.h: Comment on defining __GTHREADS_CXX0X macro in conforming
6486         thread interfaces.
6487
6488 2008-08-28  Richard Guenther  <rguenther@suse.de>
6489
6490         PR middle-end/37005
6491         * fold-const.c (maybe_canonicalize_comparison_1): Require
6492         undefined overflow only for canonicalizing A +- CST cmp CST.
6493         Make sure to not generate new constants that are not inside
6494         their TYPE_MIN/MAX_VALUE range.
6495         (maybe_canonicalize_comparison): Remove undefined overflow
6496         checking from here.
6497         (fold_binary): Remove now duplicate folding.
6498
6499 2008-08-27  Paolo Carlini  <paolo.carlini@oracle.com>
6500
6501         * c-typeck.c (convert_for_assignment): Adjust WARN_FOR_ASSIGNMENT
6502         use not updated in the last change.
6503
6504 2008-08-27  Kaz Kojima  <kkojima@gcc.gnu.org>
6505
6506         * config/sh/sh.h (REG_CLASS_CONTENTS): Drop fr32 from FPUL_REGS.
6507         (IRA_COVER_CLASSES): Add FPUL_REGS.
6508
6509 2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6510
6511         PR 37217
6512         * c-common.c (conversion_warning): Check for null operands.
6513
6514 2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6515
6516         PR c/31673
6517         * c-decl.c (check_for_loop_decls): Improve error message. Give
6518         hint.
6519
6520 2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6521
6522         PR c/37186
6523         * c-typeck.c (WARN_FOR_ASSIGNMENT): Add OPT parameter.
6524         (convert_for_assignment): Pass corrent OPT_W* parameter to
6525         WARN_FOR_ASSIGNMENT.
6526
6527 2008-08-27  Paolo Carlini  <paolo.carlini@oracle.com>
6528
6529         PR c++/35321
6530         * c-common.c (fold_offsetof_1): Handle TARGET_EXPR like CALL_EXPR.
6531
6532 2008-08-27  Paul Brook  <paul@codesourcery.com>
6533
6534         * config.gcc: Loosen checks for arm uclinux eabi targets.
6535
6536 2008-08-27  Paul Brook  <paul@codesourcery.com>
6537
6538         * config/arm/t-arm-coff (LIB1ASMFUNCS): Add missing undescrore on
6539         _clzsi2.
6540         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
6541
6542 2008-08-26  Douglas Gregor  <doug.gregor@gmail.com>
6543
6544         * c-common.c (do_switch_warnings): Look through the CONST_DECLs in
6545         the enumerators of an ENUMERAL_TYPE.
6546         * dbxout.c (dbxout_type): Ditto.
6547
6548 2008-08-26  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6549
6550         PR rtl-opt/37219
6551         * fwprop.c (fwprop): Check that the loop_father is the outer loop.
6552         (fwprop_addr): Check that the loop_father is not the outer loop.
6553
6554 2008-08-26  Paul Brook  <paul@codesourcery.com>
6555
6556         * config/arm/vfp.md: Document fmul{s,d} and fmac{s,d} types.
6557         Remove documentation entry for fmul type.
6558         Use fmuls to annotate single-precision multiplication patterns,
6559         fmuld to annotate double-precision multiplication patterns,
6560         fmacs to annotate single-precision multiply-accumulate patterns
6561         and fmacd to annotate double-precision multiply-accumulate patterns.
6562         * config/arm/vfp11.md: Update reservations accordingly.
6563         * config/arm/arm.md: Note that certain values of the "type"
6564         attribute are documented in vfp.md.
6565         * config/arm/arm1020e.md: Remove out of date duplicate comment.
6566         (v10_cvt): Use new fmul types.
6567
6568 2008-08-26  Paul Brook  <paul@codesourcery.com>
6569
6570         * config/arm/vfp.md: Move pipeline description for VFP11 to...
6571         * config/arm/vfp11.md: ...here.  New.
6572         * config/arm/arm.md: Include vfp11.md.
6573
6574 2008-08-26  Hans-Peter Nilsson  <hp@axis.com>
6575
6576         * opts.c (decode_options) [!IRA_COVER_CLASSES]: Add missing
6577         parameter to inform call.
6578
6579 2008-08-26  Jeff Law  <law@redhat.com>
6580
6581         * mn10300.md (movqi, movhi): Split i->d*a case into two cases to
6582         avoid the possibility of getting DATA_OR_ADDRESS_REGS as the
6583         preferred class when copying a constant into a partial word register.
6584
6585 2008-08-26  Ben Elliston  <bje@au.ibm.com>
6586
6587         * rtlanal.c: Fix uses of "it's" with "its" where appropriate.
6588         * cp/typeck.c: Likewise.
6589         * cp/tree.c: Likewise.
6590         * gimple-low.c: Likewise.
6591         * jump.c: Likewise.
6592
6593 2008-08-26  Vladimir Makarov  <vmakarov@redhat.com>
6594
6595         * ira-build.c, ira-color.c, ira-costs.c, ira.h, ira-lives.c,
6596         ira.c, ira-conflicts.c, ira-emit.c, ira-int.h: New files.
6597
6598         * doc/passes.texi: Describe IRA.
6599
6600         * doc/tm.texi (IRA_COVER_CLASSES,
6601         IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Describe the new macros.
6602
6603         * doc/invoke.texi (ira-max-loops-num): Describe the new parameter.
6604         (-fira, -fira-algorithm, -fira-coalesce, -fno-ira-move-spills,
6605         -fira-propagate-cost, -fno-ira-share-save-slots,
6606         -fno-ira-share-spill-slots, -fira-verbose): Describe new options.
6607
6608         * flags.h (ira_algorithm): New enumeration.
6609         (flag_ira_algorithm, flag_ira_verbose): New external variable
6610         declarations.
6611
6612         * postreload.c (gate_handle_postreload): Don't do post reload
6613         optimizations unless the reload is completed.
6614
6615         * reload.c (push_reload, find_dummy_reload): Use DF_LR_OUT for
6616         IRA.
6617
6618         * tree-pass.h (pass_ira): New external variable declaration.
6619
6620         * reload.h: Add 2008 to the Copyright.
6621
6622         * cfgloopanal.c: Include params.h.
6623         (estimate_reg_pressure_cost): Decrease cost for IRA optimization
6624         mode.
6625
6626         * params.h (IRA_MAX_LOOPS_NUM): New macro.
6627
6628         * toplev.c (ira.h): New include.
6629         (flag_ira_algorithm, flag_ira_verbose): New external variables.
6630         (backend_init_target): Call ira_init.
6631         (backend_init): Call ira_init_once.
6632         (finalize): Call finish_ira_once.
6633
6634         * toplev.h (flag_ira, flag_ira_coalesce, flag_ira_move_spills,
6635         flag_ira_share_save_slots, flag_ira_share_spill_slots): New
6636         external variables.
6637
6638         * regs.h (contains_reg_of_mode, move_cost, may_move_in_cost,
6639         may_move_out_cost): New external variable declarations.
6640         (move_table): New typedef.
6641
6642         * caller-save.c: Include headers output.h and ira.h.
6643         (no_caller_save_reg_set): New global variable.
6644         (save_slots_num, save_slots): New variables.
6645         (reg_save_code, reg_restore_code, add_stored_regs): Add
6646         prototypes.
6647         (init_caller_save): Set up no_caller_save_reg_set.
6648         (init_save_areas): Reset save_slots_num.
6649         (saved_hard_reg): New structure.
6650         (hard_reg_map, saved_regs_num, all_saved_regs): New variables.
6651         (initiate_saved_hard_regs, new_saved_hard_reg,
6652         finish_saved_hard_regs, saved_hard_reg_compare_func): New
6653         functions.
6654         (setup_save_areas): Add code for sharing stack slots.
6655         (all_blocks): New variable.
6656         (save_call_clobbered_regs): Process pseudo-register too.
6657         (mark_set_regs): Process pseudo-register too.
6658         (insert_one_insn): Put the insn after bb note in a empty basic
6659         block.  Add insn check.
6660
6661         * global.c (eliminable_regset): Make it external.
6662         (mark_elimination): Use DF_LR_IN for IRA.
6663         (pseudo_for_reload_consideration_p): New.
6664         (build_insn_chain): Make it external.  Don't ignore spilled
6665         pseudos for IRA.  Use pseudo_for_reload_consideration_p.
6666         (gate_handle_global_alloc): New function.
6667         (pass_global_alloc): Add the gate function.
6668
6669         * opts.c (decode_options): Set up flag_ira.  Print the warning for
6670         -fira.
6671         (common_handle_option): Process -fira-algorithm and -fira-verbose.
6672
6673         * timevar.def (TV_IRA, TV_RELOAD): New passes.
6674
6675         * regmove.c (regmove_optimize): Don't do replacement of output for
6676         IRA.
6677
6678         * hard-reg-set.h (no_caller_save_reg_set, reg_class_subclasses):
6679         New external variable declarations.
6680
6681         * local-alloc.c (update_equiv_regs): Make it external.  Return
6682         true if jump label rebuilding should be done.  Rescan new_insn for
6683         notes.
6684         (gate_handle_local_alloc): New function.
6685         (pass_local_alloc): Add the gate function.
6686
6687         * alias.c (value_addr_p, stack_addr_p): New functions.
6688         (nonoverlapping_memrefs_p): Use them for IRA.
6689
6690         * common.opt (fira, fira-algorithm, fira-coalesce,
6691         fira-move-spills, fira-share-save-slots, fira-share-spill-slots,
6692         fira-verbose): New options.
6693
6694         * regclass.c (reg_class_subclasses, contains_reg_of_mode,
6695         move_cost, may_move_in_cost, may_move_out_cost): Make the
6696         variables external.
6697         (move_table): Remove typedef.
6698         (init_move_cost): Make it external.
6699         (allocate_reg_info, resize_reg_info, setup_reg_classes): New
6700         functions.
6701
6702         * rtl.h (init_move_cost, allocate_reg_info, resize_reg_info,
6703         setup_reg_classes): New function prototypes.
6704         (eliminable_regset): New external variable declaration.
6705         (build_insn_chain, update_equiv_regs): New function prototypes.
6706
6707         * Makefile.in (IRA_INT_H): New definition.
6708         (OBJS-common): Add ira.o, ira-build.o, ira-costs.o,
6709         ira-conflicts.o, ira-color.o, ira-emit.o, and ira-lives.o.
6710         (reload1.o, toplev.o): Add dependence on ira.h.
6711         (cfgloopanal.o): Add PARAMS_H.
6712         (caller-save.o): Add dependence on output.h and ira.h.
6713         (ira.o, ira-build.o, ira-costs.o, ira-conflicts.o, ira-color.o,
6714         ira-emit.o, ira-lives.o): New entries.
6715
6716         * passes.c (pass_ira): New pass.
6717
6718         * params.def (PARAM_IRA_MAX_LOOPS_NUM): New parameter.
6719
6720         * reload1.c (ira.h): Include the header.
6721         (changed_allocation_pseudos): New bitmap.
6722         (init_reload): Initiate the bitmap.
6723         (compute_use_by_pseudos): Permits spilled registers in FROM.
6724         (temp_pseudo_reg_arr): New variable.
6725         (reload): Allocate and free temp_pseudo_reg_arr.  Sort pseudos for
6726         IRA.  Call alter_reg with the additional parameter.  Don't clear
6727         spilled_pseudos for IRA.  Restore original insn chain for IRA.
6728         Clear changed_allocation_pseudos at the end of reload.
6729         (calculate_needs_all_insns): Call IRA's mark_memory_move_deletion.
6730         (hard_regno_to_pseudo_regno): New variable.
6731         (count_pseudo): Check spilled pseudos.  Set up
6732         hard_regno_to_pseudo_regno.
6733         (count_spilled_pseudo): Check spilled pseudos. Update
6734         hard_regno_to_pseudo_regno.
6735         (find_reg): Use better_spill_reload_regno_p.  Check
6736         hard_regno_to_pseudo_regno.
6737         (alter_reg): Set up spilled_pseudos.  Add a new parameter.  Add
6738         code for IRA.
6739         (eliminate_regs_1): Use additional parameter for alter_reg.
6740         (finish_spills): Set up pseudo_previous_regs only for spilled
6741         pseudos.  Call reassign_pseudos once for all spilled pseudos, pass
6742         more arguments.  Don't clear live_throughout and dead_or_set for
6743         spilled pseudos.  Use additional parameter for alter_reg.  Call
6744         mark_allocation_change.  Set up changed_allocation_pseudos.
6745         Remove sanity check.
6746         (emit_input_reload_insns, delete_output_reload): Use additional
6747         parameter for alter_reg.  Call mark_allocation_change.
6748         (substitute, gen_reload_chain_without_interm_reg_p): New
6749         functions.
6750         (reloads_conflict): Use gen_reload_chain_without_interm_reg_p.
6751
6752         * testsuite/gcc.dg/20080410-1.c: New file.
6753
6754         * config/s390/s390.h (IRA_COVER_CLASSES,
6755         IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Define.
6756
6757         * config/sparc/sparc.h (IRA_COVER_CLASSES): New macro.
6758
6759         * config/i386/i386.h (IRA_COVER_CLASSES): Ditto.
6760
6761         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
6762
6763         * config/rs6000/rs6000.h (IRA_COVER_CLASSES): Ditto.
6764
6765         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
6766
6767         * config/alpha/alpha.h (IRA_COVER_CLASSES): Ditto.
6768
6769         2008-08-24  Jeff Law  <law@redhat.com>
6770         * ira.c (setup_reg_class_intersect_union): Prefer smallest class
6771         when ignoring unavailable registers.
6772
6773         2008-08-24  Jeff Law  <law@redhat.com>
6774         * ira-color.c (coalesced_pseudo_reg_slot_compare): Check
6775         FRAME_GROWS_DOWNWARD and STACK_GROWS_DOWNWARD.
6776         * ira.c (setup_eliminable_regset): Check stack_realign_needed.
6777         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): New macro.
6778
6779         2008-06-03 Steve Chamberlain <steve.chamberlain@gmail.com>
6780         * ira-build.c (allocno_range_compare_func): Stabilize sort.
6781
6782         2008-05-29 Andy Hutchinson <hutchinsonandy@aim.com>
6783         * config/avr/avr.h (IRA_COVER_CLASSES): New macro.
6784         * reload1.c (find_reg): Process registers in register allocation order.
6785
6786         2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
6787         * toplev.c (backend_init_target): Move ira_init call from
6788         here...
6789         (lang_dependent_init_target): ...to here.
6790
6791         2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
6792         * ira.c (setup_class_subset_and_memory_move_costs): Don't
6793         calculate memory move costs for NO_REGS.
6794
6795         2008-05-05 Kaz Kojima <kkojima@gcc.gnu.org>
6796         * ira-color.c (ira_fast_allocation): Use no_stack_reg_p only if
6797         STACK_REGS is defined.
6798
6799         2008-04-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
6800         * config/spu/spu.h (IRA_COVER_CLASSES): New macro.
6801
6802         2008-04-04 Bernd Schmidt <bernd.schmidt@analog.com>
6803         * config/bfin/bfin.h (IRA_COVER_CLASSES): New macro.
6804
6805         2008-04-04 Kaz Kojima <kkojima@gcc.gnu.org>
6806         * config/sh/sh.h (IRA_COVER_CLASSES): Define.
6807         * config/sh/sh.md (movsicc_true+3): Check if emit returns a
6808         barrier.
6809
6810 2008-08-26  Victor Kaplansky  <victork@il.ibm.com>
6811             Dorit Nuzman  <dorit@il.ibm.com>
6812
6813         * gcc/config/spu/spu.md (vec_extract_evenv4si,
6814         vec_extract_evenv4sf, vec_extract_evenv8hi,
6815         vec_extract_evenv16qi, vec_extract_oddv4si,
6816         vec_extract_oddv4sf, vec_extract_oddv8hi, vec_extract_oddv16qi,
6817         vec_interleave_highv4sf, vec_interleave_lowv4sf,
6818         vec_interleave_highv4si, vec_interleave_lowv4si,
6819         vec_interleave_highv8hi, vec_interleave_lowv8hi,
6820         vec_interleave_highv16qi, vec_interleave_lowv16qi,
6821         vec_pack_trunc_v8hi, vec_pack_trunc_v4si): Implement.S
6822
6823 2008-08-25  Janis Johnson  <janis187@us.ibm.com>
6824
6825         PR target/36756
6826         * config/rs6000/rs6000.c (optimization_options): Don't default to
6827         section anchors without toplevel reorder.
6828
6829 2008-08-25  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6830
6831         * config/spu/spu_mfcio.h (mfc_begin_critical_section): New function.
6832         (mfc_end_critical_section): Likewise.
6833
6834 2008-08-25  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6835
6836         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Propagate
6837         all type qualifiers from element type to vector type.
6838
6839 2008-08-25  David Daney  <ddaney@avtrex.com>
6840
6841         * config/mips/mips.md (immediate_insn): Move up in file, fix
6842         comment typo, reformat.
6843         (fetchop_bit, atomic_hiqi_op memory_barrier,
6844         sync_compare_and_swap<mode>, compare_and_swap_12, sync_add<mode>,
6845         sync_<optab><mode>, sync_<optab>_12, sync_old_<optab><mode>,
6846         sync_old_<optab>_12, sync_new_<optab><mode>, sync_new_<optab>_12,
6847         sync_nand<mode>, sync_nand_12, sync_old_nand<mode>,
6848         sync_old_nand_12, sync_new_nand<mode>, sync_new_nand_12,
6849         sync_sub<mode>, sync_old_add<mode>, sync_old_sub<mode>,
6850         sync_new_add<mode>, sync_new_sub<mode>, sync_<optab><mode>,
6851         sync_old_<optab><mode>, sync_new_<optab><mode>, sync_nand<mode>,
6852         sync_old_nand<mode>, sync_new_nand<mode>,
6853         sync_lock_test_and_set<mode>, sync_lock_test_and_set<mode>,
6854         test_and_set_12): Moved to sync.md.
6855         (sync.md): Include.
6856         * config/mips/sync.md: New file.
6857
6858 2008-08-25  Richard Henderson  <rth@redhat.com>
6859
6860         * dwarf2out.c (def_cfa_1): Don't scale by DWARF_CIE_DATA_ALIGNMENT.
6861         (regsave): Likewise.
6862         (lookup_cfa_1): Don't rescale by DWARF_CIE_DATA_ALIGNMENT.
6863         (output_cfi_directive): Likewise.
6864         (div_data_align): New.
6865         (output_cfi): Use it.
6866
6867 2008-08-24  Adam Nemet  <anemet@caviumnetworks.com>
6868
6869         * config.gcc (mips64*-*-linux*): Handle mips64octeon*-*-linux*.
6870         * config/mips/mips.h (enum processor_type): Add PROCESSOR_OCTEON.
6871         (TARGET_OCTEON): New macro.
6872         (TARGET_CPU_CPP_BUILTINS): Define __OCTEON__ for Octeon.
6873         (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC): Handle -march=octeon.
6874         (ISA_HAS_POP): New macro.
6875         * config/mips/driver-native.c (host_detect_local_cpu): Handle
6876         Octeon.
6877         * config/mips/mips.c (mips_cpu_info_table, mips_rtx_cost_data):
6878         Handle Octeon.
6879         * config/mips/mips.md (cpu): Add octeon.
6880         (type): Add pop attribute value.
6881         (popcount<mode>2): New pattern.
6882         * doc/invoke.texi (-march=@var{arch}): Add octeon.
6883
6884 2008-08-24  Jan Hubicka  <jh@suse.cz>
6885
6886         * doc/invoke.texi (-fipa-cp-clone): New option.
6887         (-fipa-cp): Update docs.
6888         (--param ipcp-unit-growth):New.
6889         * ipa-cp.c: Include fibheap.h, params.h
6890         (ipcp_initialize_node_lattices): When not cloning, all externally
6891         visible functions are bottom.
6892         (ipcp_need_redirect_p): Accept clones.
6893         (ipcp_insert_stage): Use cost driven heuristics.
6894         (max_count, dead_nodes): New static vars.
6895         (ipcp_need_original_clone_p, ipcp_estimate_cloning_cost,
6896         ipcp_const_param_count): New functions.
6897         * common.opt (ipa-cp-clone): New command line option.
6898         * params.def (ipcp-unit-growth): New.
6899
6900 2008-08-24  Jan Hubicka  <jh@suse.cz>
6901
6902         * tree-inline.c (tree_function_versioning): Look harder
6903         for referenced vars.
6904
6905 2008-08-24  Razya Ladelsky  <razya@il.ibm.com>
6906
6907         PR tree-optimization/37185
6908         * matrix-reorg.c (transform_access_sites): Update changed stmt.
6909
6910 2008-08-23  Jan Hubicka  <jh@suse.cz>
6911
6912         * ipa-cp.c (ipcp_analyze_node): New function.
6913         (ipcp_update_cloned_node): Use it.
6914         (ipcp_init_stage): Likewise.
6915         * ipa-inline.c (function_insertion_hook_holder): New static var.
6916         (analyze_function): Break out from ....
6917         (inline_generate_summary): Here; register insertion hook.
6918         (cgraph_decide_inlining): Remove hook.
6919         (add_new_function): New function.
6920
6921 2008-08-23  Jan Hubicka  <jh@suse.cz>
6922
6923         * opts.c (decode_options): Revert accidental change enabling ipa-cp.
6924
6925 2008-08-23  Jan Hubicka  <jh@suse.cz>
6926
6927         * ipa-cp.c (constant_val_insert): Remove.
6928         (ipcp_propagate_one_const): Remove.
6929         (ipcp_create_replace_map): Always insert replacements to the map.
6930         (ipcp_insert_stage): Do not try to insert statements by hand.
6931         * tree-inline.c (insert_init_stmt): Break out from ...
6932         (setup_one_parameter): ... here; allow NULL BB pointer.
6933         (tree_function_versioning): Use setup_one_parameter to process
6934         replacement map.
6935
6936 2008-08-23  Jan Hubicka  <jh@suse.cz>
6937
6938         * tree.c (decl_address_ip_invariant_p): New function.
6939         * tree.h (decl_address_ip_invariant_p): Declare.
6940         * gimple.c (strip_invariant_refs): Break out from ...
6941         (is_gimple_invariant_address): ... here
6942         (is_gimple_ip_invariant_address): New function.
6943         (is_gimple_ip_invariant): New function.
6944         * gimple.h (is_gimple_ip_invariant_address, is_gimple_ip_invariant):
6945         Declare.
6946
6947         * ipa-cp.c (ipcp_lat_is_const): Remove handling of IPA_CONST_VALUE_REF.
6948         (ipcp_lat_is_insertable): All constants are insertable.
6949         (ipcp_lattice_from_jfunc, ipcp_print_all_lattices): Remove handling of
6950         IPA_CONST_VALUE_REF.
6951         (ipcp_initialize_node_lattices): Propagate all types of operands.
6952         (build_const_val): Do not handle IPA_CONST_VALUE_REF.
6953         (ipcp_create_replace_map): Reformat.
6954         (ipcp_need_redirect_p): Simplify.
6955         (ipcp_insert_stage): Check that argument is used before clonning.
6956         * ipa-prop.c (ipa_print_node_jump_functions): Do not handle
6957         IPA_CONST_REF.
6958         (compute_scalar_jump_functions): Simplify using is_gimple_ip_invariat.
6959         (determine_cst_member_ptr): Keep wrapping ADDR_EXPR of members.
6960         (update_call_notes_after_inlining): Expect ADDR_EXPR in operand.
6961         * ipa-prop.h (jump_func_type): Remove IPA_CONST_REF.
6962         (jump_func_type): Remove IPA_CONST_VALUE_REF.
6963         * tree-inline.c (tree_function_versioning): Add variables referenced
6964         by replacing trees.
6965
6966 2008-08-23  Jan Hubicka  <jh@suse.cz>
6967
6968         PR target/37094
6969         * i386.c (standard_80387_constant_p): Use optimize_size.
6970
6971 2008-08-23  Ira Rosen  <irar@il.ibm.com>
6972
6973         PR tree-optimization/37161
6974         * tree-vectorizer.h (vect_get_smallest_scalar_type): Declare.
6975         * tree-vect-analyze.c (vect_get_smallest_scalar_type): New function.
6976         (vect_determine_vectorization_factor): Move the scalar type
6977         retrieval to vect_get_smallest_scalar_type.
6978         (vect_build_slp_tree): Call vect_get_smallest_scalar_type to get
6979         scalar type. Remove redundant computation.
6980         * tree-vect-transform.c (vect_get_constant_vectors): Add argument.
6981         (vect_get_slp_defs): Take the type of RHS into account if
6982         necessary by calling vect_get_smallest_scalar_type. Call
6983         vect_get_constant_vectors with additional argument.
6984
6985 2008-08-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6986
6987         PR 35648
6988         * doc/invoke.texi (Wwrite-strings): Clarify description.
6989
6990 2008-08-23  Ira Rosen  <irar@il.ibm.com>
6991
6992         PR tree-optimization/37174
6993         * tree-vect-analyze.c (vect_get_and_check_slp_defs): Check that the
6994         def stmt is a part of the loop before accessing its stmt_vec_info.
6995
6996 2008-08-22  Anatoly Sokolov  <aesok@post.ru>
6997
6998         PR target/11259
6999         * config/avr/avr.md (UNSPEC_SWAP): New constants.
7000         (*swap): New insn pattern.
7001         (*ashlqi3): Rename from ashlqi3 insn pattern.
7002         (ashlqi3): New expanders.
7003         (*lshrqi3): Rename from lshrqi3 insn pattern.
7004         (lshrqi3): New expanders.
7005         (ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, lshrqi3_const4,
7006         lshrqi3_const5, lshrqi3_const6): New splitters.
7007         (andi, ashlqi3_l_const4, ashlqi3_l_const5, ashlqi3_l_const6,
7008         lshrqi3_l_const4, lshrqi3_l_const5, lshrqi3_l_const6): Define
7009         peephole2 patterns.
7010
7011 2008-08-22  Richard Guenther  <rguenther@suse.de>
7012
7013         PR tree-optimization/37078
7014         * tree-vrp.c (extract_range_from_unary_expr): Avoid generating
7015         [+INF, +INF] ranges.
7016
7017 2008-08-22  Richard Guenther  <rguenther@suse.de>
7018
7019         PR tree-optimization/37143
7020         * tree-vect-transform.c (vect_create_cond_for_align_checks): Build
7021         a conversion statement instead of a copy.
7022
7023 2008-08-22  Uros Bizjak  <ubizjak@gmail.com>
7024
7025         PR target/37184
7026         * config/i386/i386.c (ix86_match_ccmode): Handle CCAmode,
7027         CCCmode, CCOmode and CCSmode destination modes.
7028
7029         PR target/37191
7030         * config/i386/mmx.md (*vec_extractv2sf_0): Avoid combining registers
7031         from different units in a single alternative.
7032         (*vec_extractv2sf_1): Ditto.
7033         (*vec_extractv2si_0): Ditto.
7034         (*vec_extractv2si_1): Ditto.
7035         * config/i386/sse.md (sse2_storehpd): Ditto.
7036         (sse2_storelpd): Ditto.
7037         (sse2_loadhpd): Ditto.
7038         (sse2_loadlpd): Ditto.
7039
7040         PR target/37197
7041         * config/i386/i386.md (clzsi2_abm): Fix operand 1 constraints.
7042         (popcountsi2): Ditto.
7043         (clzdi2_abm): Ditto.
7044         (popcountdi2): Ditto.
7045         (clzhi2_abm): Ditto.
7046         (popcounthi2): Ditto.
7047
7048 2008-08-22  Richard Guenther  <rguenther@suse.de>
7049
7050         PR middle-end/36548
7051         PR middle-end/37125
7052         * fold-const.c (extract_muldiv_1): Optimize (X * C1) % C2 only
7053         if the multiplication does not overflow.
7054
7055 2008-08-21  Nathan Sidwell  <nathan@codesourcery.com>
7056
7057         * c-ppoutput.c (init_pp_output): Initialize src_line to 1.
7058
7059 2008-08-21  Richard Henderson  <rth@redhat.com>
7060
7061         * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Remove
7062         spurrious comma from test.
7063         * configure: Rebuild.
7064
7065 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7066
7067         PR 30457
7068         * builtins.c (fold_builtin_next_arg): Add warning about undefined
7069         behaviour.
7070
7071 2008-08-21  Aldy Hernandez  <aldyh@redhat.com>
7072
7073         * c-tree.h (grokfield): New argument.
7074         * c-decl.c (grokfield): Handle new location argument.
7075         * c-parser.c (c_parser_struct_declaration): Pass location to grokfield.
7076
7077 2008-08-21  Richard Guenther  <rguenther@suse.de>
7078
7079         * tree-ssa-ccp.c (ccp_fold): Fold VIEW_CONVERT_EXPRs of constants.
7080
7081 2008-08-21  Jan Hubicka  <jh@suse.cz>
7082
7083         * cgraph.c (first_cgraph_function_insertion_hook): New variable.
7084         (cgraph_add_function_insertion_hook,
7085         cgraph_remove_function_insertion_hook,
7086         cgraph_call_function_insertion_hooks): New functions.
7087         * cgraph.h (cgraph_add_function_insertion_hook,
7088         cgraph_remove_function_insertion_hook,
7089         cgraph_call_function_insertion_hooks): Declare.
7090         * ipa-reference.c (function_insertion_hook_holder): New variable.
7091         (check_operand, look_for_address_of): When checking late, do not care
7092         about module bitmaps.
7093         (add_new_function): New function.
7094         (generate_summary): Register hooks; zero module bitmaps.
7095         (propagate): Unregister hooks.
7096         * ipa-pure-const.c (function_insertion_hook_holder): New variable.
7097         (add_new_function): New function.
7098         (generate_summary): Register hook.
7099         (propagate): Remove hook.
7100
7101         * ipa-cp.c (ipcp_need_redirect_p): Fix to not be constant 0.
7102
7103         * tree-pass.h (pass_ipa_cp): Make ipa_opt_pass.
7104         * ipa-cp.c (ipcp_update_cloned_node): New function.
7105         (build_const_val): Handle functions correctly; bring type logic
7106         into sync with tree-inline.c
7107         (ipcp_init_stage):  Take care of computing stuff needed by
7108         indirect inlining; update clones.
7109         (ipcp_generate_summary): Break out of ipcp_driver.
7110         (ipcp_driver): Do only execution and transformation.
7111         (pass_ipa_cp): Make IPA_PASS.
7112         * tree-ssa-ccp.c (fold_stmt_r): Check type before trying to fold
7113         offset to address.
7114         * ipa-inline.c (inline_indirect_intraprocedural_analysis): When doing
7115         ipcp, some info is already available.
7116         * ipa-prop.c (ipa_count_arguments): Grow edge lists as needed.
7117         * tree-inline.c (remap_ssa_name): Unshare expression.
7118
7119 2008-08-21  Richard Guenther  <rguenther@suse.de>
7120
7121         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
7122         a PHI ask VN if it is already available.
7123         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
7124         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
7125
7126 2008-08-21  Richard Guenther  <rguenther@suse.de>
7127
7128         PR middle-end/36817
7129         * tree-chrec.c (chrec_apply): Always call chrec_fold_plus which
7130         makes sure to produce a result of the correct type.
7131
7132 2008-08-21  Jan Hubicka  <jh@suse.cz>
7133         Backport from LTO branch:
7134
7135         2008-05-05  Kenneth Zadeck <zadeck@naturalbridge.com>
7136                     Jan Hubicka  <jh@suse.cz>
7137
7138         * ipa-pure-const.c
7139         (init_state, finish_state, set_function_state, generate_summary):
7140         New functions.
7141         (scan_stmt): Renamed from scan_function.  Changed to keep state in
7142         local static vars rather than cgraph aux field.
7143         (propagate): Renamed from static_execute. Changed to keep state in
7144         local static vars rather than cgraph aux field.
7145         (pass_ipa_pure_const): Changed from SIMPLE_IPA_PASS to IPA_PASS.
7146         * tree-pass.h (pass_ipa_pure_const): Turn into IPA_PASS.
7147
7148         2008-07-15  Kenneth Zadeck <zadeck@naturalbridge.com>
7149
7150         * tree-pass.h (pass_ipa_reference): Make into ipa_opt_pass.
7151         * ipa-reference.c (init_function_info, generate_summary,
7152         propagate): New functions.
7153         (analyze_function):  Call init_function_info.
7154         (static_execute): Stripped into generate_summary and propagate.
7155         (pass_ipa_reference): Made into ipa_opt_pass.
7156
7157 2008-08-21  Richard Guenther  <rguenther@suse.de>
7158
7159         PR tree-optimization/37181
7160         * tree-vrp.c (extract_range_from_binary_expr): Check for NULL
7161         folding result.
7162         (extract_range_from_unary_expr): Likewise.
7163
7164 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7165
7166         * diagnostic.c (pedwarn_at): Rename as pedwarn.
7167         (pedwarn): Delete.
7168         * toplev.h (pedwarn_at): Likewise.
7169         * builtins.c: Update all calls to pedwarn.
7170         * c-lex.c: Likewise.
7171         * toplev.c: Likewise.
7172         * c-tree.h: Likewise.
7173         * c-decl.c: Likewise.
7174         * c-errors.c: Likewise.
7175         * c-typeck.c: Likewise.
7176         * c-common.c: Likewise.
7177         * c-parser.c: Likewise.
7178
7179 2008-08-20  Joseph Myers  <joseph@codesourcery.com>
7180
7181         PR target/31070
7182         * config/sparc/sparc.c (function_arg_slotno): Handle structure
7183         with MODE_VECTOR_INT mode.
7184
7185 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7186
7187         PR middle-end/179
7188         * tree-ssa.c (warn_uninit): Do not warn for variables that can be
7189         initialized outside the current module.
7190         (warn_uninitialized_var): Ignore left-hand side when walking the
7191         trees. Ignore address expressions. Examine VUSE operands in gimple
7192         statements with a variable declaration on the right-hand side.
7193
7194 2008-08-20  Richard Sandiford  <rdsandiford@googlemail.com>
7195
7196         PR bootstrap/37155
7197         * rtlanal.c (subreg_offset_representable_p): Revert last change.
7198
7199 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7200
7201         PR 35701
7202         * c-common.c (conversion_warning): Do not warn if applying bit-and
7203         operator to unsigned constant that fits in the target type.
7204
7205 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7206
7207         PR c++/35602
7208         * c-common.c (conversion_warning): Do not warn for artificial
7209         expressions.
7210
7211 2008-08-20  Richard Guenther  <rguenther@suse.de>
7212
7213         * tree-vrp.c (op_with_constant_singleton_value_range): New function.
7214         (extract_range_from_binary_expr): Fall back to constant propagation.
7215         (extract_range_from_unary_expr): Likewise.
7216
7217 2008-08-20  Richard Guenther  <rguenther@suse.de>
7218
7219         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Do not mess
7220         with TREE_THIS_VOLATILE on shared nodes.
7221         (fold_stmt_r): Likewise.
7222
7223 2008-08-20  Jakub Jelinek  <jakub@redhat.com>
7224
7225         PR c/37171
7226         * c-parser.c (c_parser_attributes): For keywords use canonical
7227         spelling for attr_name.
7228
7229 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7230
7231         * value-prof.c (check_counter): Revert wrong call to error.
7232
7233 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7234
7235         * profile.c: Update calls to inform.
7236         * value-prof.c: Update calls to inform.
7237
7238 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7239
7240         * diagnostic.c (inform): Add an explicit location_t parameter.
7241         * toplev.h (inform): Update declaration.
7242         * builtins.c: Update all calls to inform.
7243         * c-common.c: Likewise.
7244         * c-decl.c: Likewise.
7245         * c-opts.c: Likewise.
7246         * c-pch.c: Likewise.
7247         * c-pragma.c: Likewise.
7248         * c-typeck.c: Likewise.
7249         * coverage.c: Likewise.
7250         * opts.c: Likewise.
7251         * toplev.c: Likewise.
7252         * tree-cfg.c: Likewise.
7253         * tree-ssa.c: Likewise.
7254
7255 2008-08-20  H.J. Lu  <hongjiu.lu@intel.com>
7256
7257         PR target/37169
7258         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): In
7259         V2DI mode, for SSE4.1, use movq instead of vector set if the
7260         second element is zero and inter-unit moves are OK.
7261
7262 2008-08-20  Richard Guenther  <rguenther@suse.de>
7263
7264         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): More
7265         properly handle conversion/copy chains after tuplification.
7266
7267 2008-08-20  Richard Guenther  <rguenther@suse.de>
7268
7269         * passes.c (init_optimization_passes): Move the second
7270         forwprop pass before alias computation.  Remove the second
7271         DCE pass.  Remove the first dominator and phi copy/const
7272         prop passes.
7273
7274 2008-08-20  Nick Clifton  <nickc@redhat.com>
7275
7276         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Always test for assembler
7277         support of this feature.  Do not assume that a sufficiently new
7278         assembler will support the feature regardless of the target type.
7279         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
7280         * configure: Regenerate.
7281
7282 2008-08-20  Richard Guenther  <rguenther@suse.de>
7283
7284         * tree-vrp.c (found_in_subgraph): Remove.
7285         (live): New global static.
7286         (live_on_edge): New function.
7287         (blocks_visited): Remove.
7288         (register_edge_assert_for_2): Use live_on_edge.
7289         (find_conditional_asserts): Remove code dealing with
7290         found_in_subgraph.  Do not walk the CFG.
7291         (find_switch_asserts): Likewise.
7292         (find_assert_locations_1): Renamed from find_assert_locations.
7293         Move finding assert locations for conditional and switch
7294         statements first.  Update live bitmap.  Do not walk the CFG.
7295         (find_assert_locations): New function.
7296         (insert_range_assertions): Remove entry of CFG walk.
7297         Adjust call to find_assert_locations.
7298         * tree-ssa-pre.c (do_regular_insertion): Ignore critical edges
7299         that only can appear because of fake exit edges but assert we
7300         never try to insert on those.
7301         (fini_pre): Do not remove fake exit edges here...
7302         (execute_pre): ...but here, before committing edge inserts.
7303
7304 2008-08-19  Richard Guenther  <rguenther@suse.de>
7305
7306         * passes.c (init_optimization_passes): Exchange store-ccp
7307         with a ccp pass.
7308
7309 2008-08-19  Rafael EspÃ\83­ndola  <espindola@google.com>
7310
7311         * varasm.c (weak_decls): Move earlier in the file.
7312         (assemble_external): Add weak decls to the weak_decls list.
7313         (declare_weak): Don't add decls to the weak_decls list.
7314
7315 2008-08-19  H.J. Lu  <hongjiu.lu@intel.com>
7316
7317         PR target/37157
7318         * config/i386/sse.md (sse2_punpckhqdq, sse2_punpcklqdq): Moved
7319         before (sse2_shufpd_<mode>).
7320
7321 2008-08-19  Jakub Jelinek  <jakub@redhat.com>
7322
7323         PR debug/37156
7324         * pretty-print.c (pp_base_format): Deal with recursive BLOCK trees.
7325         * tree.c (block_nonartificial_location): Likewise.
7326
7327 2008-08-19  Richard Guenther  <rguenther@suse.de>
7328
7329         PR tree-optimization/35972
7330         PR tree-optimization/23094
7331         * tree-ssa-sccvn.h (vn_reference_lookup_pieces): Add maywalk
7332         parameter.
7333         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Properly
7334         handle MISALIGNED_INDIRECT_REF.
7335         (get_ref_from_reference_ops): New helper.
7336         (vn_reference_lookup_pieces): Walk the use-def chain using the
7337         alias-oracle if requested.
7338         * tree-ssa-pre.c (phi_translate_1): Do reference lookup with
7339         walking the use-def chain.
7340         (compute_avail): But not here.
7341         (create_component_ref_by_pieces_1): Properly handle
7342         MISALIGNED_INDIRECT_REF.
7343         (do_regular_insertion): Handle fully redundant
7344         expressions after PHI-translation also for SSA_NAME values, not
7345         only constants.  Correctly use edoubleprime for that.
7346
7347 2008-08-19  Ira Rosen  <irar@il.ibm.com>
7348
7349         * tree-vectorizer.c (supportable_widening_operation): Support
7350         multi-step conversion, return the number of steps in such conversion
7351         and the required intermediate types.
7352         (supportable_narrowing_operation): Likewise.
7353         * tree-vectorizer.h (vect_pow2): New function.
7354         (supportable_widening_operation): Change argument types.
7355         (supportable_narrowing_operation): Likewise.
7356         (vectorizable_type_promotion): Add an argument.
7357         (vectorizable_type_demotion): Likewise.
7358         * tree-vect-analyze.c (vect_analyze_operations): Call
7359         vectorizable_type_promotion and vectorizable_type_demotion with
7360         additional argument.
7361         (vect_get_and_check_slp_defs): Detect patterns.
7362         (vect_build_slp_tree): Add an argument, don't fail in case of multiple
7363         types.
7364         (vect_analyze_slp_instance): Don't fail in case of multiple types.
7365         Call vect_build_slp_tree with correct arguments. Calculate unrolling
7366         factor according to the smallest type in the loop.
7367         (vect_detect_hybrid_slp_stmts): Include statements from patterns.
7368         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Call
7369         supportable_widening_operation with correct arguments.
7370         * tree-vect-transform.c (vect_get_slp_defs): Allocate output vector
7371         operands lists according to the number of vector statements in left
7372         or right node, if exists.
7373         (vect_gen_widened_results_half): Remove unused argument.
7374         (vectorizable_conversion): Call supportable_widening_operation,
7375         supportable_narrowing_operation, and vect_gen_widened_results_half
7376         with correct arguments.
7377         (vectorizable_assignment): Change documentation, support multiple
7378         types in SLP.
7379         (vectorizable_operation): Likewise.
7380         (vect_get_loop_based_defs): New function.
7381         (vect_create_vectorized_demotion_stmts): Likewise.
7382         (vectorizable_type_demotion): Support loop-aware SLP and general
7383         multi-step conversion. Call vect_get_loop_based_defs and
7384         vect_create_vectorized_demotion_stmts for transformation.
7385         (vect_create_vectorized_promotion_stmts): New function.
7386         (vectorizable_type_promotion): Support loop-aware SLP and general
7387         multi-step conversion. Call vect_create_vectorized_promotion_stmts
7388         for transformation.
7389         (vectorizable_store): Change documentation, support multiple
7390         types in SLP.
7391         (vectorizable_load): Likewise.
7392         (vect_transform_stmt): Pass SLP_NODE to
7393         vectorizable_type_promotion and vectorizable_type_demotion.
7394         (vect_schedule_slp_instance): Move here the calculation of number
7395         of vectorized statements for each node from...
7396         (vect_schedule_slp): ... here.
7397         (vect_transform_loop): Call vect_schedule_slp without the last
7398         argument.
7399
7400 2008-08-19  Dorit Nuzman  <dorit@il.ibm.com>
7401
7402         PR bootstrap/37152
7403         * tree-vect-transform.c (vect_create_epilog_for_reduction): Change =
7404         to == in assert statement.
7405         (vectorizable_reduction): Fix typo.
7406
7407 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
7408
7409         PR bootstrap/37153
7410         * value-prof.c (check_counter): Dereference pointer to overall
7411         count when printing it.
7412
7413 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
7414
7415         * profile.h: Really add it.
7416
7417 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
7418
7419         * mcf.c: Really add it.
7420
7421 2008-08-18  Paul Yuan  <yingbo.com@gmail.com>
7422             Vinodha Ramasamy  <vinodha@google.com>
7423
7424         * cgraph.c (cgraph_edge): Handle inconsistent counts when setting
7425         count_scale.
7426         * value-prof.c (check_counter): Fix the counter if
7427         flag_profile_correction is true.
7428         (tree_divmod_fixed_value_transform, tree_mod_pow2_value_transform,
7429         tree_mod_subtract_transform):
7430         Follow check_counter parameter change.
7431         * common.opt (fprofile-correction): New option.
7432         * mcf.c: New file.
7433         * profile.h: Likewise.
7434         * profile.c (edge_info, EDGE_INFO): Moved to new file profile.h.
7435         (sum_edge_counts, is_edge_inconsistent, correct_negative_edge_counts,
7436         is_inconsistent, set_bb_counts, read_profile_edge_counts): New
7437         functions.
7438         (compute_branch_probabilities): Refactored. Invokes mcf_smooth_cfg if
7439         flag_profile_correction is set.
7440
7441 2008-08-18  Richard Sandiford  <rdsandiford@googlemail.com>
7442
7443         * rtlanal.c (subreg_offset_representable_p): Check HARD_REGNO_MODE_OK.
7444
7445 2008-08-18  Tomas Bily  <tbily@suse.cz>
7446
7447         * tree.h (IS_CONVERT_EXPR_CODE_P): Renamed to CONVERT_EXPR_CODE_P.
7448         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Use
7449         CONVERT_EXPR_P.
7450         * tree-data-ref.c (split_constant_offset_1): Likewise.
7451         * tree-inline.c (estimate_operator_cost): Use CASE_CONVERT.
7452         * tree-sra.c (sra_walk_expr): Likewise.
7453         * matrix-reorg.c (ssa_accessed_in_assign_rhs): Likewise.
7454         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
7455         * gimple.h (gimple_assign_cast_p): Use CONVERT_EXPR_CODE_P.
7456         * tree-ssa-structalias.c (find_func_aliases, find_func_aliases):
7457         Likewise.
7458         * gimple.c (gimple_assign_unary_nop_p): Likewise.
7459         * tree-vect-transform.c (vectorizable_type_demotion)
7460         (vectorizable_type_promotion): Likewise.
7461         * tree-inline.c (expand_call_inline):
7462         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
7463         (forward_propagate_addr_expr_1, forward_propagate_comparison)
7464         (tree_ssa_forward_propagate_single_use_vars): Likewise.
7465         * expr.c (expand_expr_real_1): Likewise.
7466         * tree-ssa-dom.c (hashable_expr_equal_p, iterative_hash_hashable_expr)
7467         (gimple_assign_unary_useless_conversion_p): Likewise.
7468         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
7469         * tree-ssa-ccp.c (ccp_fold, fold_gimple_assign): Likewise.
7470         * fold-const.c (fold_unary): Likewise.
7471         * tree.h (CONVERT_EXPR_P): Likewise.
7472         * tree.c (simple_cst_equal, iterative_hash_expr): Likewise.
7473         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
7474         * tree-vrp.c:
7475         (register_edge_assert_for_2, extract_range_from_unary_expr)
7476         (register_edge_assert_for_1): Likewise.
7477
7478 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7479
7480         * real.h (dconst_e, dconst_third, dconst_sqrt2, dconst_e_ptr,
7481         dconst_third_ptr, dconst_sqrt2_ptr): Declare.
7482         (enum real_value_const): Delete.
7483         (get_real_const): Delete.
7484         * real.c (get_real_const): Delete.
7485         (dconst_e_ptr): Define.
7486         (dconst_third_ptr): Define.
7487         (dconst_sqrt2_ptr): Define.
7488         * builtins.c: Update all callers.
7489
7490 2008-08-18  Richard Guenther  <rguenther@suse.de>
7491
7492         * tree-ssa-reassoc.c (reassociate_bb): Properly reset the
7493         statement iterator after statement removal.
7494
7495 2008-08-18  Andreas Tobler  <a.tobler@schweiz.org>
7496
7497         * config/rs6000/driver-rs6000.c (detect_caches_freebsd): New function.
7498         (detect_processor_freebsd): Likewise.
7499         (host_detect_local_cpu): Call newly added functions for FreeBSD.
7500
7501 2008-08-18  Richard Guenther  <rguenther@suse.de>
7502
7503         * tree-cfg.c (verify_types_in_gimple_assign): Verify copies
7504         and loads have the correct types.
7505
7506 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7507
7508         PR cpp/7263
7509         * c-opts.c (cpp_opts): Remove static.
7510         * c-parser.c (cpp_opts): Declare it extern.
7511         (disable_extension_diagnostics): Handle cpp options.
7512         (enable_extension_diagnostics): Likewise.
7513
7514 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7515
7516         * diagnostics.c (permerror_at): Rename as permerror.
7517         (permerror): Delete.
7518         * toplev.h: Likewise.
7519
7520 2008-08-18  Richard Guenther  <rguenther@suse.de>
7521
7522         * passes.c (init_optimization_passes): Remove cleanup_cfg1,
7523         sdse1 and addressables2 passes.  Replace dce1 with cddce1.
7524         Move call_cdce before build_alias.  Move copyrename2,
7525         cunrolli and ccp2 beafore build_alias.  Re-add addressable2
7526         right after final inlining.
7527         * tree-cfg.c (build_gimple_cfg): Do not dump function here.
7528         (pass_build_cfg): But instead via TODO_dump_func.
7529
7530 2008-08-18  Richard Guenther  <rguenther@suse.de>
7531
7532         * tree-sra.c (generate_element_init_1): Deal with NULL constructor
7533         element index.
7534         (scalarize_init): If we failed to generate some initializers
7535         do not generate zeros for not instantiated members.  Instead
7536         rely on the copy out.
7537         * tree-ssa-operands.c (get_addr_dereference_operands): Warn
7538         about missing flow-sensitive alias info only if we have
7539         aliases computed.
7540
7541 2008-08-17  Nick Clifton  <nickc@redhat.com>
7542
7543         * doc/extend.texi (Function Attributes): Fix typo in description
7544         if hot function attribute.
7545
7546 2008-08-17  Daniel Jacobowitz  <dan@codesourcery.com>
7547             Richard Sandiford  <rdsandiford@googlemail.com>
7548
7549         * doc/install.texi (--with-mips-plt): Document.
7550         * doc/invoke.texi (-mplt, -mno-plt): Document.
7551         * config.gcc (mips*-*-*): Add mips-plt to supported_defaults
7552         and handle ${with_mips_plt}.
7553         * config/mips/mips.opt (mplt): New option.
7554         * config/mips/mips.h (TARGET_ABICALLS_PIC0): New macro.
7555         (TARGET_ABICALLS_PIC2): Likewise.
7556         (TARGET_GPWORD): Return false for TARGET_ABSOLUTE_ABICALLS.
7557         (OPTION_DEFAULT_SPECS): Add a mips-plt entry.
7558         (ASM_SPEC): Use !mabi=* instead of !mabi*.
7559         (MIPS_CALL): Use TARGET_ABICALLS_PIC2 instead of TARGET_ABICALLS
7560         to decide whether to output ".option picX" directives.
7561         * config/mips/linux.h (SUBTARGET_ASM_SPEC): Remove -mabi=64 handling.
7562         Pass -call_nonpic rather than -KPIC for -mplt.
7563         (BASE_DRIVER_SELF_SPECS): Remove -mplt if -mno-shared is not present
7564         on the command line.  Also remove it when -mabi=64 is used without
7565         -msym32.
7566         * config/mips/linux64.h (SUBTARGET_ASM_SPEC): Delete.
7567         * config/mips/mips.c (mips_use_pic_fn_addr_reg_p): Handle
7568         TARGET_ABICALLS_PIC0.
7569         (mips_classify_symbol): Use TARGET_ABICALLS_PIC2 instead of
7570         TARGET_ABICALLS.
7571         (mips16_build_function_stub): Only output ".option pic" directives
7572         and PIC stubs if TARGET_ABICALLS_PIC2.  Call through $25 instead of $1.
7573         (mips16_build_call_stub): Fix comment and remove redundant
7574         ".set at"/"set .noat" directives.
7575         (mips_function_rodata_section): Use the default behaviour for
7576         TARGET_ABSOLUTE_ABICALLS.
7577         (mips_file_start): Emit ".option pic0" for TARGET_ABICALLS_PIC0.
7578         (mips_global_pointer): Handle TARGET_ABICALLS_PIC0.
7579         (mips_restore_gp): Do nothing if the current function doesn't use
7580         a global pointer.
7581         (mips_expand_prologue): Only save $gp if the current function uses it.
7582         Use a normal move for TARGET_ABICALLS_PIC0.
7583         (mips_override_options): Only set flag_pic if TARGET_ABICALLS_PIC2.
7584
7585 2008-08-17  Richard Sandiford  <rdsandiford@googlemail.com>
7586
7587         * config/mips/mips.c (mips_save_reg_p): Don't short-circuit rest
7588         of function when handling GLOBAL_POINTER_REGNUM.
7589
7590 2008-08-16  Eric Botcazou  <ebotcazou@adacore.com>
7591
7592         PR ada/20548
7593         * common.opt (-fstack-check): Do not declare the variable here.
7594         (-fstack-check=): New option variant.
7595         * doc/invoke.texi (Code Gen Options): Document it.
7596         * expr.h (STACK_OLD_CHECK_PROTECT): New macro.
7597         (STACK_CHECK_PROTECT): Bump to 3 pages if DWARF-2 EH is used.
7598         (STACK_CHECK_STATIC_BUILTIN): New macro.
7599         * doc/tm.texi (Stack Checking): Document STACK_CHECK_STATIC_BUILTIN.
7600         * opts.c: Include expr.h.
7601         (common_handle_option) <OPT_fold_stack_check_>: New case.
7602         <OPT_fstack_check>: Likewise.
7603         * calls.c (initialize_argument_information): Use TYPE_SIZE_UNIT
7604         consistently in the test for variable-sized types.  Adjust for
7605         new behaviour of flag_stack_check.
7606         * explow.c: Include except.h.
7607         (allocate_dynamic_stack_space): Do not take into account
7608         STACK_CHECK_MAX_FRAME_SIZE for static builtin stack checking.
7609         * function.c (gimplify_parameters): Use DECL_SIZE_UNIT in the test
7610         for variable-sized parameters.  Treat all parameters whose size is
7611         greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized if generic
7612         stack checking is enabled.
7613         * gimplify.c (gimplify_decl_expr): Treat non-static objects whose
7614         size is greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized
7615         if generic stack checking is enabled.
7616         (expand_function_end): Adjust for new behaviour of flag_stack_check.
7617         * reload1.c (reload): Likewise.
7618         * stmt.c (expand_decl): Assert that all automatic variables have
7619         fixed size at this point and remove dead code.
7620         * flags.h (stack_check_type): New enumeration type.
7621         (flag_stack_check): Declare.
7622         * toplev.c (flag_stack_check): New global variable.
7623         * Makefile.in (opts.o): Add dependency on EXPR_H.
7624         (explow.o): Add dependency on except.h.
7625
7626 2008-08-16  Andy Hutchinson  <hutchinsonandy@aim.com>
7627
7628         * config/avr/avr.c (avr_override_options): Reduce value of
7629         PARAM_INLINE_CALL_COST.
7630
7631 2008-08-15  Eric Botcazou  <ebotcazou@adacore.com>
7632
7633         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: When converting
7634         to BLKmode, try to fetch an inner memory reference.  Use 'mode' in
7635         lieu of TYPE_MODE (type) throughout.
7636
7637 2008-08-15  Joseph Myers  <joseph@codesourcery.com>
7638
7639         * config/arm/arm.c (add_minipool_backward_ref): Check for
7640         8-byte-aligned entries in second case of forcing insertion after a
7641         particular entry.  Change third case to avoid inserting
7642         non-8-byte-aligned entries before 8-byte-aligned ones.
7643
7644 2008-08-15  Richard Guenther  <rguenther@suse.de>
7645
7646         * tree-ssa-ccp.c (maybe_fold_offset_to_reference): Do not
7647         strip components for unknown size accesses.
7648
7649 2008-08-15  Wolfgang Gellerich  <gellerich@de.ibm.com>
7650
7651         * config/s390/2097.md New file.
7652         * config/s390/s390.md ("z10prop" attribute): Define none,
7653         z10_super, z10_super_E1, z10_super_A1, z10_super_c,
7654         z10_super_c_E1, z10_fwd, z10_fwd_A1, z10_fwd_A3, z10_fwd_E1,
7655         z10_rec, z10_fr, z10_fr_A3, z10_fr_E1, z10_c, and z10_cobra as
7656         possible values and apply them to insns as appropriate.
7657         ("type" attribute): Removed itof and added ftrunctf,ftruncdf,
7658         ftruncsd, ftruncdd, itoftf, itofdf, itofsf, itofdd, itoftd,
7659         fdivdd, fdivtd, floaddd, floadsd, fmuldd, fmultd, fsimpdd,
7660         fsimpsd, fsimptd, fstoredd, fstoresd, ftoidfp as possible values.
7661         ("bfp" mode attribute): Removed.  Every occurence replaced
7662         with <mode>.
7663         * config/s390/s390.c (struct "z10_cost"): Updated entries.
7664         * config/s390/2084.md (insn_reservation "x_itof"): Updated
7665         type attribute.
7666
7667 2008-08-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7668
7669         PR c/28152
7670         * c-parser.c (c_lex_one_token): Do not store the canonical spelling
7671         for keywords.
7672
7673 2008-08-14  Dorit Nuzman  <dorit@il.ibm.com>
7674
7675         * tree-vect-transform.c (vect_create_epilog_for_reduction): Takes an
7676         additional argument. Support reduction when duplication is needed due
7677         to data-types of different sizes in the loop.
7678         (get_initial_def_for_induction): Fix printout.
7679         (vect_get_vec_def_for_stmt_copy): Support case where the
7680         vec_stmt_for_operand is a phi node.
7681         (vectorizable_reduction): Support reduction when duplication is needed
7682         due to data-types of different sizes in the loop.
7683         (vectorizable_call): Remove restriction to not vectorize in case we
7684         have data-types of different sizes in the loop.
7685         (vectorizable_conversion): Likewise.
7686         (vectorizable_operation): Likewise.
7687         (vectorizable_type_demotion): Likewise.
7688         (vectorizable_type_promotion): Likewise.
7689         (vectorizable_induction): Add restriction to not vectorize in case
7690         we have data-types of different sizes in the loop.
7691
7692 2008-08-14  Christophe Saout  <christophe@saout.de>
7693             Uros Bizjak  <ubizjak@gmail.com>
7694
7695         PR target/37101
7696         * config/i386/sse.md (vec_concatv2di): Remove movlps alternative.
7697         (*vec_concatv2di_rex64_sse4_1): Ditto.
7698         (*vec_concatv2di_rex64_sse): Ditto.
7699
7700 2008-08-14  Jakub Jelinek  <jakub@redhat.com>
7701
7702         PR middle-end/37103
7703         * fold-const.c (fold_widened_comparison): Do not allow
7704         sign changes that change the result even if shorter type
7705         is wider than arg1_unw's type.
7706
7707 2008-08-13  Kazu Hirata  <kazu@codesourcery.com>
7708
7709         * gcc.dg/arm-g2.c, gcc.dg/arm-mmx-1.c, gcc.dg/arm-scd42-2.c:
7710         Skip if the multilib testing specifies -march that does not
7711         agree with the one specified in the testcase.
7712
7713 2008-08-13  Joseph Myers  <joseph@codesourcery.com>
7714
7715         * config/sparc/sparc.c (emit_soft_tfmode_cvt): Explicitly sign or
7716         zero extend SImode values being converted to TFmode before passing
7717         to libcalls.
7718
7719 2008-08-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7720
7721         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Predefine
7722         __PPU__ when targeting the Cell/B.E. PPU processor.
7723
7724 2008-08-13  Eric Botcazou  <ebotcazou@adacore.com>
7725
7726         * gimple.h (gimple_call_set_chain): Accept SSA variables.
7727         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <CALL_EXPR>:
7728         Rematerialize the static chain, if any.
7729         * tree-ssa-sccvn.c (copy_reference_ops_from_call): Also copy the
7730         static chain.
7731
7732 2008-08-13  H.J. Lu  <hongjiu.lu@intel.com>
7733
7734         * dwarf2out.c (dwarf_stack_op_name): Remove prototype.
7735         (new_loc_descr): Likewise.
7736         (add_loc_descr): Likewise.
7737         (size_of_loc_descr): Likewise.
7738         (size_of_locs): Likewise.
7739         (output_loc_operands): Likewise.
7740         (output_loc_sequence): Likewise.
7741         (new_reg_loc_descr): New.
7742         (build_cfa_loc): Use it.
7743         (build_cfa_aligned_loc): Likewise.
7744         (one_reg_loc_descriptor): Likewise.
7745         (based_loc_descr): Likewise.
7746
7747 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7748
7749         PR 30551
7750         * doc/invoke.texi (Wmain): Update.
7751         * c-decl.c (start_decl): warn_main is only 0 or 1.
7752         (start_function): Likewise. Fix formatting.
7753         (finish_function): Delete redundant warning.
7754         * c.opt (Wmain): Add Var(warn_main) and Init(-1).
7755         * c-opts (c_common_handle_option): -Wall only has effect if
7756         warn_main is uninitialized. OPT_Wmain is automatically
7757         handled. -pedantic also enables Wmain.
7758         (c_common_post_options): Handle all logic for Wmain here.
7759         * c-common.c (warn_main): Delete.
7760         (check_main_parameter_types): Make pedwarns conditional on OPT_Wmain.
7761         * c-common.h (warn_main): Delete.
7762
7763 2008-08-13  H.J. Lu  <hongjiu.lu@intel.com>
7764
7765         PR middle-end/36701
7766         * expr.c (emit_group_store): Allocate stack temp with the
7767         largest alignment when copying from register to stack.
7768
7769 2008-08-13  Richard Guenther  <rguenther@suse.de>
7770
7771         * tree.h (maybe_fold_offset_to_address): Declare.
7772         * tree-ssa-ccp.c (surely_varying_stmt_p): Fix typo in last commit.
7773         (ccp_fold): Handle pointer conversions the same as fold_stmt.
7774         Likewise for POINTER_PLUS_EXPR.
7775         (maybe_fold_offset_to_reference): Enable disabled code.
7776         (maybe_fold_offset_to_address): New function.
7777         (fold_stmt_r): Use it.
7778         (fold_gimple_assign): Likewise.
7779         * gimplify.c (gimplify_conversion): Use maybe_fold_offset_to_address.
7780         (gimplify_expr): Likewise.
7781
7782 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7783
7784         * toplev.h (pedwarn_at): Fix declaration.
7785
7786 2008-08-13  Joseph Myers  <joseph@codesourcery.com>
7787
7788         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
7789         LINK_SPEC): Use %R in -Y P argument.
7790
7791 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7792
7793         PR c/15236
7794         * diagnostic.c (pedwarn_at): New.
7795         * toplev.h (pedwarn_at): Declare.
7796         * c-tree.h (build_enumerator): Update declaration.
7797         * c-decl.c (finish_enum): Update comment.
7798         (build_enumerator): Take a location parameter. Give a pedwarn but do
7799         not perform any conversion.
7800         * c-parser.c (c_parser_enum_specifier): Set correct location for
7801         enumerator.
7802
7803 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7804
7805         PR 35635
7806         * c-common.c (conversion_warning): Use a switch. Ignore boolean
7807         expressions except for conversions to signed:1 bitfields. Handle
7808         COND_EXPR with constant operands.
7809
7810 2008-08-13  Richard Guenther  <rguenther@suse.de>
7811
7812         PR tree-optimization/15255
7813         * tree-ssa-reassoc.c (linearize_expr_tree): Declare.
7814         (struct oecount_s): New struct and VEC types.
7815         (cvec): New global.
7816         (oecount_hash): New function.
7817         (oecount_eq): Likewise.
7818         (oecount_cmp): Likewise.
7819         (zero_one_operation): New function.
7820         (build_and_add_sum): Likewise.
7821         (undistribute_ops_list): Perform un-distribution of multiplication
7822         and division on the chain of summands.
7823         (should_break_up_subtract): Also break up subtracts for factors.
7824         (reassociate_bb): Delete dead visited statements.
7825         Call undistribute_ops_list.  Re-sort and optimize if it did something.
7826         * passes.c (init_optimization_passes): Move DSE before
7827         reassociation.
7828         * tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Correctly handle
7829         PHI nodes.
7830
7831 2008-08-12  Janis Johnson  <janis187@us.ibm.com>
7832
7833         * doc/invoke.texi (-fipa-pta): Say the option is experimental.
7834
7835         * doc/invoke.texi: Revert unintended checkin.
7836
7837 2008-08-12  Nathan Froyd  <froydnj@codesourcery.com>
7838
7839         PR libgomp/26165
7840         * gcc.c (include_spec_function): Tweak call to find_a_file.
7841
7842 2008-08-12  Jakub Jelinek  <jakub@redhat.com>
7843
7844         PR middle-end/37014
7845         * expr.c (expand_expr_real_1): Handle TRUTH_ANDIF_EXPR
7846         and TRUTH_ORIF_EXPR.
7847         * dojump.c (do_jump): Likewise.
7848
7849         PR tree-optimization/37084
7850         * tree-inline.c (copy_bb): Call gimple_regimplify_operands
7851         if id->regimplify, don't assume stmt is a cast assignment.
7852
7853 2008-08-12  Anatoly Sokolov  <aesok@post.ru>
7854
7855         * final.c (final_scan_insn): Use app_enable/app_disable functions.
7856
7857 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7858
7859         PR bootstrap/37097
7860         * builtins.c (do_mpfr_bessel_n): Fix copy-and-paste bug introduced
7861         by last change.
7862
7863 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7864
7865         * defaults.h (TARGET_FLOAT_FORMAT): Remove.
7866         (UNKNOWN_FLOAT_FORMAT, IEEE_FLOAT_FORMAT, VAX_FLOAT_FORMAT): Remove.
7867
7868         * config/alpha/alpha.h (TARGET_FLOAT_FORMAT): Remove.
7869         * config/iq2000/iq2000.h (TARGET_FLOAT_FORMAT): Remove.
7870         * config/pdp11/pdp11.h (TARGET_FLOAT_FORMAT): Remove.
7871         * config/score/score.h (TARGET_FLOAT_FORMAT): Remove.
7872         * config/vax/vax.h (TARGET_FLOAT_FORMAT): Remove.
7873
7874         * doc/tm.texi (Storage Layout): Remove documentation for
7875         TARGET_FLOAT_FORMAT.
7876
7877         * simplify-rtx.c (simplify_binary_operation_1): Replace
7878         TARGET_FLOAT_FORMAT check by appropriate HONOR_... checks.
7879
7880 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7881
7882         * real.h (struct real_format): New member has_sign_dependent_rounding.
7883         * real.c (ieee_single_format, mips_single_format, motorola_single_format,
7884         spu_single_format, ieee_double_format, mips_double_format,
7885         motorola_double_format, ieee_extended_motorola_format,
7886         ieee_extended_intel_96_format, ieee_extended_intel_128_format,
7887         ieee_extended_intel_96_round_53_format, ibm_extended_format,
7888         mips_extended_format, ieee_quad_format, mips_quad_format,
7889         vax_f_format, vax_d_format, vax_g_format): Initialize it.
7890         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
7891
7892         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
7893         MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
7894         * config/spu/spu.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
7895         MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
7896         (ROUND_TOWARDS_ZERO): Likewise.
7897
7898         * real.h (REAL_MODE_FORMAT): Protect MODE against macro expansion.
7899         (FLOAT_MODE_FORMAT): New macro.
7900         (REAL_MODE_FORMAT_COMPOSITE_P): Remove, replace by ...
7901         (MODE_COMPOSITE_P): ... this new macro.
7902         (MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
7903         MODE_HAS_SIGN_DEPENDENT_ROUNDING): New macros.
7904         * machmode.h (GET_MODE_INNER): Cast result to enum machine_mode.
7905
7906         * flags.h: Include "real.h".
7907
7908         * fold-const.c (const_binop): Use MODE_COMPOSITE_P instead of
7909         REAL_MODE_FORMAT_COMPOSITE_P.
7910         * simplify-rtx.c (simplify_const_binary_operation): Likewise.
7911
7912         * doc/tm.texi (Storage Layout): Remove documentation of
7913         MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
7914         MODE_HAS_SIGN_DEPENDENT_ROUNDING.  Update documentation of
7915         ROUND_TOWARDS_ZERO and LARGEST_EXPONENT_IS_NORMAL to clarify
7916         they only apply to libgcc2.a.
7917
7918 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7919
7920         * config/spu/float_disf.c: New file.
7921         * config/spu/float_unsdisf.c: New file.
7922         * config/spu/t-elf (LIB2FUNCS_STATIC_EXTRA): Add them.
7923         (LIB2FUNCS_EXCLUDE): Define.
7924
7925 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7926             Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
7927
7928         * real.h (struct real_format): New member round_towards_zero.
7929         * real.c (round_for_format): Respect fmt->round_towards_zero.
7930         (ieee_single_format, mips_single_format, motorola_single_format,
7931         spu_single_format, ieee_double_format, mips_double_format,
7932         motorola_double_format, ieee_extended_motorola_format,
7933         ieee_extended_intel_96_format, ieee_extended_intel_128_format,
7934         ieee_extended_intel_96_round_53_format, ibm_extended_format,
7935         mips_extended_format, ieee_quad_format, mips_quad_format,
7936         vax_f_format, vax_d_format, vax_g_format): Initialize it.
7937         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
7938
7939         * builtins.s (do_mpfr_arg1): Consider round_towards_zero member of
7940         real_format to choose rounding mode when calling MPFR functions.
7941         (do_mpfr_arg2, do_mpfr_arg3, do_mpfr_sincos): Likewise.
7942         (do_mpfr_bessel_n, do_mpfr_remquo, do_mpfr_lgamma_r): Likewise.
7943
7944         * real.h (real_to_decimal_for_mode): Add prototype.
7945         * real.c (real_to_decimal_for_mode): Renames old real_to_decimal.
7946         Respect target rounding mode when generating decimal representation.
7947         (real_to_decimal): New stub for backwards compatibility.
7948         * c-cppbuiltin.c (builtin_define_with_hex_fp_value): Use
7949         real_to_decimal_for_mode instead of real_to_decimal.
7950
7951         * config/spu/spu.md ("floatdisf2", "floatunsdisf2"): New.
7952
7953 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7954             Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
7955
7956         * real.c (spu_single_format): New variable.
7957         * real.h (spu_single_format): Declare.
7958
7959         * config/spu/spu.c (spu_override_options): Install SFmode format.
7960         (spu_split_immediate): Use integer mode to operate on pieces of
7961         floating-point values in all cases.
7962
7963         * config/spu/spu.md (UNSPEC_FLOAT_EXTEND, UNSPEC_FLOAT_TRUNCATE): New.
7964         ("extendsfdf2"): Use UNSPEC_FLOAT_EXTEND instead of FLOAT_EXTEND.
7965         ("truncdfsf2"): Use UNSPEC_FLOAT_TRUNCATE instead of FLOAT_TRUNCATE.
7966
7967 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7968
7969         * config/spu/spu.c (spu_safe_dma): Respect TARGET_SAFE_DMA.
7970
7971 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7972
7973         * config/spu/spu.h (DWARF_FRAME_RETURN_COLUMN): Define.
7974
7975 2008-08-12  Jakub Jelinek  <jakub@redhat.com>
7976
7977         PR c++/36688
7978         * gimplify.c (gimplify_modify_expr_rhs): Test TREE_READONLY
7979         on the VAR_DECL instead of TYPE_READONLY on its type.
7980
7981 2008-08-12  Ira Rosen  <irar@il.ibm.com>
7982
7983         * tree-vectorizer.c: Depend on langhooks.h.
7984         (supportable_widening_operation): Add two arguments. Support double
7985         type conversions.
7986         (supportable_narrowing_operation): Likewise.
7987         * tree-vectorizer.h (supportable_widening_operation): Add two
7988         arguments.
7989         (supportable_narrowing_operation): Likewise.
7990         * tree-vect-patterns.c (vect_recog_widen_mult_pattern) : Call
7991         supportable_widening_operation with correct arguments.
7992         * tree-vect-transform.c (vectorizable_conversion): Likewise.
7993         (vectorizable_type_demotion): Support double type conversions.
7994         (vectorizable_type_promotion): Likewise.
7995         * Makefile.in (tree-vectorizer.o): Depend on langhooks.h.
7996
7997 2008-08-11  Michael Matz  <matz@suse.de>
7998
7999         * i386/i386.c (override_options): Move initialisation from
8000         flag_schedule_insns_after_reload to here from ...
8001         (optimization_options): ... here.
8002
8003 2008-08-11  Jakub Jelinek  <jakub@redhat.com>
8004
8005         PR rtl-optimization/36998
8006         * dwarf2out.c (compute_barrier_args_size_1,
8007         compute_barrier_args_size): Temporarily remove assertions.
8008
8009 2008-08-10  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8010
8011         PR middle-end/20644
8012         * tree-ssa.c (struct walk_data): Add new flag
8013         warn_possibly_uninitialized.
8014         (warn_uninitialized_var): Use it.
8015         (warn_uninitialized_vars): New.
8016         (execute_early_warn_uninitialized): Call it.
8017         (execute_late_warn_uninitialized): Likewise.
8018
8019 2008-08-09  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8020
8021         PR middle-end/36238
8022         * reload1.c (gen_reload): Guard calls to get_secondary_mem
8023         for memory subregs.
8024
8025 2008-08-09  Jan Hubicka  <jh@suse.cz>
8026
8027         PR target/37055
8028         * optabs.c (maybe_emit_unop_insn): Remove produced code if
8029         expansion failed.
8030         (expand_fix): Be prepared for expansion to fail.
8031         (expand_sfix_optab): Remove instructions if expansion failed.
8032
8033 2008-08-09  Anatoly Sokolov  <aesok@post.ru>
8034
8035         * config/avr/avr.c (avr_mcu_types): Move the AT43USB320 device to
8036         avr31 architecture.
8037         * config/avr/avr.h (CRT_BINUTILS_SPECS): (Ditto.).
8038         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
8039
8040 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
8041
8042         * config.gcc (mips*-*-linux*, mips64*-*-linux*): Add
8043         mips/t-libgcc-mips16 to tmake_file.
8044         * config/mips/mips-protos.h (mips_call_type): New enum.
8045         (mips_pic_base_register, mips_got_load): Declare.
8046         (mips_restore_gp): Take an rtx argument.
8047         (mips_use_pic_fn_addr_reg_p): Declare.
8048         (mips_expand_call): Replace the sibcall_p argument with
8049         a mips_call_type argument.  Add a lazy_p parameter.
8050         (mips_split_call): Declare.
8051         * config/mips/mips.h (MIPS16_PIC_TEMP_REGNUM): New macro.
8052         (MIPS16_PIC_TEMP): Likewise.
8053         (reg_class): Delete M16_NA_REGS.
8054         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
8055         (SYMBOL_FLAG_BIND_NOW, SYMBOL_REF_BIND_NOW_P): New macros.
8056         (mips_split_hi_p): Declare.
8057         * config/mips/mips.c (mips_split_hi_p): New array.
8058         (mips_regno_to_class): Change M16_NA_REGS entries to M16_REGS.
8059         (mips_got_symbol_type_p): New function.
8060         (mips_global_symbol_p): Check SYMBOL_REF_EXTERNAL_P.
8061         (mips16_stub_function_p): New function.
8062         (mips16_local_function_p): Likewise.
8063         (mips_use_pic_fn_addr_reg_p): Likewise.
8064         (mips_cannot_force_const_mem): Return false for HIGHs.
8065         Extend CONST_INT and symbolic handling to MIPS16, using
8066         mips_symbol_insns to check that the base symbol type is a
8067         legitimate constant.  Reject GOT-based constants if
8068         TARGET_MIPS16_PCREL_LOADS.
8069         (mips_const_insns): Check targetm.cannot_force_const_mem when
8070         decomposing a symbolic base and a large offset.
8071         (mips_emit_call_insn): Add ORIG_ADDR and ADDR parameters.
8072         When calling a function that needs $25 from MIPS16 code,
8073         move the target address into $25 separately and add a USE
8074         to the call insn.
8075         (mips16_gp_pseudo_reg): Insert the initializer immediately
8076         before the first real insn.
8077         (mips_pic_base_register, mips_got_load): New functions.
8078         (mips_split_symbol): Generalize the name of the LO_SUM_OUT
8079         parameter to LOW_OUT.  Say that it can be any valid SET_SRC
8080         when splitting a load-address operation.  Split SYMBOL_GOT_DISP
8081         constants and highs of SYMBOL_GOT_PAGE_OFST constants.
8082         (mips_call_tls_get_addr): Update the call to mips_expand_call,
8083         also passing NULL_RTX rather than const0_rtx as the aux argument.
8084         (mips_rewrite_small_data_p): Check mips_lo_relocs and mips_split_p
8085         instead of TARGET_EXPLICIT_RELOCS.
8086         (mips_ok_for_lazy_binding_p): Check SYMBOL_REF_BIND_NOW_P.
8087         (mips_load_call_address): Replace the sibcall_p argument with
8088         a mips_call_type argument.  Use mips_got_load.
8089         (mips16_local_alias): New structure.
8090         (mips16_local_aliases): New variable.
8091         (mips16_local_aliases_hash): New function.
8092         (mips16_local_aliases_eq): Likewise.
8093         (mips16_local_alias): Likewise.
8094         (mips16_stub_function): Likewise.
8095         (mips16_build_function_stub): Create a local alias for the target
8096         function.  Handle TARGET_ABICALLS.  For PIC abicalls, emit a
8097         .cpload directive and an R_MIPS_NONE relocation for the target
8098         function, then load the alias rather than the function itself.
8099         Wrap the non-PIC abicalls version in ".option pic0/.option pic2".
8100         (mips16_copy_fpr_return_value): Use mips16_stub_function and
8101         mips_expand_call.  Set SYMBOL_REF_BIND_NOW on the symbol.
8102         (mips16_build_call_stub): Replace the FN parameter with an
8103         FN_PTR parameter.  Force the address into a register if it
8104         isn't a call_insn_operand; don't rely on the caller to do this.
8105         If a call to a locally-defined and locally-binding MIPS16
8106         function must be made indirectly, redirect the call to the
8107         function's local alias.  Use mips16_stub_function_p,
8108         mips16_stub_function, mips_expand_call and use_reg.
8109         Set SYMBOL_FLAG_BIND_NOW on __mips_call_* symbols.
8110         Use explicit %hi and %lo accesses where possible.
8111         Use MIPS_CALL to generate the correct code form of a
8112         jal instruction.  Add clobbers of $18 instead of uses.
8113         Update the call to mips_emit_call_insn.
8114         (mips_expand_call): Replace the SIBCALL_P argument with a
8115         mips_call_type argument and handle the new MIPS_CALL_EPILOGUE value.
8116         Take a LAZY_P parameter.  Call mips16_build_call_stub first,
8117         allowing it to modify the call address.  Update the calls to
8118         mips_load_call_address and mips_emit_call_insn.
8119         (mips_split_call): New function.
8120         (mips_init_relocs): Clear mips_split_hi_p.  Only use %gp_rel if
8121         !TARGET_MIPS16.  Split SYMBOL_GOT_DISP, and the high parts of
8122         SYMBOL_GOT_PAGE_OFST, for MIPS16 code.
8123         (mips_global_pointer): Check mips16_cfun_returns_in_fpr_p.
8124         (mips_extra_live_on_entry): Include MIPS16_PIC_TEMP_REGNUM
8125         if TARGET_MIPS16.
8126         (mips_cprestore_slot): New function.
8127         (mips_restore_gp): Take a TEMP parameter.  Handle TARGET_MIPS16
8128         and use mips_cprestore_slot.
8129         (mips_output_function_prologue): Handle TARGET_MIPS16 for
8130         LOADGP_OLDABI.
8131         (mips_emit_loadgp): Move into MIPS16_PIC_TEMP for MIPS16,
8132         then use a copygp_mips16 instruction to set up $28.
8133         (mips_expand_prologue): Initialize the cprestore slot for MIPS16 too.
8134         (mips16_lay_out_constants): Call split_all_insns_noflow.
8135         (mips_reorg_process_insns): Explicitly set all_noreorder_p to
8136         false if TARGET_MIPS16.
8137         (mips_reorg): Don't call vr4130_align_insns if TARGET_MIPS16.
8138         (mips_output_mi_thunk): Use mips_got_symbol_type_p.  Use the
8139         mips_dangerous_for_la25_p approach for MIPS16 PIC calls too.
8140         (mips_set_mips16_mode): Always set MASK_EXPLICIT_RELOCS for
8141         MIPS16 code.  Allow MIPS16 o32 PIC.
8142         (mips_override_options): Allow MIPS16 o32 PIC.
8143         * config/mips/mips.md: Lower CONST_GP_P moves into register moves
8144         after reload if TARGET_USE_GOT.
8145         (UNSPEC_COPYGP): New constant.
8146         (length): Use a default length of 8 for MIPS16 GOT loads.
8147         (*got_disp<mode>): Check mips_split_p instead of TARGET_XGOT.
8148         (*got_page<mode>): Check mips_split_hi_p.
8149         (*got_disp<mode>, *got_page<mode>): Use mips_got_load.
8150         (unspec_got<mode>, unspec_call<mode>): New expanders.
8151         (load_got<mode>, load_call<mode>): Remove the length attributes.
8152         Use a got attribute instead of a type attribute.
8153         (copygp_mips16): New insn.
8154         (restore_gp): Add a scratch clobber and pass it to mips_restore_gp.
8155         (load_call<mode>): Use a "d" constraint instead of an "r" constraint.
8156         (sibcall, sibcall_value, call, call_value): Update the calls
8157         to mips_expand_call.
8158         (call_internal, call_value_internal): Use mips_split_call.
8159         (call_value_multiple_internal): Likewise.
8160         (call_split): Move after call_internal (the insn it is split from).
8161         (call_internal_direct, call_value_internal_direct): Turn into
8162         define_insn_and_splits.  Split if TARGET_SPLIT_CALLS.
8163         (call_direct_split, call_value_direct_split): New patterns.
8164         * config/mips/constraints.md (c): Handle TARGET_MIPS16 first
8165         and use M16_REGS instead of M16_NA_REGS.
8166         * config/mips/predicates.md (const_call_insn_operand): Replace
8167         the TARGET_ABSOLUTE_ABICALLS-based check with a more general
8168         mips_use_pic_fn_addr_reg_p check.
8169         (move_operand): Reject HIGHs if mips_split_hi_p.
8170         * config/mips/mips16.S: Assembly as empty if the ABI is not suitable.
8171         (__mips16_floatunsisf): Inline __mips16_floatsisf.
8172         (CALL_STUB_NO_RET, CALL_STUB_REG): Copy the target register to $25.
8173         * config/mips/libgcc-mips16.ver: New file.
8174         * config/mips/t-libgcc-mips16 (SHLIB_MAPFILES): Add
8175         $(srcdir)/config/mips/libgcc-mips16.ver.
8176
8177 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
8178
8179         * config/mips/mips.c (mips_unspec_address_offset): Move earlier
8180         in file.
8181         (mips_unspec_address, mips_unspec_offset_high): Likewise.
8182         (mips_ok_for_lazy_binding_p, mips_load_call_address): Likewise.
8183         (mips16_cfun_returns_in_fpr_p): Likewise.
8184
8185 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
8186
8187         * config/mips/mips.h (MASK_RETURN_ADDR): Expand commentary.
8188         * config/mips/linux-unwind.h (mips_fallback_frame_state): Add 2
8189         rather than 4 to PC.
8190
8191 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
8192
8193         * config/mips/mips.h (STATIC_CHAIN_REGNUM): Remap to $15.
8194         (FUNCTION_PROFILER): Save the static chain pointer into $2
8195         beforehand and restore it aftewards.
8196         (TRAMPOLINE_TEMPLATE): Adjust accordingly.  Load the target
8197         address directly into $25 and call the function through $25;
8198         do not clobber $3.  Pad the DImode version to cover the space
8199         left by the deleted $25 <- $3 move.
8200         (TRAMPOLINE_SIZE): Adjust the size of the SImode version after
8201         the removal of the $25 <- $3 move.
8202         (INITIALIZE_TRAMPOLINE): Update offsets accordingly.
8203         * config/mips/sdemtk.h (FUNCTION_PROFILER): As for mips.h.
8204
8205 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
8206             Daniel Jacobowitz  <dan@codesourcery.com>
8207
8208         * config/mips/mips.h (FUNCTION_NAME_ALREADY_DECLARED): Delete.
8209         * config/mips/linux.h (ASM_DECLARE_FUNCTION_NAME): Delete.
8210         (ASM_DECLARE_FUNCTION_SIZE, FUNCTION_NAME_ALREADY_DECLARED): Delete.
8211         * config/mips/mips.c (mips_start_function_definition): New function.
8212         (mips_end_function_definition): Likewise.
8213         (mips_output_function_prologue): Use mips_start_function_definition.
8214         (mips_output_function_epilogue): Use mips_end_function_definition.
8215         (build_mips16_function_stub): Use mips_start_function_definition
8216         and mips_end_function_definition.
8217         (build_mips16_call_stub): Likewise.
8218
8219 2008-08-09  Richard Guenther  <rguenther@suse.de>
8220
8221         * gimple.c (gimple_build_call_1): Deal with FUNCTION_DECL fn.
8222         * gimple.h (gimple_call_fn): Adjust comment.
8223         (gimple_call_set_fndecl): New function.
8224         (gimple_call_fndecl): Adjust for GIMPLE_CALL no
8225         longer having bare FUNCTION_DECL operand.
8226         (gimple_call_return_type): Likewise.
8227         * tree-cfg.c (verify_stmt): Verify function operand of a GIMPLE_CALL.
8228
8229         * value-prof.c (gimple_divmod_fixed_value): Do not emit labels.
8230         (gimple_mod_pow2): Likewise.
8231         (gimple_mod_subtract): Likewise.
8232         (gimple_ic): Likewise.
8233         (gimple_stringop_fixed_value): Likewise.
8234         (gimple_indirect_call_to_profile): Fix for GIMPLE_CALL no
8235         longer having bare FUNCTION_DECL operand.
8236         * ipa-cp.c (ipcp_update_callgraph): Use gimple_call_set_fndecl.
8237         * omp-low.c (optimize_omp_library_calls): Likewise.
8238         * cgraphunit.c (update_call_expr): Likewise.
8239         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
8240         (execute_convert_to_rsqrt): Likewise.
8241         * cfgexpand.c (gimple_to_tree): Simplify.
8242         (release_stmt_tree): Fix for GIMPLE_CALL no longer having
8243         bare FUNCTION_DECL operand.
8244         * tree-nested.c (init_tmp_var_with_call): Use gimple_call_return_type.
8245         (convert_gimple_call): Use gimple_call_fndecl.
8246         * c-common.c (c_warn_unused_result): Likewise.
8247
8248 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8249
8250         PR c/17880
8251         * c-typeck.c (digest_init): Call verify_sequence_points from here.
8252         (c_finish_return): Likewise.
8253         (c_start_case): Likewise.
8254         * c-common.c (warn_for_collisions_1): Use explicit location in warning.
8255         * c-parser.c (c_parser_condition): New. Call
8256         verify_sequence_points.
8257         (c_parser_paren_condition): Call c_parser_condition.
8258         (c_parser_for_statement): Call c_parser_condition.
8259
8260 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8261
8262         PR 36901
8263         * diagnostic.def (DK_PEDWARN, DK_PERMERROR): New.
8264         * diagnostic.c (pedantic_warning_kind, permissive_error_kind):
8265         Moved from diagnostic.h
8266         (diagnostic_report_diagnostic): Return bool. Handle DK_PEDWARN and
8267         DK_PERMERROR.
8268         (emit_diagnostic): New.
8269         (warning0, pedwarn0): Delete.
8270         (warning, warning_at, pedwarn, permerror): Return bool.
8271         * diagnostic.h (pedantic_warning_kind, permissive_error_kind):
8272         Moved to diagnostic.c.
8273         (struct diagnostic_context): Use correct type for
8274         classify_diagnostic.
8275         (diagnostic_report_diagnostic): Update declaration.
8276         (emit_diagnostic): Declare.
8277         * errors.c (warning): Return bool.
8278         * errors.h (warning): Update declaration.
8279         * toplev.h (warning0, pedwarn0): Delete.
8280         (warning, warning_at, pedwarn, permerror): Return bool.
8281         * c-errors.c (pedwarn_c99, pedwarn_c90): Use DK_PEDWARN.
8282         * c-decl.c (locate_old_decl): Delete 'diag' argument. Always use
8283         inform. Update all calls.
8284         (diagnose_mismatched_decls): Check return value of warning/pedwarn
8285         before giving informative note.
8286         (implicit_decl_warning): Likewise.
8287         * c-typeck.c (build_function_call): Likewise.
8288         * tree-sssa.c (warn_uninit): Likewise.
8289         * builtins.c (gimplify_va_arg_expr): Likewise.
8290
8291 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8292
8293         PR 7651
8294         * doc/invoke.texi (-Wextra): Move warning from here...
8295         (-Wuninitialized): ... to here.
8296
8297 2008-08-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8298
8299         PR 28875
8300         * flags.h (set_Wunused): Delete
8301         * toplev.c (process_options): Handle Wunused flags here.
8302         * opts.c (maybe_warn_unused_parameter): Delete.
8303         (common_handle_option): Replace set_Wunused by warn_unused.
8304         (set_Wextra): Do not handle Wunused-parameter here.
8305         (set_Wunused): Delete.
8306         * c-opts.c (c_common_handle_option): Replace set_Wunused by
8307         warn_unused.
8308         * common.opt (Wunused): Add Var and Init.
8309         (Wunused-function): Likewise.
8310         (Wunused-label): Likewise.
8311         (Wunused-parameter): Likewise.
8312         (Wunused-value): Likewise.
8313         (Wunused-variable): Likewise.
8314
8315 2008-08-08  Peter Bergner  <bergner@vnet.ibm.com>
8316
8317         * doc/invoke.texi: Add cpu_type power7.
8318         * config.in (HAVE_AS_VSX): New.
8319         * config.gcc: Add cpu_type power7.
8320         * configure.ac (HAVE_AS_VSX): Check for assembler support of the
8321         VSX instructions.
8322         * configure: Regenerate.
8323         * config/rs6000/rs6000.c (rs6000_override_options): Alias power7 to
8324         power5.
8325         * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Define.
8326         (ASM_CPU_SPEC): Pass %(asm_cpu_power7) for -mcpu=power7.
8327         (EXTRA_SPECS): Add asm_cpu_power7 spec string.
8328
8329 2008-08-08  Dorit Nuzman  <dorit@il.ibm.com>
8330
8331         * tree-vect-transform.c (vectorizable_conversion): Pass the integral
8332         type to vectorize.builtin_conversion.
8333         (vectorizable_conversion): Likewise.
8334         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Always takes
8335         integral type as input.
8336         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Add case for
8337         FIX_TRUNC_EXPR.
8338         (rs6000_expand_builtin): Add case for ALTIVEC_BUILTIN_VCTUXS
8339         and ALTIVEC_BUILTIN_VCTSXS.
8340         (rs6000_builtin_mul_widen_even. rs6000_builtin_mul_widen_odd): Fix
8341         formatting.
8342
8343 2008-08-08  Richard Guenther  <rguenther@suse.de>
8344
8345         * tree-ssa-ccp.c (likely_value): Calls are not all varying.
8346         (surely_varying_stmt_p): Calls are varying only if they are
8347         non-builtin and not indirect or have no result.
8348         (ccp_fold): Re-instantiate code before the tuples merge.
8349
8350 2008-08-08  Richard Guenther  <rguenther@suse.de>
8351
8352         PR tree-optimization/37056
8353         * gimple.h (gimple_assign_rhs_class): New helper function.
8354         * tree-ssa-loop-niter.c (get_val_for): Fix tuplification, handle
8355         unary operations properly.
8356
8357 2008-08-07  Jan Hubicka  <jh@suse.cz>
8358
8359         * i386.h (ix86_size_cost): Declare.
8360         (ix86_cur_cost): New function macro.
8361         * i386.md (peepholes expanding size and splitters): Predicate by
8362         optimize_insn_for_speed_p.
8363         (peepholes reduce size and splitters): Predicate by
8364         optimize_insn_for_size_p.
8365         * i386.c (ix86_size_cost): Rename from ...
8366         (size_cost): This one.
8367         (override_options): Update.
8368         (decide_alg): Likewise.
8369         (ix86_expand_clear): Use RTL profile.
8370         (ix86_pad_returns): Use RTL profile.
8371
8372 2008-08-07  Jan Hubicka  <jh@suse.cz>
8373
8374         * recog.c (split_all_insns): Set RTL profile
8375         (peephole2_optimize): Likewise.
8376         * function.c (thread_prologue_and_epilogue_insns): Likewise.
8377         * combine.c (combine_instructions): Likewise.
8378
8379 2008-08-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8380
8381         * c-common.c (c_common_reswords): Also warn about keyword "bool".
8382
8383 2008-08-07  Bob Wilson  <bob.wilson@acm.org>
8384
8385         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Copy incoming
8386         value in a6 after the set_frame_ptr insn.
8387
8388 2008-08-07  Richard Henderson  <rth@redhat.com>
8389
8390         PR debug/37033
8391         * gcc.c (cpp_options): Pass along -g*.
8392
8393 2008-08-07  Joseph Myers  <joseph@codesourcery.com>
8394
8395         * config/arm/arm.c (output_move_neon): Update comment describing
8396         big-endian vector layout.
8397         (arm_assemble_integer): Do not handle big-endian NEON vectors
8398         specially.
8399         * config/arm/neon.md (vec_set<mode>_internal, vec_extract<mode>,
8400         neon_vget_lane<mode>_sext_internal,
8401         neon_vget_lane<mode>_zext_internal, neon_vget_lane<mode>): Adjust
8402         element indices for big-endian.
8403
8404 2008-08-07  Richard Henderson  <rth@redhat.com>
8405
8406         * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): New.
8407         * configure, config.in: Rebuild.
8408         * debug.h (dwarf2out_do_cfi_asm): Declare.
8409         * c-cppbuiltin.c (c_cpp_builtins): Use it.
8410         * dwarf2out.c (dwarf2out_do_cfi_asm): New.
8411         (dwarf2out_cfi_label, add_fde_cfi, output_call_frame_info,
8412         dwarf2out_begin_prologue, dwarf2out_end_epilogue): Use it.
8413
8414 2008-08-07  Joseph Myers  <joseph@codesourcery.com>
8415
8416         * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
8417         movv2si_internal): Combine into mov<mode>_internal.
8418         (movv2si_internal_2): Remove.
8419
8420 2008-08-07  Jan Hubicka  <jh@suse.cz>
8421
8422         PR target/37048
8423         * i386.md (single stringop patterns): Enable unconditionally.
8424
8425 2008-08-07  H.J. Lu  <hongjiu.lu@intel.com>
8426
8427         PR target/36992
8428         * config/i386/emmintrin.h (_mm_move_epi64): Use __builtin_ia32_movq128.
8429
8430         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVQ128.
8431         (bdesc_args): Add IX86_BUILTIN_MOVQ128.
8432
8433         * config/i386/sse.md (sse2_movq128): New.
8434
8435         * doc/extend.texi: Document __builtin_ia32_movq128.
8436
8437 2008-08-07  Richard Guenther  <rguenther@suse.de>
8438
8439         PR middle-end/37042
8440         * tree-ssa-alias-warnings.c (nonstandard_alias_p): Ref-all
8441         pointers can access anything.
8442
8443 2008-08-06  Jan Hubicka  <jh@suse.cz>
8444
8445         * optabs.c (emit_unop_insn): Break out to ...
8446         (maybe_emit_unop_insn): ... this one.
8447         (expand_sfix_optab): Use maybe variant.
8448         * optabs.h (maybe_emit_unop_insn): Declare.
8449
8450         * i386.md (mov0 patterns): Enable by default.
8451         (FP conversion expanders): Disable expansion of code expanding
8452         sequences when instruction should be optimized for size.
8453         (single strinop patterns): Enable when optimizing for size.
8454         (string expanders): Disable expanding of code expanding sequences
8455         when optimizning instruction for size.
8456         * i386.c (ix86_expand_vector_move_misalign): Do code size optimization
8457         per BB basis.
8458         (ix86_fp_comparison_sahf_cost): Likewise.
8459         (ix86_expand_branch): Likewise.
8460         (ix86_expand_ashl_const): Likewise.
8461         (ix86_split_ashl): Likewise.
8462         (ix86_expand_strlen): Likewise.
8463         (ix86_emit_fp_unordered_jump): Likewie.
8464
8465 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8466
8467         * c-common.c: Fix typo.
8468         (c_common_reswords): Activate more C++ keyword warnings.
8469
8470         * matrix-reorg.c (compute_offset): Avoid C++ keywords.
8471
8472 2008-08-06  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8473
8474         PR 26785
8475         * diagnostic.c (permerror_at): New.
8476         * toplev.h (permerror_at): Declare.
8477
8478 2008-08-06  Victor Kaplansky  <victork@il.ibm.com>
8479             Ira Rosen  <irar@il.ibm.com>
8480
8481         * tree-vect-transform.c (vect_model_simple_cost): Return
8482         immediately if stmt is pure SLP.
8483         (vect_model_store_cost): Ditto.
8484         (vect_model_load_cost): Ditto.
8485         (vectorizable_store): Remove PURE_SLP check before call
8486         to vect_model_store_cost.
8487         (vect_model_store_cost): When checking whether stmt describe
8488         strided access, add a check that it is not slp_node.
8489
8490 2008-08-06  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8491
8492         PR 8715
8493         * c-common.c (warn_for_sign_compare): New. Handle separately the
8494         case that 'constant' is zero.
8495         * c-typeck.c (build_binary_op): Move code to c-common.c
8496
8497 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8498
8499         * config/alpha/alpha.c (alpha_preferred_reload_class,
8500         alpha_secondary_reload, alpha_emit_set_const_1, function_value,
8501         alpha_output_mi_thunk_osf): Avoid C++ keywords.
8502         * config/arm/arm.c (output_move_vfp, output_move_neon): Likewise.
8503         * config/arm/arm.md: Likewise.
8504         * config/avr/avr-protos.h (preferred_reload_class,
8505         test_hard_reg_class, avr_simplify_comparison_p,
8506         out_shift_with_cnt, class_max_nregs): Likewise.
8507         * config/avr/avr.c (class_max_nregs, avr_simplify_comparison_p,
8508         output_movqi, output_movhi, output_movsisf, out_shift_with_cnt,
8509         preferred_reload_class, test_hard_reg_class): Likewise.
8510         * config/bfin/bfin.c (legitimize_pic_address, hard_regno_mode_ok,
8511         bfin_memory_move_cost, bfin_secondary_reload,
8512         bfin_output_mi_thunk): Likewise.
8513         * config/crx/crx.c (crx_secondary_reload_class,
8514         crx_memory_move_cost): Likewise.
8515         * config/frv/frv-protos.h (frv_secondary_reload_class,
8516         frv_class_likely_spilled_p, frv_class_max_nregs): Likewise.
8517         * config/frv/frv.c (frv_override_options, frv_alloc_temp_reg,
8518         frv_secondary_reload_class, frv_class_likely_spilled_p,
8519         frv_class_max_nregs): Likewise.
8520         * config/h8300/h8300.c (h8300_classify_operand,
8521         h8300_unary_length, h8300_bitfield_length, h8300_asm_insn_count):
8522         Likewise.
8523         * config/i386/winnt.c (i386_pe_declare_function_type): Likewise.
8524         * config/ia64/ia64.c (ia64_preferred_reload_class,
8525         ia64_secondary_reload_class, ia64_output_mi_thunk): Likewise.
8526         * config/iq2000/iq2000.c (gen_int_relational): Likewise.
8527         * config/m32c/m32c.c (class_can_hold_mode, m32c_output_compare):
8528         Likewise.
8529         * config/m68hc11/m68hc11.c (preferred_reload_class,
8530         m68hc11_memory_move_cost): Likewise.
8531         * config/mcore/mcore.c (mcore_secondary_reload_class,
8532         mcore_reload_class): Likewise.
8533         * config/mips/mips.c (mips_hard_regno_mode_ok_p,
8534         mips_class_max_nregs, mips_cannot_change_mode_class,
8535         mips_preferred_reload_class, mips_secondary_reload_class,
8536         mips_output_mi_thunk): Likewise.
8537         * config/mmix/mmix.c (mmix_preferred_reload_class,
8538         mmix_preferred_output_reload_class, mmix_secondary_reload_class):
8539         Likewise.
8540         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
8541         Likewise.
8542         * config/pa/pa.c (pa_secondary_reload, pa_combine_instructions,
8543         pa_can_combine_p, pa_cannot_change_mode_class): Likewise.
8544         * config/pa/pa.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
8545         * config/rs6000/rs6000.c (paired_expand_vector_init,
8546         rs6000_secondary_reload_class, rs6000_output_mi_thunk,
8547         compare_section_name, rs6000_memory_move_cost): Likewise.
8548         * config/s390/s390.c (s390_emit_compare_and_swap,
8549         s390_preferred_reload_class, s390_secondary_reload,
8550         legitimize_pic_address, legitimize_tls_address,
8551         legitimize_reload_address, s390_expand_cs_hqi, s390_expand_atomic,
8552         s390_class_max_nregs): Likewise.
8553         * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
8554         * config/s390/s390.md: Likewise.
8555         * config/score/score-protos.h (score_secondary_reload_class,
8556         score_preferred_reload_class): Likewise.
8557         * config/score/score.c (score_preferred_reload_class,
8558         score_secondary_reload_class): Likewise.
8559         * config/score/score3.c (score3_output_mi_thunk,
8560         score3_preferred_reload_class, score3_secondary_reload_class,
8561         score3_hard_regno_mode_ok): Likewise.
8562         * config/score/score3.h (score3_preferred_reload_class,
8563         score3_secondary_reload_class): Likewise.
8564         * config/score/score7.c (score7_output_mi_thunk,
8565         score7_preferred_reload_class, score7_secondary_reload_class,
8566         score7_hard_regno_mode_ok): Likewise.
8567         * config/score/score7.h (score7_preferred_reload_class,
8568         score7_secondary_reload_class): Likewise.
8569         * config/sh/sh.c (prepare_move_operands, output_far_jump,
8570         output_branchy_insn, add_constant, gen_block_redirect,
8571         sh_insn_length_adjustment, sh_cannot_change_mode_class,
8572         sh_output_mi_thunk, replace_n_hard_rtx, sh_secondary_reload): Likewise.
8573         * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
8574         * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi,
8575         xstormy16_output_cbranch_si, xstormy16_secondary_reload_class,
8576         xstormy16_preferred_reload_class): Likewise.
8577         * config/xtensa/xtensa.c (xtensa_expand_compare_and_swap,
8578         xtensa_expand_atomic, override_options,
8579         xtensa_preferred_reload_class, xtensa_secondary_reload_class):
8580         Likewise.
8581         * reorg.c (try_merge_delay_insns): Likewise.
8582         * tree.c (merge_dllimport_decl_attributes): Likewise.
8583
8584         * config/frv/frv.c (frv_print_operand): Change isalpha to ISALPHA.
8585
8586 2008-08-06  Michael Matz  <matz@suse.de>
8587
8588         * Makefile.in (write_entries_to_file): Quote words.
8589         * gengtype.c: (read_input_line): Skip over leading white-space.
8590
8591 2008-08-06  Marc Gauthier  <marc@tensilica.com>
8592
8593         * config.gcc: Match more processor names for Xtensa.
8594         * configure.ac: Likewise.
8595         * doc/install.texi (Specific): Likewise.
8596         * configure: Regenerate.
8597
8598 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8599
8600         * builtins.c (expand_builtin_profile_func): Avoid C++ keywords.
8601         * calls.c (avoid_likely_spilled_reg): Likewise.
8602         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
8603         * cgraph.c (cgraph_clone_edge, cgraph_clone_node): Likewise.
8604         * config/i386/i386.c (ix86_expand_special_args_builtin,
8605         ix86_secondary_reload): Likewise.
8606         * except.c (struct eh_region, gen_eh_region_catch,
8607         remove_unreachable_regions, duplicate_eh_regions,
8608         assign_filter_values, build_post_landing_pads,
8609         sjlj_find_directly_reachable_regions, remove_eh_handler,
8610         reachable_next_level, foreach_reachable_handler,
8611         can_throw_internal_1, can_throw_external_1,
8612         collect_one_action_chain): Likewise.
8613         * expr.c (expand_expr_real_1, vector_mode_valid_p): Likewise.
8614         * fold-const.c (twoval_comparison_p, eval_subst): Likewise.
8615         * function.c (update_temp_slot_address, instantiate_new_reg,
8616         instantiate_virtual_regs_in_rtx,
8617         instantiate_virtual_regs_in_insn): Likewise.
8618         * gimple.c (extract_ops_from_tree, gimple_seq_copy): Likewise.
8619         * gimplify.c (gimplify_call_expr, gimplify_init_constructor,
8620         gimplify_cleanup_point_expr): Likewise.
8621         * ipa-cp.c (ipcp_lattice_changed): Likewise.
8622         * passes.c (next_pass_1): Likewise.
8623         * print-tree.c (print_node_brief, print_node): Likewise.
8624         * profile.c (branch_prob): Likewise.
8625         * tree-dump.c (dump_register): Likewise.
8626         * tree-eh.c (replace_goto_queue_cond_clause, lower_catch):
8627         Likewise.
8628         * tree-inline.c (remap_ssa_name, remap_type_1, remap_blocks,
8629         copy_statement_list, remap_gimple_op_r, copy_tree_body_r,
8630         copy_edges_for_bb, copy_cfg_body, copy_tree_r,
8631         copy_arguments_for_versioning, copy_static_chain): Likewise.
8632         * tree-into-ssa.c (names_replaced_by, add_to_repl_tbl,
8633         add_new_name_mapping, register_new_name_mapping): Likewise.
8634         * tree-mudflap.c (mf_xform_derefs): Likewise.
8635         * tree-predcom.c (struct chain, dump_chain, replace_ref_with,
8636         get_init_expr, combine_chains): Likewise.
8637         * tree-pretty-print.c (dump_generic_node): Likewise.
8638         * tree-ssa-structalias.c (create_variable_info_for): Likewise.
8639         * tree-vrp.c (simplify_cond_using_ranges): Likewise.
8640         * tree.c (substitute_in_expr, iterative_hash_expr): Likewise.
8641         * value-prof.c (gimple_duplicate_stmt_histograms): Likewise.
8642
8643 2008-08-06  H.J. Lu  <hongjiu.lu@intel.com>
8644
8645         PR middle-end/37010
8646         * calls.c (expand_call): Use the biggest preferred stack
8647         boundary.
8648
8649 2008-08-06  Michael Matz  <matz@suse.de>
8650
8651         PR target/36613
8652         * reload.c (push_reload): Merge in,out,in_reg,out_reg members
8653         for reused reload, instead of overwriting them.
8654
8655 2008-08-06  H.J. Lu  <hongjiu.lu@intel.com>
8656
8657         PR middle-end/37009
8658         * cfgexpand.c (expand_stack_alignment): Check parm_stack_boundary
8659         for incoming stack boundary.
8660
8661         * function.c (assign_parm_find_entry_rtl): Update
8662         parm_stack_boundary.
8663
8664         * function.h (rtl_data): Add parm_stack_boundary.
8665
8666         * config/i386/i386.c (ix86_finalize_stack_realign_flags): Check
8667         parm_stack_boundary for incoming stack boundary.
8668
8669 2008-08-06  Joseph Myers  <joseph@codesourcery.com>
8670
8671         * jump.c (rtx_renumbered_equal_p): Do not call subreg_regno_offset
8672         for unrepresentable subregs or treat them as equal to other regs
8673         or subregs with the same register number.
8674
8675 2008-08-06  Aldy Hernandez  <aldyh@redhat.com>
8676
8677         PR middle-end/35432
8678         * gimplify.c (gimplify_modify_expr): Do not optimize zero-sized types
8679         if want_value.
8680
8681 2008-08-06  Jan Hubicka  <jh@suse.cz>
8682
8683         * predict.c (maybe_hot_frequency_p): When profile is absent, all
8684         frequencies might be hot.
8685
8686 2008-08-06  Andreas Krebbel  <krebbel1@de.ibm.com>
8687
8688         * reload.c (find_reloads): Force constants into literal pool
8689         also if they are wrapped in a SUBREG.
8690
8691 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
8692
8693         PR target/35659
8694         * haifa-sched.c (sched_insn_is_legitimate_for_speculation_p): Move ...
8695         * sched-deps.c (sched_insn_is_legitimate_for_speculation_p): ... here.
8696         Don't allow predicated instructions for data speculation.
8697         * sched-int.h (sched_insn_is_legitimate_for_speculation_p): Move
8698         declaration.
8699
8700 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
8701
8702         * haifa-sched.c (extend_global): Split to extend_global_data and
8703         extend_region_data.  Update all uses.
8704         (extend_all): Rename to extend_block_data.
8705
8706 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
8707
8708         * sched-rgn.c (new_ready): Check if instruction can be
8709         speculatively scheduled before attempting speculation.
8710         (debug_rgn_dependencies): Remove wrongful assert.
8711
8712 2008-08-05  Bob Wilson  <bob.wilson@acm.org>
8713
8714         * config/xtensa/t-xtensa: Remove dependency for gt-xtensa.h.
8715
8716 2008-08-05  Bob Wilson  <bob.wilson@acm.org>
8717
8718         * config/xtensa/xtensa.c (xtensa_va_start): Unshare valist.
8719         (xtensa_gimplify_va_arg_expr): Unshare valist, orig_ndx, ndx, array,
8720         va_size, and type_size.
8721
8722 2008-08-04  Jason Merrill  <jason@redhat.com>
8723
8724         PR c++/37016
8725         * tree-ssa.c (useless_type_conversion_p_1): Call langhook
8726         if TYPE_STRUCTURAL_EQUALITY_P is true for both types.
8727
8728 2008-08-05  Richard Henderson  <rth@redhat.com>
8729
8730         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Check .cfi_personality.
8731         * configure: Rebuild.
8732
8733 2008-08-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8734
8735         PR tree-opt/37024
8736         * tree-tailcall.c (process_assignment): Use gimple_assign_cast_p
8737         instead of IS_CONVERT_EXPR_CODE_P for seeing if the assignment
8738         is a conversion.
8739
8740 2008-08-05  Richard Henderson  <rth@redhat.com>
8741
8742         * Makefile.in (c-cppbuiltin.o): Depend on debug.h.
8743         * c-cppbuiltin.c (c_cpp_builtins): Define __GCC_HAVE_DWARF2_CFI_ASM.
8744         * doc/cpp.texi (__GCC_HAVE_DWARF2_CFI_ASM): Document it.
8745         * common.opt (fdwarf2-cfi-asm): New.
8746         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): New.
8747         * config.in, configure: Rebuild.
8748         * dwarf2asm.c (dw2_asm_output_data_raw): New.
8749         (dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_sleb128_raw):
8750         New.
8751         (dw2_force_const_mem): Externalize.
8752         * dwarf2asm.h: Update.
8753         * dwarf2out.c (dwarf2out_cfi_label): If flag_dwarf2_cfi_asm, don't
8754         generate a real label.
8755         (output_cfi_directive): New.
8756         (add_fde_cfi): If flag_dwarf2_cfi_asm, use it.
8757         (output_call_frame_info): Do nothing if flag_dwarf2_cfi_asm.
8758         (dwarf2out_begin_prologue): Emit .cfi_startproc, .cfi_personality,
8759         and .cfi_lsda.
8760         (dwarf2out_end_epilogue): Emit .cfi_endproc.
8761         (output_loc_operands_raw, output_loc_sequence_raw): New.
8762         (output_cfa_loc_raw): New.
8763
8764 2008-08-05  Paul Brook  <paul@codesourcery.com>
8765
8766         * doc/invoke.texi: Document new ARM -mfpu= and -mcpu= options.
8767         * config/arm/arm.c (all_fpus): Add vfpv3 and vfpv3-d16.
8768         (fp_model_for_fpu): Add entry for FPUTYPE_VFP3D16.
8769         (arm_file_start): Add FPUTYPE_VFP3D16.  Rename vfp3 to vfpv3.
8770         * config/arm/arm.h (TARGET_VFPD32): Define.
8771         (TARGET_VFP3): Use TARGET_VFPD32.
8772         (fputype): Add FPUTYPE_VFP3D16.
8773         (LAST_VFP_REGNUM): Use TARGET_VFPD32.
8774         * config/arm/constraints.md ("w"): Use TARGET_VFPD32.
8775         * config/arm/arm-cores.def: Add cortex-r4f.
8776         * config/arm/arm-tune.md: Regenerate.
8777
8778 2008-08-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8779
8780         * config/spu_spu_mfcio.h: Wrap in extern "C" if __cplusplus.
8781         Reword some comments throughout the file.
8782
8783         (MFC_MIN_DMA_LIST_ELEMENTS): New define.
8784         (MFC_MAX_DMA_LIST_ELEMENTS): Likewise.
8785         (MFC_MIN_DMA_LIST_SIZE): Redefine in terms of
8786         MFC_MIN_DMA_LIST_ELEMENTS.
8787         (MFC_MAX_DMA_LIST_SIZE): Redefine in terms of
8788         MFC_MAX_DMA_LIST_ELEMENTS.
8789
8790         (MFC_START_ENABLE): Remove PPU-only define.
8791         (MFC_PUTS_CMD, MFC_PUTFS_CMD, MFC_PUTBS_CMD): Likewise.
8792         (MFC_GETS_CMD, MFC_GETFS_CMD, MFC_GETBS_CMD): Likewise.
8793
8794         (MFC_PUTB_CMD, MFC_PUTF_CMD): Reimplement using symbolic constants.
8795         (MFC_PUTL_CMD, MFC_PUTLB_CMD, MFC_PUTLF_CMD): Likewise.
8796         (MFC_PUTR_CMD, MFC_PUTRB_CMD, MFC_PUTRF_CMD): Likewise.
8797         (MFC_PUTRL_CMD, MFC_PUTRLB_CMD, MFC_PUTRLF_CMD): Likewise.
8798         (MFC_GETB_CMD, MFC_GETF_CMD): Likewise.
8799         (MFC_GETL_CMD, MFC_GETLB_CMD, MFC_GETLF_CMD): Likewise.
8800         (MFC_SNDSIGB_CMD, MFC_SNDSIGF_CMD): Likewise.
8801
8802         (MFC_SDCRT_CMD, MFC_SDCRTST_CMD): New defines.
8803         (MFC_SDCRZ_CMD, MFC_SDCRST_CMD, MFC_SDCRF_CMD): Likewise.
8804         (mfc_sdcrt, mfc_sdcrtst): Likewise.
8805         (mfc_sdcrz, mfc_sdcrst, mfc_sdcrf): Likewise.
8806
8807         (spu_read_machine_status): Fix typo.
8808
8809 2008-08-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8810
8811         * config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Allow (multi)word-sized
8812         SUBREG of multi-word hard register.
8813         * config/spu/spu.c (valid_subreg): Likewise.
8814         (adjust_operand): Handle SUBREGs of multi-word hard registers.
8815
8816 2008-08-04  Richard Guenther  <rguenther@suse.de>
8817
8818         * tree-ssa-loop-ivopts.c (add_iv_value_candidates): Also add
8819         the candidate with the stripped base if that base is different
8820         from the original base even for offset zero.
8821
8822 2008-08-04  Richard Guenther  <rguenther@suse.de>
8823
8824         PR middle-end/36691
8825         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Correctly
8826         check for no_overflow.
8827
8828 2008-08-04  Richard Guenther  <rguenther@suse.de>
8829
8830         * tree-vect-transform.c (vectorizable_call): Fix tuplification.
8831
8832 2008-08-04  Paul Brook  <paul@codesourcery.com>
8833
8834         * cofig/arm/arm.c (thumb_core_reg_alloc_order): New.
8835         (arm_order_regs_for_local_alloc): New function.
8836         * config/arm/arm-protos.h (arm_order_regs_for_local_alloc): Add
8837         prototype.
8838         * config/arm/arm.h (ORDER_REGS_FOR_LOCAL_ALLOC): Define.
8839
8840 2008-08-04  H.J. Lu  <hongjiu.lu@intel.com>
8841
8842         PR target/37012
8843         * config/i386/i386.c (ix86_expand_prologue): Use UNITS_PER_WORD
8844         instead of STACK_BOUNDARY / BITS_PER_UNIT to align stack.
8845         (ix86_expand_epilogue): Likewise.
8846
8847 2008-08-04  H.J. Lu  <hongjiu.lu@intel.com>
8848
8849         * config/i386/i386.c (ix86_compute_frame_layout): Fix a typo
8850         in comments.
8851
8852 2008-08-03  Uros Bizjak  <ubizjak@gmail.com>
8853
8854         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use Yi instead of x
8855         to avoid inter-unit moves for !TARGET_INTER_UNIT_MOVES.
8856         (*movv2sf_internal_rex64): Ditto.
8857
8858 2008-08-03  Jan Hubicka  <jh@suse.cz>
8859
8860         * optabs.c (expand_binop, expand_builtin_pow, expand_builtin_powi,
8861         expand_builtin_strcat): Upse optimize_insn_for_speed predicate.
8862         * expmed.c (expand_smod_pow2): Likewise.
8863
8864 2008-08-03  Uros Bizjak  <ubizjak@gmail.com>
8865
8866         PR target/36992
8867         * config/i386/sse.md (vec_concatv2di): Add Y2 constraint to
8868         alternative 0 of operand 1.
8869         (*vec_concatv2di_rex64_sse): Ditto.
8870         (*vec_concatv2di_rex64_sse4_1): Add x constraint to alternative 0
8871         of operand 1.
8872         (*sse2_storeq_rex64): Penalize allocation of "r" registers.
8873         * config/i386/mmx.md (*mov<mode>_internal_rex64): Penalize allocation
8874         of "Y2" registers to avoid SSE <-> MMX conversions for DImode moves.
8875         (*movv2sf_internal_rex64): Ditto.
8876
8877 2008-08-02  Richard Guenther  <rguenther@suse.de>
8878
8879         PR target/35252
8880         * config/i386/sse.md (SSEMODE4S, SSEMODE2D): New mode iterators.
8881         (ssedoublesizemode): New mode attribute.
8882         (sse_shufps): Call gen_sse_shufps_v4sf.
8883         (sse_shufps_1): Macroize.
8884         (sse2_shufpd): Call gen_Sse_shufpd_v2df.
8885         (sse2_shufpd_1): Macroize.
8886         (vec_extract_odd, vec_extract_even): New expanders.
8887         (vec_interleave_highv4sf, vec_interleave_lowv4sf,
8888         vec_interleave_highv2df, vec_interleave_lowv2df): Likewise.
8889         * i386.c (ix86_expand_vector_init_one_nonzero): Call
8890         gen_sse_shufps_v4sf instead of gen_sse_shufps_1.
8891         (ix86_expand_vector_set): Likewise.
8892         (ix86_expand_reduc_v4sf): Likewise.
8893
8894 2008-08-01  Doug Kwan  <dougkwan@google.com>
8895
8896         * matrix-reorg.c: Re-enable all code.
8897         (struct malloc_call_data): Change CALL_STMT to gimple type.
8898         (collect_data_for_malloc_call): Tuplify.
8899         (struct access_site_info): Change STMT to gimple type.
8900         (struct matrix_info): Change MIN_INDIRECT_LEVEL_ESCAPE_STMT,
8901         and MALLOC_FOR_LEVEL to gimple and gimple pointer type.
8902         (struct free_info): Change STMT to gimple type.
8903         (struct matrix_access_phi_node):  Change PHI to gimple type.
8904         (get_inner_of_cast_expr): Remove.
8905         (may_flatten_matrices_1): Tuplify.
8906         (may_flatten_matrices): Ditto.
8907         (mark_min_matrix_escape_level): Ditto.
8908         (ssa_accessed_in_tree): Refactor statement RHS related code into ...
8909         (ssa_accessed_in_call_rhs): New
8910         (ssa_accessed_in_assign_rhs): New
8911         (record_access_alloc_site_info): Tuplify.
8912         (add_allocation_site): Ditto.
8913         (analyze_matrix_allocation_site): Ditto.
8914         (analyze_transpose): Ditto.
8915         (get_index_from_offset): Ditto.
8916         (update_type_size): Ditto.
8917         (analyze_accesses_for_call_expr): Tuplify and renamed into ...
8918         (analyze_accesses_for_call_stmt): New. Also handle LHS of a call.
8919         (analyze_accesses_for_phi_node): Tuplify.
8920         (analyze_accesses_for_modify_stmt): Tuplify and renamed into ...
8921         (analyze_accesses_for_assign_stmt): Remove code for handling call LHS.
8922         (analyze_matrix_accesses): Tuplify.
8923         (check_var_data): New call-back type for check_var_notmodified_p.
8924         (check_var_notmodified_p): Tuplify and use call-back struct to
8925         return statement found.
8926         (can_calculate_expr_before_stmt): Factor out statement related code
8927         into ...
8928         (can_calculate_stmt_before_stmt): New.
8929         (check_allocation_function): Tuplify.
8930         (find_sites_in_func): Ditto.
8931         (record_all_accesses_in_func): Ditto.
8932         (transform_access_sites): Ditto.
8933         (transform_allocation_sites): Ditto.
8934         (matrix_reorg): Re-enable.
8935         (gate_matrix_reorg): Re-enable.
8936
8937 2008-08-01  Jakub Jelinek  <jakub@redhat.com>
8938
8939         * dwarf2out.c (compute_barrier_args_size): Set barrier_args_size
8940         for labels for which it hasn't been set yet.  If it has been set,
8941         stop walking insns and continue with next worklist item.
8942         (dwarf2out_stack_adjust): Don't call compute_barrier_args_size
8943         if the only BARRIER is at the very end of a function.
8944
8945 2008-08-01  H.J. Lu  <hongjiu.lu@intel.com>
8946
8947         * cfgexpand.c (expand_stack_alignment): Assert that
8948         stack_realign_drap and drap_rtx must match.
8949
8950         * function.c (instantiate_new_reg): If DRAP is used to realign
8951         stack, replace virtual_incoming_args_rtx with internal arg
8952         pointer.
8953
8954 2008-08-01  Richard Guenther  <rguenther@suse.de>
8955
8956         * tree-ssa-pre.c (fini_pre): Take in_fre parameter.  Free
8957         loop information only if we initialized it.
8958         (execute_pre): Call fini_pre with in_fre.
8959         * tree-ssa-loop-ivcanon (try_unroll_loop_completely): Dump
8960         if we do not unroll because we hit max-completely-peeled-insns.
8961         Use our estimation for consistency, do allow shrinking.
8962
8963 2008-08-01  H.J. Lu  <hongjiu.lu@intel.com>
8964
8965         * config/i386/i386.c (override_options): Replace ABI_STACK_BOUNDARY
8966         with MIN_STACK_BOUNDARY.
8967         (ix86_update_stack_boundary): Likewise.
8968         (ix86_expand_prologue): Assert MIN_STACK_BOUNDARY instead of
8969         STACK_BOUNDARY.
8970
8971         * config/i386/i386.h (ABI_STACK_BOUNDARY): Renamed to ...
8972         (MIN_STACK_BOUNDARY): This.
8973
8974 2008-08-01  Richard Guenther  <rguenther@suse.de>
8975
8976         PR middle-end/36997
8977         * gimplify.c (gimplify_call_expr): Set error_mark_node on GS_ERROR.
8978
8979 2008-08-01  Richard Guenther  <rguenther@suse.de>
8980
8981         PR tree-optimization/36988
8982         * tree-ssa-ccp.c (ccp_fold): Conversions of constants only
8983         do not matter if that doesn't change volatile qualification.
8984
8985 2008-08-01  Paolo Bonzini  <bonzini@gnu.org>
8986
8987         * configure.ac: Do not generate libada-mk.  Do not subst
8988         host_cc_for_libada.
8989         * libada-mk.in: Remove.
8990         * Makefile.in: Pass TARGET_LIBGCC2_CFLAGS to libgcc.mvars.
8991         * configure: Regenerate.
8992
8993 2008-08-01  Basile Starynkevitch  <basile@starynkevitch.net>
8994
8995         * tree-pass.h: Added comment about not dumping passes with name
8996         starting with star in struct opt_pass.
8997         * passes.c (register_dump_files_1): Don't do dump for a pass with
8998         name starting with star.
8999         * doc/passes.texi (Pass manager): Mention pass names and special
9000         meaning of star prefix to avoid dump.
9001
9002 2008-07-31  Adam Nemet  <anemet@caviumnetworks.com>
9003
9004         * config.gcc (mipsisa64r2*-*-linux*): New configuration.  Set ISA
9005         to MIPS64r2.
9006         * config/mips/mips.h (GENERATE_MIPS16E): Update comment.
9007         (ISA_MIPS64R2): New macro.
9008         (TARGET_CPU_CPP_BUILTINS, MULTILIB_ISA_DEFAULT): Handle it.
9009         (ISA_HAS_64BIT_REGS, ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE,
9010         ISA_HAS_8CC, ISA_HAS_FP4, ISA_HAS_PAIRED_SINGLE,
9011         ISA_HAS_MADD_MSUB, ISA_HAS_NMADD4_NMSUB4, ISA_HAS_CLZ_CLO,
9012         ISA_HAS_ROR, ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX, ISA_HAS_SEB_SEH,
9013         ISA_HAS_EXT_INS, ISA_HAS_MXHC1, ISA_HAS_HILO_INTERLOCKS,
9014         ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Return true for ISA_MIPS64R2.
9015         (MIPS_ISA_LEVEL_SPEC, ASM_SPEC, LINK_SPEC): Handle -mips64r2.
9016         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF):
9017         Move up to keep list alphabetically sorted.
9018         (TUNE_20KC, TUNE_24K, TUNE_74K, TUNE_LOONGSON_2EF): Likewise.
9019         * config/mips/mips.c (mips_cpu_info_table): Add default MIPS64r2
9020         processor.
9021         * doc/invoke.texi (MIPS Options): Add -mips64r2.
9022         (-march=@var{arch}): Add mips64r2.
9023
9024 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
9025
9026         * config/i386/darwin.h (MAIN_STACK_BOUNDARY): Define to 128.
9027
9028 2008-07-31  Steve Ellcey  <sje@cup.hp.com>
9029
9030         * expr.c (expand_assignment): Check for complete type.
9031
9032 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
9033
9034         PR debug/36977
9035         * cfgexpand.c (expand_stack_alignment): Set stack_realign_tried.
9036
9037         * dwarf2out.c (based_loc_descr): Check crtl->stack_realign_tried
9038         for stack alignment.
9039
9040         * function.h (rtl_data): Add stack_realign_tried.  Update comments.
9041
9042 2008-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
9043
9044         * config/sh/sh.c (sh_canonical_va_list_type): Remove.
9045         (TARGET_CANONICAL_VA_LIST_TYPE): Remove.
9046
9047 2008-07-31  Jakub Jelinek  <jakub@redhat.com>
9048
9049         PR rtl-optimization/36419
9050         * dwarf2out.c (barrier_args_size): New variable.
9051         (compute_barrier_args_size, compute_barrier_args_size_1): New
9052         functions.
9053         (dwarf2out_stack_adjust): For BARRIERs call compute_barrier_args_size
9054         if not called yet in the current function, use barrier_args_size
9055         array to find the new args_size value.
9056         (dwarf2out_frame_debug): Free and clear barrier_args_size.
9057
9058 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
9059
9060         PR debug/36980
9061         * dwarf2out.c (dwarf2out_frame_debug_expr): Move rule 17 before
9062         rule 19.
9063
9064 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
9065
9066         PR debug/36976
9067         * dwarf2out.c (dwarf2out_args_size_adjust): New.
9068         (dwarf2out_stack_adjust): Use it.
9069         (dwarf2out_frame_debug_expr): Likewise.
9070
9071 2008-07-31  Richard Guenther  <rguenther@suse.de>
9072
9073         PR tree-optimization/36978
9074         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Do not fold
9075         the generated condition.
9076
9077 2008-07-31  Richard Guenther  <rguenther@suse.de>
9078
9079         * passes.c (init_optimization_passes): Always call
9080         pass_early_warn_uninitialized.
9081         * opts.c (decode_options): Do not warn about -Wuninitialized at -O0.
9082         * doc/invoke.texi (-Wuninitialized): Correct for enabling at -O0.
9083         * doc/passes.texi (Warn for uninitialized variables): Adjust.
9084
9085 2008-07-31  Jakub Jelinek  <jakub@redhat.com>
9086
9087         PR c/36970
9088         * builtins.c (maybe_emit_free_warning): New function.
9089         (expand_builtin): Process BUILT_IN_FREE even at -O0.  Call
9090         maybe_emit_free_warning for BUILT_IN_FREE.
9091
9092         PR debug/36278
9093         * dwarf2out.c (get_context_die): New function.
9094         (force_decl_die, force_type_die): Use it.
9095         (dwarf2out_imported_module_or_decl): Likewise.  If base_type_die
9096         returns NULL, force generation of DW_TAG_typedef and put that into
9097         DW_AT_import.
9098
9099         PR preprocessor/36649
9100         * c-pch.c (c_common_read_pch): Save and restore
9101         line_table->trace_includes across PCH restore.
9102
9103 2008-07-30  Eric Botcazou  <ebotcazou@adacore.com>
9104
9105         PR ada/36554
9106         * dwarf2out.c (is_subrange_type): Deal with BOOLEAN_TYPE.
9107
9108 2008-07-30  Rafael Ã\83Â\81vila de EspÃ\83­ndola  <espindola@google.com>
9109
9110         PR 36974
9111         * final.c (call_from_call_insn): Handle COND_EXEC.
9112
9113 2008-07-30  H.J. Lu  <hongjiu.lu@intel.com>
9114
9115         * builtins.c (std_gimplify_va_arg_expr): Replace
9116         PREFERRED_STACK_BOUNDARY with MAX_SUPPORTED_STACK_ALIGNMENT.
9117         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
9118
9119 2008-07-30  Joey Ye  <joey.ye@intel.com>
9120             H.J. Lu  <hongjiu.lu@intel.com>
9121
9122         * builtins.c (expand_builtin_setjmp_receiver): Replace
9123         virtual_incoming_args_rtx with crtl->args.internal_arg_pointer.
9124         (expand_builtin_apply_args_1): Likewise.
9125         (expand_builtin_longjmp): Need DRAP for stack alignment.
9126         (expand_builtin_apply): Likewise.
9127
9128         * caller-save.c (setup_save_areas): Call assign_stack_local_1
9129         instead of assign_stack_local to allow alignment reduction.
9130
9131         * calls.c (emit_call_1): Need DRAP for stack alignment if
9132         return pops.
9133         (expand_call): Replace virtual_incoming_args_rtx with
9134         crtl->args.internal_arg_pointer.
9135         * stmt.c (expand_nl_goto_receiver): Likewise.
9136
9137         * cfgexpand.c (get_decl_align_unit): Estimate stack variable
9138         alignment and store to stack_alignment_estimated and
9139         max_used_stack_slot_alignment.
9140         (expand_one_var): Likewise.
9141         (expand_stack_alignment): New function.
9142         (tree_expand_cfg): Initialize max_used_stack_slot_alignment
9143         and stack_alignment_estimated fields in rtl_data.  Call
9144         expand_stack_alignment at end.
9145
9146         * defaults.h (INCOMING_STACK_BOUNDARY): New.
9147         (MAX_STACK_ALIGNMENT): Likewise.
9148         (MAX_SUPPORTED_STACK_ALIGNMENT): Likewise.
9149         (SUPPORTS_STACK_ALIGNMENT): Likewise.
9150
9151         * emit-rtl.c (gen_reg_rtx): Estimate stack alignment for
9152         stack alignment when generating virtual registers.
9153
9154         * function.c (assign_stack_local): Renamed to ...
9155         (assign_stack_local_1): This.  Add a parameter to indicate
9156         if it is OK to reduce alignment.
9157         (assign_stack_local): Use it.
9158         (instantiate_new_reg): Instantiate virtual incoming args rtx
9159         to vDRAP if stack realignment and DRAP is needed.
9160         (assign_parms): Collect parameter/return type alignment and
9161         contribute to stack_alignment_estimated.
9162         (locate_and_pad_parm): Likewise.
9163         (get_arg_pointer_save_area): Replace virtual_incoming_args_rtx
9164         with crtl->args.internal_arg_pointer.
9165
9166         * function.h (rtl_data): Add new field drap_reg,
9167         max_used_stack_slot_alignment, stack_alignment_estimated,
9168         stack_realign_needed, need_drap, stack_realign_processed and
9169         stack_realign_finalized.
9170         (stack_realign_fp): New macro.
9171         (stack_realign_drap): Likewise.
9172
9173         * global.c (compute_regsets): Frame pointer is needed when
9174         stack is realigned.  Can eliminate frame pointer when stack is
9175         realigned and dynamic realigned argument pointer isn't used.
9176
9177         * reload1.c (update_eliminables):  Frame pointer is needed
9178         when stack is realigned.
9179         (init_elim_table): Can eliminate frame pointer when stack is
9180         realigned and dynamic realigned argument pointer isn't used.
9181
9182         * rtl.h (assign_stack_local_1): Declare new funtion.
9183
9184         * target-def.h (TARGET_UPDATE_STACK_BOUNDARY): New.
9185         (TARGET_GET_DRAP_RTX): Likewise.
9186         (TARGET_CALLS): Add TARGET_UPDATE_STACK_BOUNDARY and
9187         TARGET_GET_DRAP_RTX.
9188
9189         * target.h (gcc_target): Add update_stack_boundary and get_drap_rtx.
9190
9191         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
9192         STACK_BOUNDARY with MAX_STACK_ALIGNMENT.
9193
9194 2008-07-30  Xuepeng Guo  <xuepeng.guo@intel.com>
9195             H.J. Lu  <hongjiu.lu@intel.com>
9196
9197         * dwarf2out.c (dw_fde_struct): Add stack_realignment, drap_reg,
9198         vdrap_reg, stack_realign and drap_reg_saved.
9199         (add_cfi): Don't allow redefining CFA when DRAP is used.
9200         (reg_save): Handle stack alignment.
9201         (dwarf2out_frame_debug_expr): Add rules 16-20 to handle stack
9202         alignment.  Don't generate DWARF information for (set fp sp)
9203         when DRAP is used.
9204         (dwarf2out_begin_prologue): Initialize drap_reg and vdrap_reg
9205         to INVALID_REGNUM.
9206         (int_loc_descriptor): Move prototype forward.  Also define if
9207         DWARF2_UNWIND_INFO is true.
9208         (output_cfa_loc): Handle DW_CFA_expression.
9209         (build_cfa_aligned_loc): New.
9210         (based_loc_descr): Update assert for stack realign.  For local
9211         variables, use sp+offset when stack is aligned without drap and
9212         fp+offset when stack is aligned with drap.  For arguments, use
9213         cfa+offset when drap is used to align stack.
9214
9215 2008-07-30  Joey Ye  <joey.ye@intel.com>
9216             H.J. Lu  <hongjiu.lu@intel.com>
9217
9218         * config/i386/i386.c (ix86_force_align_arg_pointer_string):
9219         Break long line.
9220         (ix86_gen_andsp): New.
9221         (ix86_user_incoming_stack_boundary): Likewise.
9222         (ix86_default_incoming_stack_boundary): Likewise.
9223         (ix86_incoming_stack_boundary): Likewise.
9224         (ix86_can_eliminate): Likewise.
9225         (find_drap_reg): Likewise.
9226         (ix86_update_stack_boundary): Likewise.
9227         (ix86_get_drap_rtx): Likewise.
9228         (ix86_finalize_stack_realign_flags): Likewise.
9229         (TARGET_UPDATE_STACK_BOUNDARY): Likewise.
9230         (TARGET_GET_DRAP_RTX): Likewise.
9231         (override_options): Overide option value for new options.
9232         (ix86_function_ok_for_sibcall): Remove check for
9233         force_align_arg_pointer.
9234         (ix86_handle_cconv_attribute): Likewise.
9235         (ix86_function_regparm): Likewise.
9236         (setup_incoming_varargs_64): Don't set stack_alignment_needed here.
9237         (ix86_va_start): Replace virtual_incoming_args_rtx with
9238         crtl->args.internal_arg_pointer.
9239         (ix86_select_alt_pic_regnum): Check DRAP register.
9240         (ix86_save_reg): Replace force_align_arg_pointer with drap_reg.
9241         (ix86_compute_frame_layout): Compute frame layout wrt stack
9242         realignment.
9243         (ix86_internal_arg_pointer): Just return virtual_incoming_args_rtx.
9244         (ix86_expand_prologue): Decide if stack realignment is needed
9245         and generate prologue code accordingly.
9246         (ix86_expand_epilogue): Generate epilogue code wrt stack
9247         realignment is really needed or not.
9248
9249         * config/i386/i386.h (MAIN_STACK_BOUNDARY): New.
9250         (ABI_STACK_BOUNDARY): Likewise.
9251         (PREFERRED_STACK_BOUNDARY_DEFAULT): Likewise.
9252         (STACK_REALIGN_DEFAULT): Likewise.
9253         (INCOMING_STACK_BOUNDARY): Likewise.
9254         (MAX_STACK_ALIGNMENT): Likewise.
9255         (ix86_incoming_stack_boundary): Likewise.
9256         (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Removed.
9257         (REAL_PIC_OFFSET_TABLE_REGNUM): Updated to use BX_REG.
9258         (CAN_ELIMINATE): Defined with ix86_can_eliminate.
9259         (machine_function): Remove force_align_arg_pointer.
9260
9261         * config/i386/i386.md (BX_REG): New.
9262         (R13_REG): Likewise.
9263
9264         * config/i386/i386.opt (mforce_drap): New.
9265         (mincoming-stack-boundary): Likewise.
9266         (mstackrealign): Add Init(-1).
9267
9268         * config/i386/i386-protos.h (ix86_can_eliminate): New
9269
9270 2008-07-30  H.J. Lu  <hongjiu.lu@intel.com>
9271
9272         * doc/extend.texi: Update force_align_arg_pointer.
9273
9274         * doc/invoke.texi: Document -mincoming-stack-boundary.  Update
9275         -mstackrealign.
9276
9277         * doc/tm.texi (MAX_STACK_ALIGNMENT): Add macro.
9278         (INCOMING_STACK_BOUNDARY): Likewise.
9279         (TARGET_UPDATE_STACK_BOUNDARY): New target hook.
9280         (TARGET_GET_DRAP_RTX): Likewise.
9281
9282 2008-07-30  Andreas Schwab  <schwab@suse.de>
9283
9284         PR rtl-optimization/36929
9285         * dse.c (replace_inc_dec): Use emit_insn_before instead of
9286         add_insn_before and fix argument order.
9287         (replace_inc_dec_mem): Handle NULL rtx.
9288
9289 2008-07-30  Andrew Jenner  <andrew@codesourcery.com>
9290
9291         * config/arm/arm.c (arm_compute_static_chain_stack_bytes): New
9292         function.
9293         (arm_compute_initial_elimination_offset): Use it.
9294         (arm_compute_save_reg_mask): Include static chain save slot when
9295         calculating alignment.
9296         (arm_get_frame_offsets): Ditto.
9297         (thumb1_compute_save_reg_mask): Ensure we have a low register saved
9298         that we can use to decrement the stack when the stack decrement
9299         could be too big for an immediate value in a single insn.
9300         (thumb1_expand_prologue): Avoid using r12 for stack decrement.
9301
9302 2008-07-30  Richard Guenther  <rguenther@suse.de>
9303
9304         PR tree-optimization/36967
9305         * tree-predcom.c (remove_stmt): Use gimple_assign_ssa_name_copy_p.
9306         Release defs of statements we remove.
9307
9308 2008-07-30  Nathan Froyd  <froydnj@codesourcery.com>
9309
9310         * config/arm/arm.c (arm_expand_prologue): Use 0-length rtvec
9311         instead of NULL_RTVEC.
9312
9313 2008-07-30  Nathan Froyd  <froydnj@codesourcery.com>
9314
9315         PR target/35866
9316
9317         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Add clause for
9318         vector modes.
9319
9320 2008-07-30  Rafael Ã\83Â\81vila de EspÃ\83­ndola  <espindola@google.com>
9321
9322         * final.c (call_from_call_insn): New.
9323         (final_scan_insn): Call assemble_external on FUNCTION_DECLs.
9324
9325 2008-07-30  Paolo Bonzini  <bonzini@gnu.org>
9326
9327         * configure.ac: Substitute ADA_CFLAGS.
9328         * configure: Regenerate.
9329         * config.host: Remove mention of pa/x-ada and pa/x-ada-hpux10 files.
9330         * Makefile.in: Remove mention of X_* variables.
9331         * config/pa/x-ada-hpux10: Remove.
9332         * config/pa/x-ada: Remove.
9333
9334         * doc/fragments.texi: Update.
9335
9336 2008-07-30  Olivier Hainque  <hainque@adacore.com>
9337
9338         * config/mips/irix-crti.asm: .hide __gcc_init and __gcc_fini.
9339         * config/mips/iris6.h (IRIX_SUBTARGET_LINK_SPEC, irix ld): Hide
9340         __dso_handle explicitly here.
9341
9342 2008-07-30  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9343
9344         PR 34389
9345         * c-typeck.c (build_binary_op): Encapsulate code into...
9346         * c-common.c (shorten_binary_op): ...this new function.
9347         (conversion_warning): Use the new function. Handle non-negative
9348         constant in bitwise-and.
9349         * c-common.h (shorten_binary_op): Declare.
9350
9351 2008-07-30  Olivier Hainque  <hainque@adacore.com>
9352
9353         * scan.c (make_sstring_space): Add explicit conversions of
9354         allocator's return value.
9355         * fix-header.c (recognized_function): Likewise.
9356
9357 2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9358
9359         * doc/cpp.texi: Update to GFDL 1.2.
9360         * doc/gcc.texi: Do not list GPL as Invariant Section.
9361         * doc/gccint.texi: Likewise.  Update copyright years.
9362         * doc/install.texi: Update copyright years.
9363
9364 2008-07-30  Alan Modra  <amodra@bigpond.net.au>
9365
9366         PR target/36955
9367         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add
9368         a use of pic_offset_table_rtx for -msecure-plt __tls_get_addr calls.
9369
9370 2008-07-29  Jan Hubicka  <jh@suse.cz>
9371
9372         * c-decl.c (merge_decls): Do not handle DECL_INLINE.
9373         (grokdeclarator): Likewise.
9374         * langhooks.c (lhd_warn_unused_global_decl): Use
9375         DECL_DECLARED_INLINE_P.
9376         * print-tree.c (print_node): Remove DECL_INLINE check.
9377
9378 2008-07-29  Richard Guenther  <rguenther@suse.de>
9379
9380         PR tree-optimization/36945
9381         * tree-ssa-sccvn.h (copy_reference_ops_from_ref): Declare.
9382         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Export.
9383         Record invariant addresses un-decomposed.
9384         (copy_reference_ops_from_call): Record reference call
9385         arguments properly.  Simplify.
9386         * tree-ssa-pre.c (create_component_ref_by_pieces_1): New
9387         helper split out from ...
9388         (create_component_ref_by_pieces): ... here.  Simplify.
9389         Prepare for recursive invocation for call arguments.
9390         (create_expression_by_pieces): Adjust call to
9391         create_component_ref_by_pieces.
9392         (compute_avail): Process operand 2 of reference ops.
9393
9394 2008-07-29  Richard Guenther  <rguenther@suse.de>
9395
9396         * gimplify.c (gimplify_expr): Clear TREE_SIDE_EFFECTS for OBJ_TYPE_REF.
9397
9398 2008-07-29  Jakub Jelinek  <jakub@redhat.com>
9399
9400         * c-format.c (check_format_types): Revert unwanted checkin.
9401
9402 2008-07-29  Jan Hubicka  <jh@suse.cz>
9403
9404         * flags.h (flag_really_no_inline): Remove.
9405         * cgraph.c (cgraph_function_possibly_inlined_p): Simplify.
9406         * toplev.c (flag_really_no_inline): Remove.
9407         * c-cppbuiltin.c (c_cpp_builtins): Use flag_no_inline.
9408         * ipa-inline.c (cgraph_decide_inlining): Do not check flag_no_inline.
9409         (cgraph_decide_inlining_incrementally): Likewise.
9410         (compute_inline_parameters): Likewise.
9411         * opts.c (decode_options): Simplify.
9412         * c-opts.c (c_common_post_options): Do not set flag_no_inline.
9413         * common.opt (finline): Initialize to 1.
9414         * tree-inline.c (inlinable_function_p): Check flag_no_inline.
9415
9416 2008-07-29  Jan Hubicka  <jh@suse.cz>
9417
9418         * predict.c (always_optimize_for_size_p): New function.
9419         (optimize_bb_for_size_p, optimize_bb_for_speed_p,
9420         optimize_edge_for_size_p, optimize_edge_for_speed_p,
9421         optimize_insn_for_size_p, optimize_insn_for_speed_p): New global
9422         functions.
9423         (rtl_profile_for_bb, rtl_profile_for_edge, rtl_default_profile): New.
9424         * function.c (prepare_function_start): Set default profile.
9425         * function.h (rtl_data): Add maybe_hot_insn_p.
9426         * cfgexpand.c (expand_gimple_basic_block): Set RTL profile.
9427         (construct_exit_block): Likewise.
9428         (tree_expand_cfg): Likewise.
9429         * basic-block.h
9430         (optimize_bb_for_size_p, optimize_bb_for_speed_p,
9431         optimize_edge_for_size_p, optimize_edge_for_speed_p,
9432         optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
9433         (rtl_profile_for_bb, rtl_profile_for_edge, default_rtl_profile):
9434         Declare.
9435
9436 2008-07-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9437
9438         PR 34985
9439         * c-decl.c (merge_decls): Merge USED flags.
9440
9441 2008-07-29  Kaz Kojima  <kkojima@gcc.gnu.org>
9442
9443         * config/sh/sh.c (sh_gimplify_va_arg_expr): Unshare the addr,
9444         valist, next_fp, next_fp_tmp, next_fp_limit, next_o, next_o_limit,
9445         next_stack, lab_false and lab_over trees.
9446
9447 2008-07-28  Richard Guenther  <rguenther@suse.de>
9448
9449         PR tree-optimization/36957
9450         * tree-flow.h (tree_ssa_useless_type_conversion): Remove.
9451         (useless_type_conversion_p): Remove.
9452         (types_compatible_p): Remove.
9453         * gimple.h (tree_ssa_useless_type_conversion): Declare.
9454         (useless_type_conversion_p): Declare.
9455         (types_compatible_p): Declare.
9456         (gimple_expr_type): Return the base type only if it is
9457         trivially convertible to the subtype.
9458
9459 2008-07-28  Andreas Tobler  <a.tobler@schweiz.org>
9460
9461         * configure.ac: Use the m4_do macro to concatenate the warnings into
9462         one string in ACX_PROG_CC_WARNING_OPTS,
9463         ACX_PROG_CC_WARNING_ALMOST_PEDANTIC and
9464         ACX_PROG_CC_WARNINGS_ARE_ERRORS.
9465         * configure: Regenerate.
9466
9467 2008-07-28  Richard Guenther  <rguenther@suse.de>
9468
9469         * tree-ssa-pre.c (insert_into_preds_of_block): Remove dead code.
9470         (insert_fake_stores): Remove.
9471         (realify_fake_stores): Likewise.
9472         (execute_pre): Remove dead code.
9473         * tree-ssa-structalias.c (get_constraint_for_1): Remove tcc_unary case.
9474         (find_func_aliases): Deal with it here instead.
9475         Re-enable gcc_unreachable call.
9476
9477 2008-07-28  Richard Guenther  <rguenther@suse.de>
9478
9479         Merge from gimple-tuples-branch.
9480
9481         * ChangeLog.tuples: ChangeLog from gimple-tuples-branch.
9482         * gimple.def: New file.
9483         * gsstruct.def: Likewise.
9484         * gimple-iterator.c: Likewise.
9485         * gimple-pretty-print.c: Likewise.
9486         * tree-gimple.c: Removed.  Merged into ...
9487         * gimple.c: ... here.  New file.
9488         * tree-gimple.h: Removed.  Merged into ...
9489         * gimple.h: ... here.  New file.
9490
9491         * Makefile.in: Add dependencies on GIMPLE_H and tree-iterator.h.
9492         * configure.ac: Added support for ENABLE_GIMPLE_CHECKING and the
9493         --enable-checking=gimple flag.
9494         * config.in: Likewise.
9495         * configure: Regenerated.
9496
9497         * tree-ssa-operands.h: Tuplified.
9498         * tree-vrp.c: Likewise.
9499         * tree-loop-linear.c: Likewise.
9500         * tree-into-ssa.c: Likewise.
9501         * tree-ssa-loop-im.c: Likewise.
9502         * tree-dump.c: Likewise.
9503         * tree-complex.c: Likewise.
9504         * cgraphbuild.c: Likewise.
9505         * tree-ssa-threadupdate.c: Likewise.
9506         * tree-ssa-loop-niter.c: Likewise.
9507         * tree-pretty-print.c: Likewise.
9508         * tracer.c: Likewise.
9509         * gengtype.c: Likewise.
9510         * tree-loop-distribution.c: Likewise.
9511         * tree-ssa-loop-unswitch.c: Likewise.
9512         * cgraph.c: Likewise.
9513         * cgraph.h: Likewise.
9514         * tree-ssa-loop-manip.c: Likewise.
9515         * value-prof.c: Likewise.
9516         * tree-ssa-loop-ch.c: Likewise.
9517         * tree-tailcall.c: Likewise.
9518         * value-prof.h: Likewise.
9519         * tree.c: Likewise.
9520         * tree.h: Likewise.
9521         * tree-pass.h: Likewise.
9522         * ipa-cp.c: Likewise.
9523         * tree-scalar-evolution.c: Likewise.
9524         * tree-scalar-evolution.h: Likewise.
9525         * target.h: Likewise.
9526         * lambda-mat.c: Likewise.
9527         * tree-phinodes.c: Likewise.
9528         * diagnostic.h: Likewise.
9529         * builtins.c: Likewise.
9530         * tree-ssa-alias-warnings.c: Likewise.
9531         * cfghooks.c: Likewise.
9532         * fold-const.c: Likewise.
9533         * cfghooks.h: Likewise.
9534         * omp-low.c: Likewise.
9535         * tree-ssa-dse.c: Likewise.
9536         * ipa-reference.c: Likewise.
9537         * tree-ssa-uncprop.c: Likewise.
9538         * toplev.c: Likewise.
9539         * tree-gimple.c: Likewise.
9540         * tree-gimple.h: Likewise.
9541         * tree-chrec.c: Likewise.
9542         * tree-chrec.h: Likewise.
9543         * tree-ssa-sccvn.c: Likewise.
9544         * tree-ssa-sccvn.h: Likewise.
9545         * cgraphunit.c: Likewise.
9546         * tree-ssa-copyrename.c: Likewise.
9547         * tree-ssa-ccp.c: Likewise.
9548         * tree-ssa-loop-ivopts.c: Likewise.
9549         * tree-nomudflap.c: Likewise.
9550         * tree-call-cdce.c: Likewise.
9551         * ipa-pure-const.c: Likewise.
9552         * c-format.c: Likewise.
9553         * tree-stdarg.c: Likewise.
9554         * tree-ssa-math-opts.c: Likewise.
9555         * tree-ssa-dom.c: Likewise.
9556         * tree-nrv.c: Likewise.
9557         * tree-ssa-propagate.c: Likewise.
9558         * ipa-utils.c: Likewise.
9559         * tree-ssa-propagate.h: Likewise.
9560         * tree-ssa-alias.c: Likewise.
9561         * gimple-low.c: Likewise.
9562         * tree-ssa-sink.c: Likewise.
9563         * ipa-inline.c: Likewise.
9564         * c-semantics.c: Likewise.
9565         * dwarf2out.c: Likewise.
9566         * expr.c: Likewise.
9567         * tree-ssa-loop-ivcanon.c: Likewise.
9568         * predict.c: Likewise.
9569         * tree-ssa-loop.c: Likewise.
9570         * tree-parloops.c: Likewise.
9571         * tree-ssa-address.c: Likewise.
9572         * tree-ssa-ifcombine.c: Likewise.
9573         * matrix-reorg.c: Likewise.
9574         * c-decl.c: Likewise.
9575         * tree-eh.c: Likewise.
9576         * c-pretty-print.c: Likewise.
9577         * lambda-trans.c: Likewise.
9578         * function.c: Likewise.
9579         * langhooks.c: Likewise.
9580         * ebitmap.h: Likewise.
9581         * tree-vectorizer.c: Likewise.
9582         * function.h: Likewise.
9583         * langhooks.h: Likewise.
9584         * tree-vectorizer.h: Likewise.
9585         * ipa-type-escape.c: Likewise.
9586         * ipa-type-escape.h: Likewise.
9587         * domwalk.c: Likewise.
9588         * tree-if-conv.c: Likewise.
9589         * profile.c: Likewise.
9590         * domwalk.h: Likewise.
9591         * tree-data-ref.c: Likewise.
9592         * tree-data-ref.h: Likewise.
9593         * tree-flow-inline.h: Likewise.
9594         * tree-affine.c: Likewise.
9595         * tree-vect-analyze.c: Likewise.
9596         * c-typeck.c: Likewise.
9597         * gimplify.c: Likewise.
9598         * coretypes.h: Likewise.
9599         * tree-ssa-phiopt.c: Likewise.
9600         * calls.c: Likewise.
9601         * tree-ssa-coalesce.c: Likewise.
9602         * tree.def: Likewise.
9603         * tree-dfa.c: Likewise.
9604         * except.c: Likewise.
9605         * except.h: Likewise.
9606         * cfgexpand.c: Likewise.
9607         * tree-cfgcleanup.c: Likewise.
9608         * tree-ssa-pre.c: Likewise.
9609         * tree-ssa-live.c: Likewise.
9610         * tree-sra.c: Likewise.
9611         * tree-ssa-live.h: Likewise.
9612         * tree-predcom.c: Likewise.
9613         * lambda.h: Likewise.
9614         * tree-mudflap.c: Likewise.
9615         * ipa-prop.c: Likewise.
9616         * print-tree.c: Likewise.
9617         * tree-ssa-copy.c: Likewise.
9618         * ipa-prop.h: Likewise.
9619         * tree-ssa-forwprop.c: Likewise.
9620         * ggc-page.c: Likewise.
9621         * c-omp.c: Likewise.
9622         * tree-ssa-dce.c: Likewise.
9623         * tree-vect-patterns.c: Likewise.
9624         * tree-ssa-ter.c: Likewise.
9625         * tree-nested.c: Likewise.
9626         * tree-ssa.c: Likewise.
9627         * lambda-code.c: Likewise.
9628         * tree-ssa-loop-prefetch.c: Likewise.
9629         * tree-inline.c: Likewise.
9630         * tree-inline.h: Likewise.
9631         * tree-iterator.c: Likewise.
9632         * tree-optimize.c: Likewise.
9633         * tree-ssa-phiprop.c: Likewise.
9634         * tree-vect-transform.c: Likewise.
9635         * tree-object-size.c: Likewise.
9636         * tree-outof-ssa.c: Likewise.
9637         * cfgloop.c: Likewise.
9638         * system.h: Likewise.
9639         * tree-profile.c: Likewise.
9640         * cfgloop.h: Likewise.
9641         * c-gimplify.c: Likewise.
9642         * c-common.c: Likewise.
9643         * tree-vect-generic.c: Likewise.
9644         * tree-flow.h: Likewise.
9645         * c-common.h: Likewise.
9646         * basic-block.h: Likewise.
9647         * tree-ssa-structalias.c: Likewise.
9648         * tree-switch-conversion.c: Likewise.
9649         * tree-ssa-structalias.h: Likewise.
9650         * tree-cfg.c: Likewise.
9651         * passes.c: Likewise.
9652         * ipa-struct-reorg.c: Likewise.
9653         * ipa-struct-reorg.h: Likewise.
9654         * tree-ssa-reassoc.c: Likewise.
9655         * cfgrtl.c: Likewise.
9656         * varpool.c: Likewise.
9657         * stmt.c: Likewise.
9658         * tree-ssanames.c: Likewise.
9659         * tree-ssa-threadedge.c: Likewise.
9660         * langhooks-def.h: Likewise.
9661         * tree-ssa-operands.c: Likewise.
9662         * config/alpha/alpha.c: Likewise.
9663         * config/frv/frv.c: Likewise.
9664         * config/s390/s390.c: Likewise.
9665         * config/m32c/m32c.c: Likewise.
9666         * config/m32c/m32c-protos.h: Likewise.
9667         * config/spu/spu.c: Likewise.
9668         * config/sparc/sparc.c: Likewise.
9669         * config/i386/i386.c: Likewise.
9670         * config/sh/sh.c: Likewise.
9671         * config/xtensa/xtensa.c: Likewise.
9672         * config/stormy16/stormy16.c: Likewise.
9673         * config/ia64/ia64.c: Likewise.
9674         * config/rs6000/rs6000.c: Likewise.
9675         * config/pa/pa.c: Likewise.
9676         * config/mips/mips.c: Likewise.
9677
9678 2008-07-28  Simon Baldwin  <simonb@google.com>
9679
9680         * c-pragma.c (handle_pragma_message): New function.
9681         (init_pragma): Register handle_pragma_message.
9682         * doc/extend.texi (Diagnostic Pragmas): Added #pragma message
9683         documentation.
9684
9685 2008-07-27  Victor Kaplansky  <victork@il.ibm.com>
9686
9687         PR tree-optimization/35252
9688         * tree-vect-analyze.c (vect_build_slp_tree): Make IMAGPART_EXPR and
9689         REALPART_EXPR to be considered as same load operation.
9690
9691 2008-07-27  Eric Botcazou  <ebotcazou@adacore.com>
9692
9693         PR tree-optimization/36830
9694         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Hash operand #2.
9695         (expressions_equal_p): Return false if only one operand is null.
9696
9697 2008-07-26  Gerald Pfeifer  <gerald@pfeifer.com>
9698
9699         * doc/install.texi (powerpc-*-netbsd*): Remove redundant texinfo
9700         version requirements.
9701
9702 2008-07-26  Olivier Hainque  <hainque@adacore.com>
9703
9704         * collect2.c (symkind): New enum.  Symbol kinds we care about.
9705         (is_ctor_dtor): Return symkind instead of int.  Adjust prototype,
9706         code and head comment accordingly.
9707         (scan_prog_file): Use symkind names instead of bare integers.
9708
9709 2008-07-25  Jan Hubicka  <jh@suse.cz>
9710
9711         * cgraph.c (cgraph_function_possibly_inlined_p): Do not rely on
9712         DECL_INLINE.
9713         * cgraphunit.c (record_cdtor_fn): Do not initialize DECL_INLINE
9714         (cgraph_preserve_function_body_p): Do not rely on DECL_INLINE.
9715         * dojump.c (clear_pending_stack_adjust): Likewise.
9716         * print-tree.c (print_node): Ignore DECL_INLINE.
9717         * tree-inline.c (inlinable_function_p): Likewise.
9718
9719 2008-07-25  Michael Meissner  <gnu@the-meissners.org>
9720
9721         * doc/extend.texi (hot attribute): Document that the hot attribute
9722         turns on -O3 for some ports.
9723         (cold attribute): Document that the cold attribute turns on -Os
9724         for some ports
9725
9726         * doc/tm.texi (OPTIMIZATION_OPTIONS): Update documentation to
9727         reflect function specific option support.
9728
9729         * target.h (struct target_option_hooks): Add fields to say whether
9730         the cold attribute implies -Os and the hot attribute implies -O3.
9731
9732         * target-def.h (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION):
9733         By default, do not turn on -Os for cold functions.
9734         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): By default, do
9735         not turn on -O3 for hot functions.
9736
9737         * c-common.c (handle_hot_attribute): Use target hook to determine
9738         if hot functions should enable -O3.
9739         (handle_cold_attribute): Use target hook to determine if cold
9740         functions should enable -Os.
9741
9742         * config/i386/i386.c (ix86_target_string): Add -m3dnowa support.
9743         (override_options): Move disable scheduling to
9744         optimization_options.
9745         (optimization_options): Disable scheduling here, not
9746         override_options.
9747         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
9748         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
9749
9750         * config/ia64/ia64.c (ia64_override_options): Move setting
9751         scheduling flags to ia64_optimization_options.
9752         (ia64_optimization_options): Disable scheduling options here, and
9753         not in ia64_override_options.
9754         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
9755         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
9756
9757 2008-07-25  H.J. Lu  <hongjiu.lu@intel.com>
9758
9759         PR target/36936
9760         * config/i386/i386.c (override_options): Don't clear TARGET_CMOVE.
9761
9762 2008-07-25  Martin Jambor  <mjambor@suse.cz>
9763
9764         PR tree-optimization/36926
9765         * ipa-prop.c (ipa_analyze_call_uses): Call
9766         ipa_is_ssa_with_stmt_def instead of SSA_NAME_IS_DEFAULT_DEF.
9767
9768 2008-07-25  Joseph Myers  <joseph@codesourcery.com>
9769
9770         * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
9771         movv2si_internal): Add mem = reg alternative.
9772
9773 2008-07-25  Andreas Tobler  <a.tobler@schweiz.org>
9774
9775         PR bootstrap/36918
9776         * config/sparc/sparc.h (DEFAULT_PCC_STRUCT_RETURN): Define
9777         DEFAULT_PCC_STRUCT_RETURN to 127.
9778
9779 2008-07-24  Jan Hubicka  <jh@suse.cz>
9780
9781         * cgraphbuild.c (record_reference): Drop non-unit-at-a-time code.
9782         (build_cgraph_edges): Likewise.
9783         * cgraph.c (cgraph_node): Do not update assembler hash.
9784         (cgraph_remove_node): Drop non-unit-at-a-time code.
9785         * tree-pass.h (pass_O0_always_inline): Remove.
9786         * ipa-reference.c (gate_reference): Remove unit-at-a-time check.
9787         * toplev.c (process_options): Flag unit-at-a-time does not imply
9788         no section anchors.
9789         * cgraphunit.c: Update comments.
9790         (decide_is_function_needed): Drop non-unit-at-a-time mode.
9791         (cgraph_assemble_pending_functions): Remove.
9792         (cgraph_reset_node): Drop non-unit-at-a-time code.
9793         (cgraph_finalize_function): Likewise.
9794         (cgraph_analyze_function): Likewise.
9795         (cgraph_finalize_compilation_unit): Likewise.
9796         (cgraph_expand_function): Likewise.
9797         (cgraph_optimize): Likesise.
9798         (save_inline_function_body): Likewise.
9799         * ipa-pure-const.c (gate_pure_const): Drop flag_unit_at_a_time check.
9800         * tree-ssa-alias.c (maybe_be_aliased): Likewise.
9801         * ipa-inline.c: Update comments.
9802         (enum inlining_mode): remove INLINE_SPEED.
9803         (cgraph_clone_inlined_nodes): Drop unit-at-a-time check.
9804         (cgraph_mark_inline_edge): Likewise.
9805         (try_inline): Likewise.
9806         (cgraph_decide_inlining_incrementally): Likewise.
9807         (cgraph_gate_inlining): Remove.
9808         (cgraph_early_inlining): Remove flag_unit_at_a_time checks.
9809         (cgraph_gate_early_inlining): Likewise.
9810         (gate_inline_passes): Remove.
9811         (pass_inline_parameters, pass_ipa_inline): Remove gates.
9812         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
9813         pass_O0_always_inline): Remove.
9814         * c-pch.c (c_pch_matching): Remove -funit-at-a-time.
9815         * dwarf2out.c (reference_to_unused): Remove flag_unit_at_a_time check.
9816         * opts.c (no_unit_at_a_time_default): Remove.
9817         (decode_options): Remove flag_unit_at_a_time reset and warning.
9818         * opts.h (no_unit_at_a_time_default): Remove.
9819         * c-decl.c (diagnose_mismatched_decls): Do not require inline keyword
9820         early in GNU dialect.
9821         (merge_decls): Update comment; drop unit-at-a-time check.
9822         (finish_decl): Likewise.
9823         (grok_declaration): Remove flag_inline_trees code.
9824         (finish_functions): Return on function returning non-void on all
9825         statics.
9826         * ipa-tye-escape.c (gate_type_escape_vars): Remove.
9827         * cfgexpand.c (expand_one_static_var): Remove.
9828         (expand_one_var): Remove expand_one_static_var call.
9829         (expand_used_vars_for_block): Remove flag_unit_a_time check.
9830         * c-opts.c (c_common_post_options): Remove flag_inline_trees code
9831         and flag_unit_at_a-time compatibility checks.
9832         * varasm.c (assemble_alias): Remove flag_unit_at_a_time check.
9833         * tree-inline.c (flag_inline_trees): Remove.
9834         (inlinable_function_p): Don't check it.
9835         (expand_call_inline): Remove non-unit-at-a-time code.
9836         * tree-inline.h (flag_inline_trees): Remove.
9837         * tree-optimize.c (execute_early_local_optimizations): Remove
9838         unit-at-a-time checks.
9839         (tree_rest_of_compilation): Likewise.
9840         * combine.c (setup_incoming_promotions): Likewise.
9841         * tree-profile.c (tree_gen_ic_func_profiler): Likewise.
9842         * tree-ssa-structalias.c (delete_points_to_sets): Likewise.
9843         * passes.c (pass_inline_parameters): Update comments; remove
9844         O0_alwaysinline pass.
9845         (execute_one_ipa_transform_pass): Do not reset in_gimple_form.
9846         (execute_one_pass): Likewise.
9847         * i386.c (ix86_function_regparm): Remove unit-at-a-time check.
9848         (ix86_function_sseregparm): Likewise.
9849         * arm.c (arm_function_in_section_p): Likewise.
9850         * bfin.c (bfin_load_pic_reg, bfin_function_ok_for_sibcall): Likewise.
9851         * varpool.c: Update comments.
9852         (decide_is_variable_needed): Remove unit-at-a-time checks.
9853         (varpool_finalize_decl): Likewise.
9854
9855 2008-07-24  Kaz Kojima  <kkojima@gcc.gnu.org>
9856
9857         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_omit_frame_pointer
9858         to 2 instead of -1.
9859         (OVERRIDE_OPTIONS): Check if flag_omit_frame_pointer is equal to 2.
9860
9861 2008-07-24  Kai Tietz  <kai.tietz@onevision.com>
9862
9863         * config/i386/i386.c (get_dllimport_decl): Treat user_label_prefix for
9864         imp symbol extension.
9865
9866         2008-07-23  Ian Lance Taylor  <iant@google.com>
9867
9868         * tree-vrp.c (infer_value_range): Ignore asm statements when
9869         looking for memory accesses for -fdelete-null-pointer-checks.
9870
9871 2008-07-24  Ben Elliston  <bje@au.ibm.com>
9872
9873         * config/spu/spu-c.c (__vector_keyword): New variable.
9874         (vector_keyword): Likewise.
9875         (spu_categorize_keyword): New function.
9876         (spu_macro_to_expand): Likewise.
9877         (spu_cpu_cpp_builtins): Enable context-sensitive macros if not
9878         compiling an ISO C dialect.
9879
9880 2008-07-24  Ben Elliston  <bje@au.ibm.com>
9881
9882         * config/rs6000/rs6000-c.c: Move GTY(()) markers to match
9883         conventional usage.
9884
9885 2008-07-23  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
9886
9887         * configure: Regenerate.
9888         * configure.ac: Require texinfo 4.7.
9889         * doc/install.texi: Document texinfo 4.7 requirement.
9890
9891 2008-07-23  Martin Jambor  <mjambor@suse.cz>
9892
9893         * ipa-cp.c (ipcp_print_edge_profiles): Test for node->analyzed
9894         rather than for DECL_SAVED_TREE.
9895         * ipa-prop.c: Include diagnostic.h.
9896         (ipa_check_stmt_modifications): Check LHS of GIMPLE_MODIFY_EXPRs
9897         thoroughly.
9898         (ipa_detect_param_modifications): Function rewritten from scratch.
9899         (ipa_compute_jump_functions): Changed accesses to modification flags.
9900         (ipa_free_node_params_substructures): Update flags destruction.
9901         (ipa_node_duplication_hook): Update flags duplication.
9902         (ipa_print_all_params_modified): Updated flag access.
9903         * ipa-prop.h (struct ipa_param_flags): New structure.
9904         (struct ipa_node_params): New field modification_analysis_done,
9905         modified_flags changed into param_flags.
9906         (ipa_is_ith_param_modified): Changed to use new flags.
9907         * Makefile.in (ipa-prop.o): Add $(DIAGNOSTIC_H) to dependencies.
9908
9909         * ipa-prop.c (ipa_print_all_jump_functions): Moved here from
9910         ipa-cp.c and split into two functions.
9911         (ipa_print_node_jump_functions): New function.
9912         (compute_scalar_jump_functions): New function.
9913         (type_like_member_ptr_p): New function.
9914         (compute_pass_through_member_ptrs): New function.
9915         (fill_member_ptr_cst_jump_function): New function.
9916         (determine_cst_member_ptr): New function.
9917         (compute_cst_member_ptr_arguments): New function.
9918         (ipa_compute_jump_functions): Complete rewrite.
9919         * ipa-prop.h (enum jump_func_type): Make explicit that we depend
9920         on IPA_UNKNOWN being zero. Added value IPA_CONST_MEMBER_PTR.
9921         (struct ipa_member_ptr_cst): New structure.
9922         (union jump_func_value): New field member_cst.
9923         * ipa-cp.c (ipcp_lat_is_insertable): New function.
9924         (ipcp_lattice_from_jfunc): Produces bottom lattices for unhandled
9925         jump function types.
9926         (ipcp_print_all_lattices): Slight fprintf rearrangement.
9927         (ipcp_print_all_structures): Call ipa_print_all_jump_functions
9928         instead of ipcp_print_all_jump_functions.
9929         (ipcp_insert_stage): Use ipcp_lat_is_insertable, create replace maps
9930         only for replacable scalars.
9931
9932         * doc/invoke.texi (Optimize options): Add description of
9933         -findirect-inlining.
9934         * common.opt (flag_indirect_inlining): New flag.
9935         * opts.c (decode_options): Set flag_indirect_inlining when
9936         optimize >= 3.
9937
9938         * ipa-inline.c: Include ipa-prop.h.
9939         (inline_indirect_intraprocedural_analysis): New function.
9940         (inline_generate_summary): Allocate parameter and argument info
9941         structures, call inline_indirect_intraprocedural_analysis on each
9942         node when doing indirect inlining and deallocate indirect inlining
9943         data structures in the end.
9944         * ipa-prop.c (ipa_create_param_decls_array): Return if already done.
9945         (free_all_ipa_structures_after_iinln): New function.
9946         (free_all_ipa_structures_after_ipa_cp): Checks whether iinln will be
9947         done.
9948         * Makefile.in (ipa-inline.o): Added $(IPA_PROP_H) to dependencies.
9949
9950         * cgraphbuild.c (compute_call_stmt_bb_frequency): New function.
9951         (build_cgraph_edges): Call compute_call_stmt_bb_frequency instead
9952         of computing the frequency separately.
9953         (rebuild_cgraph_edges): Call compute_call_stmt_bb_frequency instead
9954         of computing the frequency separately.
9955         * ipa-cp.c (ipcp_print_all_structures): Replace a call to
9956         ipa_print_all_param_modified with a call to ipa_print_all_param_flags.
9957         * ipa-prop.c (ipa_get_member_ptr_load_param): New function.
9958         (ipa_get_stmt_member_ptr_load_param): New function.
9959         (ipa_is_ssa_with_stmt_def): New function.
9960         (ipa_note_param_call): New function.
9961         (ipa_analyze_call_uses): New function.
9962         (ipa_analyze_stmt_uses): New function.
9963         (ipa_analyze_params_uses): New function.
9964         (ipa_free_node_params_substructures): Also free the param_calls linked
9965         list.
9966         (ipa_node_duplication_hook): Also duplicate the param_calls
9967         linked list.
9968         (ipa_print_node_param_flags): New function.
9969         (ipa_print_all_params_modified): Renamed to ipa_print_all_param_flags.
9970         (ipa_print_all_param_flags): Calls ipa_print_node_param_flags.
9971         * ipa-prop.h (struct ipa_param_flags): New field called.
9972         (struct ipa_param_call_note): New structure.
9973         (struct ipa_node_params): New fields param_calls and
9974         uses_analysis_done.
9975         (ipa_is_ith_param_called): New function.
9976         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
9977         ipa_analyze_params_uses and dump parameter flags.
9978
9979         * ipa-inline.c (cgraph_decide_recursive_inlining): Call
9980         ipa_propagate_indirect_call_infos if performing indirect inlining,
9981         pass a new parameter new_edges to it.
9982         (add_new_edges_to_heap): New fucntion.
9983         (cgraph_decide_inlining_of_small_functions): New vector
9984         new_indirect_edges for newly found indirect edges , call
9985         ipa_propagate_indirect_call_infos after inlining.
9986         (cgraph_decide_inlining): Call ipa_propagate_indirect_call_infos after
9987         inlining if performing indirect inlining.  Call
9988         free_all_ipa_structures_after_iinln when doing so too.
9989         (inline_generate_summary): Do not call
9990         free_all_ipa_structures_after_iinln here.
9991         * ipa-prop.c (update_jump_functions_after_inlining): New function.
9992         (print_edge_addition_message): New function.
9993         (update_call_notes_after_inlining): New function.
9994         (propagate_info_to_inlined_callees): New function.
9995         (ipa_propagate_indirect_call_infos): New function.
9996         * ipa-prop.h: Include cgraph.h
9997         (struct ipa_param_call_note): Fields reordered, new field processed.
9998         * cgraph.h (cgraph_edge): Shrink loop_nest field to 31 bits, add a new
9999         flag indirect_call.
10000         * cgraphunit.c (verify_cgraph_node): Allow indirect edges not to have
10001         rediscovered call statements.
10002         * cgraph.c (cgraph_create_edge): Initialize indirect_call to zero.
10003         (dump_cgraph_node): Dump also the indirect_call flag.
10004         (cgraph_clone_edge): Copy also the indirect_call flag.
10005         * tree-inline.c (copy_bb): Do not check for fndecls from call
10006         expressions, check for edge availability when moving clones.
10007         (get_indirect_callee_fndecl): New function.
10008         (expand_call_inline): If callee declaration is not apprent from
10009         the statement, try calling get_indirect_callee_fndecl.  Do not
10010         issue warnings or call sorry when not inlinings an indirect edge.
10011         * Makefile.in (IPA_PROP_H): Added $(CGRAPH_H) to dependencies.
10012
10013         * ipa-prop.c (ipa_print_node_param_flags): Make the dump format a
10014         bit more frandly to matching.
10015         * testsuite/g++.dg/ipa/iinline-1.C: New testcase.
10016         * testsuite/gcc.dg/ipa/iinline-1.c: New testcase.
10017         * testsuite/gcc.dg/ipa/modif-1.c: New testcase.
10018
10019 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
10020
10021         PR 36907
10022         * opth-gen.awk: Suppress function specific features when building
10023         target libraries.
10024         * optc-gen.awk: Ditto.
10025
10026 2008-07-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10027
10028         PR 35058
10029         * diagnostic.c (pedwarn): Add opt parameter.
10030         (pedwarn0): New.
10031         * c-tree.h (pedwarn_init): Add opt parameter.
10032         (pedwarn_c90): Likewise.
10033         (pedwarn_c99): Likewise.
10034         * c-errors.c (pedwarn_c99): Likewise.
10035         (pedwarn_c90): Likewise.
10036         * toplev.h (pedwarn): Update declaration.
10037         (pedwarn0): Declare.
10038         * c-lex.c: All calls to pedwarn changed.
10039         * builtins.c: All calls to pedwarn changed.
10040         * toplev.c: All calls to pedwarn changed.
10041         * c-decl.c: All calls to pedwarn changed.
10042         * c-typeck.c: All calls to pedwarn changed.
10043         * c-common.c: All calls to pedwarn changed.
10044         * c-parser.c: All calls to pedwarn changed.
10045
10046 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
10047             Karthik Kumar  <karthikkumar@gmail.com>
10048
10049         * attribs.c (file scope): Include c-common.h.
10050         (decl_attributes): Add support for #pragma GCC optimize and
10051         #pragma GCC option.
10052
10053         * targhooks.c (default_can_inline_p): New function that is the
10054         default for the TARGET_CAN_INLINE_P target hook.
10055
10056         * targhooks.h (default_can_inline_p): Add declaration.
10057
10058         * tree.c (cl_optimization_node): New static tree for building
10059         OPTIMIZATION_NODE tree.
10060         (cl_target_option_node): New static tree for building
10061         TARGET_OPTION_NODE tree.
10062         (cl_option_hash_table): New hash table for hashing
10063         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
10064         (cl_option_hash_hash): New function to provide the hash value for
10065         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
10066         (cl_option_hash_eq): New function to provide an equality test for
10067         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
10068         (tree_code_size): Add support for OPTIMIZATION_NODE and
10069         TARGET_OPTION_NODE trees.
10070         (tree_code_structure): Add support for OPTIMIZATION_NODE and
10071         TARGET_OPTION_NODE trees.
10072         (build_optimization_node): Build a tree that has all of the
10073         current optimization options.
10074         (build_target_option_node): Build a tree that has the target
10075         options that might be changed on a per function basis.
10076
10077         * tree.h (file scope): Include options.h.
10078         (DECL_FUNCTION_SPECIFIC_TARGET): New accessor macro.
10079         (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
10080         (TREE_OPTIMIZATION): Ditto.
10081         (TREE_TARGET_SPECIFIC): Ditto.
10082         (struct tree_function_decl): Add fields for remembering the
10083         current optimization options and target specific options.
10084         (struct tree_optimization_option): New tree variant that remembers
10085         the optimization options.
10086         (struct tree_target_option): New tree variant that remembers the
10087         target specific flags that might change for compiling a particular
10088         function.
10089         (union tree_node): Include tree_optimization_option and
10090         tree_target_option fields.
10091         (enum tree_index): Add TI_OPTIMIZATION_DEFAULT,
10092         TI_OPTIMIZATION_CURRENT, TI_OPTIMIZATION_COLD,
10093         TI_OPTIMIZATION_HOT, TI_TARGET_OPTION_DEFAULT,
10094         TI_TARGET_OPTION_CURRENT, TI_CURRENT_OPTION_PRAGMA,
10095         TI_CURRENT_OPTIMIZE_PRAGMA entries for saving function specific
10096         optimization and target options.
10097         (optimization_default_node): New macro to refer to global_trees
10098         field.
10099         (optimization_current_node): Ditto.
10100         (optimization_cold_node): Ditto.
10101         (optimization_hot_node): Ditto.
10102         (target_option_default_node): Ditto.
10103         (target_option_current_node): Ditto.
10104         (current_option_pragma): Ditto.
10105         (current_optimize_pragma): Ditto.
10106
10107         * target.h (struct gcc_target): Add valid_option_attribute_p,
10108         target_option_save, target_option_restore, target_option_print,
10109         target_option_pragma_parse, and can_inline_p hooks.
10110
10111         * toplev.h (parse_optimize_options): Add declaration.
10112         (fast_math_flags_struct_set_p): Ditto.
10113
10114         * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): New function to
10115         adjust the current __OPTIMIZE__, etc. macros when #pragma GCC
10116         optimize is used.
10117
10118         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Call
10119         tree_can_inline_p hook to see if one function can inline another.
10120         (cgraph_decide_inlining): Ditto.
10121         (cgraph_decide_inlining_incrementally): Ditto.
10122
10123         * opts.c (decode_options): Add support for running multiple times
10124         to allow functions with different target or optimization options
10125         than was specified on the command line.
10126         (fast_math_flags_struct_set_p): New function that is similar to
10127         fast_math_flags_set_p, except it uses the values in the
10128         cl_optimization structure instead of global variables.
10129
10130         * optc-gen.awk: Add support for TargetSave to allow a back end to
10131         declare new fields that need to be saved when using function
10132         specific options.  Include flags.h and target.h in the options.c
10133         source.  Add support for Save to indicate which options can be set
10134         for individual functions.  Generate cl_optimize_save,
10135         cl_optimize_restore, cl_optimize_print, cl_target_option_save,
10136         cl_target_option_restore, cl_target_option_print functions to
10137         allow functions to use different optimization or target options.
10138
10139         * opt-functions.awk (var_type_struct): Return the type used for
10140         storing the field in a structure.
10141
10142         * opth-gen.awk: Add support for TargetSave to allow a back end to
10143         declare new fields that need to be saved when using function
10144         specific options.  Add support for Save to indicate which options
10145         can be set for individual functions.  Only generate one extern for
10146         Mask fields.  Generate cl_optimization and cl_target_option
10147         structures to remember optimization and target options.
10148
10149         * treestruct.def (TS_OPTIMIZATION): Add support for garbage
10150         collecting new tree nodes.
10151         (TS_TARGET_OPTION): Ditto.
10152
10153         * c-decl.c (merge_decls): Merge function specific target and
10154         optimization options.
10155
10156         * function.c (invoke_set_current_function_hook): If the function
10157         uses different optimization options, change the global variables
10158         to reflect this.
10159
10160         * coretypes.h (struct cl_optimization): Add forward reference.
10161         (struct cl_target_option): Ditto.
10162
10163         * c-pragma.c (option_stack): New static vector to remember the
10164         current #pragma GCC option stack.
10165         (handle_pragma_option): New function to support #pragma GCC option
10166         to change target options.
10167         (optimize_stack): New static vector to remember the current
10168         #pragma GCC optimize stack.
10169         (handle_pragma_optimize): New function to support #pragma GCC
10170         optimize to change optimization options.
10171         (init_pragma): Add support for #pragma GCC optimize and #pragma
10172         GCC option.
10173
10174         * tree.def (OPTIMIZATION_NODE): New tree code for remembering
10175         optimization options.
10176         (TARGET_OPTION_NODE): New tree code for remembering certain target
10177         options.
10178
10179         * print-tree.c (print_node): Add support for OPTIMIZATION_NODE and
10180         TARGET_OPTION_NODE trees.
10181
10182         * common.opt (-O): Add Optimization flag.
10183         (-Os): Ditto.
10184         (-fmath-errno): Ditto.
10185         (-falign-functions): Add UInteger flag to make sure flag gets full
10186         int in cl_optimization structure.
10187         (-falign-jumps): Ditto.
10188         (-falign-labels): Ditto.
10189         (-falign-loops): Ditto.
10190         (-fsched-stalled-insns): Ditto.
10191         (-fsched-stalled-insns-dep): Ditto.
10192
10193         * target-def.h (TARGET_VALID_OPTION_ATTRIBUTE_P): Add default
10194         definition.
10195         (TARGET_OPTION_SAVE): Ditto.
10196         (TARGET_OPTION_RESTORE): Ditto.
10197         (TARGET_OPTION_PRINT): Ditto.
10198         (TARGET_OPTION_PRAGMA_PARSE): Ditto.
10199         (TARGET_CAN_INLINE_P): Ditto.
10200         (TARGET_INITIALIZER): Add new hooks.
10201
10202         * tree-inline.c (tree_can_inline_p): New function to determine
10203         whether one function can inline another.  Check if the functions
10204         use compatible optimization options, and also call the backend
10205         can_inline_p hook.
10206
10207         * tree-inline.h (tree_can_inline_p): Add declaration.
10208
10209         * c-common.c (c_common_attribute): Add support for option and
10210         optimize attributes.
10211         (handle_option_attribute): Add support for the option attribute to
10212         allow the user to specify different target options for compiling a
10213         specific function.
10214         (handle_optimize_attribute): Add support for the optimize
10215         attribute to allow the user to specify different optimization
10216         options for compiling a specific function.
10217         (handle_hot_attribute): Turn on -O3 optimization for this one
10218         function if it isn't the default optimization level.
10219         (handle_cold_attribute): Turn on -Os optimization for this one
10220         function if it insn't the default optimization.
10221         (const_char_p): New const char * typedef.
10222         (optimize_args): New static vector to remember the optimization
10223         arguments.
10224         (parse_optimize_options): New function to set up the optimization
10225         arguments from either the optimize attribute or #pragma GCC optimize.
10226
10227         * c-common.h (c_cpp_builtins_optimize_pragma): Add declaration.
10228         (builtin_define_std): Ditto.
10229
10230         * config.gcc (i[3467]86-*-*): Add i386-c.o to C/C++ languages.
10231         Add t-i386 Makefile fragment to add i386-c.o and i386.o dependencies.
10232         (x86_64-*-*): Ditto.
10233
10234         * Makefile.in (TREE_H): Add options.h.
10235         (options.o): Add $(TARGET_H) $(FLAGS_H) dependencies.
10236
10237         * doc/extend.texi (option attribute): Document new attribute.
10238         (optimize attribute): Ditto.
10239         (hot attribute): Document hot attribute sets -O3.
10240         (cold attribute): Document cold attribute sets -Os.
10241         (#pragma GCC option): Document new pragma.
10242         (#pragma GCC optimize): Ditto.
10243
10244         * doc/options.texi (TargetSave): Document TargetSave syntax.
10245         (UInteger): Document UInteger must be used for certain flags.
10246         (Save): Document Save option to create target specific options
10247         that can be saved/restored on a function specific context.
10248
10249         * doc/c-tree.texi (DECL_FUNCTION_SPECIFIC_TARGET): Document new macro.
10250         (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
10251
10252         * doc/tm.texi (TARGET_VALID_OPTION_ATTRIBUTE_P): Document new hook.
10253         (TARGET_OPTION_SAVE): Ditto.
10254         (TARGET_OPTION_RESTORE): Ditto.
10255         (TARGET_OPTION_PRINT): Ditto.
10256         (TARGET_OPTION_PRAGMA_PARSE): Ditto.
10257         (TARGET_CAN_INLINE_P): Ditto.
10258
10259         * doc/invoke.texi (-mfpmath=sse+387): Document as an alias for
10260         -mfpmath=sse,387.
10261         (-mfpmath=both): Ditto.
10262
10263 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
10264             Karthik Kumar  <karthikkumar@gmail.com>
10265
10266         * config/i386/i386.h (TARGET_ABM): Move switch into ix86_isa_flags.
10267         (TARGET_POPCNT): Ditto.
10268         (TARGET_SAHF): Ditto.
10269         (TARGET_AES): Ditto.
10270         (TARGET_PCLMUL): Ditto.
10271         (TARGET_CMPXCHG16B): Ditto.
10272         (TARGET_RECIP): Move switch into target_flags.
10273         (TARGET_FUSED_MADD): Ditto.
10274         (ix86_arch_features): Make an unsigned char type.
10275         (ix86_tune_features): Ditto.
10276         (OVERRIDE_OPTIONS): Add bool argument to override_options call.
10277         (TARGET_CPU_CPP_BUILTINS): Move into ix86_target_macros.
10278         (REGISTER_TARGET_PRAGMAS): Define, call ix86_register_pragmas.
10279
10280         * config/i386/i386.opt (arch): New TargetSave field to define
10281         fields that need to be saved for function specific option support.
10282         (tune): Ditto.
10283         (fpmath): Ditto.
10284         (branch_cost): Ditto.
10285         (ix86_isa_flags_explicit): Ditto.
10286         (tune_defaulted): Ditto.
10287         (arch_specified): Ditto.
10288         (-m128-long-double): Add Save flag to save option for target
10289         specific option support.
10290         (-m80387): Ditto.
10291         (-maccumulate-outgoing-args): Ditto.
10292         (-malign-double): Ditto.
10293         (-malign-stringops): Ditto.
10294         (-mfancy-math-387): Ditto.
10295         (-mhard-float): Ditto.
10296         (-mieee-fp): Ditto.
10297         (-minline-all-stringops): Ditto.
10298         (-minline-stringops-dynamically): Ditto.
10299         (-mms-bitfields): Ditto.
10300         (-mno-align-stringops): Ditto.
10301         (-mno-fancy-math-387): Ditto.
10302         (-mno-push-args): Ditto.
10303         (-mno-red-zone): Ditto.
10304         (-mpush-args): Ditto.
10305         (-mred-zone): Ditto.
10306         (-mrtd): Ditto.
10307         (-msseregparm): Ditto.
10308         (-mstack-arg-probe): Ditto.
10309         (-m32): Ditto.
10310         (-m64): Ditto.
10311         (-mmmx): Ditto.
10312         (-m3dnow): Ditto.
10313         (-m3dnowa): Ditto.
10314         (-msse): Ditto.
10315         (-msse2): Ditto.
10316         (-msse3): Ditto.
10317         (-msse4.1): Ditto.
10318         (-msse4.2): Ditto.
10319         (-msse4): Ditto.
10320         (-mno-sse4): Ditto.
10321         (-msse4a): Ditto.
10322         (-msse5): Ditto.
10323         (-mrecip): Move flag into target_flags.
10324         (-mcld): Ditto.
10325         (-mno-fused-madd): Ditto.
10326         (-mfused-madd): Ditto.
10327         (-mabm): Move flag into ix86_isa_flags.
10328         (-mcx16): Ditto.
10329         (-mpopcnt): Ditto.
10330         (-msahf): Ditto.
10331         (-maes): Ditto.
10332         (-mpclmul): Ditto.
10333
10334         * config/i386/i386-c.c: New file for #pragma support.
10335         (ix86_target_macros_internal): New function to #define or #undef
10336         target macros based when the user uses the #pragma GCC option to
10337         change target options.
10338         (ix86_pragma_option_parse): New function to add #pragma GCC option
10339         support.
10340         (ix86_target_macros): Move defining the target macros here from
10341         TARGET_CPU_CPP_BUILTINS in i386.h.
10342         (ix86_register_pragmas): Register the #pragma GCC option hook.  If
10343         defined, initialize any subtarget #pragmas.
10344
10345         * config/i386/darwin.h (REGISTER_SUBTARGET_PRAGMAS): Rename from
10346         REGISTER_TARGET_PRAGMAS.
10347
10348         * config/i386/t-i386: New file for x86 dependencies.
10349         (i386.o): Make dependencies mirror the include files used.
10350         (i386-c.o): New file, add dependencies.
10351
10352         * config/i386/i386-protos.h (override_options): Add bool argument.
10353         (ix86_valid_option_attribute_tree): Add declaration.
10354         (ix86_target_macros): Ditto.
10355         (ix86_register_macros): Ditto.
10356
10357         * config/i386/i386.c (ix86_tune_features): Move initialization of
10358         the target masks to initial_ix86_tune_features to allow functions
10359         to have different target options.  Make type unsigned char,
10360         instead of unsigned int.
10361         (initial_ix86_tune_features): New static vector to hold processor
10362         masks for the tune variables.
10363         (ix86_arch_features): Move initialization of the target masks to
10364         initial_ix86_arch_features to allow functions to have different
10365         target options.  Make type unsigned char, instead of unsigned int.
10366         (initial_ix86_arch_features): New static vector to hold processor
10367         masks for the arch variables.
10368         (enum ix86_function_specific_strings): New enum to describe the
10369         string options used for attribute((option(...))).
10370         (ix86_target_string): New function to return a string that
10371         describes the target options.
10372         (ix86_debug_options): New function to print the current options in
10373         the debugger.
10374         (ix86_function_specific_save): New function hook to save the
10375         function specific global variables in the cl_target_option structure.
10376         (ix86_function_specific_restore): New function hook to restore the
10377         function specific variables from the cl_target_option structure to
10378         the global variables.
10379         (ix86_function_specific_print): New function hook to print the
10380         target specific options in the cl_target_option structure.
10381         (ix86_valid_option_attribute_p): New function hook to validate
10382         attribute((option(...))) arguments.
10383         (ix86_valid_option_attribute_tree): New function that is common
10384         code between attribute((option(...))) and #pragma GCC option
10385         support that parses the options and returns a tree holding the options.
10386         (ix86_valid_option_attribute_inner_p): New helper function for
10387         ix86_valid_option_attribute_tree.
10388         (ix86_can_inline_p): New function hook to decide if one function
10389         can inline another on a target specific basis.
10390         (ix86_set_current_function); New function hook to switch target
10391         options if the user used attribute((option(...))) or #pragma GCC
10392         option.
10393         (ix86_tune_defaulted): Move to static file scope from
10394         override_options.
10395         (ix86_arch_specified): Ditto.
10396         (OPTION_MASK_ISA_AES_SET): New macro for moving switches into
10397         ix86_isa_flags.
10398         (OPTION_MASK_ISA_PCLMUL_SET): Ditto.
10399         (OPTION_MASK_ISA_ABM_SET): Ditto.
10400         (OPTION_MASK_ISA_POPCNT_SET): Ditto.
10401         (OPTION_MASK_ISA_CX16_SET): Ditto.
10402         (OPTION_MASK_ISA_SAHF_SET): Ditto.
10403         (OPTION_MASK_ISA_AES_UNSET): Ditto.
10404         (OPTION_MASK_ISA_PCLMUL_UNSET): Ditto.
10405         (OPTION_MASK_ISA_ABM_UNSET): Ditto.
10406         (OPTION_MASK_ISA_POPCNT_UNSET): Ditto.
10407         (OPTION_MASK_ISA_CX16_UNSET): Ditto.
10408         (OPTION_MASK_ISA_SAHF_UNSET): Ditto.
10409         (struct ptt): Move to static file scope from override_options.
10410         (processor_target_table): Ditto.
10411         (cpu_names): Ditto.
10412         (ix86_handle_option): Add support for options that are now isa options.
10413         (override_options): Add support for declaring functions that
10414         support different target options than were specified on the
10415         command line.  Move struct ptt, processor_target_table, cpu_names,
10416         ix86_tune_defaulted, ix86_arch_specified to static file scope.
10417         Add bool argument.  Fix up error messages so the appropriate error
10418         is given for either command line or attribute.
10419         (ix86_previous_fndecl): New static to remember previous function
10420         declaration to see if we need to change target options.
10421         (ix86_builtins_isa): New array to record the ISA of each builtin
10422         function.
10423         (def_builtin): Always create the builtin function, even if the
10424         current ISA doesn't support it.
10425         (ix86_init_mmx_sse_builtins): Remove TARGET_AES and TARGET_PCLMUL
10426         tests for those builtins.
10427         (ix86_init_builtins): Remove TARGET_MMX test for calling
10428         ix86_init_mmx_sse_builtins.
10429         (ix86_expand_builtin): If the current ISA doesn't support a given
10430         builtin, signal an error.
10431         (TARGET_VALID_OPTION_ATTRIBUTE_P): Set target hook.
10432         (TARGET_SET_CURRENT_FUNCTION): Ditto.
10433         (TARGET_OPTION_SAVE): Ditto.
10434         (TARGET_OPTION_RESTORE): Ditto.
10435         (TARGET_OPTION_PRINT): Ditto.
10436         (TARGET_CAN_INLINE_P): Ditto.
10437
10438 2008-07-22  Rafael Ã\83Â\81vila de EspÃ\83­ndola  <espindola@google.com>
10439
10440         * c-typeck.c (build_external_ref): Don't call assemble_external.
10441         * final.c (output_operand): Call assemble_external.
10442
10443 2008-07-21  DJ Delorie  <dj@redhat.com>
10444
10445         * config/h8300/h8300.c (h8300_hard_regno_scratch_ok): New.
10446         (TARGET_HARD_REGNO_SCRATCH_OK): Define.
10447
10448 2008-07-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10449
10450         * config/spu/spu.md ("div<mode>3"): Convert into expander, move
10451         original insn and splitter contents into ...
10452         ("*div<mode>3_fast"): ... this new pattern.  Enable only if
10453         flag_unsafe_math_optimizations.  Add dummy scratch register.
10454         ("*div<mode>3_adjusted"): New insn and splitter.  Enable only if
10455         !flag_unsafe_math_optimizations.  Returns number with next
10456         highest magnitude if this is still less or equal to the true
10457         quotient in magnitude.
10458
10459 2008-07-21  Rafael Ã\83Â\81vila de EspÃ\83­ndola  <espindola@google.com>
10460
10461         * Makefile.in: Replace toplev.h with TOPLEV_H.
10462         * c-decl.c (merge_decls): Don't set DECL_IN_SYSTEM_HEADER.
10463         * c-lex.c (fe_file_change): Don't set in_system_header.
10464         * c-parser.c (c_token): Remove in_system_header.
10465         (c_lex_one_token): Don't set in_system_header.
10466         (c_parser_set_source_position_from_token): Don't set in_system_header.
10467         * diagnostic.c (diagnostic_report_diagnostic): Use location from
10468         diagnostic_info.
10469         (warning_at): New.
10470         * diagnostic.h (diagnostic_report_warnings_p): Add LOC argument.
10471         * flags.h (in_system_header): Remove.
10472         * function.c (saved_in_system_header): Remove.
10473         (push_cfun): Don't set in_system_header.
10474         (pop_cfun): Don't set in_system_header.
10475         (push_struct_function): Don't set in_system_header.
10476         * input.h (expanded_location): Add sysp.
10477         (in_system_header_at): New.
10478         (in_system_header): New.
10479         * toplev.c (in_system_header): Remove.
10480         * toplev.h: Include input.h
10481         (warning_at): New.
10482         * tree-cfg.c (execute_warn_function_return): Call warning_at.
10483         * tree-ssa.c (warn_uninit): Call warning_at.
10484         (warn_uninitialized_var): Update calls to warn_uninit.
10485         (warn_uninitialized_phi): Update calls to warn_uninit.
10486         * tree.c (make_node_stat): Don't set DECL_IN_SYSTEM_HEADER.
10487         (expand_location): Initialize xloc.sysp.
10488         * tree.h (DECL_IN_SYSTEM_HEADER): Use in_system_header_at.
10489         (tree_decl_with_vis): Remove in_system_header_flag.
10490
10491 2008-07-21  Andreas Krebbel  <krebbel1@de.ibm.com>
10492
10493         PR target/36822
10494         * recog.c (asm_operand_ok): Change the order of the extra
10495         memory constraint checks.
10496
10497 2008-07-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10498
10499         PR tree-opt/36879
10500         * tree-switch-conversion.c (build_one_array): Call
10501         varpool_mark_needed_node and varpool_finalize_decl
10502         instead of assemble_variable.
10503
10504 2008-07-19  Jan Hubicka  <jh@suse.cz>
10505
10506         * cgraph.c (cgraph_add_new_function): Do early local passes.
10507         * tree-nrv.c (gate_pass_return_slot): New gate.
10508         (pass_nrv): Add the gate.
10509         * tree-ssa-coalese.c (hash_ssa_name_by_var, eq_ssa_name_by_var): New
10510         functions.
10511         (coalesce_ssa_name): Coalesce SSA names.
10512         * tree-ssa-live.c (remove_unused_locals): Be more conservative when
10513         not optimizing so unused user vars remains visible.
10514         * common.opt (flag_tree_ter): Always enable by default.
10515         * tree-ssa-ter.c: Include flags.h
10516         (is_replaceable_p): Check that locations match; when aliasing
10517         is missing be conservative about loads.
10518         * tree-optimize.c (gate_init_datastructures): Remove.
10519         (pass_init_datastructures): New.
10520         * passes.c: Reorder passes so we always go into SSA.
10521
10522 2008-07-19  Jan Hubicka  <jh@suse.cz>
10523
10524         * doc/extend.texi (flatten attribute): Remove note about
10525         unit-at-a-time.
10526         * doc/invoke.texi (--combine): Likewise.
10527         (-finline-functions-called-once): Update levels when enabled.
10528         (-funit-at-a-time): Document new behaviour.
10529         (-ftoplevel-reorder): Document that it is enabled -O0 and imply
10530         -fno-section-anchors when disabled explicitly.
10531         (inline params): They are not ignored now.
10532         (precompiled headers): Remove unit-at-a-time as being incompatible.
10533         * opts.c (decode_options): Handle unit-at-a-time as alias;
10534         imply -fno-section-anchors when toplevel reorder is disabled
10535         explicitly.
10536         * common.opt (ftoplevel-reorder): Set default value to 2.
10537         (funit-at-a-time): Set default value to 1.
10538         * config/rs6000/rs6000.c (optimization_options): Set section anchors
10539         to 2.
10540
10541 2008-07-19  Jan Hubicka  <jh@suse.cz>
10542
10543         * builtins.c (expand_builtin_int_roundingfn,
10544         expand_builtin_int_roundingfn_2): Do not take subtarget argument;
10545         it is not useful.
10546
10547 2008-07-19  Richard Guenther  <rguenther@suse.de>
10548
10549         PR bootstrap/36864
10550         * tree-ssa-sccvn.h (get_constant_value_id): Declare.
10551         * tree-ssa-sccvn.c (get_constant_value_id): New function.
10552         * tree-ssa-pre.c (get_expr_value_id): For newly created
10553         constant value-ids make sure to add the expression to its
10554         expression-set.
10555
10556 2008-07-19  Jakub Jelinek  <jakub@redhat.com>
10557
10558         PR middle-end/36877
10559         * omp-low.c (expand_omp_atomic_fetch_op): Make sure the
10560         return value of the builtin is ignored.
10561
10562 2008-07-19  Olivier Hainque  <hainque@adacore.com>
10563
10564         * doc/tm.texi (MALLOC_ABI_ALIGNMENT): New macro. Alignment, in
10565         bits, a C conformant malloc implementation has to provide.
10566         * defaults.h (MALLOC_ABI_ALIGNMENT): Default to BITS_PER_WORD.
10567
10568 2008-07-19  Joseph Myers  <joseph@codesourcery.com>
10569
10570         PR target/36780
10571         PR target/36827
10572         * reload.c (find_reloads_subreg_address): Only reload address if
10573         reloaded == 0, not for reloaded != 1.
10574
10575         Revert:
10576         2008-07-16  Joseph Myers  <joseph@codesourcery.com>
10577         * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
10578         (m32c_legitimate_address_p): Handle "++rii" addresses created by
10579         m32c_legitimize_reload_address.
10580
10581         2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
10582         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
10583         (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
10584
10585 2008-07-19  Olivier Hainque  <hainque@adacore.com>
10586
10587         * dwarf2out.c (add_subscript_info): New explicit COLLAPSE_P
10588         argument, saying whether nested array are to be collapsed
10589         into a single array type DIE with multiple subscripts.
10590         (gen_array_type_die): Factorize comments about the MIPS_DEBUG_INFO
10591         issues, centralize the nested array types collapsing control and
10592         disable the transformation for Ada.
10593
10594 2008-07-18  Uros Bizjak  <ubizjak@gmail.com>
10595
10596         PR target/36786
10597         * config/i386/i386.md (x86_64_shift_adj_1): Rename from
10598         x86_64_shift_adj.
10599         (x86_64_shift_adj_2): New expander.
10600         (x86_64_shift_adj_3): Ditto.
10601         * config/i386/i386.c (ix86_split_ashr): Use gen_x86_64_shift_adj_3
10602         to split TImode operands.
10603         (ix86_split_ashl): Use gen_x86_64_shift_adj_2 to split TImode operands.
10604         (ix86_split_lshr): Ditto.
10605
10606 2008-07-18  Kris Van Hees  <kris.van.hees@oracle.com>
10607
10608         * c-common.c (c_stddef_cpp_builtins): Define __CHAR16_TYPE__
10609         and __CHAR32_TYPE__.
10610         * c-typeck.c (digest_init): Support char16_t and char32_t.
10611         (set_nonincremental_init_from_string): Idem.
10612
10613 2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
10614
10615         PR middle-end/36859
10616         * builtins.c (std_gimplify_va_arg_expr): Limit alignment to
10617         PREFERRED_STACK_BOUNDARY.
10618         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
10619
10620 2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
10621
10622         PR middle-end/36858
10623         * function.c (locate_and_pad_parm): Cap boundary earlier.
10624
10625 2008-07-17  Julian Brown  <julian@codesourcery.com>
10626
10627         * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Make
10628         no-op for targets which don't use DLLs.
10629
10630 2008-07-17  Martin Jambor  <mjambor@suse.cz>
10631
10632         * ipa-cp.c (ipcp_print_all_lattices): New variable info, check
10633         that nodes are relevant by examining the node->analyzed flag.
10634         (ipcp_init_stage): Check which nodes are relevant, assert that the
10635         relevant ones are also required.
10636         (ipcp_propagate_stage): Check on the side arrays are properly
10637         allocated.
10638         (ipcp_print_all_jump_functions): Make sure not to touch any node
10639         that is not analyzed or an edge that does not have a corresponding
10640         entry in the on-the-side vectors.
10641         (ipcp_function_scale_print): Likewise.
10642         (ipcp_update_callgraph): Check that the node is relevant.
10643         (ipcp_insert_stage): Check that the node is relevant.  Check there is
10644         an info for every node and edge.
10645         * ipa-prop.c (ipa_init_func_list): Check the nodes are relevant.
10646         (ipa_print_all_tree_maps): Likewise and a new variable info.
10647         (ipa_print_all_params_modified): Likewise.
10648         * ipa-prop.h (ipa_edge_args_info_available_for_edge_p): New function.
10649
10650 2008-07-17  Roman Zippel <zippel@linux-m68k.org>
10651
10652         PR target/25343
10653         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __mc68000__.
10654
10655 2008-07-17  Paolo Bonzini  <bonzini@gnu.org>
10656
10657         PR rtl-optimization/36753
10658         * fwprop.c (use_killed_between): Don't shortcut
10659         single-definition global registers.
10660
10661 2008-07-16  Jan Hubicka  <jh@suse.cz>
10662
10663         * cgraph.h (varpool_empty_needed_queue): Declare.
10664         * cgraphunit.c (output_in_order): Mark all variables as needed;
10665         empty the queue.
10666         * varpool.c (varpool_assemble_node): Update debug queue.
10667         (varpool_assemble_pending_decls): Don't do it here.
10668         (varpool_empty_needed_queue):  New function.
10669
10670 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10671
10672         * recog.c (peephole2_optimize): Fix formatting.
10673
10674 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10675
10676         * c-pch.c (get_ident): Avoid C++ keywords.
10677         * combine-stack-adj.c (single_set_for_csa): Likewise.
10678         * final.c (asm_insn_count, final_scan_insn, alter_subreg,
10679         output_asm_insn): Likewise.
10680         * reload.c (push_secondary_reload, find_reusable_reload,
10681         push_reload, combine_reloads, find_reloads,
10682         debug_reload_to_stream): Likewise.
10683         * reload.h (struct reload): Likewise.
10684         * reload1.c (reload_reg_class_lower, find_reg, find_reload_regs,
10685         allocate_reload_reg, choose_reload_regs, emit_input_reload_insns,
10686         emit_output_reload_insns): Likewise.
10687         * targhooks.c (default_secondary_reload): Likewise.
10688         * varasm.c (section_entry_eq, object_block_entry_eq): Likewise.
10689
10690 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10691
10692         * recog.c (validate_change_1, validate_change,
10693         validate_unshare_change, validate_replace_rtx_1, struct
10694         funny_match, constrain_operands, peephole2_optimize): Avoid C++
10695         keywords.
10696         * reload.c (push_secondary_reload, secondary_reload_class,
10697         scratch_reload_class, find_valid_class, find_reusable_reload,
10698         push_reload, find_dummy_reload, find_reloads_address_1,
10699         find_reloads_address_part, find_equiv_reg): Likewise.
10700         * reload1.c (spill_failure, eliminate_regs_1, allocate_reload_reg,
10701         choose_reload_regs): Likewise.
10702         * rtlanal.c (replace_rtx, nonzero_bits1, num_sign_bit_copies1):
10703         Likewise.
10704         * rtlhooks.c (gen_lowpart_if_possible): Likewise.
10705         * sched-ebb.c (add_deps_for_risky_insns): Likewise.
10706         * sched-rgn.c (concat_INSN_LIST): Likewise.
10707         * stor-layout.c (mode_for_size, mode_for_size_tree,
10708         smallest_mode_for_size): Likewise.
10709
10710 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10711
10712         * cfg.c (dump_reg_info): Avoid C++ keywords.
10713         * dwarf2asm.c (dw2_force_const_mem,
10714         dw2_asm_output_encoded_addr_rtx): Likewise.
10715         * except.c (gen_eh_region, add_action_record, output_ttype): Likewise.
10716         * expmed.c (expand_shift): Likewise.
10717         * global.c (find_reg): Likewise.
10718         * graph.c (draw_edge): Likewise.
10719         * local-alloc.c (reg_meets_class_p, find_free_reg): Likewise.
10720         * optabs.c (expand_binop, expand_twoval_unop, expand_twoval_binop,
10721         widen_clz, widen_bswap, expand_parity, expand_unop,
10722         emit_cmp_and_jump_insn_1): Likewise.
10723         * postreload.c (reload_cse_simplify_operands): Likewise.
10724         * ra.h (add_neighbor): Likewise.
10725         * reg-stack.c (remove_regno_note, change_stack): Likewise.
10726         * regclass.c (memory_move_secondary_cost, dump_regclass, regclass,
10727         record_reg_classes, copy_cost, record_address_regs,
10728         invalid_mode_change_p): Likewise.
10729         * regrename.c (regrename_optimize, scan_rtx_reg,
10730         dump_def_use_chain, find_oldest_value_reg,
10731         replace_oldest_value_reg, copyprop_hardreg_forward_1): Likewise.
10732
10733 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
10734
10735         * config/rs6000/rs6000.c (processor_target_table): Remove duplicate
10736         MASK_POWERPC64 for power4 in previous commit.
10737
10738 2008-07-16  Olivier Hainque  <hainque@adacore.com>
10739
10740         * collect2.c (scan_prog_file, COFF version): Use CONST_CAST
10741         instead of bare conversion to cast const-ness away.
10742
10743 2008-07-16  Anatoly Sokolov  <aesok@post.ru>
10744
10745         * config/xtensa/xtensa.h (FUNCTION_OUTGOING_VALUE,
10746         XTENSA_FUNCTION_VALUE, XTENSA_FUNCTION_VALUE): Remove.
10747         * config/xtensa/xtensa.c (xtensa_function_value): New function.
10748         (TARGET_FUNCTION_VALUE): Define.
10749
10750 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
10751
10752         * config/rs6000/rs6000.c (processor_target_table): Add
10753         MASK_PPC_GPOPT for power4, power5, power5+, power6, and power6x.
10754
10755 2008-07-16  Joseph Myers  <joseph@codesourcery.com>
10756
10757         PR target/36827
10758         * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
10759         (m32c_legitimate_address_p): Handle "++rii" addresses created by
10760         m32c_legitimize_reload_address.
10761
10762 2007-07-16  Rafael Ã\83Â\81vila de EspÃ\83­ndola  <espindola@google.com>
10763
10764         * c-decl.c (merge_decls): Keep DECL_SOURCE_LOCATION and
10765         DECL_IN_SYSTEM_HEADER in sync.
10766
10767 2008-07-15  Daniel Berlin  <dberlin@dberlin.org>
10768
10769         * tree-ssa-sccvn.c (expressions_equal_p): Check type equality.
10770         * tree-ssa-pre.c (pre_expr_eq): Ditto
10771         (get_constant_for_value_id): Take a type as an argument.
10772         (fully_constant_expression): Pass in type.
10773         (find_or_generate_expression): Short circuit constant case.
10774         (create_expression_by_pieces): Remove special casing of
10775         pointer_plus.
10776         (do_regular_insertion): Short circuit constant case.
10777         (do_partial_partial_insertion): Ditto.
10778
10779 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
10780
10781         PR target/36782
10782         * config/sh/sh.md (symGOT_load): Don't add REG_EQUAL note.
10783
10784 2008-07-15  Bob Wilson  <bob.wilson@acm.org>
10785
10786         * config/xtensa/libgcc-xtensa.ver: New file.
10787         * config/xtensa/t-linux (SHLIB_MAPFILES): Append libgcc-xtensa.ver.
10788
10789 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10790
10791         * df-problems.c (df_set_note): Avoid C++ keywords.
10792         * df-scan.c (df_ref_change_reg_with_loc_1): Likewise.
10793         * dse.c (record_store, remove_useless_values): Likewise.
10794         * emit-rtl.c (gen_reg_rtx, update_reg_offset, gen_rtx_REG_offset,
10795         gen_reg_rtx_offset, operand_subword, change_address_1,
10796         change_address, adjust_address_1, offset_address,
10797         widen_memory_access, emit_copy_of_insn_after): Likewise.
10798         * explow.c (round_push, allocate_dynamic_stack_space): Likewise.
10799         * fwprop.c (should_replace_address, propagate_rtx_1,
10800         propagate_rtx, try_fwprop_subst, forward_propagate_and_simplify):
10801         Likewise.
10802         * gcse.c (cprop_jump, find_implicit_sets, bypass_block,
10803         gcse_emit_move_after, update_ld_motion_stores): Likewise.
10804         * lcm.c (compute_insert_delete, pre_edge_lcm,
10805         compute_rev_insert_delete, pre_edge_rev_lcm): Likewise.
10806         * lower-subreg.c (resolve_reg_notes): Likewise.
10807         * mode-switching.c (optimize_mode_switching): Likewise.
10808
10809 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10810
10811         * bt-load.c (add_btr_def, migrate_btr_def,
10812         branch_target_load_optimize): Avoid C++ keywords.
10813         * caller-save.c (insert_restore, insert_save, insert_one_insn):
10814         Likewise.
10815         * combine.c (subst, simplify_set, make_extraction,
10816         make_compound_operation, known_cond, simplify_shift_const_1): Likewise.
10817         * cse.c (make_regs_eqv, merge_equiv_classes, validate_canon_reg,
10818         fold_rtx, equiv_constant, cse_insn, cse_process_notes_1): Likewise.
10819
10820 2008-07-15  Richard Guenther  <rguenther@suse.de>
10821
10822         PR middle-end/36369
10823         * c-common.c (strict_aliasing_warning): Do not warn for
10824         TYPE_REF_CAN_ALIAS_ALL pointers.
10825         (c_common_get_alias_set): may_alias types are not special.
10826         * tree.c (build_pointer_type_for_mode): Look up the may_alias
10827         attribute and set can_ref_all accordingly.
10828         (build_reference_type_for_mode): Likewise.
10829         * doc/extend.texi (may_alias): Clarify.
10830
10831 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
10832
10833         PR target/36780
10834         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
10835         (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
10836
10837 2008-07-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10838
10839         PR target/31568
10840         * config/rs6000/rs6000.c (print_operand <case 'y'>): Don't use
10841         gcc_assert, instead call output_operand_lossage.
10842
10843 2008-07-15  Kai Tietz  <kai.tietz@onevision.com>
10844
10845         * builtins.c (std_canonical_va_list): Treat structure based
10846         va_list types.
10847
10848 2008-07-15  Ben Elliston  <bje@au.ibm.com>
10849
10850         * emit-rtl.c (set_mem_attributes_minus_bitpos): Improve comment.
10851
10852 2007-07-14  Rafael Ã\83Â\81vila de EspÃ\83­ndola  <espindola@google.com>
10853
10854         * c-decl.c (diagnose_mismatched_decls): Don't warn if TREE_NO_WARNING
10855         is set.
10856
10857 2008-07-14  Jan Hubicka  <jh@suse.cz>
10858
10859         * i386.md (sse5 cmov pattern): Update call of ix86_sse5_valid_op_p
10860         * sse.md (sse5 patterns): Update call of ix86_sse5_valid_op_p;
10861         fix predicates and constraints.
10862         * i386.c (ix86_sse5_valid_op_p): Add commutative parameter.
10863         * i386-protos.h (ix86_sse5_valid_op_p): Update declaration.
10864
10865 2008-07-14  Doug Kwan  <dougkwan@google.com>
10866
10867         * config.gcc (arm*-*-eabi*): Include arm/eabi.h and use
10868         additional option file arm/eabi.opt.
10869         * config/arm/eabi.h (File): New configuration file for EABI targets.
10870         * config/arm/elf.h (SUBTARGET_EXTRA_SPECS): Add
10871         SUBSUBTARGET_EXTRA_SPECS.
10872         (SUBSUBTARGET_EXTRA_SPECS): Provide empty default.
10873         * config/arm/unknown-elf.h (UNKNOWN_ELF_STARTFILE_SPEC): Renamed
10874         from STARTFILE_SPEC so that it can be referenced in an override.
10875         (STARTFILE_SPEC): Use UNKNOWN_ELF_STARTFILE_SPEC.
10876         (UNKNOWN_ELF_ENDFILE_SPEC): Renamed from ENDFILE_SPEC so that it
10877         can be referenced in an override.
10878         (ENDFILE_SPEC): Use UNKNOWN_ELF_ENDFILE_SPEC.
10879         * config/arm/bpabi.h (BPABI_LINK_SPEC): Renamed from LINK_SPEC
10880         so that it can be referenced in an override.
10881         (LINK_SPEC): Use BPABI_LINK_SPEC.
10882         * config/arm/eabi.opt (File): New.
10883
10884 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10885
10886         * Makefile.in (TARGET_DEF_H): Add targhooks.h.
10887         (FIXED_VALUE_H): New variable.
10888         (RTL_BASE_H): Use $(INPUT_H) and $(FIXED_VALUE_H) instead of
10889         input.h, fixed-value.h.
10890         (TREE_H): Use $(INPUT_H), add $(SYMTAB_H).
10891         (BASIC_BLOCK_H): Use $(BITMAP_H).
10892         (FUNCTION_H): Add varray.h.
10893         (IPA_REFERENCE_H): Use $(BITMAP_H).
10894         (CGRAPH_H): Add $(BASIC_BLOCK_H).
10895         (DF_H): Use $(BITMAP_H).
10896         (GGC_H): Add statistics.h.
10897         (INSN_ADDR_H): New.
10898         (INSN_ATTR_H): Use it.
10899         (SYSTEM_H): Add safe-ctype.h, filenames.h.
10900         (INPUT_H): New.
10901         (SYMTAB_H): Add $(OBSTACK_H).
10902         (CPP_INTERNAL_H): New.
10903         (TREE_DUMP_H): Add tree-pass.h.
10904         (TREE_FLOW_H): Use $(BITMAP_H)
10905         (PRETTY_PRINT_H): Use $(INPUT_H).
10906         (EBITMAP_H): Rename from typo-ed EBIMAP_H.
10907         (GSTAB_H): New.
10908         (BITMAP_H): New.
10909         (many object files): Fix lots of header dependencies throughout.
10910
10911 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10912
10913         * Makefile.in (write_entries_to_file, write_entries_to_file_split):
10914         New macros.
10915         (s-gtyp-input): Use them to write tmp-gi.list.
10916         (echo_to_gi.list): Remove.
10917
10918 2008-07-14  Richard Guenther  <rguenther@suse.de>
10919
10920         * tree-ssa-sccvn.c (pre_info): Remove.
10921         (switch_to_PRE_table): Likewise.
10922         (free_scc_vn): Do not clear SSA_NAME_VALUE.  Do not free pre_info.
10923         (set_hashtable_value_ids): Do not create value-ids for the
10924         optimistic tables.
10925         (run_scc_vn): Remove double test.  Remove bogus special-case
10926         in value-number printing.
10927         * tree-ssa-sccvn.h (switch_to_PRE_table): Remove.
10928         * tree-ssa-ccp.c (get_symbol_constant_value): Do not look at
10929         SSA_NAME_VALUE.
10930         * tree-flow-inline.h (get_value_handle): Remove.
10931         * tree-flow.h (get_value_handle): Remove.
10932
10933 2008-07-14  Martin Jambor  <mjambor@suse.cz>
10934
10935         * tree-switch-conversion.c (gen_inbound_check): Make sure the type
10936         in which we generate arithmetics is not a subrange.
10937
10938 2008-07-14  Martin Jambor  <mjambor@suse.cz>
10939
10940         * Makefile.in (IPA_PROP_H): Added ipa-prop.h to IPA_PROP_H variable.
10941
10942 2008-07-14  Richard Guenther  <rguenther@suse.de>
10943
10944         * tree-ssa-pre.c (insert_into_preds_of_block): Do not call convert.
10945
10946 2008-07-14  Andreas Krebbel  <krebbel1@de.ibm.com>
10947
10948         PR target/36745
10949         * config/s390/s390.c: (s390_secondary_reload): Add a secondary
10950         reload for symbol refs moved to r0 with -fPIC.
10951         (legitimize_pic_address): Use the target register as temporary
10952         reg if possible.
10953         (emit_symbolic_move): Adjust comment.
10954         * config/s390/s390.md (reloadsi_PIC_addr, reloaddi_PIC_addr):
10955         New expanders.
10956
10957 2008-07-14  Ben Elliston  <bje@au.ibm.com>
10958
10959         * c-common.h (C_CPP_HASHNODE): New macro.
10960         * coretypes.h (struct cpp_token): Forward declare.
10961         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
10962         the context-sensitive keyword method.
10963         * config/rs6000/rs6000-c.c (__vector_keyword, vector_keyword,
10964         __pixel_keyword, pixel_keyword, __bool_keyword, bool_keyword,
10965         expand_bool_pixel): New.
10966         (altivec_categorize_keyword): New function.
10967         (init_vector_keywords): New function.
10968         (rs6000_macro_to_expand): Likewise.
10969         (rs6000_cpu_cpp_builtins): Enable context-sensitive macros if not
10970         compiling an ISO C dialect.
10971
10972 2008-07-13  Daniel Berlin  <dberlin@dberlin.org>
10973
10974         * tree-ssa-pre.c (fully_constant_expression): Add fold_convert calls.
10975         (create_expression_by_pieces): Fix typo.
10976         (do_regular_insertion): Use debug counter here too.
10977
10978 2008-07-14  Hans-Peter Nilsson  <hp@axis.com>
10979
10980         PR target/35492.
10981         * config/cris/cris.h (CRIS_CONST_OK_FOR_LETTER_P): Renamed from
10982         CONST_OK_FOR_LETTER_P.  All port-local users changed.
10983         (CONST_OK_FOR_CONSTRAINT_P): Define; implement Kc as old K,
10984         implement Kp matching power-of-two.
10985         (CONSTRAINT_LEN): Define to match.
10986         * config/cris/cris.md: Replace all use of constraint K with Kc.
10987         ("*btst*): Use Kp for operand 0 of last alternative.
10988
10989 2008-07-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10990
10991         PR testsuite/36440
10992         * tree-call-cdce.c (check_target_format): Accept MIPS single, double
10993         and quad formats.
10994
10995 2008-07-13  Jan Hubicka  <jh@suse.cz>
10996
10997         * tree.c (decl_assembler_name_equal): Expect assembler name of decl
10998         to be mangled too.
10999
11000 2008-07-13  Richard Guenther  <rguenther@suse.de>
11001
11002         PR middle-end/36811
11003         * langhooks.c (lhd_print_error_function): Deal with recursive
11004         BLOCK trees.
11005
11006 2008-07-12  Jan Hubicka  <jh@suse.cz>
11007
11008         * cgraph.c (assembler_name_hash): New static var.
11009         (hash_node_by_assembler_name, eq_assembler_name): New.
11010         (cgraph_node_for_asm): Use hashtable.
11011         (cgraph_remove_node): Maintain hashtable.
11012         (change_decl_assembler_name): Sanity check that names are not changing
11013         after aliasing was processed.
11014         * cgraph.h (varpoon_node): Add next GGC marker.
11015         * tree.c (decl_assembler_name_equal): Constify.
11016         (decl_assembler_name_hash): New.
11017         * tree.h (decl_assembler_name_equal): Constify.
11018         (decl_assembler_name_hash): Update.
11019
11020 2008-07-12  David Daney  <ddaney@avtrex.com>
11021
11022         * config/mips/driver-native.c (host_detect_local_cpu): Handle
11023         sb1 and r5000 cpus.
11024
11025 2008-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
11026
11027         * doc/md.texi: Document the MIPS "v" constraint.
11028         * config/mips/mips.h (reg_class): Revert last change.
11029         (REG_CLASS_NAMES): Likewise.
11030         (REG_CLASS_CONTENTS): Likewise.
11031         * config/mips/mips.c (mips_regno_to_class): Likewise.
11032         * config/mips/constraints.md (v): Likewise, but add documentation.
11033         Add a comment to say that this constraint should not be used in
11034         gcc code.
11035
11036 2008-07-11  DJ Delorie  <dj@redhat.com>
11037
11038         * config/h8300/h8300.md (length): Fix branch offset limit.
11039
11040 2008-07-11  Anatoly Sokolov  <aesok@post.ru>
11041
11042         * config/avr/avr-protos.h (avr_peep2_scratch_safe): Remove prototype.
11043         * config/avr/avr.c (avr_peep2_scratch_safe): Remove.
11044         (avr_hard_regno_scratch_ok): New function.
11045         (TARGET_HARD_REGNO_SCRATCH_OK): Define.
11046         * config/avr/avr.md (all peepholes that request a scratch register):
11047         Remove avr_peep2_scratch_safe use.
11048
11049 2008-07-11  Tom Tromey  <tromey@redhat.com>
11050             Ian Lance Taylor  <iant@google.com>
11051
11052         * c-common.h (enum rid): Add RID_CXX_COMPAT_WARN.
11053         (struct c_common_resword): Define.
11054         (D_CONLY, D_CXXONLY, D_C99, D_CXX0X, D_EXT, D_EXT89): Define.
11055         (D_ASM, D_OBJC, D_CXX_OBJC, D_CXXWARN): Define.
11056         (c_common_reswords, num_c_common_reswords): Declare.
11057         * c-common.c (c_common_reswords): New global const array.
11058         (num_c_common_reswords): New const int.
11059         * c-parser.c (struct resword, reswords): Don't define.
11060         (D_C89, D_EXT, D_EXT89, D_OBJC): Don't define.
11061         (c_parse_init): Clarify mask code.  Use c_common_reswords rather
11062         than reswords.  If warning about C++ keywords, give them a special
11063         RID code.
11064         (c_lex_one_token): Warn about C++ keywords.  Call
11065         objc_is_reserved_word rather than OBJC_IS_AT_KEYWORD.
11066         (c_parser_external_declaration): Look for RID_xxx rather than
11067         RID_AT_xxx, for ObjC++ keywords which are also C++ keywords.
11068         (c_parser_statement_after_labels): Likewise.
11069         (c_parser_objc_class_instance_variables): Likewise.
11070         (c_parser_objc_class_declaration): Likewise.
11071         (c_parser_objc_try_catch_statement): Likewise.
11072         * c-decl.c (c_print_identifier): Ignore RID_CXX_COMPAT_WARN.
11073         (declspecs_add_type): Likewise.
11074
11075 2008-07-11  Angelo Graziosi  <angelo.graziosi@alice.it>
11076
11077         * ggc-page.c (alloc_page):
11078         Substituting xmalloc, xcalloc with
11079         XNEWVEC and XCNEWVAR macros which add the
11080         needed casts.
11081
11082 2008-07-11  Richard Guenther  <rguenther@suse.de>
11083
11084         PR tree-optimization/36765
11085         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
11086         aliases from HEAP vars to SMTs.
11087
11088 2008-07-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11089
11090         * Makefile.in (LOOSE_WARN, STRICT_WARN): Update comments.
11091         * configure.ac (loose_warn): Move -Wc++-compat from here...
11092         (strict_warn): ...to here.
11093         * configure: Regenerate.
11094
11095 2008-07-10  Joseph Myers  <joseph@codesourcery.com>
11096
11097         * config.gcc (arm-*-coff*, armel-*-coff*, h8300-*-*,
11098         i[34567]86-*-aout*, i[34567]86-*-coff*, m68k-*-aout*,
11099         m68k-*-coff*, sh-*-*, mips-sgi-irix[56]*, pdp11-*-bsd,
11100         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*): Deprecate targets,
11101         excluding more specific h8300-*-* and sh-*-* targets.
11102
11103 2008-07-10  Daniel Berlin  <dberlin@dberlin.org>
11104
11105         * tree-ssa-pre.c (create_expression_by_pieces): Add fold_convert calls.
11106         (eliminate): Ditto.
11107         (execute_pre): Call loop_optimizer_finalize in early exit.
11108
11109 2008-07-10  Jakub Jelinek  <jakub@redhat.com>
11110
11111         PR middle-end/36790
11112         * omp-low.c (lower_omp_2): If task_shared_vars, test all DECL_P
11113         uids in the bitmap, not just VAR_DECL uids.
11114
11115         PR rtl-optimization/36419
11116         * combine-stack-adj.c (adjust_frame_related_expr): New function.
11117         (combine_stack_adjustments_for_block): Call it if needed.  Delete
11118         correct insn.
11119         * dwarf2out.c (dwarf2out_frame_debug_expr): Adjust
11120         DW_CFA_GNU_args_size if CSA pass merged some adjustments into
11121         prologue sp adjustment.
11122
11123 2008-07-10  Peter Maydell  <pmaydell@chiark.greenend.org.uk>
11124
11125         PR other/28322
11126         * opts.c (print_ignored_options): Report postponed diagnostics for
11127         unknown -Wno-* options as warnings, not errors.
11128         (postpone_unknown_option_error): Renamed to...
11129         (postpone_unknown_option_warning): ... this.
11130
11131 2008-07-09  Doug Kwan  <dougkwan@google.com>
11132
11133         Revert:
11134         2008-07-08  Doug Kwan  <dougkwan@google.com>
11135
11136         * config/arm/arm.opt (mandroid): New option.
11137         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
11138         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
11139         (CC1_SPEC): Same.
11140         (CC1PLUS_SPEC): Same.
11141         (LIB_SPEC): Same.
11142         (STARTFILE_SPEC): Same.
11143         (ENDFILE_SPEC): Same.
11144         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
11145         used.
11146
11147 2008-07-09  Richard Sandiford  <rdsandiford@googlemail.com>
11148
11149         PR target/35802
11150         * config/mips/mips.h (reg_class): Remove V1_REG.
11151         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
11152         * config/mips/mips.c (mips_regno_to_class): Map $3 to M16_NA_REGS
11153         instead of V1_REGS.
11154         (mips_get_tp): New function.
11155         (mips_legitimize_tls_address): Use it.
11156         * config/mips/constraints.md (v): Delete.
11157         * config/mips/mips.md (TLS_GET_TP_REGNUM): New constant.
11158         (tls_get_tp_<mode>): Allow any GPR destination and clobber $3.
11159         After reload, split into a move and ...
11160         (*tls_get_tp_<mode>_split): ...this new instruction.
11161
11162 2008-07-09  David Daney  <ddaney@avtrex.com>
11163
11164         * config/mips/driver-native.c: Include coretypes.h and tm.h.
11165
11166 2008-07-09  Jakub Jelinek  <jakub@redhat.com>
11167
11168         * gimplify.c (struct gimplify_ctx): Move to tree-gimple.h.
11169         (push_gimplify_context): Don't allocate temp_htab nor c itself here.
11170         Add c argument.
11171         (pop_gimplify_context): Check c->temp_htab instead of optimize whether
11172         htab_delete should be called.  Don't free c.
11173         (lookup_tmp_var): Create temp_htab lazily.
11174         (gimplify_scan_omp_clauses, gimplify_omp_parallel, gimplify_omp_task,
11175         gimplify_body, force_gimple_operand): Adjust push_gimplify_context
11176         callers.
11177         * omp-low.c (lower_omp_sections, lower_omp_single, lower_omp_master,
11178         lower_omp_ordered, lower_omp_critical, lower_omp_for,
11179         create_task_copyfn, lower_omp_taskreg, execute_lower_omp):
11180         * tree-ssa-ccp.c (convert_to_gimple_builtin): Likewise.
11181         * tree-sra.c (generate_element_init): Likewise.
11182         * tree-mudflap.c (execute_mudflap_function_ops,
11183         execute_mudflap_function_decls): Likewise.
11184         * tree-inline.c (setup_one_parameter, optimize_inline_calls): Likewise.
11185         * tree-gimple.h (struct gimplify_ctx): New type.
11186         (push_gimplify_context): Adjust prototype.
11187
11188 2008-07-09  Daniel Berlin  <dberlin@dberlin.org>
11189
11190         * tree-ssa-pre.c (phi_translate_1): Update placement of
11191         add_to_value calls.
11192
11193 2008-07-09  Anatoly Sokolov  <aesok@post.ru>
11194
11195         * target.h (struct gcc_target): Add hard_regno_scratch_ok field.
11196         * target-def.h (TARGET_HARD_REGNO_SCRATCH_OK): New.
11197         (TARGET_INITIALIZER): Use TARGET_HARD_REGNO_SCRATCH_OK.
11198         * targhooks.c (default_hard_regno_scratch_ok): New function.
11199         * targhooks.h (default_hard_regno_scratch_ok): Declare function.
11200         * doc/tm.texi: Document TARGET_HARD_REGNO_SCRATCH_OK hook.
11201         * recog.c:  Include "target.h".
11202         (peep2_find_free_register): Add check for global regs. Add target
11203         specific check.
11204         * Makefile.in (recog.o): Depend on target.h.
11205
11206 2008-07-09  Kaz Kojima  <kkojima@gcc.gnu.org>
11207
11208         * config/sh/sh.c (sh_canonical_va_list_type): New.
11209         (TARGET_CANONICAL_VA_LIST_TYPE): Define.
11210
11211 2008-07-09  Raksit Ashok <raksit@google.com>
11212
11213         * doc/invoke.texi (Option Summary): Mention new option
11214         -Wdisallowed-function-list=...
11215         (Warning Options): Document -Wdisallowed-function-list=...
11216         * common.opt (Wdisallowed-function-list=): New flag.
11217         * flags.h (warn_disallowed_functions): External definition of new
11218         boolean warning flag.
11219         (warn_if_disallowed_function_p): Declare new function.
11220         * opts.c (warning_disallowed_functions): New static variable.
11221         (warn_disallowed_functions): New boolean warning flag.
11222         (warn_if_disallowed_function_p): New function.
11223         (add_comma_separated_to_vector): Rename
11224         add_instrument_functions_exclude_list to this.
11225         (common_handle_option): Handle new option. Rename calls to
11226         add_instrument_functions_exclude_list into calls to
11227         add_comma_separated_to_vector.
11228         * c-parser.c (c_parser_postfix_expression_after_primary): New warning
11229         based on flag warn_disallowed_functions.
11230
11231 2008-07-09  Christian Bruel  <christian.bruel@st.com>
11232
11233         * final.c (get_attr_length_1): Call get_attr_length_1 with fallback_fn
11234          instead of get_attr_length.
11235
11236 2008-07-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11237
11238         * genattrtab.c (insert_right_side, evaluate_eq_attr): Avoid C++
11239         keywords.
11240         * genemit.c (gen_insn): Likewise.
11241         * gengtype.c (note_def_vec): Likewise.
11242         * gengtype.h (note_def_vec): Likewise.
11243         * genoutput.c (struct data, output_insn_data, process_template,
11244         gen_expand, gen_split, note_constraint): Likewise.
11245         * genrecog.c (new_decision, add_to_sequence, factor_tests,
11246         make_insn_sequence): Likewise.
11247         * gensupport.c (record_insn_name): Likewise.
11248
11249 2008-07-08  Doug Kwan  <dougkwan@google.com>
11250
11251         * config/arm/arm.opt (mandroid): New option.
11252         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
11253         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
11254         (CC1_SPEC): Same.
11255         (CC1PLUS_SPEC): Same.
11256         (LIB_SPEC): Same.
11257         (STARTFILE_SPEC): Same.
11258         (ENDFILE_SPEC): Same.
11259         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
11260         used.
11261
11262 2008-07-08  Raksit Ashok  <raksit@google.com>
11263
11264         * expr.c (emit_block_move_via_movmem): Fix expected_align parameter.
11265         (set_storage_via_setmem): Fix expected_align parameter.
11266         * doc/invoke.texi (i386 and x86-64 Options): Add a couple of options
11267         missing from the list.
11268         * doc/md.texi (movmem): Explicitly state that expected alignment is
11269         to be expressed in bytes.
11270         (setmem): Explicitly state that expected alignment is to be expressed
11271         in bytes.
11272
11273 2008-07-08  Joseph Myers  <joseph@codesourcery.com>
11274
11275         * reload.c (find_reloads_subreg_address): Do not require validity
11276         of address in original mode before reloading address.
11277
11278 2008-07-07  Tianwei Sheng  <tianweis@google.com>
11279
11280         * df-core.c (df_remove_problem): Adjust the access to avoid out of
11281         bounds array access.
11282
11283 2008-07-08  Jakub Jelinek  <jakub@redhat.com>
11284
11285         * tree-sra.c (sra_build_assignment): Handle CONVERT_EXPR_P dst.
11286
11287 2008-07-05  Daniel Berlin  <dberlin@dberlin.org>
11288
11289         Fix PR tree-optimization/23455
11290         Fix PR tree-optimization/35286
11291         Fix PR tree-optimization/35287
11292         * Makefile.in (OBJS-common): Remove tree-vn.o.
11293         (tree-vn.o): Remove.
11294         * dbgcnt.def: Add treepre_insert debug counter.
11295         * gcc/tree-flow.h (add_to_value): Updated for other changes.
11296         (debug_value_expressions): Ditto.
11297         (print_value_expressions): Ditto.
11298         * tree-pretty-print.c (dump_generic_node): Updated for
11299         VALUE_HANDLE removal.
11300         * tree-ssa-dom.c (record_equality): Ditto.
11301         (cprop_operand): Ditto.
11302         (lookup_avail_expr): Ditto.
11303         * tree-ssa-threadedge.c
11304         (record_temporary_equivalences_from_stmts_at_dest): Ditto.
11305         (simplify_control_stmt_condition): Ditto.
11306         * tree.c (tree_code_size): Ditto.
11307         (tree_node_structure): Ditto.
11308         (iterative_hash_expr): Ditto.
11309         * tree.def: Ditto.
11310         * tree.h (VALUE_HANDLE_ID): Ditto.
11311         (VALUE_HANDLE_EXPR_SET): Ditto.
11312         (struct tree_value_handle): Ditto.
11313         (union tree_node): Ditto.
11314         * treestruct.def: Ditto.
11315         * tree-vn.c: Removed.
11316         * tree-ssa-pre.c: Rewritten entirely.
11317         * tree-ssa-sccvn.c (constant_to_value_id): New hashtable.
11318         (constant_value_ids): Ditto.
11319         (vn_nary_op_t): Moved to header.
11320         (vn_phi_t): Ditto.
11321         (vn_reference_op_t): Ditto
11322         (vn_reference_t): Ditto.
11323         (next_value_id): New variable.
11324         (VN_INFO): Add an assert.
11325         (vn_constant_eq): New function.
11326         (vn_constant_hash): Ditto.
11327         (get_or_alloc_constant_value_id): Ditto.
11328         (value_id_constant_p): Ditto.
11329         (vn_reference_compute_hash): De-staticify.
11330         (copy_reference_ops_from_ref): Don't use get_callee_fndecl.
11331         Disable some code with a FIXME.  Remove VALUE_HANDLE use.
11332         (valueize_refs): Update opcode if it changes from ssa name to constant.
11333         (vn_reference_lookup_1): Add new argument.
11334         (vn_reference_lookup):  Ditto.
11335         (vn_reference_lookup_pieces): New function.
11336         (vn_reference_insert): Add return type. Modify to deal with value ids.
11337         (vn_reference_insert_pieces):  New function.
11338         (vn_nary_op_compute_hash): De-staticify.
11339         (vn_nary_op_eq): Ditto.
11340         (vn_nary_op_lookup_pieces): New function.
11341         (vn_nary_op_lookup): Add new argument.
11342         (vn_nary_op_insert_pieces): New function.
11343         (vn_nary_op_insert): Add return type. Modify to deal with value ids.
11344         (vn_phi_insert): Ditto.
11345         (visit_unary_op): Update for callee changes.
11346         (visit_binary_op): Ditto.
11347         (visit_reference_op_load): Ditto.
11348         (visit_reference_op_store): Ditto.
11349         (init_scc_vn): Init next_value_id, constant_to_value_id and
11350         constant_value_ids.
11351         (free_scc_vn): Free them.
11352         (set_hashtable_value_ids): New function.
11353         (run_scc_vn): Use it.
11354         (get_max_value_id): New function.
11355         (get_next_value_id): Ditto.
11356         (expressions_equal_p): Moved from tree-vn.c
11357         (sort_vuses): Ditto.
11358         (sort_vuses_heap): Ditto.
11359         * tree-ssa-sccvn.h: Structures moved from tree-ssa-sccvn.c (noted
11360         above).
11361         * tree.c (iterative_hash_hashval_t): Made non-static
11362         * tree.h (iterative_hash_hashval_t): Declare it.
11363
11364 2008-07-08  Martin Jambor  <mjambor@suse.cz>
11365
11366         * ipa-cp.c (ipcp_init_cloned_node): Call ipa_check_create_node_params
11367         instead of ipa_create_node_params.
11368         (ipcp_driver): Allocate infos with ipa_check_create_node_params and
11369         ipa_check_create_edge_args, free them with
11370         free_all_ipa_structures_after_ipa_cp, call ipa_register_cgraph_hooks.
11371
11372         * ipa-prop.c: Include flags.h and tree-inline.h.
11373         (ipa_node_params_vector): New variable.
11374         (ipa_edge_args_vector): New variable.
11375         (edge_removal_hook_holder): New variable.
11376         (node_removal_hook_holder): New variable.
11377         (edge_duplication_hook_holder): New variable.
11378         (node_duplication_hook_holder): New variable.
11379         (ipa_detect_param_modifications): Check for presence of modified flags.
11380         (ipa_compute_jump_functions): Check for presence of jump functions.
11381         (ipa_free_edge_args_substructures): New function.
11382         (ipa_create_node_params): Removed.
11383         (ipa_free_all_edge_args): Changed to deallocate the on-the-side vector.
11384         (ipa_free_node_params_substructures): New function.
11385         (ipa_free_all_node_params): Changed to deallocate the on-the-side
11386         vector.
11387         (ipa_edge_removal_hook): New function.
11388         (ipa_node_removal_hook): New function.
11389         (duplicate_array): New function.
11390         (ipa_edge_duplication_hook): New function.
11391         (ipa_node_duplication_hook): New function.
11392         (ipa_register_cgraph_hooks): New function.
11393         (ipa_unregister_cgraph_hooks): New function.
11394         (free_all_ipa_structures_after_ipa_cp): New function.
11395
11396         * ipa-prop.h: Include vec.h.
11397         (ipa_node_params_t): New typedef with vector types for it.
11398         (ipa_edge_args_t):  New typedef with vector types for it.
11399         (IPA_NODE_REF): Changed to access an on-the-side vector.
11400         (IPA_EDGE_REF): Changed to access an on-the-side vector.
11401         (ipa_check_create_node_params): New function.
11402         (ipa_check_create_edge_args): New function.
11403
11404         * Makefile.in (IPA_PROP_H): New variable for ipa-prop.h.  Converted
11405         all users.
11406
11407 2008-07-07  Tom Tromey  <tromey@redhat.com>
11408
11409         * configure, config.in: Rebuilt.
11410         * configure.ac: Don't check for scandir or alphasort.
11411
11412 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
11413
11414         * config/arm/arm.c (arm_init_neon_builtins): Register built-in
11415         types immediately after creating them.
11416
11417 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
11418
11419         * config/arm/aout.h (DOLLARS_IN_IDENTIFIERS): Remove.
11420
11421 2008-07-07  Fernando Pereira <fernando@cs.ucla.edu>
11422
11423         * tree-ssa-structalias.c (compute_points_to_sets): Add call to
11424         dump_constraint_graph.
11425         (dump_constraint_edge): New function.
11426         (dump_constraint_graph): New function.
11427         (debug_constraint_graph): New function.
11428         (dump_constraint): Removed useless comparison.
11429         * tree-ssa-structalias.h (dump_constraint_edge): Declare.
11430         (dump_constraint_graph): Declare.
11431         (debug_constraint_graph): Declare.
11432         * tree-dump.c (struct dump_option_value_info): Declare TDF_GRAPH.
11433
11434 2008-07-07  Kai Tietz  <kai.tietz@onevision.com>
11435
11436         * config/i386/i386.c (is_va_list_char_pointer): New.
11437         (ix86_va_start): Replace compare with ms_va_list_type_node
11438         by is_va_list_char_pointer.
11439         (ix86_gimplify_va_arg): Likewise.
11440
11441 2008-07-07  Martin Jambor  <mjambor@suse.cz>
11442
11443         * cgraph.c (cgraph_edge_max_uid): New variable.
11444         (struct cgraph_edge_hook_list): New type.
11445         (struct cgraph_node_hook_list): New type.
11446         (struct cgraph_2edge_hook_list): New type.
11447         (struct cgraph_2node_hook_list): New type.
11448         (first_cgraph_edge_removal_hook): New variable.
11449         (first_cgraph_node_removal_hook): New variable.
11450         (first_cgraph_edge_duplicated_hook): New variable.
11451         (first_cgraph_node_duplicated_hook): New variable.
11452         (cgraph_add_edge_removal_hook): New function.
11453         (cgraph_remove_edge_removal_hook): New function.
11454         (cgraph_call_edge_removal_hooks):  New function.
11455         (cgraph_add_node_removal_hook):  New function.
11456         (cgraph_remove_node_removal_hook):  New function.
11457         (cgraph_call_node_removal_hooks):  New function.
11458         (cgraph_add_edge_duplication_hook):  New function.
11459         (cgraph_remove_edge_duplication_hook):  New function.
11460         (cgraph_call_edge_duplication_hooks):  New function.
11461         (cgraph_add_node_duplication_hook):  New function.
11462         (cgraph_remove_node_duplication_hook):  New function.
11463         (cgraph_call_node_duplication_hooks):  New function.
11464         (cgraph_create_edge): Assign to edge uid.
11465         (cgraph_remove_edge): Call edge removal hooks.
11466         (cgraph_node_remove_callees): Call edge removal hooks.
11467         (cgraph_node_remove_callers): Call edge removal hooks.
11468         (cgraph_remove_node): Call node removal hooks.
11469         (cgraph_clone_edge): Call edge duplication hooks.
11470         (cgraph_clone_node): Call node duplication hooks.
11471
11472         * cgraph.h (cgraph_edge): New field uid.
11473         (cgraph_edge_hook): New type.
11474         (cgraph_node_hook): New type.
11475         (cgraph_2edge_hook): New type.
11476         (cgraph_2node_hook): New type.
11477
11478 2008-07-07  Andreas Tobler  <a.tobler@schweiz.org>
11479
11480         * config.in: Regenerate.
11481
11482 2008-07-07  Vladimir Prus  <vladimir@codesourcery.com>
11483
11484         * gcc.c (print_sysroot): New.
11485         (option_map, display_help, process_command): Handle the
11486         -print-sysroot option.
11487         (main): Print the sysroot if requested.
11488         * doc/invoke.texi (Debugging Options): Document -print-sysroot.
11489
11490 2008-07-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11491
11492         PR target/34780
11493         * unwind-pe.h (size_of_encoded_value): add attribute unused.
11494
11495 2008-07-07  Daniel Jacobowitz  <dan@codesourcery.com>
11496
11497         * function.c (assign_parm_remove_parallels): Check mode of entry_parm.
11498         (assign_parm_setup_block_p): Also check mode of entry_parm.
11499
11500 2008-07-07  Richard Guenther  <rguenther@suse.de>
11501
11502         * tree-ssa-structalias.h (set_used_smts): Remove.
11503         * tree-ssa-structalias.c (used_smts): Likewise.
11504         (set_used_smts): Likewise.
11505         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Remove
11506         call to set_used_smts.
11507
11508 2008-07-07  Richard Guenther  <rguenther@suse.de>
11509
11510         * tree-ssa-structalias.c (struct variable_info): Add is_full_var flag.
11511         (new_var_info): Set it to false.
11512         (solution_set_add): Correctly handle pointers outside a var and
11513         inside a field.
11514         (type_safe): Treat variables with is_full_var properly.
11515         (do_sd_constraint): Likewise.
11516         (do_ds_constraint): Likewise.
11517         (process_constraint): Remove zeroing offset for !use_field_sensitive.
11518         (get_constraint_for_ptr_offset): New function.
11519         (get_constraint_for_component_ref): For addresses at least include
11520         the last field of the variable.  Handle is_full_vars properly.
11521         (get_constraint_for_1): Factor common code, handle POINTER_PLUS_EXPR.
11522         (handle_ptr_arith): Remove.
11523         (find_func_aliases): Simplify assignment handling.
11524         (create_function_info_for): For parameter and result varinfos set
11525         is_full_var flag.
11526         (create_variable_info_for): Set is_full_var flag whenever we
11527         just created a single varinfo for a decl.
11528         (init_alias_vars): Initialize use_field_sensitive from
11529         max-fields-for-field-sensitive parameter.
11530
11531 2008-07-07  Richard Guenther  <rguenther@suse.de>
11532
11533         PR tree-optimization/36713
11534         * tree-flow-inline.h (is_call_used): New function.
11535         * tree-nrv.c (dest_safe_for_nrv_p): Use it.
11536         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
11537         * tree-outof-ssa.c (create_temp): Set call-used flag if required.
11538
11539 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
11540
11541         * config/m68k/m68k.c (m68k_return_in_memory): Fix arguments types.
11542
11543 2008-07-07  Mark Shinwell  <shinwell@codesourcery.com>
11544
11545         * config/m68k/lb1sf68.asm: Add PIC macros for Linux targets.
11546
11547 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
11548             Nathan Sidwell  <nathan@codesourcery.com>
11549
11550         * config.gcc (m68k-*-linux*): Add with_arch.  Add sysroot-suffix.h
11551         to tm_file.  Add m68k/t-floatlib, m68k/t-linux & m68k/t-mlibs to
11552         tmake_file.
11553         * config/m68k/t-linux: New.
11554         * doc/install.texi: Document m68k-*-linux is now multilibbed by
11555         default.
11556
11557 2008-07-07  Nathan Sidwell  <nathan@codesourcery.com>
11558
11559         * config/m68k/t-cf (MULTILIB_EXTRA_OPTS): Add no-mac.
11560         * config/m68k/m68k-devices.def: Remove multilibs that only differ
11561         by MAC/EMAC.
11562
11563 2008-07-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11564
11565         * gcc.c (execute): Fix -Wc++-compat warning.
11566
11567 2008-07-06  H.J. Lu  <hongjiu.lu@intel.com>
11568
11569         PR target/36720
11570         * config/ia64/ia64.c (ia64_split_tmode): Fix typo in TImode
11571         constant for little endian.
11572
11573 2008-07-06  Richard Sandiford  <rdsandiford@googlemail.com>
11574
11575         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Check
11576         mips_base_mips16 instead of TARGET_MIPS16.
11577         (mips_base_mips16): Declare.
11578         * config/mips/mips.c (mips_base_mips16): Make global.
11579         (was_mips16_p): Remove GTY marker.
11580         (was_mips16_pch_p): New variable.
11581         (mips_set_mips16_mode): Check both was_mips16_p and was_mips16_pch_p.
11582         (mips_override_options): Force to non-MIPS16 mode initially.
11583         Do not complain about MIPS16 PIC incompatibilities here.
11584         Only allow -mgpopt if -mexplicit-relocs is in force for
11585         non-MIPS16 code.
11586
11587 2008-07-06  Andreas Tobler  <a.tobler@schweiz.org>
11588
11589         * configure.ac: Check for caddr_t, define to char * if not defined.
11590         * configure: Regenerate.
11591         * ggc-common.c (mmap_gt_pch_get_address): Fix -Wc++-compat warnings.
11592         (mmap_gt_pch_use_address): Likewise.
11593         * config/host-solaris.c (sol_gt_pch_use_address): Likewise.
11594
11595 2008-07-06  Richard Guenther  <rguenther@suse.de>
11596
11597         * tree-ssa-structalias.c (struct variable_info): Remove has_union.
11598         (new_var_info): Deal with it.
11599         (solution_set_add): Likewise.
11600         (bitpos_of_field): Make signed, fix.
11601         (struct fieldoff): Remove type and decl fields.  Make size field
11602         unsigned HOST_WIDE_INT.  Add has_unknown_size and may_have_pointers
11603         flags.
11604         (fieldoff_compare): Deal with it.
11605         (push_fields_onto_fieldstack): Remove has_union argument, glob
11606         adjacent non-pointer fields together.
11607         (create_function_info_for): Do not set has_union.
11608         (create_variable_info_for): Simplify.
11609
11610 2008-07-06  Kai Tietz  <kai.tietz@onevision.com>
11611
11612         * config.gcc (extra_headers): Add cross-stdarg.h for target
11613         x86_64-*-* and i?86-*-*.
11614         * config/i386/cross-stdarg.h: New.
11615         * builtins.c (std_fn_abi_va_list): New.
11616         (std_canonical_va_list_type): New.
11617         (stabilize_va_list): Replace va_list_type_node use by
11618         mtarget.canonical_va_list_type.
11619         (gimplify_va_arg_expr): Likewise.
11620         (expand_builtin_va_copy): Replace va_list_type_node use by
11621         mtarget.fn_abi_va_list.
11622         * tree-sra.c (is_va_list_type): New helper.
11623         (decl_can_be_decomposed_p): Replace
11624         va_list_type_node use by is_va_list_type.
11625         * tree-ssa-ccp.c (optimize_stdarg_builtin): Likewise.
11626         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
11627         * c-common.c (c_common_nodes_and_builtins): Use TARGET_ENUM_VA_LIST.
11628         * config/i386/i386-protos.h (ix86_get_valist_type): New.
11629         (ix86_enum_va_list): New.
11630         * config/i386/i386.c (sysv_va_list_type_node): New.
11631         (ms_va_list_type_node): New.
11632         (ix86_function_type_abi): Remove sorry.
11633         (ix86_build_builtin_va_list_abi): New.
11634         (ix86_build_builtin_va_list): Call ix86_build_builtin_va_list_abi
11635         for 64-bit targets.
11636         (ix86_va_start): Replace va_list_type_node by sysv_va_list_type_node.
11637         (ix86_init_builtins_va_builtins_abi): New.
11638         (ix86_init_builtins): Use ix86_init_builtins_va_builtins_abi
11639         for 64-bit targets.
11640         (ix86_handle_abi_attribute): New.
11641         (attribute_spec): Add sysv_abi and ms_abi.
11642         (ix86_fn_abi_va_list): New.
11643         (ix86_canonical_va_list_type): New.
11644         (ix86_enum_va_list): New.
11645         (TARGET_FN_ABI_VA_LIST): New.
11646         (TARGET_CANONICAL_VA_LIST_TYPE): New.
11647         * config/i386/i386.h (TARGET_ENUM_VA_LIST): New.
11648         * doc/tm.texi (TARGET_FN_ABI_VA_LIST): New.
11649         (TARGET_CANONICAL_VA_LIST_TYPE): New.
11650         (TARGET_ENUM_VA_LIST): New.
11651         * expr.h (std_fn_abi_va_list): New.
11652         (std_canonical_va_list_type): New.
11653         * target-def.h (TARGET_FN_ABI_VA_LIST): New.
11654         (TARGET_CANONICAL_VA_LIST_TYPE): New.
11655         (TARGET_INITIALIZER): Add TARGET_FN_ABI_VA_LIST and
11656         TARGET_CANONICAL_VA_LIST_TYPE.
11657         * target.h (struct gcc_target): Add fn_abi_va_list hook
11658         and canonical_va_list_type hook.
11659
11660 2008-07-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11661
11662         * fold-const.c (fold_convert_const): Treat OFFSET_TYPE the same as
11663         integral and pointer types.
11664
11665 2008-07-04  Roger Sayle  <roger@eyesopen.com>
11666
11667         * config/rs6000/host-darwin.c (darwin_rs6000_extra_signals): Cast
11668         the "void*" result of xmalloc to "char*" to fix bootstrap breakage.
11669
11670 2008-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
11671
11672         PR target/36684
11673         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable -fschedule-insns for PIC.
11674
11675 2008-07-04  Jakub Jelinek  <jakub@redhat.com>
11676
11677         * tree-switch-conversion.c (build_one_array, gen_def_assigns): Use
11678         build_gimple_modify_stmt.
11679         (build_arrays, gen_inbound_check): Likewise.  Force RHS to be
11680         gimple operand.  Use fold_build* instead of build*.
11681
11682 2008-07-04  Richard Guenther  <rguenther@suse.de>
11683
11684         * tree-ssa-structalias.c (lookup_vi_for_tree): Declare.
11685         (do_sd_constraint): Handle a dereference of ESCAPED and CALLUSED
11686         properly to compute the reachability set if we do field-sensitive PTA.
11687         * invoke.texi (max-fields-for-field-sensitive): Document default.
11688         * opts.c (decode_options): Set max-fields-for-field-sensitive to
11689         100 for optimize >= 2.
11690
11691 2008-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11692
11693         * ggc-zone.c (lookup_page_table_if_allocated,
11694         set_page_table_entry, zone_find_object_size, alloc_small_page,
11695         alloc_large_page, ggc_free, gt_ggc_m_S, ggc_marked_p, init_ggc,
11696         new_ggc_zone, init_ggc_pch, ggc_pch_this_base, ggc_pch_read): Fix
11697         -Wc++-compat and/or -Wcast-qual warnings.
11698
11699 2008-07-04  Alan Modra  <amodra@bigpond.net.au>
11700
11701         PR target/36634
11702         * config/rs6000/rs6000.md (call, call_value): Don't arrange for
11703         pic_offset_table_rtx to be marked as used here.
11704         (call_nonlocal_sysv, call_value_nonlocal_sysv): Add split for
11705         TARGET_SECURE_PLT to "use" pic_offset_table_rtx.
11706         (call_nonlocal_sysv_secure, call_value_nonlocal_sysv_secure): New insn.
11707         (sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv): Assert
11708         !TARGET_SECURE_PLT.
11709
11710 2008-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11711
11712         * alloc-pool.c (hash_descriptor, eq_descriptor,
11713         alloc_pool_descriptor): Fix -Wc++-compat warnings.
11714         * bitmap.c (hash_descriptor, eq_descriptor, bitmap_descriptor):
11715         Likewise.
11716         * ggc-common.c (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr,
11717         loc_descriptor, ggc_prune_ptr, ggc_free_overhead,
11718         final_cmp_statistic, cmp_statistic, dump_ggc_loc_statistics): Likewise.
11719         * varray.c (hash_descriptor, eq_descriptor, varray_descriptor):
11720         Likewise.
11721
11722 2008-07-03  Eric Botcazou  <ebotcazou@adacore.com>
11723
11724         * tree-flow.h (loop_only_exit_p): Declare.
11725         * tree-ssa-loop-niter.c (loop_only_exit_p): Make public.
11726         * tree-ssa-loop-ivopts.c (may_eliminate_iv): Reinstate direct check on
11727         the number of iterations if it is constant.  Otherwise, if this is the
11728         only possible exit of the loop, use the conservative estimate on the
11729         number of iterations of the entire loop if available.
11730
11731 2008-07-03  Richard Sandiford  <rdsandiford@googlemail.com>
11732
11733         * Makefile.in (libgcc.mvars): Add LIBGCC_SYNC and LIBGCC_SYNC_CFLAGS.
11734         * libgcc-std.ver (GCC_4.4.0): New version, inherited from GCC_4.3.0.
11735         Add synchronization functions.
11736         * config/sync.c: New file.
11737         * config/mips/t-libgcc-mips16 (LIBGCC_SYNC): Define.
11738         (LIBGCC_SYNC_CFLAGS): Likewise.
11739
11740 2008-07-03  Uros Bizjak  <ubizjak@gmail.com>
11741
11742         PR target/36710
11743         * config/i386/i386.md (mode): Add TF to "mode" attribute.
11744         (*pushtf_sse): New insn pattern.
11745         (pushtf splitters): New splitters.
11746
11747 2008-07-03  Michael Meissner  <gnu@the-meissners.org>
11748
11749         PR middle-end/35736
11750         * predict.c (build_predict_expr): Use void_type_node for the tree
11751         type, instead of NULL_TREE.
11752
11753 2008-07-03  H.J. Lu  <hongjiu.lu@intel.com>
11754
11755         * config/i386/i386.c (contains_aligned_value_p): Return true
11756         for TCmode.
11757         (ix86_data_alignment): Align TCmode to 128bits.
11758         (ix86_local_alignment): Likewise.
11759
11760 2008-07-03  Andrew Haley  <aph@redhat.com>
11761
11762         PR bootstrap/33304
11763         * vec.h (VEC_TA): New.
11764         (DEF_VEC_I, DEF_VEC_P, DEF_VEC_ALLOC_I, DEF_VEC_ALLOC_P,
11765         DEF_VEC_O, DEF_VEC_ALLOC_O: Use VEC_TA.
11766         * c-common.c (C_COMMON_FIXED_TYPES_SAT): New macro.
11767         (C_COMMON_FIXED_MODE_TYPES_SAT): New macro.
11768         (C_COMMON_FIXED_TYPES): Remove first arg.
11769         (C_COMMON_FIXED_MODE_TYPES): Likewise.
11770         * tree.c (MAKE_FIXED_TYPE_NODE): Break into two macros,
11771         MAKE_FIXED_TYPE_NODE and MAKE_FIXED_TYPE_NODE_WIDTH in order
11772         not to use empty macro arguments.
11773
11774 2008-07-02  Joseph Myers  <joseph@codesourcery.com>
11775
11776         * config/alpha/vms_tramp.asm, config/arm/crti.asm,
11777         config/arm/crtn.asm, config/bfin/crti.s, config/bfin/crtlibid.s,
11778         config/bfin/crtn.s, config/fr30/crti.asm, config/fr30/crtn.asm,
11779         config/frv/lib1funcs.asm, config/i386/sol2-c1.asm,
11780         config/i386/sol2-ci.asm, config/i386/sol2-cn.asm,
11781         config/i386/sol2-gc1.asm, config/ia64/crti.asm,
11782         config/ia64/crtn.asm, config/m68hc11/larith.asm,
11783         config/m68hc11/m68hc11-crt0.S, config/m68k/crti.s,
11784         config/m68k/crtn.s, config/mcore/crti.asm, config/mcore/crtn.asm,
11785         config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
11786         config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
11787         config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
11788         config/rs6000/crtsavres.asm, config/rs6000/e500crtres32gpr.asm,
11789         config/rs6000/e500crtres64gpr.asm,
11790         config/rs6000/e500crtres64gprctr.asm,
11791         config/rs6000/e500crtrest32gpr.asm,
11792         config/rs6000/e500crtrest64gpr.asm,
11793         config/rs6000/e500crtresx32gpr.asm,
11794         config/rs6000/e500crtresx64gpr.asm,
11795         config/rs6000/e500crtsav32gpr.asm,
11796         config/rs6000/e500crtsav64gpr.asm,
11797         config/rs6000/e500crtsav64gprctr.asm,
11798         config/rs6000/e500crtsavg32gpr.asm,
11799         config/rs6000/e500crtsavg64gpr.asm,
11800         config/rs6000/e500crtsavg64gprctr.asm, config/rs6000/eabi-ci.asm,
11801         config/rs6000/eabi-cn.asm, config/rs6000/eabi.asm,
11802         config/rs6000/sol-ci.asm, config/rs6000/sol-cn.asm,
11803         config/rs6000/tramp.asm, config/sparc/sol2-ci.asm,
11804         config/sparc/sol2-cn.asm: Remove .file directives.
11805
11806 2008-07-02  Richard Sandiford  <rdsandiford@googlemail.com>
11807
11808         * resource.c (mark_referenced_resources): Look inside
11809         UNSPEC_VOLATILEs and ASM_INPUTs.
11810
11811 2008-07-02  Ian Lance Taylor  <iant@google.com>
11812
11813         * rtlanal.c (add_reg_note): New function.
11814         * rtl.h (add_reg_note): Declare.
11815         * auto-inc-dec.c (attempt_change): Use add_reg_note.
11816         * bb-reorder.c (add_reg_crossing_jump_notes): Likewise.
11817         * builtins.c (expand_builtin_longjmp): Likewise.
11818         (expand_builtin_nonlocal_goto): Likewise.
11819         * calls.c (emit_call_1, expand_call): Likewise.
11820         * cfgexpand.c (add_reg_br_prob_note): Likewise.
11821         * cfglayout.c (fixup_reorder_chain): Likewise.
11822         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
11823         (commit_one_edge_insertion): Likewise.
11824         * combine.c (move_deaths, distribute_notes): Likewise.
11825         * df-problems.c (df_set_note): Likewise.
11826         * emit-rtl.c (link_cc0_insns, try_split): Likewise.
11827         (set_unique_reg_note): Likewise.
11828         (emit_copy_of_insn_after): Likewise.
11829         * expr.c (expand_expr_real): Likewise.
11830         * gcse.c (add_label_notes): Likewise.
11831         * haifa-sched.c (create_check_block_twin): Likewise.
11832         * jump.c (mark_jump_label_1): Likewise.
11833         * loop-doloop.c (add_test, doloop_modify): Likewise.
11834         * loop-unswitch.c (compare_and_jump_seq): Likewise.
11835         * lower-subreg.c (move_eh_region_note): Likewise.
11836         * optabs.c (emit_libcall_block): Likewise.
11837         * predict.c (predict_insn): Likewise.
11838         (combine_predictions_for_insn): Likewise.
11839         * recog.c (peephole2_optimize): Likewise.
11840         * regmove.c (try_auto_increment): Likewise.
11841         * reg-stack.c (emit_pop_insn, move_for_stack_reg): Likewise.
11842         * reload.c (find_reloads): Likewise.
11843         * reload1.c (fixup_eh_region_note): Likewise.
11844         (reload_as_needed, add_auto_inc_notes, copy_eh_notes): Likewise.
11845         * reorg.c (delete_prior_computation): Likewise.
11846         (delete_computation, dbr_schedule): Likewise.
11847         * config/pa/pa.c (legitimize_pic_address): Likewise.
11848         * config/sh/sh.c (sh_reorg): Likewise.
11849
11850 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
11851
11852         PR target/36669
11853         * config/libgcc-glibc.ver: Add %exclude.
11854         * config/m32r/libgcc-glibc.ver: Likwise.
11855         * config/s390/libgcc-glibc.ver: Likwise.
11856         * config/sh/libgcc-glibc.ver: Likwise.
11857         * config/sparc/libgcc-sparc-glibc.ver: Likwise.
11858
11859         * config/i386/libgcc-glibc.ver: New.
11860
11861         * config/i386/libgcc-x86_64-glibc.ver: Removed.
11862
11863 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
11864
11865         * config.gcc: Remove i386/t-fprules-softfp64 soft-fp/t-softfp
11866         from tmake_file from i[34567]86-*-darwin*, x86_64-*-darwin*,
11867         i[34567]86-*-linux*, x86_64-*-linux*.  Add
11868         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file for
11869         i[34567]86-*-darwin*, x86_64-*-darwin*, i[34567]86-*-linux*,
11870         x86_64-*-linux*.  Add i386/t-linux to tmake_file for
11871         i[34567]86-*-linux*, x86_64-*-linux*.
11872
11873         * libgcc-std.ver: Add empty GCC_4.4.0.
11874
11875         * mkmap-symver.awk: Support multiple versions per symbol.
11876
11877         * config/i386/i386.c (ix86_init_builtins): Always define
11878         __builtin_fabsq and __builtin_copysignq with fallbacks.
11879         (ix86_expand_builtin): Emit normal call for __builtin_fabsq
11880         and __builtin_copysignq if SSE2 isn't available.
11881
11882         * config/i386/linux.h (LIBGCC2_HAS_TF_MODE): Defined.
11883         (LIBGCC2_TF_CEXT): Likwise.
11884         (TF_SIZE): Likwise.
11885
11886         * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): Defined as 1.
11887
11888         * config/i386/sfp-machine.h: Moved to libgcc.
11889
11890         * config/i386/sfp-machine.h: New.
11891         * config/i386/t-linux: Likwise.
11892
11893         * config/i386/t-darwin: Remove softfp_wrap_start and
11894         softfp_wrap_end.
11895         * config/i386/t-darwin64: Likewise.
11896
11897         * config/i386/t-fprules-softfp64: Renamed to ...
11898         * config/i386/t-fprules-softfp: This.
11899
11900         * config/i386/t-linux64: Remove SHLIB_MAPFILES, softfp_wrap_start
11901         and softfp_wrap_end.
11902
11903 2008-07-02  Jason Merrill  <jason@redhat.com>
11904
11905         * tree.c (ctor_to_list): Use FOR_EACH_CONSTRUCTOR_ELT.
11906
11907         * tree.c (ctor_to_list): New fn.
11908         * tree.h: Declare it.
11909         (CONSTRUCTOR_ELT): New macro.
11910         (CONSTRUCTOR_NELTS): New macro.
11911
11912 2008-07-02  Richard Guenther  <rguenther@suse.de>
11913
11914         * tree-ssa-structalias.c (struct variable_info): Reorder
11915         to fill padding on 64bit hosts.  Make collapsed_to an int.
11916         (get_varinfo_fc): Deal with that.
11917         (new_var_info): Likewise.
11918         (collapse_rest_of_var): Likewise.
11919
11920 2008-07-02  Joshua Sumali  <jsumali@redhat.com>
11921
11922         * doc/install.texi (--enable-java-home): Document.
11923         (--enable-aot-compile-rpm): Likewise.
11924         (--with-arch-directory): Likewise.
11925         (--with-os-directory): Likewise.
11926         (--with-origin-name): Likewise.
11927         (--with-arch-suffix): Likewise.
11928         (--with-jvm-root-dir): Likewise.
11929         (--with-jvm-jar-dir): Likewise.
11930         (--with-python-dir): Likewise.
11931
11932 2008-07-02  Richard Guenther  <rguenther@suse.de>
11933
11934         * tree-ssa-forwprop.c (can_propagate_from): Exclude loads
11935         from decls explicitly.  Merge operand checking from tuples.
11936
11937 2008-07-02  Martin Jambor  <mjambor@suse.cz>
11938
11939         * tree-switch-conversion.c: Included timevar.h which I forgot before.
11940
11941 2008-07-02  Martin Jambor  <mjambor@suse.cz>
11942
11943         * tree-switch-conversion.c: Included timevar.h
11944         (pass_convert_switch): Added a timevar id (TV_TREE_SWITCH_CONVERSION).
11945
11946         * timevar.def: Added TV_TREE_SWITCH_CONVERSION.
11947
11948 2008-07-02  Martin Jambor  <mjambor@suse.cz>
11949
11950         * tree-switch-conversion.c: Corrected various comments and
11951         whitespace issues
11952         (build_constructors): Fixed minor formatting mistakes.
11953
11954         * invoke.texi (Optimize Options): Corrected the
11955         switch-conversion-max-branch-ratio parameter.
11956
11957 2008-07-02  Mark Shinwell  <shinwell@codesourcery.com>
11958
11959         * final.c (asm_insn_count): Return zero for an empty asm body.
11960
11961 2008-07-02  Richard Guenther  <rguenther@suse.de>
11962
11963         * bitmap.h (bitmap_set_bit): Return bool.
11964         (bitmap_clear_bit): Likewise.
11965         * bitmap.c (bitmap_set_bit): Return if the bit changed.  Only
11966         write to the bitmap if it would.
11967         (bitmap_clear_bit): Likewise.
11968         * tree-ssa-structalias.c (add_implicit_graph_edge): Use
11969         bitmap_set_bit return value.
11970         (add_pred_graph_edge): Likewise.
11971         (add_graph_edge): Likewise.
11972         (do_sd_constraint): Likewise.
11973         (do_ds_constraint): Likewise.
11974
11975 2008-07-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11976
11977         * config/alpha/alpha.c (alpha_need_linkage, alpha_use_linkage):
11978         Fix -Wc++-compat and/or -Wcast-qual warnings.
11979         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration,
11980         gen_regparm_prefix): Likewise.
11981         * vmsdbgout.c (write_modbeg, lookup_filename,
11982         vmsdbgout_source_line, vmsdbgout_init): Likewise.
11983
11984 2008-07-02  Danny Smith  <dannysmith@users.sourceforge.net>
11985
11986         * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Undef to let
11987         defaults.h definition apply.
11988
11989 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
11990
11991         * function.c (assign_parm_remove_parallels): New.
11992         (assign_parm_setup_block_p): Do not return true for non-BLKmode
11993         PARALLELs.
11994         (assign_parm_setup_block): Do not handle them.
11995         (assign_parm_setup_reg, assign_parm_setup_stack): Call
11996         assign_parm_remove_parallels.
11997
11998 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
11999
12000         * c-typeck.c (convert_for_assignment): Use
12001         vector_targets_convertible_p.
12002         * c-common.c (vector_targets_convertible_p): New.
12003         * c-common.h (vector_targets_convertible_p): New prototype.
12004         * config/rs6000/rs6000.c (rs6000_is_opaque_type): Do not check
12005         opaque_p_V2SI_type_node.
12006
12007 2008-07-01  Steve Ellcey  <sje@cup.hp.com>
12008
12009         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Do not allow
12010         RFmode constants.
12011
12012 2008-07-01  Uros Bizjak  <ubizjak@gmail.com>
12013
12014         * config/i386/i386.c (ix86_build_signbit_mask): Generate TImode and
12015         TFmode constants via two element DImode vector for hosts with
12016         HOST_BITS_PER_WIDE_INT < 64.
12017         (ix86_init_builtins): Define __builtin_fabsq and __builtin_copysignq
12018         also for HOST_BITS_PER_WIDE_INT < 64.
12019
12020 2008-07-01  Richard Guenther  <rguenther@suse.de>
12021
12022         PR tree-optimization/36666
12023         * tree-ssa-structalias.c (get_constraint_for_1): Declare.
12024         (get_constraint_exp_from_ssa_var): Split into ...
12025         (get_constraint_exp_for_temp): ... this ...
12026         (get_constraint_for_ssa_var): ... and that.
12027         Return constraint expressions for all touched sub-fields
12028         if the results address is not taken.
12029         (process_constraint): Remove assertion that aggregate
12030         assignments do not happen at this place.
12031         (get_constraint_for_component_ref): Add address_p argument.
12032         Return constraint expressions for all touched sub-fields
12033         if the results address is not taken.
12034         (do_deref): Use get_constraint_exp_for_temp.
12035         (get_constraint_for_1): Rename from ...
12036         (get_constraint_for): ... this.  Add the old function as wrapper.
12037         (do_structure_copy): Use get_constraint_for_1.
12038
12039 2008-07-01  Martin Jambor  <mjambor@suse.cz>
12040
12041         * Makefile.in (tree-switch-conversion.o): Add.
12042         (OBJS-common): Add tree-swtch-conversion.o.
12043         * passes.c (init_optimization_passes): Add pass_convert_switch.
12044         * tree-pass.h: (pass_convert_switch): Add.
12045         * tree-switch-conversion.c: New file.
12046         * gcc.dg/tree-ssa/cswtch.c: New testcase.
12047         * common.opt (ftree-cswtch): New option.
12048         * params.h (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
12049         * params.def (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
12050         * opts.c (decode_options): Set flag_tree_switch_conversion when
12051         optimization level is >= 2.
12052         * doc/invoke.texi (Optimize Options): Added description of
12053         -ftree-swtch-conversion and switch-conversion-max-branch-ratio.
12054
12055 2008-06-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12056
12057         * config/darwin-driver.c (darwin_default_min_version): Fix
12058         -Wc++-compat warnings.
12059
12060 2008-06-30  Uros Bizjak  <ubizjak@gmail.com>
12061
12062         * config/i386/i386.md (*movti_rex64): Add "!" to "r" constraint
12063         of operand 0.
12064
12065 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
12066
12067         * ifcvt.c (cond_move_process_if_block): Free vectors on false return.
12068
12069 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
12070
12071         PR rtl-optimization/34744
12072         * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): New macros.
12073         (df_scan_free_internal): Free data structures not
12074         allocated in storage pools.
12075         (df_mw_hardreg_chain_delete_eq_uses): Use df_scan_free_mws_vec.
12076         (df_refs_add_to_chains): Use df_scan_free_ref_vec and
12077         df_scan_free_mws_vec.
12078         * dse.c (dse_step6): Free offset_map_p and offset_map_n
12079         unconditionally.
12080
12081 2008-06-30  H.J. Lu  <hongjiu.lu@intel.com>
12082
12083         * config/i386/i386.c (contains_aligned_value_p): Return true
12084         for __float128.
12085         (ix86_function_arg_boundary): Return its natural boundary
12086         for __float128.
12087         (return_in_memory_32): Don't check TDmode.
12088         (ix86_split_to_parts): Support splitting into 4 parts and
12089         support TFmode for 32bit target.
12090         (ix86_split_long_move): Support splitting into 4 parts.
12091         (bdesc_args): Enable IX86_BUILTIN_FABSQ and IX86_BUILTIN_COPYSIGNQ
12092         for SSE2.
12093         (ix86_init_mmx_sse_builtins): Move __float80 and __float128 to ...
12094         (ix86_init_builtins): Here.
12095         (ix86_scalar_mode_supported_p): Always return true for TFmode.
12096         (ix86_c_mode_for_suffix): Always return TFmode and XFmode for
12097         'q' and 'w', respectively.
12098
12099         * config/i386/i386.md (movtf): Check TARGET_SSE2 instead of
12100         TARGET_64BIT.
12101         (movtf_internal): Likewise.
12102         (<code>tf2): Likewise.
12103         (*absnegtf2_sse): Likewise.
12104         (copysign<mode>3): Likewise.
12105         (copysign<mode>3_const): Likewise.
12106         (copysign<mode>3_var): Likewise.
12107         (define_split UNSPEC_COPYSIGN): Likewise.
12108         * config/i386/sse.md (*nandtf3): Likewise.
12109         (<code>tf3): Likewise.
12110         (*<code>tf3): Likewise.
12111
12112 2008-06-30  Joey Ye  <joey.ye@intel.com>
12113             H.J. Lu  <hongjiu.lu@intel.com>
12114
12115         * global.c (compute_regsets): Set frame_pointer_needed here.
12116         * reload1.c (init_elim_table): Don't set frame_pointer_needed here.
12117
12118 2008-06-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
12119
12120         * doc/install.texi (specific): Expand Windows build notes.
12121
12122 2008-06-30  Ira Rosen  <irar@il.ibm.com>
12123
12124         PR tree-optimization/36648
12125         * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Divide
12126         number of prolog iterations by step. Fix the comment.
12127
12128 2008-06-30  Richard Guenther  <rguenther@suse.de>
12129
12130         PR middle-end/36671
12131         * tree-ssa-structalias.c (handle_lhs_call): Add flags argument,
12132         handle calls from ECF_MALLOC functions.
12133         (handle_pure_call): ECF_MALLOC functions do not return
12134         call-used memory.
12135         (find_func_aliases): Handle all calls, adjust calls to handle_lhs_call.
12136
12137 2008-06-29  Andreas Schwab  <schwab@suse.de>
12138
12139         * config/m68k/m68k.c (print_operand): Always print a float
12140         constant in hex.
12141         * config/m68k/m68k.h (ASM_OUTPUT_FLOAT_OPERAND)
12142         (ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND):
12143         Remove macros.
12144
12145         * config/rs6000/x-linux64: Remove never used file.
12146
12147 2008-06-29  Richard Guenther  <rguenther@suse.de>
12148
12149         * tree-ssa-structalias.h (compute_points_to_sets): Adjust
12150         prototype.
12151         (struct alias_info): Move ...
12152         * tree-ssa-alias.c: ... here.
12153         (update_alias_info): Declare.
12154         (compute_may_aliases): Call it.
12155         (update_alias_info): New function.
12156         * tree-ssa-structalias.c (update_alias_info): Move ...
12157         * tree-ssa-alias.c (update_alias_info_1): ... here.
12158         * tree-ssa-structalias.c (process_constraint_1): Remove
12159         unused from_call argument.  Rename to ...
12160         (process_constraint): ... this.  Delete old wrapper.
12161         (make_constraint_to): Adjust callers.
12162         (handle_const_call): Likewise.
12163         (handle_pure_call): Likewise.
12164         (init_base_vars): Likewise.
12165         (handle_lhs_call): Likewise.  Remove unnecessary constraint.
12166         (find_func_aliases): We don't need structure copies for
12167         complex types.
12168         (make_constraint_from_anything): Remove.
12169         (create_variable_info_for): For globals make constraints
12170         from escaped, not from anything.
12171         (compute_points_to_sets): Do not call update_alias_info.
12172         (ipa_pta_execute): Use make_constraint_from.
12173
12174 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12175
12176         * Makefile.in (CXX_COMPAT_WARN, cxx_compat_warn): Delete.
12177         (bitmap.o-warn, dominance.o-warn): New.
12178         * configure.ac (cxx_compat_warn): Delete.
12179         (loose_warn): Add -Wcast-qual and -Wc++-compat.
12180         * system.h: Remove #pragma diagnostic for -Wcast-qual and
12181         -Wc++-compat.
12182         * configure: Regenerate.
12183
12184         * optabs.c (libfunc_decl_hash, libfunc_decl_eq): Fix -Wcast-qual
12185         warnings.
12186
12187 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12188
12189         * alloc-pool.c (create_alloc_pool): Fix -Wc++-compat warnings.
12190         * df-scan.c (df_notes_rescan): Likewise.
12191         * ggc-page.c (set_page_table_entry): Likewise.
12192         * intl.c (gcc_gettext_width): Likewise.
12193         * varasm.c (get_unnamed_section, get_noswitch_section,
12194         get_section): Likewise.
12195
12196 2008-06-28  Andrew Jenner  <andrew@codesourcery.com>
12197
12198         * regrename.c (build_def_use): Don't copy RTX.
12199
12200 2008-06-28  Sandra Loosemore  <sandra@codesourcery.com>
12201
12202         * doc/extend.texi (Variable Attributes): Use @ref instead of @xref.
12203         (Type Attributes): Fix nesting of @table and @subsection.  Adjust
12204         punctuation.  Use @ref instead of @xref.
12205         (Function Names): Remove stray @display/@end display.
12206         (C++ Attributes): Use @ref instead of @xref.
12207         (Deprecated Features): Fix punctuation around @xref.
12208         (Backwards Compatibility): Likewise.
12209         * doc/rtl.texi (Incdec): Remove stray @table/@end table.
12210
12211 2008-06-28  Joseph Myers  <joseph@codesourcery.com>
12212
12213         * config/rs6000/predicates.md (easy_fp_constant): Reject TFmode
12214         constants for E500 double.
12215
12216 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12217
12218         * doc/rtl.texi (const_vector): Document const_fixed as legitimate
12219         element type of const_vector.
12220
12221 2008-06-28  Uros Bizjak  <ubizjak@gmail.com>
12222
12223         * config/i386/i386.md (addti3, adddi3, addsi3, addhi3, addqi3):
12224         Remove FLAGS_REG clobber from expander pattern.
12225         (subti3, subdi3, subsi3, subhi3, subqi3): Ditto.
12226         (anddi3, andsi3, andhi3, andqi3): Ditto.
12227         (iordi3, iorsi3, iorhi3, iorqi3): Ditto.
12228         (xordi3, xorsi3, xorhi3, xorqi3): Ditto.
12229         (negti2, negdi2, negsi2, neghi2, negqi2): Ditto.
12230         (ashlsi3, ashlhi3, ashlqi3): Ditto.
12231         (ashrsi3, ashrhi3, ashrqi3): Ditto.
12232         (lshrsi3, lshrhi3, lshrqi3): Ditto.
12233         (rotldi3, rotlsi3, rotlhi3, rotlqi3): Ditto.
12234         (rotrdi3, rotrsi3, rotrhi3, rotrqi3): Ditto.
12235
12236 2008-06-28  Richard Guenther  <rguenther@suse.de>
12237
12238         * tree-ssa-structalias.c (callused_id, var_callused,
12239         callused_tree): Add.
12240         (handle_pure_call): New function.
12241         (find_func_aliases): Call it.
12242         (find_what_p_points_to): Handle the call-used set.
12243         (clobber_what_escaped): Likewise.
12244         (compute_call_used_vars): New function.
12245         (init_base_vars): Init the call-used variable.
12246         (do_sd_constraint): Do not propagate the solution from CALLUSED
12247         but use CALLUSED as a placeholder.
12248         (solve_graph): Likewise.
12249         * tree-flow-inline.h (gimple_call_used_vars): New function.
12250         * tree-flow.h (struct gimple_df): Add call_used_vars bitmap.
12251         (compute_call_used_vars): Declare.
12252         * tree-ssa-alias.c (set_initial_properties): Call
12253         compute_call_used_vars.
12254         (reset_alias_info): Clear call-used variables.
12255         (add_call_clobber_ops): Assert we are not called for const/pure
12256         functions.  Remove handling of them.
12257         (add_call_read_ops): Handle pure functions by adding the
12258         call-used set of variables as VUSEs.
12259         * tree-ssa.c (init_tree_ssa): Allocate call-used bitmap.
12260         (delete_tree_ssa): Free it.
12261         * tree-dfa.c (remove_referenced_var): Clear the var from the
12262         call-used bitmap.
12263
12264 2008-06-28  Kai Tietz  <kai.tietz@onevision.com>
12265
12266         * tree.c (build_varargs_function_type_list): New.
12267         (build_function_type_list_1): New.
12268         (build_function_type_list): Use build_function_type_list_1.
12269         * tree.h (build_varargs_function_type_list): New.
12270
12271 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12272
12273         PR target/34856
12274         * config/spu/spu.c (spu_builtin_splats): Do not generate
12275         invalid CONST_VECTOR expressions.
12276         (spu_expand_vector_init): Likewise.
12277
12278 2008-06-28  Richard Sandiford  <rdsandiford@googlemail.com>
12279
12280         * optabs.c (libfunc_decls): New variable.
12281         (libfunc_decl_hash, libfunc_decl_eq): New functions.
12282         (init_one_libfunc): Reuse decls and SYMBOL_REFs when asked
12283         for the same function twice.
12284
12285 2008-06-27  Uros Bizjak  <ubizjak@gmail.com>
12286
12287         * config/i386/i386.md (ashlti3, ashrti3, lshrti3): Expand using
12288         ix86_expand_binary_operator directly.
12289         (*ashlti3_1): Rename from ashlti3_1.  Use nonmemory_operand predicate
12290         for operand 2.
12291         (*ashrti3_1): Ditto.
12292         (*lshrti3_1): Ditto.
12293         (*ashlti3_2, *ashrti3_2, *lshrti3_2): Remove insn patterns.
12294         (ashlti, ashrti and lshrti splitters): Handle nonmemory operand 2
12295         using only one splitter.  Conditionaly execute splitter before or
12296         after peephole2 pass.
12297         (ashlti, ashrti and lshrti peephole2): Define peephole2 patterns.
12298         (x86_shld): Rename from x86_shld_1.  Compress operand 2 constraints.
12299         Use only one alternative in asm template.
12300         (x86_64_shld): Compress operand 2 constraints. Use only one alternative
12301         in asm template.
12302         (*ashldi3_cmp_rex64): Use const_1_to_63_operand operand predicate and
12303         "J" operand constraint for operand 2.
12304         (*ashldi3_cconly_rex64): Ditto.
12305         (*ashrdi3_cmp_rex64): Ditto.
12306         (*ashrdi3_cconly_rex64): Ditto.
12307         (*lshrdi3_cmp_rex64): Ditto.
12308         (*lshrdi3_cconly_rex64): Ditto.
12309         * config/i386/predicates.md (const_1_to_63_operand): New predicate.
12310         * config/i386/i386.md (print_operand) ['s']: Print ", " using fputs.
12311         (split_ashr, split_ashl, split_lshr): Use gen_x86_shrd instead of
12312         gen_x86_shrd_1.
12313
12314 2008-06-27  Jakub Jelinek  <jakub@redhat.com>
12315
12316         * gimplify.c (omp_is_private): Don't return true if decl is not
12317         already private on #pragma omp for or #pragma omp parallel for.
12318
12319         PR debug/36617
12320         * tree-cfg.c (struct move_stmt_d): Replace block field with
12321         orig_block and new_block fields.
12322         (move_stmt_r): Only set TREE_BLOCK to p->new_block if
12323         if it used to be NULL, p->orig_block or if p->orig_block is NULL.
12324         (move_block_to_fn): Replace vars_map and new_label_map arguments
12325         with struct move_stmt_d pointer.
12326         (replace_block_vars_by_duplicates): New function.
12327         (move_sese_region_to_fn): Add ORIG_BLOCK argument.  Adjust
12328         move_block_to_fn caller.  If ORIG_BLOCK is non-NULL, move over
12329         all subblocks of ORIG_BLOCK to the new function.  Call
12330         replace_block_vars_by_duplicates.
12331         * tree-flow.h (move_sese_region_to_fn): Adjust prototype.
12332         * omp-low.c (expand_omp_taskreg): Set TREE_USED on DECL_INITIAL
12333         BLOCK of the new function.  Adjust move_sese_region_to_fn caller.
12334         Prune vars with original DECL_CONTEXT from child_cfun->local_decls.
12335         (expand_omp): Temporarily set input_location to the location of
12336         region's controlling stmt.
12337         (lower_omp_sections, lower_omp_for): Add a BLOCK into outermost
12338         BIND_EXPR, push ctx->block_vars and gimplification vars into
12339         the BIND_EXPR and its block's BLOCK_VARS instead of directly
12340         into dest function.
12341         (lower_omp_single): Set TREE_USED on the BIND_EXPR's BLOCK if
12342         there are any BLOCK_VARS.
12343         (lower_omp_taskreg): Set BLOCK on a BIND_EXPR containing the
12344         OMP_PARALLEL or OMP_TASK stmt.
12345         (lower_omp): Save and restore input_location around the lower_omp_1
12346         call.
12347
12348 2008-06-27  Richard Guenther  <rguenther@suse.de>
12349
12350         PR tree-optimization/36400
12351         PR tree-optimization/36373
12352         PR tree-optimization/36344
12353         * tree-ssa-structalias.c (var_escaped, escaped_tree, escaped_id,
12354         var_nonlocal, nonlocal_tree, nonlocal_id): New globals
12355         (update_alias_info): Remove call clobbering code.
12356         (make_constraint_to): New helper function.
12357         (make_escape_constraint): Likewise.
12358         (handle_rhs_call): Use it on all pointer containing arguments.
12359         Also mark the static chain escaped.
12360         (handle_lhs_call): Make constraints from NONLOCAL and ESCAPED
12361         instead of ANYTHING.
12362         (make_constraint_from): New helper split out from ...
12363         (make_constraint_from_anything): ... here.
12364         (find_func_aliases): Add constraints for escape sites.
12365         (intra_create_variable_infos): Make constraints from NONLOCAL
12366         for parameters.
12367         (find_what_p_points_to): Interpret NONLOCAL and ESCAPED the same
12368         as ANYTHING.
12369         (clobber_what_p_points_to): Remove.
12370         (clobber_what_escaped): New function.
12371         (init_base_vars): Init NONLOCAL and ESCAPED.
12372         (do_sd_constraint): Do not propagate the solution from ESCAPED
12373         but use ESCAPED as a placeholder.
12374         (solve_graph): Likewise.
12375         * tree-flow.h (clobber_what_p_points_to): Remove.
12376         (clobber_what_escaped): Declare.
12377         * tree-ssa-alias.c (set_initial_properties): Call it.
12378         Remove code clobbering escaped pointers.
12379
12380 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
12381
12382         * function.c (allocate_struct_function): Only allocate a unique
12383         funcdef_no if the decl is nonzero.
12384
12385 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
12386
12387         * config/mips/mips-protos.h (mips_split_const_insns): Declare.
12388         * config/mips/mips.c (mips_split_const_insns): New function.
12389         * config/mips/mips.md (move_type): New attribute.
12390         (mode): Move attribute definition earlier in file.  Add "TI" and "TF".
12391         (dword_mode): New attribute.
12392         (type): Avoid long line.  Map "move_type"s to "type"s,
12393         choosing "multi" for doubleword moves if appropriate.
12394         Swap MTC/MFC comments to match their declaration order.
12395         (extended_mips16): Default to "yes" if "move_type" is "sll0",
12396         "type" is "branch" or "jal" is "direct".
12397         (length): Handle "extended_mips16" first.  Make the default
12398         "0" for "ghost" instructions.  Set the length from "move_type".
12399         (truncdisi2, truncdihi2, truncdiqi2): Use "move_type" instead
12400         of "type", with "sll0" for the register alternative.  Remove the
12401         "extended_mips16" attribute.
12402         (zero_extendsidi2, *clear_upper32): Use "move_type" instead
12403         of "type", with "shift_shift" for the register alternative.
12404         Remove the "length" attribute.
12405         (*extend<SHORT:mode><GPR:mode>2, *extendqihi2): Likewise.
12406         (*zero_extend<SHORT:mode><GPR:mode>2): Use "move_type" instead
12407         of "type", with "andi" for the register alternative.
12408         (*zero_extendqihi2): Likewise.
12409         (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): Use a "move_type"
12410         of "andi" instead of a "type" of "arith".
12411         (*zero_extend<SHORT:mode><GPR:mode>2_mips16): Use "move_type"
12412         instead of "type".
12413         (*zero_extendqihi2_mips16, mov_<load>l, mov_<load>r, mov_<store>l)
12414         (mov_<store>r, *mov<mode>_ra): Likewise.
12415         (extendsidi2): Use "move_type" instead of "type", with "move"
12416         for the register alternative.
12417         (*extend<SHORT:mode><GPR:mode>2_mips16e): Use "move_type" instead
12418         of "type", with "signext" for the register alternative.
12419         (*extend<SHORT:mode><GPR:mode>2_se<SHORT:size>): Likewise.
12420         (*extendqihi2_mips16e, *extendqihi2_seb): Likewise.
12421         (fix_truncdfsi2_insn, fix_truncsfsi2_insn, fix_truncdfdi2)
12422         (fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2, floatdisf2)
12423         (floatdisf2, *branch_equality<mode>_mips16): Likewise.
12424         (unnamed branch insn): Likewise.
12425         (*movdi_gp32_fp64): Fold into...
12426         (*movdi_32bit): ...here.
12427         (*movdf_hardfloat_64bit, *movdf_hardfloat_32bit): Combine into...
12428         (*movdf_hardfloat): ...this new pattern.
12429         (*movdf_softfloat): Remove redundant FPR alternatives.
12430         (*movti, *movti_mips16, *movtf, *movtf_mips16): Add "mode" attributes.
12431         (*movv2sf_hardfloat_64bit, *movv2sf_hardfloat_32bit): Combine into...
12432         (*movv2sf): ...this new pattern.  Use "DF" rather than "SF" for
12433         the "move" attribute.
12434         (*movdi_32bit): Use "move_type" instead of "type" and remove the
12435         "length" attribute.  Use "fpload" and "fpstore" instead of "load"
12436         and "store" for COP loads and stores.
12437         (*movdi_32bit_mips16, *movdi_64bit, *movsi_internal, movcc)
12438         (*movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16)
12439         (*movsf_hardfloat, *movsf_softfloat, *movsi_mips16, *movdf_hardfloat)
12440         (*movdf_softfloat, *movdf_mips16, *movti, *movti_mips16, *movtf)
12441         (*movtf_mips16, *movv2sf): Likewise.
12442         (mfhi<GPR:mode>_<HILO:mode>, mflo<GPR:mode>_<HILO:mode>)
12443         (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
12444         (mfhc1<mode>): Use "move_type" instead of "move".
12445         (*low<mode>_mips16): Use "extended_mips16" instead of "length".
12446         (loadgp_blockage): Remove the "length" attribute.
12447         (blockage, set_got_version, update_got_version): Likewise.
12448         (call_internal): Remove the "extended_mips16" attribute.
12449         (call_value_internal, call_value_multiple_internal): Likewise.
12450         * config/mips/loongson.md (mov<mode>_internal): Use "move_type"
12451         instead of "move".
12452         * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Remove
12453         the "length" attribute.
12454
12455 2008-06-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12456
12457         * c-format.c (handle_format_attribute): Fix -Wc++-compat and/or
12458         -Wcast-qual warnings.
12459         * c-pragma.c (dpm_eq, handle_pragma_push_macro,
12460         handle_pragma_pop_macro): Likewise.
12461         * collect2.c (resolve_lib_name): Likewise.
12462         * config/arc/arc.c (arc_init): Likewise.
12463         * config/arm/arm.c (neon_builtin_compare,
12464         locate_neon_builtin_icode): Likewise.
12465         * config/arm/pe.c (arm_mark_dllexport, arm_pe_unique_section): Likewise.
12466         * config/bfin/bfin.c (bfin_init_machine_status,
12467         bfin_optimize_loop): Likewise.
12468         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.
12469         * config/cris/cris.c (cris_init_expanders): Likewise.
12470         * config/darwin-c.c (frameworks_in_use, add_framework): Likewise.
12471         * config/darwin.c (machopic_indirection_eq,
12472         machopic_indirection_name, machopic_output_indirection): Likewise.
12473         * config/frv/frv.c (frv_init_machine_status, frv_compare_insns,
12474         frv_io_check_address, frv_io_handle_set, frv_io_handle_use_1,
12475         frv_optimize_membar): Likewise.
12476         * config/i386/cygwin.h (mingw_scan,
12477         GCC_DRIVER_HOST_INITIALIZATION): Likewise.
12478         * config/i386/cygwin1.c (mingw_scan): Likewise.
12479         * config/i386/i386.c (machopic_output_stub): Likewise.
12480         * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix,
12481         i386_pe_unique_section): Likewise.
12482         * config/ia64/ia64.c (ia64_init_machine_status,
12483         ia64_h_i_d_extended, get_free_bundle_state, bundling, ia64_reorg):
12484         Likewise.
12485         * config/iq2000/iq2000.c, iq2000_init_machine_status): Likewise.
12486         * config/m68hc11/m68hc11.c (m68hc11_encode_label): Likewise.
12487         * config/m68k/m68k.c (m68k_handle_option,
12488         m68k_sched_md_init_global): Likewise.
12489         * config/mcore/mcore.c (mcore_mark_dllexport, mcore_mark_dllimport,
12490         mcore_unique_section): Likewise.
12491         * config/mips/mips.c (mips_block_move_straight,
12492         mips16_rewrite_pool_refs, mips_sim_wait_regs_2, mips_sim_record_set):
12493         Likewise.
12494         * config/mmix/mmix.c (mmix_init_machine_status,
12495         mmix_encode_section_info): Likewise.
12496         * config/pa/pa.c (pa_init_machine_status, hppa_encode_label): Likewise.
12497         * config/rs6000/rs6000.c (rs6000_init_machine_status,
12498         print_operand_address, output_toc, redefine_groups,
12499         rs6000_elf_encode_section_info, machopic_output_stub): Likewise.
12500         * config/s390/s390.c (s390_init_machine_status): Likewise.
12501         * config/score/score.c (score_block_move_straight,
12502         score_block_move_loop_body): Likewise.
12503         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
12504         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
12505         * emit-rtl.c (find_auto_inc): Likewise.
12506         * gcc.c (translate_options, process_command): Likewise.
12507         * reorg.c (dbr_schedule): Likewise.
12508         * sdbout.c (sdbout_start_source_file, sdbout_init): Likewise.
12509         * xcoffout.c (xcoffout_declare_function): Likewise.
12510
12511 2008-06-27  Daniel Berlin  <dberlin@dberlin.org>
12512
12513         * tree-ssa-structalias.c (find_func_aliases): Trivial fix to get
12514         ipa-pta working again.
12515
12516 2008-06-27  David Edelsohn  <edelsohn@gnu.org>
12517
12518         * config/rs6000/t-aix52: Append large data option to LDFLAGS for
12519         genautomata.
12520
12521 2008-06-27  Edmar Wienskoski  <edmar@freescale.com>
12522
12523         * config.gcc (powerpc*-*-*): Add new core e500mc.
12524         * config/rs6000/e500mc.md: New file.
12525         * config/rs6000/rs6000.c (processor_costs): Add new costs for
12526         e500mc.
12527         (rs6000_override_options): Add e500mc case to
12528         processor_target_table. Altivec and Spe options not allowed
12529         with e500mc. Add isel instruction to e500mc by
12530         default. Initialize rs6000_cost for e500mc.
12531         (rs6000_issue_rate): Set issue rate for e500mc.
12532         * config/rs6000/rs6000.h (processor_type): Add
12533         PROCESSOR_PPCE500MC.
12534         (ASM_CPU_SPEC): Add e500mc.
12535         Set TARGET_ISEL to rs6000_isel.
12536         * config/rs6000/e500.h: Remove redefinition of TARGET_ISEL.
12537         (CHECK_E500_OPTIONS): Remove TARGET_ISEL.
12538         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc.
12539         Include e500mc.md.
12540         * doc/invoke.texi: Add e500mc to list of cpus.
12541
12542 2008-06-27  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
12543
12544         PR c/34867
12545         * c-lex.c (lex_charconst): Initialize unsignedp.
12546
12547 2008-06-27  Olivier Hainque  <hainque@adacore.com>
12548
12549         * gimplify.c (gimplify_modify_expr_to_memset): Assert our
12550         documented assumptions.
12551
12552 2008-06-26  H.J. Lu  <hongjiu.lu@intel.com>
12553
12554         * dwarf2out.c: Remove trailing white spaces.  Break long line
12555         in comments.
12556
12557 2008-06-26  Richard Sandiford  <rdsandiford@googlemail.com>
12558
12559         * libfuncs.h (LTI_synchronize): New libfunc_index.
12560         (synchronize_libfunc): Declare.
12561         * builtins.c (expand_builtin_synchronize): Consider using
12562         synchronize_libfunc before falling back on an asm blockage.
12563         * config/mips/mips.c: Include libfuncs.h
12564         (mips_init_libfuncs): Initialize synchronize_libfunc for TARGET_MIPS16.
12565
12566 2008-06-26  Nathan Froyd  <froydnj@codesourcery.com>
12567
12568         * config/rs6000/rs6000.c (emit_allocate_stack): Add copy_r11
12569         parameter.  Copy stack_reg to r11 where appropriate.
12570         (no_global_regs_above): Add gpr parameter.
12571         (rs6000_stack_info): Only add padding for SPE save area if we
12572         are saving SPE GPRs and CR.
12573         (saveres_routine_syms): New variable.
12574         (FIRST_SAVRES_REGISTER, LAST_SAVRES_REGISTER, N_SAVRES_REGISTERS):
12575         Define.
12576         (rs6000_savres_routine_sym): New function.
12577         (rs6000_emit_stack_reset, rs6000_restore_saved_cr): New functions,
12578         split out of...
12579         (rs6000_emit_epilogue): ...here.  Use rs6000_use_multiple_p and
12580         rs6000_savres_strategy.  Restore GPRs out-of-line if appropriate.
12581         Tweak FPR out-of-line saving.
12582         (rs6000_make_savres_rtx): New function.
12583         (rs6000_use_multiple_p): New function.
12584         (rs6000_savres_strategy): New function.
12585         (rs6000_emit_prologue): Use rs6000_savres_strategy.  Save GPRs
12586         out-of-line if appropriate.
12587         * config/rs6000/sysv4.h (FP_SAVE_INLINE): Save FPRs out-of-line
12588         if we are optimizing for size.
12589         (GP_SAVE_INLINE): Define.
12590         (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): Only use _l on 64-bit targets.
12591         * config/rs6000/darwin.h (GP_SAVE_INLINE): Define.
12592         * config/rs6000/aix.h (GP_SAVE_INLINE): Define.
12593         * config/rs6000/rs6000.md (*save_gpregs_<mode>): New insn.
12594         (*save_fpregs_<mode>): Add use of r11.
12595         (*restore_gpregs_<mode>): New insn.
12596         (*return_and_restore_gpregs_<mode>): New insn.
12597         (*return_and_restore_fpregs_<mode>): Adjust to clobber LR and
12598         use r11.
12599         * config/rs6000/spe.md (*save_gpregs_spe): New insn.
12600         (*restore_gpregs_spe): New insn.
12601         (*return_and_restore_gpregs_spe): New insn.
12602         * config/rs6000/predicates.md (save_world_operation): Fix check.
12603
12604 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
12605
12606         * tree-into-ssa (insert_phi_nodes_for): 'var' must be a DECL at
12607         this point, so assert that.
12608
12609 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
12610
12611         * cfganal.c: Include vec.h and vecprim.h.
12612         (compute_idf): Import from...
12613         * tree-into-ssa (compute_idf): ...here.
12614         * basic-block.h (compute_idf): Export.
12615
12616 2008-06-26  Joseph Myers  <joseph@codesourcery.com>
12617
12618         * c-decl.c (merge_decls): Use !current_function_decl to check for
12619         extern declaration of C99 inline function being at file scope.
12620
12621 2008-06-25  John David Anglin  <dave.anglin@gcc-cnrc.gc.ca>
12622
12623         * config.gcc (hppa[12]*-*-hpux10*): Don't use fixproto.
12624
12625 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12626
12627         * alias.c (record_alias_subset, init_alias_analysis): Fix
12628         -Wc++-compat and/or -Wcast-qual warnings.
12629         * attribs.c (lookup_attribute_spec): Likewise.
12630         * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
12631         copy_bb, connect_traces,
12632         find_rarely_executed_basic_blocks_and_cr): Likewise.
12633         * bt-load.c (find_btr_def_group, add_btr_def, new_btr_user,
12634         note_btr_set, migrate_btr_defs): Likewise.
12635         * builtins.c (result_vector, expand_builtin_memcpy,
12636         expand_builtin_mempcpy_args, expand_builtin_strncpy,
12637         builtin_memset_read_str, expand_builtin_printf,
12638         fold_builtin_memchr, rewrite_call_expr, fold_builtin_printf):
12639         Likewise.
12640         * caller-save.c (mark_set_regs): Likewise.
12641         * calls.c (expand_call, emit_library_call_value_1): Likewise.
12642         * cgraph.c (cgraph_edge): Likewise.
12643         * combine.c (likely_spilled_retval_1): Likewise.
12644         * coverage.c (htab_counts_entry_hash, htab_counts_entry_eq,
12645         htab_counts_entry_del, get_coverage_counts): Likewise.
12646         * cselib.c (new_elt_list, new_elt_loc_list, entry_and_rtx_equal_p,
12647         new_cselib_val): Likewise.
12648         * dbgcnt.c (dbg_cnt_process_opt): Likewise.
12649         * dbxout.c (dbxout_init, dbxout_type, output_used_types_helper):
12650         Likewise.
12651         * df-core.c (df_compact_blocks): Likewise.
12652         * df-problems.c (df_grow_bb_info, df_chain_create): Likewise.
12653         * df-scan.c (df_grow_reg_info, df_ref_create,
12654         df_insn_create_insn_record, df_insn_rescan, df_notes_rescan,
12655         df_ref_compare, df_ref_create_structure, df_bb_refs_record,
12656         df_record_entry_block_defs, df_record_exit_block_uses,
12657         df_bb_verify): Likewise.
12658         * df.h (DF_REF_EXTRACT_WIDTH_CONST, DF_REF_EXTRACT_OFFSET_CONST,
12659         DF_REF_EXTRACT_MODE_CONST): New.
12660         * dominance.c (get_immediate_dominator, get_dominated_by,
12661         nearest_common_dominator, root_of_dom_tree,
12662         iterate_fix_dominators, first_dom_son, next_dom_son): Fix
12663         -Wc++-compat and/or -Wcast-qual warnings.
12664         * dse.c (clear_alias_set_lookup, get_group_info, gen_rtx_MEM,
12665         record_store, replace_read, check_mem_read_rtx, scan_insn,
12666         dse_step1, dse_record_singleton_alias_set): Likewise.
12667         * dwarf2asm.c (dw2_force_const_mem): Likewise.
12668
12669 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12670
12671         * dwarf2out.c (new_cfi, queue_reg_save, dwarf2out_begin_prologue,
12672         dwarf2out_frame_init, new_loc_descr, new_die, lookup_decl_die,
12673         lookup_decl_loc, add_var_loc_to_decl, compute_section_prefix,
12674         assign_symbol_names, htab_cu_hash, htab_cu_eq, htab_cu_del,
12675         build_abbrev_table, new_loc_list, output_comp_unit, add_arange,
12676         add_ranges_num, add_ranges_by_labels, file_info_cmp,
12677         file_name_acquire, output_file_names, add_const_value_attribute,
12678         premark_used_types_helper, file_table_eq, file_table_hash,
12679         lookup_filename, dwarf2out_var_location, dwarf2out_source_line,
12680         dwarf2out_init, file_table_relative_p): Fix -Wc++-compat and/or
12681         -Wcast-qual warnings.
12682         * ebitmap.c (ebitmap_array_grow, ebitmap_array_init,
12683         ebitmap_alloc, ebitmap_ior, ebitmap_and_compl): Likewise.
12684         * emit-rtl.c (get_mem_attrs, get_reg_attrs, gen_rtvec,
12685         gen_reg_rtx, start_sequence, init_emit): Likewise.
12686         * et-forest.c (et_new_occ, et_new_tree): Likewise.
12687         * except.c (init_eh_for_function, gen_eh_region,
12688         remove_unreachable_regions, add_ehl_entry, duplicate_eh_regions_1,
12689         arh_to_landing_pad, arh_to_label, add_action_record,
12690         add_call_site, switch_to_exception_section): Likewise.
12691         * expmed.c (synth_mult): Likewise.
12692         * expr.c (gen_group_rtx, emit_group_load, emit_group_store,
12693         store_expr): Likewise.
12694         * final.c (shorten_branches, final_scan_insn, debug_queue_symbol):
12695         Likewise.
12696         * function.c (assign_stack_temp_for_type,
12697         allocate_struct_function, match_asm_constraints_1): Likewise.
12698         * gcov-io.c (gcov_allocate): Likewise.
12699         * gcse.c (GNEW, GCNEW, GNEWVEC, GCNEWVEC, GRESIZEVEC, GNEWVAR,
12700         GCNEWVAR, GRESIZEVAR, GOBNEW, GOBNEWVAR): New.
12701         (gcse_main, alloc_gcse_mem, alloc_gcse_mem, alloc_reg_set_mem,
12702         record_one_set, insert_expr_in_table, insert_set_in_table,
12703         dump_hash_table, compute_hash_table_work, alloc_hash_table,
12704         pre_ldst_expr_hash, pre_ldst_expr_eq, find_rtx_in_ldst,
12705         reg_set_info, reg_clear_last_set): Fix -Wc++-compat and/or
12706         -Wcast-qual warnings.
12707
12708 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12709
12710         * cse.c (approx_reg_cost_1, cse_insn): Fix -Wc++-compat and/or
12711         -Wcast-qual warnings.
12712         * gcc.c (process_command): Likewise.
12713         * genattrtab.c (oballoc): Use XOBNEW.
12714         (oballocvec): Define.
12715         (attr_hash_add_rtx, attr_hash_add_string, attr_string,
12716         get_attr_value, fill_attr, make_length_attrs, gen_attr, gen_insn,
12717         gen_delay, find_attr, gen_insn_reserv, gen_bypass_1): Fix
12718         -Wc++-compat and/or -Wcast-qual warnings.
12719         * genautomata.c (XCREATENODE, XCREATENODEVEC, XCREATENODEVAR,
12720         XCOPYNODE, XCOPYNODEVEC, XCOPYNODEVAR): New.
12721         (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
12722         gen_presence_absence_set, gen_automaton, gen_regexp_el,
12723         gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
12724         gen_regexp_sequence, gen_reserv, gen_insn_reserv, process_excls,
12725         add_excls, process_presence_absence_names,
12726         process_presence_absence_patterns, add_presence_absence,
12727         process_regexp, add_advance_cycle_insn_decl, get_free_alt_state,
12728         get_free_state, add_arc, get_free_automata_list_el,
12729         form_reserv_sets_list, copy_insn_regexp, transform_1, transform_2,
12730         transform_3, cache_presence, create_ainsns, create_automata,
12731         create_state_ainsn_table, dfa_insn_code_enlarge,
12732         output_trans_func, output_min_issue_delay_func,
12733         output_dead_lock_func, output_reset_func,
12734         output_get_cpu_unit_code_func, output_dfa_start_func,
12735         expand_automata): Likewise.
12736         * genextract.c (gen_insn): Likewise.
12737         * gengtype-lex.l: Likewise.
12738         * gengtype.c (read_input_list, adjust_field_type,
12739         process_gc_options): Likewise.
12740         * genoutput.c (note_constraint): Likewise.
12741         * genpreds.c (mangle, add_constraint): Likewise.
12742         * genrecog.c (process_define_predicate, new_decision,
12743         add_to_sequence): Likewise.
12744         * gensupport.c (record_insn_name): Likewise.
12745
12746 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12747
12748         * config/i386/driver-i386.c (detect_caches_amd,
12749         detect_caches_intel, host_detect_local_cpu): Fix -Wc++-compat
12750         and/or -Wcast-qual warnings.
12751         *ggc-common.c (ggc_mark_roots, gt_pch_note_object,
12752         gt_pch_note_reorder, relocate_ptrs, write_pch_globals,
12753         gt_pch_save): Likewise.
12754         * ggc-page.c (push_depth, push_by_depth, alloc_anon, alloc_page,
12755         gt_ggc_m_S, clear_marks, ggc_pch_read): Likewise.
12756         * global.c (compute_regsets): Likewise.
12757         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
12758         finish_graph_dump_file): Likewise.
12759         * haifa-sched.c (schedule_block, extend_h_i_d, extend_ready,
12760         unlink_bb_notes): Likewise.
12761         * integrate.c (get_hard_reg_initial_val): Likewise.
12762         * ipa-prop.c (ipa_push_func_to_list): Likewise.
12763         * ipa-struct-reorg.c (gen_var_name, gen_cluster_name): Likewise.
12764         * local-alloc.c (update_equiv_regs): Likewise.
12765         * loop-invariant.c (check_invariant_table_size,
12766         hash_invariant_expr, eq_invariant_expr, find_or_insert_inv):
12767         Likewise.
12768         * loop-iv.c (check_iv_ref_table_size, analyzed_for_bivness_p,
12769         altered_reg_used, mark_altered): Likewise.
12770         * loop-unroll.c (si_info_eq, ve_info_eq, allocate_basic_variable,
12771         insert_var_expansion_initialization,
12772         combine_var_copies_in_loop_exit, apply_opt_in_copies,
12773         release_var_copies): Likewise.
12774         * matrix-reorg.c (mat_acc_phi_hash, mat_acc_phi_eq, mtt_info_eq,
12775         analyze_matrix_decl, add_allocation_site, analyze_transpose,
12776         analyze_accesses_for_phi_node, check_var_notmodified_p,
12777         check_allocation_function, find_sites_in_func,
12778         record_all_accesses_in_func, transform_access_sites,
12779         transform_allocation_sites): Likewise.
12780         * omp-low.c (new_omp_region, create_omp_child_function_name,
12781         check_omp_nesting_restrictions, check_combined_parallel,
12782         lower_omp_2, diagnose_sb_1, diagnose_sb_2): Likewise.
12783         * optabs.c (no_conflict_move_test, gen_libfunc, gen_fp_libfunc,
12784         gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
12785         gen_intraclass_conv_libfunc, set_optab_libfunc, set_conv_libfunc):
12786         Likewise.
12787         * opts-common.c (prune_options): Likewise.
12788         * opts.c (add_input_filename, print_filtered_help,
12789         get_option_state): Likewise.
12790         * params.c (add_params): Likewise.
12791         * passes.c (set_pass_for_id, next_pass_1,
12792         do_per_function_toporder, pass_fini_dump_file): Likewise.
12793         * postreload.c (reload_cse_simplify_operands): Likewise.
12794         * predict.c (tree_predicted_by_p, tree_predict_edge,
12795         clear_bb_predictions, combine_predictions_for_bb): Likewise.
12796
12797 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12798
12799         * ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual
12800         warnings.
12801         * recog.c (check_asm_operands, validate_change_1): Likewise.
12802         * reg-stack.c (check_asm_stack_operands, subst_asm_stack_regs,
12803         subst_asm_stack_regs): Likewise.
12804         * regclass.c (regclass, som_hash, som_eq, record_subregs_of_mode,
12805         cannot_change_mode_set_regs, invalid_mode_change_p): Likewise.
12806         * regmove.c (reg_is_remote_constant_p): Likewise.
12807         * regrename.c (regrename_optimize, scan_rtx_reg,
12808         kill_clobbered_value, kill_set_value, kill_autoinc_value):
12809         Likewise.
12810         * regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
12811         regstat_compute_calls_crossed): Likewise.
12812         * reload1.c (init_reload, new_insn_chain,
12813         has_nonexceptional_receiver, reload, copy_reloads,
12814         calculate_needs_all_insns, init_elim_table): Likewise.
12815         * rtl-factoring.c (compute_rtx_cost, fill_hash_bucket): Likewise.
12816         * rtl.c (shallow_copy_rtx_stat): Likewise.
12817         * rtlanal.c (parms_set): Likewise.
12818         * sbitmap.c (sbitmap_alloc, sbitmap_alloc_with_popcount,
12819         sbitmap_resize, sbitmap_vector_alloc): Likewise.
12820         * sched-ebb.c (earliest_block_with_similiar_load,
12821         add_deps_for_risky_insns): Likewise.
12822         * sched-rgn.c (find_rgns, gather_region_statistics, extend_rgns,
12823         schedule_region): Likewise.
12824         * see.c (eq_descriptor_pre_extension,
12825         hash_descriptor_pre_extension, hash_del_pre_extension,
12826         eq_descriptor_properties, hash_descriptor_properties,
12827         hash_del_properties, see_seek_pre_extension_expr,
12828         see_initialize_data_structures, see_print_register_properties,
12829         see_print_pre_extension_expr, see_delete_merged_def_extension,
12830         see_delete_unmerged_def_extension, see_emit_use_extension,
12831         see_pre_delete_extension, see_map_extension, see_commit_changes,
12832         see_analyze_merged_def_local_prop,
12833         see_analyze_merged_def_local_prop,
12834         see_analyze_unmerged_def_local_prop, see_analyze_use_local_prop,
12835         see_set_prop_merged_def, see_set_prop_unmerged_def,
12836         see_set_prop_unmerged_use, see_print_one_extension,
12837         see_merge_one_use_extension, see_merge_one_def_extension,
12838         see_store_reference_and_extension, see_update_uses_relevancy,
12839         see_update_defs_relevancy): Likewise.
12840         * statistics.c (hash_statistics_hash, hash_statistics_eq,
12841         hash_statistics_free, curr_statistics_hash): Likewise.
12842         * stmt.c (parse_output_constraint, decl_overlaps_hard_reg_set_p,
12843         expand_asm_operands, expand_return, case_bit_test_cmp,
12844         expand_case): Likewise.
12845         * stor-layout.c (start_record_layout): Likewise.
12846         * stringpool.c (ggc_alloc_string, gt_pch_n_S,
12847         gt_pch_save_stringpool): Likewise.
12848         * tree-data-ref.c (hash_stmt_vertex_info,
12849         have_similar_memory_accesses_1, ref_base_address_1): Likewise.
12850         * tree-ssa-phiopt.c (name_to_bb_hash): Likewise.
12851
12852 2008-06-25  Uros Bizjak  <ubizjak@gmail.com>
12853
12854         PR target/36627
12855         * config/i386/i386.md : Change constraints of HImode and QImode
12856         immediate operands from "i" to "n".  Change SImode "ni" constraint to
12857         "i" and SImode "rmi" constraint to "g".  Remove all constraints
12858         from const0_operand and const1_operand predicated operands.
12859         (i): Change QImode and HImode attribute from "i" to "n".
12860         (*subqi_2): Change HImode operands to QImode.
12861         (*subqi_3): Ditto.
12862
12863 2008-06-25  Olivier Hainque  <hainque@adacore.com>
12864
12865         * Makefile.in (GTFILES_H): Use | instead of ; as separator in
12866         sed substitutions.
12867
12868 2008-06-25  Richard Guenther  <rguenther@suse.de>
12869
12870         * tree-ssa-structalias.c (fieldoff_compare): Make sure to
12871         not overflow the result type.
12872
12873 2008-06-25  Richard Guenther  <rguenther@suse.de>
12874
12875         * tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
12876         (vn_lookup): Likewise.
12877
12878 2008-06-25  Richard Guenther  <rguenther@suse.de>
12879
12880         PR tree-optimization/35518
12881         * fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs.
12882         * tree-sra.c (instantiate_element): Use fold_build3 to build
12883         BIT_FIELD_REFs.
12884         (try_instantiate_multiple_fields): Likewise.
12885
12886 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12887
12888         * config/rs6000/rs6000.md: Change all string instruction's clobber to
12889         be early clobbers.
12890
12891 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12892
12893         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Set
12894         use_backchain_to_restore_sp to true
12895         if the offset of the link register save area would go over the 32k - 1
12896         offset limit of the load
12897         instructions.
12898
12899 2008-06-25  Hans-Peter Nilsson  <hp@axis.com>
12900
12901         * doc/invoke.texi (Optimize Options) <fstrict-aliasing>: Add
12902         anchor for the type-punning blurb.  Cross-reference "Structures
12903         unions enumerations and bit-fields implementation".  Provide a
12904         cast-through-pointer example.  Make final sentence self-contained.
12905         * doc/implement-c.texi (Structures unions enumerations and
12906         bit-fields implementation): Cross-reference the type-punning blurb
12907         in the -fstrict-aliasing documentation.
12908
12909 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12910
12911         PR middle-end/36594
12912         * builtins.c (expand_builtin_nonlocal_goto): Stabilize the address of
12913         the memory instead of the memory itself for the save area.
12914
12915 2008-06-24  Olivier Hainque  <hainque@adacore.com>
12916             Nicolas Roche  <roche@adacore.com>
12917
12918         * gengtype.c (srcdir_len): size_t instead of int.
12919         (get_file_realbasename): New function.  For F a filename, the real
12920         basename of F, with all the path components stripped.
12921         (get_file_srcdir_relative_path): New function.  For F a filename, the
12922         relative path to F from $(srcdir).
12923         (get_file_basename): Rewrite using get_file_srcdir_relative_path and
12924         get_file_realbasename.  Adjust the head comment.
12925         (get_prefix_langdir_index): New function. For F a filename, return the
12926         lang_dir_names[] relative index of the language directory that is
12927         a prefix in F.
12928         (get_file_langdir): For F a filename, return the name of the language
12929         directory where F is located.
12930         (get_file_gtfilename): New function. The gt- output file name for an
12931         input filename F.
12932         (get_output_file_with_visibility): Replace in-line computations with
12933         uses of get_file_gtfilename and get_prefix_langdir_index.
12934         * Makefile.in (GTFILES_H): Adjust to match what gengtype generates.
12935
12936 2008-06-24  Jakub Jelinek  <jakub@redhat.com>
12937
12938         PR tree-optimization/36504
12939         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip
12940         references without base address.
12941
12942 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
12943
12944         PR middle-end/36584
12945         * calls.c (expand_call): Increase alignment for recursive functions.
12946
12947 2008-06-23  Anatoly Sokolov  <aesok@post.ru>
12948
12949         * config/avr/avr.c (avr_function_value): Add new 'outgoing' argument.
12950         (TARGET_FUNCTION_VALUE): New define.
12951         * config/avr/avr-protos.h (avr_function_value): Remove declaration.
12952         * config/avr/avr.h (FUNCTION_VALUE): Remove.
12953
12954 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
12955
12956         * config/i386/i386.md (fmodxf3): Change sequence of move instructions.
12957         (fmod<mode>3): Ditto.
12958         (remainderxf3): Ditto.
12959         (remainder<mode>3): Ditto.
12960
12961 2008-06-23  Jakub Jelinek  <jakub@redhat.com>
12962
12963         PR target/36533
12964         * emit-rtl.c (set_reg_attrs_from_value): Do nothing if
12965         REG is a hard register.
12966
12967         PR tree-optimization/36508
12968         * tree-ssa-pre.c (compute_antic): Allow num_iterations up to
12969         499, don't check it at all in release compilers.
12970
12971 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
12972
12973         * config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
12974         together with SSE_TARGET_MATH to disable insn pattern.
12975         (*fop_<MODEF:mode>_2_i387): Ditto.
12976         (*fop_<MODEF:mode>_3_i387): Ditto.
12977
12978 2008-06-22  Andy Hutchinson  <hutchinsonandy@aim.com>
12979
12980         * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
12981
12982 2008-06-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
12983
12984         PR middle-end/34906
12985         * gimplify.c (gimplify_asm_expr): Check the return code of
12986         parse_output_constraint call, set function return and is_inout
12987         value if it failed.
12988
12989 2008-06-22  Ian Lance Taylor  <iant@google.com>
12990
12991         * c-lex.c (narrowest_unsigned_type): Change itk to int.
12992         (narrowest_signed_type): Likewise.
12993         * c-typeck.c (c_common_type): Change local variable mclass to enum
12994         mode_class, twice.
12995         (parser_build_binary_op): Compare the TREE_CODE_CLASS with
12996         tcc_comparison, not the tree code itself.
12997         * c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
12998         (c_expand_expr): Cast modifier to enum expand_modifier.
12999         * c-common.h (C_RID_CODE): Add casts.
13000         (C_SET_RID_CODE): Define.
13001         * c-parser.c (c_parse_init): Use C_SET_RID_CODE.
13002         (c_lex_one_token): Add cast to avoid warning.
13003         (c_parser_objc_type_name): Rename local typename to type_name.
13004         (check_no_duplicate_clause): Change code parameter to enum
13005         omp_clause_code.
13006         (c_parser_omp_var_list_parens): Change kind parameter to enum
13007         omp_clause_code.
13008         (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
13009         c_parser_omp_list_var_parens.
13010         (c_parser_omp_threadprivate): Likewise.
13011         * cp/lex.c (init_reswords): Use C_SET_RID_CODE.
13012         * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
13013         * c-format.c (NO_FMT): Define.
13014         (printf_length_specs): Use NO_FMT.
13015         (asm_fprintf_length_specs): Likewise.
13016         (gcc_diag_length_specs): Likewise.
13017         (scanf_length_specs): Likewise.
13018         (strfmon_length_specs): Likewise.
13019         (gcc_gfc_length_specs): Likewise.
13020         (printf_flag_specs): Change 0 to STD_C89.
13021         (asm_fprintf_flag_specs): Likewise.
13022         (gcc_diag_flag_specs): Likewise.
13023         (gcc_cxxdiag_flag_specs): Likewise.
13024         (scanf_flag_specs): Likewise.
13025         (strftime_flag_specs): Likewise.
13026         (strfmon_flag_specs): Likewise.
13027         (print_char_table): Likewise.
13028         (asm_fprintf_char_table): Likewise.
13029         (gcc_diag_char_table): Likewise.
13030         (gcc_tdiag_char_table): Likewise.
13031         (gcc_cdiag_char_table): Likewise.
13032         (gcc_cxxdiag_char_table): Likewise.
13033         (gcc_gfc_char_table): Likewise.
13034         (scan_char_table): Likewise.
13035         (time_char_table): Likewis.
13036         (monetary_char_table): Likewise.
13037         * c-format.h (BADLEN): Likewise.
13038
13039 2008-06-21  Ian Lance Taylor  <iant@google.com>
13040
13041         * tree.h (enum tree_code): Include all-tree.def, not tree.def.
13042         Define END_OF_BASE_TREE_CODES around inclusion.
13043         * tree.c (tree_code_type): New global array.
13044         (tree_code_length, tree_code_name): Likewise.
13045         * Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
13046         $(lang_tree_files).
13047         (all-tree.def, s-alltree): New targets.
13048         (gencheck.h, s-gencheck): Remove.
13049         (tree.o): Depend upon all-tree.def.
13050         (build/gencheck.o): Remove gencheck.h dependency.
13051         (mostlyclean): Don't remove gencheck.h.
13052         * c-common.h (enum c_tree_code): Remove.
13053         * c-lang.c (tree_code_type): Remove.
13054         (tree_code_length, tree_code_name): Remove.
13055         * gencheck.c (tree_codes): Include all-tree.def, rather than
13056         tree.def, c-common.def, and gencheck.h.  Undefined DEFTREECODE
13057         after it is used.
13058         * tree-browser.c (tb_tree_codes): Include all-tree.def, rather
13059         than tree.def.
13060         * cp/cp-tree.h (enum cplus_tree_code): Remove.
13061         (operator_name_info): Size to MAX_TREE_CODES.
13062         (assignment_operator_name_info): Likewise.
13063         * cp/cp-lang.c (tree_code_type): Remove.
13064         (tree_code_length, tree_code_name): Remove.
13065         * cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
13066         (assignment_operator_name_info): Likewise.
13067         * cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
13068         MAX_TREE_CODES.
13069         * cp/mangle.c (write_expression): Likewise.
13070         * cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
13071         * fortran/f95-lang.c (tree_code_type): Remove.
13072         (tree_code_length, tree_code_name): Remove.
13073         * java/java-tree.h (enum java_tree_code): Remove.
13074         * java/lang.c (tree_code_type): Remove.
13075         (tree_code_length, tree_code_name): Remove.
13076         * java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
13077         * objc/objc-act.h (enum objc_tree_code): Remove.
13078         * objc/objc-lang.c (tree_code_type): Remove.
13079         (tree_code_length, tree_code_name): Remove.
13080         * objcp/objcp-lang.c (tree_code_type): Remove.
13081         (tree_code_length, tree_code_name): Remove.
13082         * ada/ada-tree.h (enum gnat_tree_code): Remove.
13083         * ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
13084         * ada/misc.c (tree_code_type): Remove.
13085         (tree_code_length, tree_code_name): Remove.
13086
13087 2008-06-21  Bernhard Fischer  <aldot@gcc.gnu.org>
13088
13089         * tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before
13090         the grand_bitmap_obstack.
13091
13092 2008-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13093
13094         * ggc.h (GGC_RESIZEVAR): New, reorder macros.
13095         * tracer.c (tail_duplicate): Fix for -Wc++-compat.
13096         * tree-affine.c (aff_combination_expand, free_name_expansion): Likewise.
13097         * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
13098         move_stmt_r, new_label_mapper): Likewise.
13099         * tree-complex.c (cvc_lookup): Likewise.
13100         * tree-dfa.c (create_function_ann): Likewise.
13101         * tree-dump.c (dump_register): Likewise.
13102         * tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
13103         find_phi_replacement_condition): Likewise.
13104         * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
13105         tree_function_versioning): Likewise.
13106         * tree-into-ssa.c (cmp_dfsnum): Likewise.
13107         * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
13108         * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
13109         get_nonlocal_debug_decl, convert_nonlocal_reference,
13110         convert_nonlocal_omp_clauses, get_local_debug_decl,
13111         convert_local_reference, convert_local_omp_clauses,
13112         convert_nl_goto_reference, convert_nl_goto_receiver,
13113         convert_tramp_reference, convert_call_expr): Likewise.
13114         * tree-outof-ssa.c (contains_tree_r): Likewise.
13115         * tree-parloops.c (reduction_phi, initialize_reductions,
13116         eliminate_local_variables_1, add_field_for_reduction,
13117         add_field_for_name, create_phi_for_local_result,
13118         create_call_for_reduction_1, create_loads_for_reductions,
13119         create_stores_for_reduction, create_loads_and_stores_for_name):
13120         Likewise.
13121         * tree-phinodes.c (allocate_phi_node): Likewise.
13122         * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
13123         * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
13124         * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
13125         * tree-ssa-coalesce.c (compare_pairs): Likewise.
13126         * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
13127         memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
13128         record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
13129         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
13130         * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
13131         vn_nary_op_insert): Likewise.
13132         * tree-ssa.c (redirect_edge_var_map_add,
13133         redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
13134         * tree-vectorizer.c (vectorize_loops): Likewise.
13135         * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
13136         build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
13137         tree_cons_stat, build1_stat, build_variant_type_copy,
13138         decl_init_priority_lookup, decl_fini_priority_lookup,
13139         decl_priority_info, decl_restrict_base_lookup,
13140         decl_restrict_base_insert, decl_debug_expr_lookup,
13141         decl_debug_expr_insert, decl_value_expr_lookup,
13142         decl_value_expr_insert, type_hash_eq, type_hash_lookup,
13143         type_hash_add, get_file_function_name, tree_check_failed,
13144         tree_not_check_failed, tree_range_check_failed,
13145         omp_clause_range_check_failed, build_omp_clause,
13146         build_vl_exp_stat): Likewise.
13147         * value-prof.c (gimple_histogram_value,
13148         gimple_duplicate_stmt_histograms): Likewise.
13149         * var-tracking.c (attrs_list_insert, attrs_list_copy,
13150         unshare_variable, variable_union_info_cmp_pos, variable_union,
13151         dataflow_set_different_1, dataflow_set_different_2,
13152         vt_find_locations, variable_was_changed, set_variable_part,
13153         emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
13154         * varasm.c (prefix_name, emutls_decl, section_entry_eq,
13155         section_entry_hash, object_block_entry_eq,
13156         object_block_entry_hash, create_block_symbol,
13157         initialize_cold_section_name, default_function_rodata_section,
13158         strip_reg_name, set_user_assembler_name, const_desc_eq,
13159         build_constant_desc, output_constant_def, lookup_constant_def,
13160         const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
13161         create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
13162         default_internal_label): Likewise.
13163         * varray.c (varray_init, varray_grow): Likewise.
13164         * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.
13165
13166 2008-06-20  Uros Bizjak  <ubizjak@gmail.com>
13167
13168         * config/i386/i386.md (*jcc_fused_1): Handle all valid compare
13169         operators for "test" insn.  Macroize insn using SWI mode macro.
13170         (*jcc_fused_2): Ditto.
13171         (*jcc_fused_3): Macroize insn using SWI mode macro.
13172         (*jcc_fused_4): Ditto.
13173
13174 2008-06-20  Bernhard Fischer  <aldot@gcc.gnu.org>
13175
13176         * tree-ssa-pre.c: Fix typo in comment.
13177         (init_antic, fini_antic): Add explicit funtions for
13178         initializing and deinitializing ANTIC and AVAIL sets.
13179         (create_expression_by_pieces): Fix typo in comment.
13180         Remove redundant set of new_stuff and use NULL_TREE instead of NULL.
13181         (execute_pre): Eventually dump details about ANTIC_IN.
13182
13183 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13184
13185         * collect2.c (main, add_to_list): Fix for -Wc++-compat.
13186         * gcc.c (translate_options, init_spec, store_arg, read_specs,
13187         add_to_obstack, file_at_path, find_a_file, execute,
13188         add_preprocessor_option, add_assembler_option, add_linker_option,
13189         process_command, insert_wrapper, do_option_spec, do_self_spec,
13190         spec_path, do_spec_1, is_directory, main, used_arg,
13191         getenv_spec_function): Likewise.
13192         * tlink.c (symbol_hash_lookup, file_hash_lookup,
13193         demangled_hash_lookup, symbol_push, file_push, frob_extension):
13194         Likewise.
13195
13196 2008-06-19  Kenneth Zadeck <zadeck@naturalbridge.com>
13197
13198         * doc/rtl.texi: Updated subreg section.
13199
13200 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
13201
13202         PR c++/36523
13203         * cgraphunit.c (cgraph_process_new_functions): Don't clear
13204         node->needed and node->reachable.
13205         * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
13206         * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
13207         (expand_task_call): Don't call expand_task_copyfn.
13208         (expand_task_copyfn): Renamed to...
13209         (finalize_task_copyfn): ... this.
13210
13211 2008-06-19  Jan Hubicka  <jh@suse.cz>
13212
13213         * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
13214         clobbering framepointer.
13215
13216 2008-06-19  Jan Hubicka  <jh@suse.cz>
13217
13218         * tree-optimize.c (execute_early_local_optimizations): Set
13219         cgraph_state only at first invocation.
13220
13221 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13222
13223         * system.h (-Wc++-compat): Activate as a warning, no an error.
13224
13225 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
13226
13227         * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
13228         instead of "#" in insn asm template.
13229         (*jcc_fused_2): Ditto.
13230
13231 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
13232
13233         * config/i386/i386.h (ix86_tune_indices)
13234         [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
13235         (TARGET_FUSE_CMP_AND_BRANCH): New define.
13236         * config/i386/i386.md (*jcc_fused_1): New insn pattern
13237         (*jcc_fused_2): Ditto.
13238         * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
13239         X86_TUNE_FUSE_CMP_AND_BRANCH targets.
13240         (print operand): Handle 'E' and 'e' code.
13241
13242 2008-06-19  Anatoly Sokolov  <aesok@post.ru>
13243
13244         * config/avr/avr.c (avr_mcu_t): Add attiny13a.
13245         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
13246         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
13247
13248 2008-06-19  Bernhard Fischer  <aldot@gcc.gnu.org>
13249
13250         * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
13251         node->decl.
13252         (cgraph_expand_function): Use local copy of decl.
13253         (cgraph_expand_all_functions): Remove redundant initialization of
13254         order_pos.
13255         (cgraph_optimize): Reword internal_error message.
13256
13257 2008-06-19  Chung-Lin Tang  <ctang@marvell.com>
13258
13259         * arm-protos.h (arm_return_in_memory): Remove public
13260         arm_return_in_memory() prototype.
13261         * arm.c (arm_return_in_memory): Add static prototype, add target
13262         hook macro, change definition and comments.
13263         * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
13264
13265 2008-06-19  Ben Elliston  <bje@au.ibm.com>
13266
13267         * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
13268         real.c: Remove references to IEEE 754R.
13269         * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
13270         * doc/libgcc.texi (Decimal float library routines): Likewise.
13271
13272 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13273
13274         * targhooks.h (struct gcc_target): New member unwind_word_mode.
13275         (default_unwind_word_mode): Add prototype.
13276         * targhooks.c (default_unwind_word_mode): New function.
13277         (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
13278         instead of word_mode.
13279         * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
13280         (TARGET_INITIALIZER): Use it.
13281
13282         * c-common.c (handle_mode_attribute): Support "unwind_word"
13283         mode attribute.
13284         * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
13285
13286         * except.c (init_eh): Use targetm.unwind_word_mode () instead of
13287         word_mode to access SjLj_Function_Context member "data".
13288         (sjlj_emit_dispatch_table): Likewise.  Also, perform type
13289         conversion from targetm.eh_return_filter_mode () to
13290         targetm.unwind_word_mode () if they differ.
13291
13292         * builtin-types.def (BT_UNWINDWORD): New primitive type.
13293         (BT_FN_UNWINDWORD_PTR): New function type.
13294         (BT_FN_WORD_PTR): Remove.
13295         * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
13296         * except.c (expand_builtin_extend_pointer): Convert pointer to
13297         targetm.unwind_word_mode () instead of word_mode.
13298
13299         * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
13300         * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
13301         (spu_unwind_word_mode): New function.
13302         (TARGET_EH_RETURN_FILTER_MODE): Do not define.
13303         (TARGET_UNWIND_WORD_MODE): Define.
13304         * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
13305
13306 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13307
13308         * config/spu/spu.c (reg_align): Remove.
13309         (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
13310         (spu_split_load): Use regno_aligned_for_load instead of reg_align.
13311         (spu_split_store): Likewise.
13312
13313 2008-06-18  Bernhard Fischer  <aldot@gcc.gnu.org>
13314
13315         * gcc/tree-vn.c: Fix typo in comment.
13316
13317 2008-06-18  Jan Hubicka  <jh@suse.cz>
13318
13319         * cgraphunit.c (cgraph_optimize): Output debug info when doing
13320         toplevel reorder too.
13321
13322 2008-06-18  Jan Hubicka  <jh@suse.cz>
13323
13324         * c-opts.c (c_common_post_options): PCH is not compatible with
13325         no-unit-at-a-time.
13326         * opts.c (handle_options): Enable unit-at-a-time at O0 along with
13327         -fno-toplevel-reorder by default now.
13328
13329 2008-06-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13330
13331         PR documentation/30739
13332         * doc/install.texi (Prerequisites): Document dependency on awk.
13333
13334 2008-06-18  Uros Bizjak  <ubizjak@gmail.com>
13335             Ian Lance Taylor  <iant@google.com>
13336
13337         PR rtl-optimization/35604
13338         * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
13339         only want to change jump destinations, not eventual label comparisons.
13340
13341 2008-06-16  Jan Hubicka  <jh@suse.cz>
13342
13343         * cgraphunit.c (cgraph_expand_pending_functions): Give up at
13344         syntax errors.
13345         (cgraph_analyze_function): Likewise.
13346
13347 2008-06-16  Jan Hubicka  <jh@suse.cz>
13348
13349         * cgraph.h (cgraph_mark_if_needed): New function.
13350         * cgraphunit.c (cgraph_mark_if_needed): New function.
13351         * c-decl.c (duplicate_decl): Use it.
13352
13353 2008-06-16  Jan Hubicka  <jh@suse.cz>
13354
13355         * cgraph.c (cgraph_add_new_function): When in expansion state, do
13356         lowering.
13357
13358 2008-06-16  Jan Hubicka  <jh@suse.cz>
13359
13360         * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
13361
13362 2008-06-16  Daniel Jacobowitz  <dan@codesourcery.com>
13363             Kazu Hirata  <kazu@codesourcery.com>
13364             Maxim Kuvyrkov  <maxim@codesourcery.com
13365
13366         * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
13367         * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
13368         * config/mips/linux.h (host_detect_local_cpu): Declare, add to
13369         EXTRA_SPEC_FUNCTIONS.
13370         (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
13371         (DRIVER_SELF_SPECS): Adjust.
13372         * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
13373         * config/mips/st.h, config/mips/t-st: New.
13374         * config/mips/driver-native.c, config/mips/x-native: New.
13375         * doc/invoke.texi (MIPS): Document 'native' value for -march and
13376         -mtune options.
13377
13378 2008-06-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
13379
13380         * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
13381         from it.
13382         (ISA_HAS_FP_CONDMOVE): New macro.
13383         (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
13384         (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
13385         (ISA_HAS_NMADD3_NMSUB3): New macro.
13386         * config/mips/mips.c (mips_rtx_costs): Update.
13387         * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
13388         compiling for ST Loongson 2E/2F.
13389         (madd<mode>): Rename to madd4<mode>.  Update.
13390         (madd3<mode>): New pattern.
13391         (msub<mode>): Rename to msub4<mode>.  Update.
13392         (msub3<mode>): New pattern.
13393         (nmadd<mode>): Rename to nmadd4<mode>.  Update.
13394         (nmadd3<mode>): New pattern.
13395         (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath.  Update.
13396         (nmadd3<mode>_fastmath): New pattern.
13397         (nmsub<mode>): Rename to nmsub4<mode>.  Update.
13398         (nmsub3<mode>): New pattern.
13399         (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath.  Update.
13400         (nmsub3<mode>_fastmath): New pattern.
13401         (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
13402
13403 2008-06-18  Steven Bosscher  <steven@gcc.gnu.org>
13404
13405         * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
13406         (DF_REF_INSN_INFO): New.
13407         (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
13408         (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
13409         with a NULL DF_REF_INSN_INFO.
13410         (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
13411         DF_INSN_SET.
13412         (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
13413         DF_INSN_INFO_EQ_USES): New.
13414         (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
13415         DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
13416         DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
13417         * df-core.c: Update comment for above changes.
13418         (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
13419         DF_INSN_UID_* macros.
13420         (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
13421         * df-scan.c (df_ref_record): Take a df_insn_info instead of an
13422         insn rtx.  Update all callers.
13423         (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
13424         df_ref_create_structure, df_insn_refs_collect): Likewise.
13425         (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
13426         * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
13427         (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
13428         macros to access the insn refs.
13429         (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
13430         * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
13431         (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
13432         for accessing the refs.
13433         (try_fwprop_subst): Likewise.
13434         * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
13435         * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
13436         for accessing the refs.
13437         * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
13438         (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
13439         to look at the insn refs.
13440         (record_uses): Likewise.
13441         * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
13442         function anymore.
13443         (mark_artificial_uses): Don't mark_insn for artificial refs.
13444         (mark_reg_rependencies): Likewise.
13445
13446         * doc/rtl.texi: Remove documentation of ADDRESSOF.
13447
13448 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13449
13450         * configure: Regenerate.
13451
13452 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
13453
13454         * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
13455         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
13456         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
13457
13458 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
13459
13460         * config/avr/avr.c (avr_mcu_t): Add attiny167.
13461         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
13462         * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise.
13463
13464 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
13465
13466         * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
13467         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
13468         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
13469
13470 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
13471
13472         * tree-ssa-sccvn.c: Fix format of comments.
13473
13474 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
13475
13476         * cgraph.c: Remove unneeded forward declarations of eq_node()
13477         and hash_node().
13478
13479 2008-06-17  Steven Bosscher  <steven@gcc.gnu.org>
13480
13481         * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
13482         REG_RETVAL notes.
13483         (see_update_relevancy): Likewise.
13484         * fwprop.c (try_fwprop_subst): Likewise.
13485         * rtlanal.c (noop_move_p): Likewise.
13486         * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
13487         notes to non-existing libcall blocks.
13488         * cse.c (cse_insn): Change prototype.  Don't update libcall notes.
13489         Remove orig_set.
13490         (cse_extended_basic_block): Don't track libcall and no-conflict notes.
13491         (dead_libcall_p): Remove.
13492         (delete_trivially_dead_insns): Don't use it.
13493         * web.c (union_defs): Remove comment about keeping nops.
13494         * gcse.c (hash_scan_insn): Don't take libcall pointers.
13495         (compute_hash_table_work): Don't track libcall notes.
13496         (do_local_cprop): Don't take libcall pointers.  Don't update
13497         libcall notes.
13498         (adjust_libcall_notes): Deleted.
13499         (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
13500         ever have existed in the first place).
13501         (replace_store_insn): Don't try to remove libcall notes.
13502         * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
13503         (resolve_reg_notes): Don't call them.
13504         (resolve_simple_move): Likewise.
13505         (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
13506         Don't remove REG_RETVAL notes.
13507         * emit-rtl.c (try_split): Don't update libcall notes.
13508         (emit_copy_of_insn_after): Dito.
13509         * cselib.c (cselib_current_insn_in_libcall): Remove.
13510         (cselib_process_insn): Don't set/clear it.
13511         (new_elt_loc_list): Don't record it.
13512         (cselib_init): Don't initialize it.
13513         * cselib.c (struct elt_loc_list): Remove in_libcall field.
13514         * loop-invariant.c (find_invariant_insn): Don't look for libcall
13515         notes.
13516         * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
13517         (sched_analyze): Don't set up deps->libcall_block_tail_insn.
13518         (init_deps): Don't initialize it.
13519         * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
13520         * combine.c (delete_noop_moves): Don't update libcall notes.
13521         (can_combine_p): Remove now pointless #if 0 block.
13522         (try_combine): Remove another obsolete #if 0 block.
13523         (distribute_notes): Don't distribute libcall notes.
13524         * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
13525         * dce.c (libcall_dead_p): Remove.
13526         (delete_unmarked_insns): Don't handle libcall blocks.
13527         (preserve_libcall_for_dce): Remove.
13528         (prescan_insns_for_dce): Don't special-case libcall block insns.
13529         * reload1 (reload): Don't handle libcall notes.
13530         * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
13531         documentation.
13532
13533 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
13534
13535         * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
13536         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
13537         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
13538
13539 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
13540
13541         * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
13542         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
13543         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
13544
13545 2008-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13546
13547         * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
13548
13549 2008-06-16  Ira Rosen  <irar@il.ibm.com>
13550
13551         PR tree-optimization/36493
13552         * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
13553         the arguments list. Use VECTYPE to create vector pointer.
13554         (vectorizable_store): Fail if accesses through a pointer to vectype
13555         do not alias the original memory reference operands.
13556         Call vect_create_data_ref_ptr without the removed argument.
13557         (vectorizable_load): Likewise.
13558         (vect_setup_realignment): Call vect_create_data_ref_ptr without the
13559         removed argument.
13560
13561 2008-06-015  Andy Hutchinson  <hutchinsonandy@aim.com>
13562
13563         PR target/36336
13564         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for
13565         reg_equiv_constant.
13566
13567 2008-06-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
13568
13569         * config/mips/loongson2ef.md: New file.
13570         * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
13571         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
13572         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
13573         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
13574         (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
13575         and loongson_2f.
13576         (loongson2ef.md): New include.
13577         * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
13578         (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
13579         (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
13580         (loongson_gt_<mode>, loongson_extract_halfword)
13581         (loongson_insert_halfword_0, loongson_insert_halfword_2)
13582         (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
13583         (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
13584         (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
13585         (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
13586         (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
13587         (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
13588         (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
13589         (vec_interleave_low<mode>): Define type attribute.
13590         * config/mips/mips.c (mips_ls2): New static variable.
13591         (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
13592         (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
13593         (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
13594         Implement target scheduling hooks.
13595         (mips_multipass_dfa_lookahead): Update to handle tuning for
13596         Loongson 2E/2F.
13597         (mips_sched_init): Initialize data for Loongson scheduling.
13598         (mips_ls2_variable_issue): New static function.
13599         (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
13600         Add sanity check.
13601         (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
13602         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
13603         * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
13604         (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
13605         Handle ST Loongson 2E/2F cores.
13606         (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
13607
13608 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13609
13610         * omp-low.c (extract_omp_for_data): Fix comment typo.
13611         * c.opt: Fix typo.
13612
13613 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13614
13615         * doc/sourcebuild.texi (Config Fragments): Remove obsolete
13616         FIXME note about gcc/config.guess.
13617         * doc/options.texi (Option file format): Remove non-ASCII bytes.
13618         * doc/cpp.texi: Expand TABs, drop indentation outside examples.
13619         * doc/cppopts.texi: Likewise.
13620         * doc/extend.texi: Likewise.
13621         * doc/gcc.texi: Likewise.
13622         * doc/gccint.texi: Likewise.
13623         * doc/gcov.texi: Likewise.
13624         * doc/gty.texi: Likewise.
13625         * doc/hostconfig.texi: Likewise.
13626         * doc/install.texi: Likewise.
13627         * doc/invoke.texi: Likewise.
13628         * doc/loop.texi: Likewise.
13629         * doc/makefile.texi: Likewise.
13630         * doc/md.texi: Likewise.
13631         * doc/passes.texi: Likewise.
13632         * doc/tm.texi: Likewise.
13633         * doc/tree-ssa.texi: Likewise.
13634         * doc/trouble.texi: Likewise.
13635
13636 2008-06-15  Mark Shinwell  <shinwell@codesourcery.com>
13637             Nathan Sidwell  <nathan@codesourcery.com>
13638             Maxim Kuvyrkov  <maxim@codesourcery.com>
13639             Richard Sandiford  <rdsandiford@googlemail.com>
13640
13641         * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
13642         * config/mips/mips-protos.h (mips_expand_vector_init): New.
13643         * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
13644         builtins.
13645         * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
13646         (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
13647         (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
13648         V8QImode cases.
13649         (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
13650         (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
13651         (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
13652         (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
13653         (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
13654         (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
13655         (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
13656         (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
13657         (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
13658         (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
13659         (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
13660         (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
13661         (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
13662         (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
13663         (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
13664         (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
13665         (mips_builtins): Add Loongson builtins.
13666         (mips_loongson_2ef_bdesc): New.
13667         (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
13668         (mips_builtin_vector_type): Handle unsigned versions of vector modes.
13669         (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
13670         (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
13671         New.
13672         (mips_expand_vector_init): New.
13673         * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
13674         (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
13675         if appropriate.
13676         * config/mips/mips.md: Add unspec numbers for Loongson
13677         builtins.  Include loongson.md.
13678         (MOVE64): Include Loongson vector modes.
13679         (SPLITF): Include Loongson vector modes.
13680         (HALFMODE): Handle Loongson vector modes.
13681         * config/mips/loongson.md: New.
13682         * config/mips/loongson.h: New.
13683         * config.gcc: Add loongson.h header for mips*-*-* targets.
13684         * doc/extend.texi (MIPS Loongson Built-in Functions): New.
13685
13686 2008-06-14  Joseph Myers  <joseph@codesourcery.com>
13687
13688         * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
13689         h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
13690         i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
13691         iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
13692         m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
13693         m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
13694         mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
13695         mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
13696         mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
13697         mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
13698         powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
13699         sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
13700         sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
13701         sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
13702         sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
13703         v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
13704         Remove use_fixproto=yes.
13705         (ia64*-*-hpux*): Remove comment about using fixproto.
13706         (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
13707
13708 2008-06-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13709
13710         * configure.ac: Update gthr-default.h lazily, to avoid unneeded
13711         library rebuilds.
13712         * configure: Regenerate.
13713
13714 2008-06-13  Eric Botcazou  <ebotcazou@adacore.com>
13715
13716         PR middle-end/36520
13717         * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
13718         before evaluating it.
13719
13720 2008-06-13  Jakub Jelinek  <jakub@redhat.com>
13721
13722         PR c/36507
13723         * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
13724         nested inline functions.
13725         (start_decl, start_function): Don't invert DECL_EXTERNAL
13726         for nested inline functions.
13727
13728 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
13729
13730         * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
13731         splits that must be made for correctness.
13732
13733 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
13734
13735         * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
13736         (AVAIL_NON_MIPS16): Likewise.
13737         (mips_builtin_description): Replace target_flags with a predicate.
13738         (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
13739         (dspr2_32): New availability predicates.
13740         (MIPS_BUILTIN): New macro.
13741         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
13742         (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
13743         (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
13744         Replace the TARGET_FLAGS parameters with AVAIL parameters.
13745         (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
13746         (mips_dsp_32only_bdesc): Merge into...
13747         (mips_builtins): ...this new array.
13748         (mips_bdesc_map, mips_bdesc_arrays): Delete.
13749         (mips_init_builtins): Update after above changes.
13750         (mips_expand_builtin_1): Merge into...
13751         (mips_expand_builtin): ...here and update after above changes.
13752
13753 2008-06-12  Paul Brook  <paul@codesourcery.com>
13754
13755         * longlong.h (__arm__): Define count_leading_zeros.
13756         * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
13757         (clzsi2, clzdi2): New functions.
13758         * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
13759         * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
13760         * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
13761         * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
13762         * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
13763         * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
13764         * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
13765         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
13766         * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
13767         * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
13768
13769 2008-06-12  Kazu Hirata  <kazu@codesourcery.com>
13770
13771         * config/m68k/m68k.c (m68k_tune_flags): New.
13772         (override_options): Compute m68k_tune_flags.
13773         (MULL_COST, MULW_COST): Update for various variants of CFV2.
13774         * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
13775
13776 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
13777
13778         PR middle-end/36506
13779         * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
13780
13781 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
13782
13783         * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
13784         TREE_THIS_VOLATILE on INDIRECT_REF nodes.
13785
13786 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
13787
13788         * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
13789         (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
13790
13791 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
13792
13793         PR middle-end/36506
13794         * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
13795         reductions.
13796
13797 2008-06-12  Richard Guenther  <rguenther@suse.de>
13798
13799         PR tree-optimization/36345
13800         * tree-flow.h (struct ptr_info_def): Align escape_mask,
13801         add memory_tag_needed flag.
13802         (may_alias_p): Declare.
13803         * tree-ssa-alias.c (may_alias_p): Export.
13804         (set_initial_properties): Use memory_tag_needed flag.
13805         (update_reference_counts): Likewise.
13806         (reset_alias_info): Reset memory_tag_needed flag.
13807         (create_name_tags): Check memory_tag_needed flag.
13808         (dump_points_to_info_for): Dump it.
13809         * tree-ssa-structalias.c (struct variable_info): Remove
13810         directly_dereferenced flag.
13811         (new_var_info): Do not initialize it.
13812         (process_constraint_1): Do not set it.
13813         (update_alias_info): Set is_dereferenced flag.
13814         (set_uids_in_ptset): Use may_alias_p.
13815         (set_used_smts): Check memory_tag_needed flag.
13816         (find_what_p_points_to): Likewise.  Pass is_dereferenced flag.
13817         * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
13818         memory_tag_needed flag.
13819         * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
13820         from broken design.
13821
13822 2008-06-12  Kai Tietz  <kai.tietz@onevision.com>
13823
13824         * config/i386/i386.c (ix86_compute_frame_layout): Disable
13825         red zone for w64 abi.
13826         (ix86_expand_prologue): Likewise.
13827         (ix86_force_to_memory): Likewise.
13828         (ix86_free_from_memory): Likewise.
13829
13830 2008-06-11  Edmar Wienskoski  <edmar@freescale.com>
13831
13832         PR target/36425
13833         * config/rs6000/rs6000.c (rs6000_override_options): Set
13834         rs6000_isel conditionally to the absence of comand line override.
13835         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
13836         Remove duplicate rs6000_isel setting.
13837         * config/rs6000/eabispe.h: Ditto.
13838
13839 2008-06-11  Richard Guenther  <rguenther@suse.de>
13840
13841         * alias.c (get_alias_set): Use the element alias-set for arrays.
13842         (record_component_aliases): For arrays and vectors do nothing.
13843         * c-common.c (strict_aliasing_warning): Handle the cases
13844         of alias set zero explicitly.
13845         * Makefile.in (dfp.o-warn): Add -Wno-error.
13846
13847 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
13848
13849         * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
13850         tune_32 tune_64.
13851         (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
13852         tune_32 tune_64 to supported_defaults.  Allow values not
13853         supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
13854         x86_64.  Do not override cpu_32 or cpu_64 values from target name.
13855         (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
13856         with_cpu_64 to generic for 64-bit-supporting configurations, not
13857         with_cpu.  Remove FIXMEs.
13858         * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
13859         --with-arch-64, --with-tune-32, --with-tune-64): Document.
13860         * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
13861         (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
13862         arch_32 and arch_64.
13863
13864 2008-06-11  Eric Botcazou  <ebotcazou@adacore.com>
13865             Olivier Hainque  <hainque@adacore.com>
13866
13867         * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
13868         Use DECL_SIZE_UNIT to retrieve the size of the field.
13869
13870 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
13871
13872         * config/arm/arm.c (arm_init_neon_builtins): Move initialization
13873         with function calls after declarations.  Lay out
13874         neon_float_type_node before further use.
13875
13876 2008-06-11  Richard Guenther  <rguenther@suse.de>
13877
13878         * tree-flow.h (may_point_to_global_var): Declare.
13879         * tree-ssa-alias.c (may_point_to_global_var): New function.
13880         * tree-ssa-sink.c (is_hidden_global_store): Use it.
13881
13882 2008-06-10  Kazu Hirata  <kazu@codesourcery.com>
13883
13884         * configure.ac: Teach that fido supports .debug_line.
13885         * configure: Regenerate.
13886
13887 2008-06-10  Tom Tromey  <tromey@redhat.com>
13888
13889         * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
13890         debug hook.
13891
13892 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
13893
13894         * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
13895         (encode_decimal64, decode_decimal64, encode_decimal128,
13896         decode_decimal128): Reverse order of 32-bit parts of value if host
13897         and target endianness differ.
13898
13899 2008-06-10  Vinodha Ramasamy  <vinodha@google.com>
13900
13901         * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
13902         Avoid division by 0.
13903         (tree_mod_pow2_value_transform): Likewise.
13904         (tree_ic_transform): Likewise.
13905         (tree_stringops_transform): Likewise.
13906         (tree_mod_subtract_transform): Likewise.
13907         * tree-inline-c (copy_bb): Corrected int type to gcov_type.
13908         (copy_edges_for_bb): Likewise.
13909         (initialize_cfun): Likewise.
13910
13911 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
13912
13913         * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
13914         nonmemory_operand. Add "N" operand constraint.
13915         (*btsi): Ditto.
13916         (*jcc_btdi_mask_rex64): New instruction and split pattern.
13917         (*jcc_btsi_mask): Ditto.
13918         (*jcc_btsi_mask_1): Ditto.
13919
13920 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
13921
13922         * config/rs6000/rs6000.c (build_opaque_vector_type): Set
13923         TYPE_CANONICAL for copied element type.
13924
13925 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
13926
13927         PR target/36473
13928         * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
13929         Add m_CORE2 and m_GENERIC.
13930         * config/i386/predicates.md (bt_comparison_operator): New predicate.
13931         * config/i386/i386.md (*btdi_rex64): New instruction pattern.
13932         (*btsi): Ditto.
13933         (*jcc_btdi_rex64): New instruction and split pattern.
13934         (*jcc_btsi): Ditto.
13935         (*jcc_btsi_1): Ditto.
13936         (*btsq): Fix Intel asm dialect operand order.
13937         (*btrq): Ditto.
13938         (*btcq): Ditto.
13939
13940 2008-06-09  Andy Hutchinson  <hutchinsonandy@aim.com>
13941
13942         PR middle-end/36447
13943         * simplify-rtx.c (simplify_subreg): Add check for shift count
13944         greater than size.
13945
13946 2008-06-09  Richard Sandiford  <rdsandiford@googlemail.com>
13947
13948         * doc/md.texi: Synchronize with later constraints.md change.
13949         * longlong.h (umul_ppmm): Replace the MIPS asm implementation
13950         with a C implementation.
13951         * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
13952         MFLO handling.
13953         (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
13954         (mips_split_doubleword_move): Use special MTHI and MFHI instructions
13955         when moving to and from MD_REGNUM.
13956         (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
13957         Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
13958         Handle byte and halfword moves.
13959         (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
13960         separately.
13961         * config/mips/constraints.md (h): Turn into NO_REGS.
13962         (l, x): Update documentation.
13963         * config/mips/mips.md (UNSPEC_MFHILO): Delete.
13964         (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
13965         (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
13966         (HILO): New mode iterator.
13967         (MOVE128): Add TI.
13968         (any_div): New code iterator.
13969         (u): Extend code attribute to div and udiv.
13970         (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
13971         d_operand in the splitters.  Remove redundant CONST_INT checks.
13972         (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
13973         (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
13974         (*muls): Remove "=h" clobbers.  Adjust peephole2s and define_splits
13975         accordingly, using normal moves instead of unspecs to move LO into
13976         a GPR.  Use d_operand and lo_operand instead of *_REG_P checks.
13977         (<u>mulsidi3): Handle expansion in C code.
13978         (<u>mulsidi3_32bit_internal): Rename to...
13979         (<u>mulsidi3_32bit): ...this.
13980         (<u>mulsidi3_32bit_r4000): Fix insn separator.
13981         (*<u>mulsidi3_64bit): Rename to...
13982         (<u>mulsidi3_64bit): ...this.  Combine DImode "=h" and "=l" clobbers
13983         into a TImode "=x" clobber.  In the split, use an UNSPEC_SET_HILO
13984         to set LO and HI to the multiplication result.  Use a normal move
13985         for MFLO and an unspec for MFHI.
13986         (*<u>mulsidi3_64bit_parts): Replace with...
13987         (<u>mulsidi3_64bit_hilo): ...this new instruction.
13988         (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
13989         (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
13990         and extend it to TARGET_FIX_R4000.  Store the destination in a GPR
13991         instead of HI.  Split the instruction into a separate multiplication
13992         and MFHI if !TARGET_FIX_R4000.
13993         (<su>muldi3_highpart): Likewise.
13994         (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
13995         and the "=h" clobber.
13996         (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
13997         (<u>mulditi3): New expander.
13998         (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
13999         (madsi): Remove "=h" clobber.
14000         (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
14001         Force the modulus result to be a GPR and split the instruction into
14002         a division followed by an MFHI after reload.
14003         (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
14004         (*lea_high64): Use d_operand in the define_peephole2.  Likewise
14005         the MIPS16 HIGH define_split.
14006         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
14007         of acc<->gpr moves to "multi".
14008         (*movdi_64bit): Replace the single "x" alternative with
14009         alternatives for moving into and out of "a".
14010         (*movhi_internal, *movqi_internal): Likewise.  Use mips_output_move.
14011         (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
14012         (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
14013         Use d_operand in the splitters.  Remove redundant CONST_INT checks.
14014         (*movhi_mips16, *movqi_mips16): Likewise.  Use mips_output_move.
14015         (movti): New expander.
14016         (*movti, *movti_mips16): New insns.
14017         (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
14018         (mfhi<GPR:mode>_<HILO:mode>): New pattern.
14019         (mthi<GPR:mode>_<HILO:mode>): Likewise.
14020         * config/mips/predicates.md (fpr_operand): Delete.
14021         (d_operand): New predicate.
14022
14023 2008-06-09  Michael Meissner  <michael.meissner@amd.com>
14024
14025         * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
14026         failure on some Bourne shells.
14027         (x86_64-*-*): Ditto.
14028
14029 2008-06-09  Kai Tietz  <kai.tietz@onevision.com>
14030
14031         * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
14032
14033 2008-06-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
14034
14035         * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
14036         (sparc-sun-solaris2*): Likewise.
14037
14038 2008-06-09  Arnaud Charlet  <charlet@adacore.com
14039
14040         * doc/install.texi: Update requirements to build the Ada compiler.
14041
14042 2008-06-08  Steven Bosscher  <stevenb.gcc@gmail.com>
14043
14044         * df-scan.c (struct df_scan_problem_data): Remove the
14045         mw_link_pool alloc pool.
14046         (df_scan_free_internal): Don't free it.
14047         (df_scan_alloc): Don't allocate it.
14048         * df.h (struct df_link): Update comment.
14049
14050 2008-06-08  Nathan Sidwell  <nathan@codesourcery.com>
14051
14052         * except.h: Correct checks for when SJLJ exceptions must be used.
14053
14054 2008-06-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
14055
14056         * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
14057         default.
14058
14059 2008-06-08  Joseph Myers  <joseph@codesourcery.com>
14060
14061         PR tree-optimization/36218
14062         * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
14063         configure for the build system.
14064         (BUILD_LDFLAGS): Define.
14065         * configure: Regenerate.
14066         * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
14067
14068 2008-07-08  Anatoly Sokolov  <aesok@post.ru>
14069
14070         PR target/36424
14071         * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
14072         * config/avr/avr.c (avr_hard_regno_rename_ok): New function.
14073         * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype.
14074
14075 2008-06-07  Danny Smith  <dannysmith@users.sourceforge.net>
14076
14077         * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
14078
14079 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
14080
14081         * config.gcc (Obsolete configurations): Remove list of
14082         configurations.
14083         (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
14084         *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*.  Remove other
14085         targets matched by those patterns.
14086         (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
14087         m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
14088         alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
14089         arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
14090         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
14091         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
14092         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
14093         i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
14094         i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
14095         mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
14096         powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
14097         powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
14098         strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
14099         vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
14100         i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
14101         Make code for Solaris 7 and greater unconditional for Solaris.
14102         (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
14103         Remove --with-* handling.
14104         * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
14105         (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
14106         ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
14107         LINK_OS_WINDISS_SPEC): Remove.
14108         * config/rs6000/sysv4.opt (mwindiss): Remove.
14109         * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
14110         * configure: Regenerate.
14111         * doc/cpp.texi: Don't mention BeOS.
14112         * doc/extend.texi (interrupt): Don't mention MS1.
14113         * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
14114         m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
14115         alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
14116         i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
14117         powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
14118         Remove.
14119         * doc/invoke.texi (MT Options): Remove.
14120         (-mwindiss): Remove.
14121         (CRIS Options): Remove cris-axis-aout references.
14122         (HPPA Options): Don't mention hppa1.1-*-pro.
14123         * doc/md.texi: (MorphoTech family): Remove.
14124         * libgcc2.c: Don't handle UWIN.
14125         * config/alpha/t-unicosmk: Remove.
14126         * config/alpha/unicosmk.h: Remove.
14127         * config/arm/kaos-arm.h: Remove.
14128         * config/arm/kaos-strongarm.h: Remove.
14129         * config/arm/strongarm-coff.h: Remove.
14130         * config/arm/strongarm-elf.h: Remove.
14131         * config/arm/strongarm-pe.h: Remove.
14132         * config/arm/t-strongarm-pe: Remove.
14133         * config/arm/t-xscale-coff: Remove.
14134         * config/arm/t-xscale-elf: Remove.
14135         * config/arm/xscale-coff.h: Remove.
14136         * config/arm/xscale-elf.h: Remove.
14137         * config/chorus.h: Remove.
14138         * config/cris/aout.h: Remove.
14139         * config/cris/aout.opt: Remove.
14140         * config/cris/t-aout: Remove.
14141         * config/i386/beos-elf.h: Remove.
14142         * config/i386/kaos-i386.h: Remove.
14143         * config/i386/ptx4-i.h: Remove.
14144         * config/i386/sco5.h: Remove.
14145         * config/i386/sco5.opt: Remove.
14146         * config/i386/sysv4-cpp.h: Remove.
14147         * config/i386/sysv5.h: Remove.
14148         * config/i386/t-beos: Remove.
14149         * config/i386/t-sco5: Remove.
14150         * config/i386/t-uwin: Remove.
14151         * config/i386/uwin.asm: Remove.
14152         * config/i386/uwin.h: Remove.
14153         * config/kaos.h: Remove.
14154         * config/mips/windiss.h: Remove.
14155         * config/mt: Remove directory.
14156         * config/pa/pa-osf.h: Remove.
14157         * config/pa/pa-pro-end.h: Remove.
14158         * config/pa/t-pro: Remove.
14159         * config/ptx4.h: Remove.
14160         * config/rs6000/beos.h: Remove.
14161         * config/rs6000/kaos-ppc.h: Remove.
14162         * config/rs6000/t-beos: Remove.
14163         * config/rs6000/windiss.h: Remove.
14164         * config/sh/kaos-sh.h: Remove.
14165         * config/sol2-6.h: Remove.
14166         * config/sparc/sol26-sld.h: Remove.
14167         * config/sparc/sysv4-only.h: Remove.
14168         * config/vax/bsd.h: Remove.
14169         * config/vax/t-memfuncs: Remove.
14170         * config/vax/ultrix.h: Remove.
14171         * config/vax/vaxv.h: Remove.
14172         * config/windiss.h: Remove.
14173
14174 2008-06-06  Uros Bizjak <ubizjak@gmail.com>
14175
14176         PR rtl-optimization/36438
14177         * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
14178         for vector shifts with constant scalar shift operands.
14179
14180 2008-06-06  Sandip Matte  <sandip@rmicorp.com>
14181
14182         * doc/invoke.texi: Document -march=xlr.
14183         * config/mips/xlr.md: New file.
14184         * config/mips/mips.md: Include it.
14185         (cpu): Add "xlr".
14186         * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
14187         * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
14188         (mips_rtx_cost_data): Likewise.
14189
14190 2008-06-06  Nathan Froyd  <froydnj@codesourcery.com>
14191
14192         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
14193         PRE_INC and PRE_DEC cases.
14194
14195 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
14196
14197         PR rtl-optimization/36419
14198         * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
14199         the emitting jump insn.
14200
14201         PR target/36362
14202         * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
14203         is not bool, boolify the whole *expr_p and convert to the desired type.
14204
14205 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
14206
14207         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
14208         * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
14209         Add omp_private_outer_ref hook, add another argument to
14210         omp_clause_default_ctor hook.
14211         * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
14212         (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
14213         (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
14214         hook_tree_tree_tree_tree_null.
14215         (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
14216         LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
14217         * hooks.c (hook_tree_tree_tree_tree_null): New function.
14218         * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
14219         * tree.def (OMP_TASK): New tree code.
14220         * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
14221         OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
14222         OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
14223         OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
14224         OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
14225         OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
14226         OMP_CLAUSE_COLLAPSE_EXPR): Define.
14227         (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
14228         (OMP_DIRECTIVE_P): Add OMP_TASK.
14229         (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
14230         (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
14231         * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
14232         and OMP_CLAUSE_UNTIED entries.
14233         (omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
14234         num_ops to 2.
14235         (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
14236         Walk OMP_CLAUSE_LASTPRIVATE_STMT.
14237         * tree-pretty-print.c (dump_omp_clause): Handle
14238         OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
14239         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
14240         (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
14241         * c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
14242         warning about unsigned iterators.  Change decl/init/cond/incr
14243         arguments to TREE_VECs, check arguments for all collapsed loops.
14244         (c_finish_omp_taskwait): New function.
14245         (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
14246         ws_clauses.
14247         * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
14248         default_function_array_conversion on init.  Add par_clauses argument.
14249         If decl is present in parallel's lastprivate clause, change it to
14250         shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
14251         Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
14252         collapse count in clauses.
14253         (c_parser_omp_for, c_parser_omp_parallel): Adjust
14254         c_parser_omp_for_loop callers.
14255         (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
14256         (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
14257         (c_parser_omp_clause_name): Handle collapse and untied clauses.
14258         (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
14259         functions.
14260         (c_parser_omp_clause_schedule): Handle schedule(auto).
14261         Include correct location in the error message.
14262         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
14263         and PRAGMA_OMP_CLAUSE_UNTIED.
14264         (OMP_TASK_CLAUSE_MASK): Define.
14265         (c_parser_omp_task, c_parser_omp_taskwait): New functions.
14266         (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
14267         * tree-nested.c (convert_nonlocal_omp_clauses,
14268         convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
14269         OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
14270         OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
14271         Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
14272         OMP_CLAUSE_DECL.
14273         (conver_nonlocal_reference, convert_local_reference,
14274         convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
14275         OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
14276         (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
14277         * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
14278         * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
14279         * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
14280         (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
14281         * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
14282         (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
14283         OMP_CLAUSE_UNTIED.
14284         * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
14285         * c-common.h (c_finish_omp_taskwait): New prototype.
14286         * gimple-low.c (lower_stmt): Handle OMP_TASK.
14287         * tree-parloops.c (create_parallel_loop): Create 1 entry
14288         vectors for OMP_FOR_{INIT,COND,INCR}.
14289         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
14290         (make_edges): Handle OMP_TASK.
14291         * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
14292         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
14293         * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
14294         * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
14295         BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
14296         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
14297         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
14298         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
14299         * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
14300         BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
14301         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
14302         BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
14303         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
14304         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
14305         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
14306         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
14307         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
14308         BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
14309         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
14310         BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
14311         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
14312         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
14313         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
14314         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
14315         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
14316         * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
14317         handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
14318         original iterator is present in lastprivate clause or if
14319         collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
14320         OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
14321         (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
14322         (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
14323         (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
14324         if it is set, lookup var in outer contexts too.  Handle
14325         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
14326         to be implicitly determined firstprivate for task regions.
14327         (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
14328         if it is set, lookup var in outer contexts too.  Set
14329         OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
14330         Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
14331         OMP_CLAUSE_UNTIED.  Take region_type as last argument
14332         instead of in_parallel and in_combined_parallel.
14333         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
14334         Adjust callers.
14335         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
14336         GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause langhook.
14337         (new_omp_context): Set default_kind to
14338         OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
14339         (omp_region_type): New enum.
14340         (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
14341         fields, add region_type.
14342         (new_omp_context): Take region_type as argument instead of is_parallel
14343         and is_combined_parallel.
14344         (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
14345         omp_is_private, omp_check_private): Adjust ctx->is_parallel and
14346         ctx->is_combined_parallel checks.
14347         (gimplify_omp_task): New function.
14348         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
14349         OMP_CLAUSE_UNTIED.
14350         * omp-low.c (extract_omp_for_data): Use schedule(static)
14351         for schedule(auto).  Handle pointer and unsigned iterators.
14352         Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
14353         Add loops argument.  Extract data for collapsed OMP_FOR loops.
14354         (expand_parallel_call): Assert sched_kind isn't auto,
14355         map runtime schedule to index 3.
14356         (struct omp_for_data_loop): New type.
14357         (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
14358         Add loop, loops, collapse and iter_type fields.
14359         (workshare_safe_to_combine_p): Disallow combined for if
14360         iter_type is unsigned long long.  Don't combine collapse > 1 loops
14361         unless all bounds and steps are constant.  Adjust extract_omp_for_data
14362         caller.
14363         (expand_omp_for_generic): Handle pointer, unsigned and long long
14364         iterators.  Handle collapsed OMP_FOR loops.  Adjust
14365         for struct omp_for_data changes.  If libgomp function doesn't return
14366         boolean_type_node, add comparison of the return value with 0.
14367         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
14368         pointer, unsigned and long long iterators.  Adjust for struct
14369         omp_for_data changes.
14370         (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
14371         to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
14372         unsigned long long.  Allocate loops array, pass it to
14373         extract_omp_for_data.  For collapse > 1 loops use always
14374         expand_omp_for_generic.
14375         (omp_context): Add sfield_map and srecord_type fields.
14376         (is_task_ctx, lookup_sfield): New functions.
14377         (use_pointer_for_field): Use is_task_ctx helper.  Change first
14378         argument's type from const_tree to tree.  Clarify comment.
14379         In OMP_TASK disallow copy-in/out sharing.
14380         (build_sender_ref): Call lookup_sfield instead of lookup_field.
14381         (install_var_field): Add mask argument.  Populate both record_type
14382         and srecord_type if needed.
14383         (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
14384         in srecord_type.
14385         (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
14386         and DECL_FIELD_OFFSET.
14387         (scan_sharing_clauses): Adjust install_var_field callers.  For
14388         firstprivate clauses on explicit tasks allocate the var by value in
14389         record_type unconditionally, rather than by reference.
14390         Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
14391         Use is_taskreg_ctx instead of is_parallel_ctx.
14392         Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
14393         (create_omp_child_function_name): Add task_copy argument, use
14394         *_omp_cpyfn* names if it is true.
14395         (create_omp_child_function): Add task_copy argument, if true create
14396         *_omp_cpyfn* helper function.
14397         (scan_omp_parallel): Adjust create_omp_child_function callers.
14398         Rename parallel_nesting_level to taskreg_nesting_level.
14399         (scan_omp_task): New function.
14400         (lower_rec_input_clauses): Don't run constructors for firstprivate
14401         explicit task vars which are initialized by *_omp_cpyfn*.
14402         Pass outer var ref to omp_clause_default_ctor hook if
14403         OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
14404         Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
14405         OMP_CLAUSE_REDUCTION_INIT.
14406         (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
14407         avoid duplicate setting of fields.  Handle
14408         OMP_CLAUSE_PRIVATE_OUTER_REF.
14409         (lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
14410         copy-out if TREE_READONLY, only copy-in.
14411         (expand_task_copyfn): New function.
14412         (expand_task_call): New function.
14413         (struct omp_taskcopy_context): New type.
14414         (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
14415         New functions.
14416         (lower_omp_parallel): Rename to...
14417         (lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
14418         Call create_task_copyfn if srecord_type is needed.  Adjust
14419         sender_decl type.
14420         (task_shared_vars): New variable.
14421         (check_omp_nesting_restrictions): Warn if work-sharing,
14422         barrier, master or ordered region is closely nested inside OMP_TASK.
14423         Add warnings for barrier if closely nested inside of work-sharing,
14424         ordered, or master region.
14425         (scan_omp_1): Call check_omp_nesting_restrictions even for
14426         GOMP_barrier calls.  Rename parallel_nesting_level to
14427         taskreg_nesting_level.  Handle OMP_TASK.
14428         (lower_lastprivate_clauses): Even if some lastprivate is found on a
14429         work-sharing construct, continue looking for them on parent parallel
14430         construct.
14431         (lower_omp_for_lastprivate): Add lastprivate clauses
14432         to the beginning of dlist rather than end.  Adjust for struct
14433         omp_for_data changes.
14434         (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
14435         not after it.  Handle collapsed OMP_FOR loops, adjust for
14436         OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
14437         (get_ws_args_for): Adjust extract_omp_for_data caller.
14438         (scan_omp_for): Handle collapsed OMP_FOR
14439         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
14440         (lower_omp_single_simple): If libgomp function doesn't return
14441         boolean_type_node, add comparison of the return value with 0.
14442         (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
14443         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
14444         (parallel_nesting_level): Rename to...
14445         (taskreg_nesting_level): ... this.
14446         (is_taskreg_ctx): New function.
14447         (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
14448         of is_parallel_ctx.
14449         (execute_lower_omp): Rename parallel_nesting_level to
14450         taskreg_nesting_level.
14451         (expand_omp_parallel): Rename to...
14452         (expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
14453         Call omp_task_call for OMP_TASK regions.
14454         (expand_omp): Adjust caller, handle OMP_TASK.
14455         (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
14456
14457         * bitmap.c (bitmap_default_obstack_depth): New variable.
14458         (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
14459         if argument is NULL and bitmap_default_obstack is already initialized.
14460         * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
14461         at the end.
14462         * matrix-reorg.c (matrix_reorg): Likewise.
14463
14464 2008-06-06  Uros Bizjak  <ubizjak@gmail.com>
14465
14466         * config/i386/i386.md (*indirect_jump): Macroize using P
14467         mode iterator.  Remove !TARGET_64BIT from insn constraints.
14468         (*tablejump_1): Ditto.
14469         (*indirect_jump_rex64): Remove insn pattern.
14470         (*tablejump_1_rex64): Ditto.
14471         (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
14472         and eh_return_si insn patterns.
14473
14474 2008-06-06  Richard Guenther  <rguenther@suse.de>
14475
14476         * tree-ssa-structalias.c (merge_smts_into): Remove.
14477         (find_what_p_points_to): Do not bother to compute the
14478         points-to set for pt_anything pointers.
14479         * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
14480         for pt_anything pointers is ok.
14481
14482 2008-06-06  Jan Hubicka  <jh@suse.cz>
14483
14484         * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
14485
14486 2008-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14487
14488         * cgraph.c: Fix typos in comments.
14489         (cgraph_availability_names): Fix string typo.
14490         * fold-const.c: Fix typos in comments.
14491         (fold_binary): Fix typo in warning.
14492         * genautomata.c: Fix typos in comments.
14493         (check_presence_pattern_sets): Fix typo in local variable.
14494         (output_description): Fix typo in output.
14495         * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
14496         * hwint.h: Likewise.
14497         * matrix-reorg.c (check_allocation_function): Likewise.
14498         * omega.c (smooth_weird_equations): Likewise.
14499         * auto-inc-dec.c: Fix typos in comments.
14500         * bb-reorder.c: Likewise.
14501         * builtins.c: Likewise.
14502         * c-common.c: Likewise.
14503         * c-cppbuiltin.c: Likewise.
14504         * c-parser.c: Likewise.
14505         * c-pretty-print.c: Likewise.
14506         * cfgcleanup.c: Likewise.
14507         * cfgexpand.c: Likewise.
14508         * cfghooks.c: Likewise.
14509         * cfglayout.c: Likewise.
14510         * cfgloopmanip.c: Likewise.
14511         * cgraphunit.c: Likewise.
14512         * coverage.c: Likewise.
14513         * dbxout.c: Likewise.
14514         * df-byte-scan.c: Likewise.
14515         * df-core.c: Likewise.
14516         * df-problems.c: Likewise.
14517         * df-scan.c: Likewise.
14518         * dfp.c: Likewise.
14519         * dominance.c: Likewise.
14520         * domwalk.c: Likewise.
14521         * dse.c: Likewise.
14522         * dwarf2out.c: Likewise.
14523         * emit-rtl.c: Likewise.
14524         * et-forest.c: Likewise.
14525         * function.c: Likewise.
14526         * function.h: Likewise.
14527         * gcc.c: Likewise.
14528         * gcov-io.c: Likewise.
14529         * gcov.c: Likewise.
14530         * gcse.c: Likewise.
14531         * genattrtab.c: Likewise.
14532         * ggc-page.c: Likewise.
14533         * gimplify.c: Likewise.
14534         * gthr-lynx.h: Likewise.
14535         * haifa-sched.c: Likewise.
14536         * ipa-cp.c: Likewise.
14537         * ipa-inline.c: Likewise.
14538         * ipa-prop.h: Likewise.
14539         * ipa-pure-const.c: Likewise.
14540         * ipa-struct-reorg.c: Likewise.
14541         * ipa-struct-reorg.h: Likewise.
14542         * ipa-type-escape.c: Likewise.
14543         * ipa.c: Likewise.
14544         * loop-doloop.c: Likewise.
14545         * mips-tfile.c: Likewise.
14546         * mkmap-flat.awk: Likewise.
14547         * mkmap-symver.awk: Likewise.
14548         * modulo-sched.c: Likewise.
14549         * omp-low.c: Likewise.
14550         * optabs.c: Likewise.
14551         * optabs.h: Likewise.
14552         * opts.c: Likewise.
14553         * passes.c: Likewise.
14554         * postreload-gcse.c: Likewise.
14555         * postreload.c: Likewise.
14556         * predict.c: Likewise.
14557         * pretty-print.h: Likewise.
14558         * profile.c: Likewise.
14559         * protoize.c: Likewise.
14560         * ra-conflict.c: Likewise.
14561         * real.c: Likewise.
14562         * recog.c: Likewise.
14563         * regclass.c: Likewise.
14564         * regs.h: Likewise.
14565         * reload.c: Likewise.
14566         * rtl-error.c: Likewise.
14567         * rtlanal.c: Likewise.
14568         * scan.h: Likewise.
14569         * sched-rgn.c: Likewise.
14570         * see.c: Likewise.
14571         * stmt.c: Likewise.
14572         * target.h: Likewise.
14573         * tree-dfa.c: Likewise.
14574         * tree-eh.c: Likewise.
14575         * tree-flow-inline.h: Likewise.
14576         * tree-inline.c: Likewise.
14577         * tree-into-ssa.c: Likewise.
14578         * tree-loop-distribution.c: Likewise.
14579         * tree-nested.c: Likewise.
14580         * tree-parloops.c: Likewise.
14581         * tree-pass.h: Likewise.
14582         * tree-pretty-print.c: Likewise.
14583         * tree-profile.c: Likewise.
14584         * tree-scalar-evolution.c: Likewise.
14585         * tree-sra.c: Likewise.
14586         * tree-ssa-alias-warnings.c: Likewise.
14587         * tree-ssa-ccp.c: Likewise.
14588         * tree-ssa-coalesce.c: Likewise.
14589         * tree-ssa-dom.c: Likewise.
14590         * tree-ssa-dse.c: Likewise.
14591         * tree-ssa-forwprop.c: Likewise.
14592         * tree-ssa-live.c: Likewise.
14593         * tree-ssa-live.h: Likewise.
14594         * tree-ssa-loop-im.c: Likewise.
14595         * tree-ssa-loop-ivopts.c: Likewise.
14596         * tree-ssa-loop-niter.c: Likewise.
14597         * tree-ssa-loop-prefetch.c: Likewise.
14598         * tree-ssa-phiopt.c: Likewise.
14599         * tree-ssa-phiprop.c: Likewise.
14600         * tree-ssa-sccvn.c: Likewise.
14601         * tree-ssa-ter.c: Likewise.
14602         * tree-ssa-threadupdate.c: Likewise.
14603         * tree-ssa.c: Likewise.
14604         * tree-vect-analyze.c: Likewise.
14605         * tree-vect-transform.c: Likewise.
14606         * tree-vectorizer.c: Likewise.
14607         * tree-vn.c: Likewise.
14608         * tree-vrp.c: Likewise.
14609         * tree.c: Likewise.
14610         * tree.def: Likewise.
14611         * tree.h: Likewise.
14612         * unwind-dw2-fde.c: Likewise.
14613         * unwind.inc: Likewise.
14614         * value-prof.c: Likewise.
14615         * vmsdbgout.c: Likewise.
14616
14617 2008-06-05  David Edelsohn  <edelsohn@gnu.org>
14618
14619         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
14620         always place FP constants in the TOC for TARGET_POWERPC64.
14621         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
14622
14623 2008-06-05  Joseph Myers  <joseph@codesourcery.com>
14624
14625         * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
14626         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
14627         enable for TARGET_E500_DOUBLE.
14628         (*movdd_softfloat32): Also enable for !TARGET_FPRS.
14629         * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
14630         floating-point modes like integer modes for E500 double.
14631         (rs6000_legitimate_offset_address_p): Likewise.
14632         (rs6000_legitimize_address): Likewise.  Do not allow REG+REG
14633         addressing for DDmode for E500 double.
14634         (rs6000_hard_regno_nregs): Do not treat decimal floating-point
14635         modes as using 64-bits of registers for E500 double.
14636         (spe_build_register_parallel): Do not handle DDmode or TDmode.
14637         (rs6000_spe_function_arg): Do not handle DDmode or TDmode
14638         specially for E500 double.
14639         (function_arg): Do not call rs6000_spe_function_arg for DDmode or
14640         TDmode for E500 double.
14641         (rs6000_gimplify_va_arg): Only handle SDmode in registers
14642         specially if TARGET_HARD_FLOAT && TARGET_FPRS.
14643         (rs6000_split_multireg_move): Do not handle TDmode specially for
14644         E500 double.
14645         (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
14646         using 64-bit registers for E500 double.
14647         (emit_frame_save): Do not handle DDmode specially for E500 double.
14648         (gen_frame_mem_offset): Likewise.
14649         (rs6000_function_value): Do not call spe_build_register_parallel
14650         for DDmode or TDmode.
14651         (rs6000_libcall_value): Likewise.
14652         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
14653         DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
14654         for E500 double.
14655
14656 2008-06-04  H.J. Lu  <hongjiu.lu@intel.com>
14657
14658         * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
14659         in comments.
14660
14661 2008-06-04  Junjie Gu <jgu@tensilica.com>
14662
14663         * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
14664         comparison for frame pointers.
14665
14666 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
14667
14668         PR target/27386
14669         * config/avr/avr.h (PUSH_ROUNDING): Remove.
14670
14671 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
14672
14673         PR target/30243
14674         * builtins.c (expand_builtin_signbit): Don't take lowpart when
14675         register is already smaller or equal to required mode.
14676
14677 2008-06-04  Xinliang David Li  <davidxl@google.com>
14678
14679         * tree-call-cdce.c: New file.
14680         (cond_dead_built_in_calls): New static variable.
14681         (input_domain): New struct.
14682         (check_pow): New function.
14683         (check_builtin_call): Ditto.
14684         (check_target_format): Ditto.
14685         (is_call_dce_candidate): Ditto.
14686         (gen_one_condition): Ditto.
14687         (gen_conditions_for_domain): Ditto.
14688         (get_domain): Ditto.
14689         (gen_conditions_for_pow_cst_base): Ditto.
14690         (gen_conditions_for_pow_int_base): Ditto.
14691         (gen_conditions_for_pow): Ditto.
14692         (get_no_error_domain): Ditto.
14693         (gen_shrink_wrap_conditions): Ditto.
14694         (shrink_wrap_one_built_in_call): Ditto.
14695         (shink_wrap_conditional_dead_built_in_calls): Ditto.
14696         (tree_call_cdce): Ditto.
14697         (gate_call_cdce): Ditto.
14698         (pass_call_cdce): New gimple pass.
14699         * passes.c: (init_optimization_passes): New pass.
14700         * tree-pass.h: New pass declaration.
14701         * opts.c (decode_options): New flag setting.
14702         * common.opt: Add -ftree-builtin-call-dce flag.
14703         * Makefile.in: Add new source file.
14704         * tempvar.def: New tv_id.
14705         * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
14706
14707 2008-06-04  Richard Guenther  <rguenther@suse.de>
14708
14709         * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
14710         (is_call_clobbered): Always check var_ann->call_clobbered.
14711         (mark_call_clobbered): Always set var_ann->call_clobbered.
14712         (clear_call_clobbered): Always clear var_ann->call_clobbered.
14713         * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
14714         (reset_alias_info): Clear call clobbering info on MTAGs and
14715         globals as well.
14716         (set_pt_anything): Set pt_global_mem.
14717         (create_tag_raw): Adjust comment.
14718         (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
14719
14720 2008-06-04  Joseph Myers  <joseph@codesourcery.com>
14721             Maxim Kuvyrkov  <maxim@codesourcery.com>
14722
14723         * config/m68k/m68k.opt (mxgot): New option.
14724         * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
14725         (m68k_output_addr_const_extra): New.
14726         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
14727         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
14728         * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
14729         * doc/invoke.texi (M680x0 Options): Document -mxgot.
14730
14731 2008-06-04  Richard Guenther  <rguenther@suse.de>
14732
14733         * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
14734         negative or non-representable offsets.
14735
14736 2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>
14737
14738         * config/i386/i386.c (ix86_gen_leave): New.
14739         (ix86_gen_pop1): Likewise.
14740         (ix86_gen_add3): Likewise.
14741         (ix86_gen_sub3): Likewise.
14742         (ix86_gen_sub3_carry): Likewise.
14743         (ix86_gen_one_cmpl2): Likewise.
14744         (ix86_gen_monitor): Likewise.
14745         (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
14746         ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
14747         ix86_gen_one_cmpl2 and ix86_gen_monitor.
14748         (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
14749         (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
14750         mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
14751         (ix86_expand_epilogue): Updated.
14752         (print_operand): Handle integer register operand for 'z'.
14753         (ix86_expand_strlensi_unroll_1): Likewise.
14754         (ix86_expand_strlen): Likewise.
14755         (ix86_expand_builtin): Likewise.
14756         (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
14757         mov{q}/mov{l} and add{q}/add{l}.
14758
14759 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
14760
14761         * config/i386/i386.md (P): New mode iterator.
14762         (SFmode push_operand splitter): Macroize DImode and SImode pushes
14763         using P mode iterator.
14764         (DFmode push_operand splitter): Ditto.
14765         (XFmode push_operand splitter): Ditto.
14766         (DFmode float_extend SFmode push_operand splitter): Ditto.
14767         (XFmode float_extend SFmode push_operand splitter): Do not generate
14768         SImode pushes for 64bit target.  Macroize Dimode and SImode
14769         pushes using P mode iterator.
14770         (XFmode float_extend DFmode push_operand splitter): Ditto.
14771
14772 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
14773
14774         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
14775         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
14776         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
14777         return type to int.
14778         (ix86_call_abi_override): Remove check for call_used_regs.
14779
14780 2008-06-03  Richard Guenther  <rguenther@suse.de>
14781
14782         * tree-ssa-structalias.c (find_func_aliases): Add constraints
14783         for the lhs of calls if the return type contains pointers.
14784
14785 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
14786
14787         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
14788         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
14789         * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
14790         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
14791         of cfun and DEFAULT_ABI to deceide abi mode.
14792         (DEFAULT_ABI): New.
14793         (REG_PARM_STACK_SPACE): Removed.
14794         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
14795         (STACK_BOUNDARY): Use default target to deceide stack boundary.
14796         * config/i386/i386-protos.h (ix86_cfun_abi): New.
14797         (ix86_function_abi): Likewise.
14798         (ix86_function_type_abi): Likewise.
14799         (ix86_call_abi_override): Likewise.
14800         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
14801         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
14802         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
14803         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
14804         specific defines.
14805         (X86_64_REGPARM_MAX): New.
14806         (X86_64_SSE_REGPARM_MAX): New.
14807         (X64_REGPARM_MAX): New.
14808         (X64_SSE_REGPARM_MAX): New.
14809         (X86_32_REGPARM_MAX): New.
14810         (X86_32_SSE_REGPARM_MAX): New.
14811         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
14812         (ix86_function_regparm): Handle user calling abi.
14813         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
14814         by DEFAULT_ABI versus SYSV_ABI check.
14815         (ix86_reg_parm_stack_space): New.
14816         (ix86_function_type_abi): New.
14817         (ix86_call_abi_override): New.
14818         (ix86_function_abi): New.
14819         (ix86_cfun_abi): New.
14820         (init_cumulative_args): Call abi specific initialization.
14821         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
14822         (function_arg_64): Extend SSE_REGPARM_MAX check.
14823         (function_arg (): Remove TARGET_64BIT_MS_ABI.
14824         (ix86_pass_by_reference): Likewise.
14825         (ix86_function_value_regno_p): Likewise.
14826         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
14827         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
14828         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
14829         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
14830         (setup_incoming_varargs_64): Adjust regparm for call abi.
14831         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
14832         (ix86_va_start): Likewise.
14833         (ix86_gimplify_va_arg): Likewise.
14834         (ix86_expand_prologue): Likewise.
14835         (output_pic_addr_const): Likewise.
14836         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
14837         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
14838         (x86_output_mi_thunk): Likewise.
14839         (x86_function_profiler): Likewise.
14840         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
14841         (SYSV_ABI, MS_ABI): New constants.
14842         (DEFAULT_ABI): New.
14843         (init_regs): Add prototype of function in regclass.c file.
14844         (OVERRIDE_ABI_FORMAT): New.
14845         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
14846         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
14847         (OUTGOING_REG_PARM_STACK_SPACE): New.
14848         (ix86_reg_parm_stack_space): New prototype.
14849         (CUMULATIVE_ARGS): Add call_abi member.
14850         (machine_function): Add call_abi member.
14851         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
14852         TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
14853
14854 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com>
14855
14856         PR target/34879
14857         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
14858         (avr_builtin_setjmp_frame_value): New function.
14859         * config/avr/avr.md (nonlocal_goto_receiver): Define.
14860         (nonlocal_goto): Define.
14861
14862 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
14863
14864         * config/mips/mips.c (mips_emit_loadgp): Return early if
14865         there is nothing do to, otherwise emit a blockage if
14866         !TARGET_EXPLICIT_RELOCS || crtl->profile.
14867         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
14868
14869 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14870
14871         * configure.ac: Drop unneeded backslash ending up in config.in.
14872         * acinclude.m4: Likewise.
14873         * config.in: Regenerate.
14874
14875 2008-05-26  Jan Hubicka  <jh@suse.cz>
14876
14877         * predict.c (maybe_hot_frequency_p): Break out of...
14878         (maybe_hot_bb_p): ... here.
14879         (maybe_hot_edge_p): New.
14880         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
14881         * basic-block.h (maybe_hot_edge_p): Declare.
14882
14883 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
14884
14885         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
14886         (*cmpfp_<mode>_cc): Ditto.
14887         (*fp_jcc_8<mode>_387): Ditto.
14888         (*fop_<MODEF:mode>_2_i387): Ditto.
14889         (*fop_<MODEF:mode>_3_i387): Ditto.
14890         (*fop_xf_2_i387): Ditto.
14891         (*fop_xf_3_i387): Ditto.
14892
14893 2008-06-02  Tomas Bily  <tbily@suse.cz>
14894
14895         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
14896
14897 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
14898
14899         * config/mips/mips.c (mips_valid_offset_p): New function.
14900         (mips_valid_lo_sum_p): Likewise.
14901         (mips_classify_address): Use them.
14902         (mips_force_address): New function.
14903         (mips_legitimize_address): Use it.
14904         * config/mips/mips.md (MOVE128): New mode iterator.
14905         (movtf): Require TARGET_64BIT.  Remove empty strings.
14906         (*movtf_internal): Rename to...
14907         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
14908         of "R" and use {,fp}{load,store} attributes instead of "multi".
14909         Use a separate define_split.
14910         (*movtf_mips16): New pattern.
14911
14912 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
14913
14914         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
14915         * config/mips/mips.c (mips_expand_before_return): New function.
14916         (mips_expand_epilogue): Call it.
14917         * config/mips/mips.md (return): Turn into a define_expand.
14918         (*return): New insn.
14919
14920 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
14921
14922         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
14923         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
14924         functions.  Do not emit uses and clobbers of CONCATs; individually
14925         use and clobber their operands.
14926         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
14927         gen_clobber, emit_use and gen_use.
14928         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
14929         (expand_builtin_return): Likewise.
14930         * cfgbuild.c (count_basic_blocks): Likewise.
14931         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
14932         * explow.c (emit_stack_restore): Likewise.
14933         * expmed.c (extract_bit_field_1): Likewise.
14934         * expr.c (convert_move, emit_move_complex_parts): Likewise.
14935         (emit_move_multi_word, store_constructor): Likewise.
14936         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
14937         (thread_prologue_and_epilogue_insns): Likewise.
14938         * lower-subreg.c (resolve_simple_move): Likewise.
14939         * optabs.c (widen_operand, expand_binop): Likewise.
14940         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
14941         * reload.c (find_reloads): Likewise.
14942         * reload1.c (eliminate_regs_in_insn): Likewise.
14943         * stmt.c (expand_nl_goto_receiver): Likewise.
14944         * config/alpha/alpha.md (builtin_longjmp): Likewise.
14945         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
14946         * config/arm/arm.c (arm_load_pic_register): Likewise.
14947         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
14948         * config/arm/arm.md (untyped_return): Likewise.
14949         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
14950         * config/avr/avr.c (expand_prologue): Likewise.
14951         * config/bfin/bfin.c (do_unlink): Likewise.
14952         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
14953         * config/cris/cris.c (cris_expand_prologue): Likewise.
14954         * config/darwin.c (machopic_indirect_data_reference): Likewise.
14955         (machopic_legitimize_pic_address): Likewise.
14956         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
14957         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
14958         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
14959         (ix86_expand_convert_uns_didf_sse): Likewise.
14960         (ix86_expand_vector_init_general): Likewise.
14961         * config/ia64/ia64.md (eh_epilogue): Likewise.
14962         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
14963         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
14964         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
14965         (config/iq2000/iq2000.c): Likewise.
14966         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
14967         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
14968         (builtin_longjmp): Likewise.
14969         * config/mn10300/mn10300.md (call, call_value): Likewise.
14970         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
14971         * config/pdp11/pdp11.md (abshi2): Likewise.
14972         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
14973         * config/s390/s390.c (s390_emit_prologue): Likewise.
14974         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
14975         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
14976         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
14977         * config/sh/sh.c (prepare_move_operands): Likewise.
14978         (output_stack_adjust, sh_expand_epilogue): Likewise.
14979         (sh_set_return_address, sh_expand_t_scc): Likewise.
14980         * config/sparc/sparc.c (load_pic_register): Likewise.
14981         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
14982         * config/spu/spu.c (spu_expand_epilogue): Likewise.
14983         * config/v850/v850.c (expand_epilogue): Likewise.
14984
14985 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
14986
14987         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
14988         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
14989         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
14990         * config/avr/avr.c (expand_prologue, expand_epilogue): Use
14991         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the
14992         stack pointer register.
14993         (output_movhi): Remove code for interrupt specific writing to the
14994         stack pointer register.
14995
14996 2008-05-31  Richard Guenther  <rguenther@suse.de>
14997
14998         PR tree-optimization/34244
14999         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
15000         (tree_expr_nonzero_warnv_p): Likewise.
15001         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
15002         ssa_name_nonnegative_p.
15003         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
15004         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
15005         not tree_expr_nonzero_warnv_p.
15006
15007         PR tree-optimization/36262
15008         Revert
15009         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
15010
15011         PR tree-optimization/34244
15012         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
15013         (record_numbers_of_iterations): New function.
15014         (execute_vrp): Cache the numbers of iterations of loops.
15015         * tree-scalar-evolution.c (scev_reset_except_niters):
15016         New function.
15017         (scev_reset): Use scev_reset_except_niters.
15018         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
15019
15020 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
15021
15022         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
15023         __WORKAROUND_RETS when appropriate.
15024
15025 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
15026
15027         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
15028         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
15029         mode iterator.
15030         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
15031         *fop_df_comm_sse insn patterns using MODEF mode iterator.
15032         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
15033         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
15034         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
15035         *fop_df_1_mixed insn patterns using MODEF mode iterator.
15036         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
15037         *fop_df_1_sse insn patterns using MODEF mode iterator.
15038         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
15039         *fop_df_1_i387 insn patterns using MODEF mode iterator.
15040         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
15041         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
15042         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
15043         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
15044         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
15045         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
15046         (*fop_xf_4_i387): Use <MODE> for mode attribute.
15047         (*fop_xf_5_i387): Ditto.
15048         (*fop_xf_6_i387): Ditto.
15049
15050 2008-05-30  Richard Guenther  <rguenther@suse.de>
15051
15052         * builtins.c (build_string_literal): Avoid generating
15053         a non-gimple_val result.
15054
15055 2008-05-30  DJ Delorie  <dj@redhat.com>
15056
15057         * exec-tool.in: Use an environment variable (private) instead of a
15058         file (shared) as a semaphore, so as to not break parallel builds.
15059
15060 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
15061
15062         * optabs.c (maybe_encapsulate_block): Remove.
15063         (emit_libcall_block): Adjust accordingly.
15064         * optabs.h (maybe_encapsulate_block): Remove prototype.
15065
15066         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
15067         Don't use maybe_encapsulate_block.
15068
15069 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
15070
15071         * config/rs6000/rs6000.c (rs6000_legitimize_address,
15072         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
15073         rtx is a SYMBOL_REF before calling get_pool_constant.
15074
15075 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
15076
15077         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
15078
15079 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
15080
15081         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
15082         rather than OS names to choose INO_T_EQ definition.
15083         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
15084         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
15085
15086 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
15087
15088         PR target/36348
15089         * config/darwin-f.c: New.
15090         * config/t-darwin: Added rule to build darwin-f.o.
15091         * config.gcc: Defined new variable, fortran_target_objs.
15092         (*-*-darwin*): Set fortran_target_objs.
15093         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
15094         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
15095         * configure: Regenerated.
15096
15097 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
15098
15099         PR target/35771
15100         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
15101         canonical type if needed.
15102
15103 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
15104
15105         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
15106
15107 2008-05-29  Richard Guenther  <rguenther@suse.de>
15108
15109         PR tree-optimization/36343
15110         PR tree-optimization/36346
15111         PR tree-optimization/36347
15112         * tree-flow.h (clobber_what_p_points_to): Declare.
15113         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
15114         pointed-to variable is dereferenced is irrelevant to whether
15115         the pointer can access the pointed-to variable.
15116         (clobber_what_p_points_to): New function.
15117         * tree-ssa-alias.c (set_initial_properties): Use it.
15118         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
15119         call clobber check for NMTs.
15120
15121 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
15122
15123         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
15124         for printing gcov_type.
15125
15126 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
15127
15128         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
15129         and the eh region information.
15130         * value-prof.c (gimple_move_stmt_histograms): New function.
15131         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
15132
15133 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
15134
15135         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
15136
15137 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
15138
15139         * value-prof.c (tree_ic_transform): Print counts.
15140         * tree-profile.c (tree_gen_ic_func_profiler):
15141         Clear __gcov_indreict_call_callee variable to avoid misattribution
15142         of the profile.
15143
15144 2008-05-28  Rafael EspÃ\83­ndola  <espindola@google.com>
15145
15146         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
15147         invalid sharing.
15148
15149 2008-05-28  Richard Guenther  <rguenther@suse.de>
15150
15151         PR tree-optimization/36339
15152         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
15153         and clobbering code out of the loop.
15154
15155 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
15156
15157         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
15158         letters defined.
15159
15160         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
15161         s390_contiguous_bitmask_p, s390_symref_operand_p,
15162         s390_check_symref_alignment, s390_reload_larl_operand,
15163         s390_reload_symref_address): New functions.
15164         (s390_branch_condition_mnemonic): Support compare and branch
15165         instructions.
15166         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
15167         and 'W' constraints.
15168         (s390_secondary_reload): Add secondary reloads for unaligned
15169         symbol refs or symbol refs to floating point or QI/TI mode
15170         integer values.
15171         (legitimate_address_p): Accept symbol references as addresses.
15172         (s390_expand_insv): Use rotate and insert selected bits
15173         instruction for insv when building for z10.
15174         (print_operand_address): Handle symbol ref addresses.
15175         (print_operand): Output modifier 'c' added for signed byte values.
15176         (s390_encode_section_info): Mark symbol refs with
15177         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
15178
15179         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
15180         (length attribute): RRF, RRR have 4 byte length.
15181         (FPALL, INTALL): New mode iterators added.
15182         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
15183         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
15184         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
15185         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
15186         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
15187         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
15188         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
15189         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
15190         instructions.
15191         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
15192         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
15193         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
15194         reload<INTALL:mode><P:mode>_toreg_z10,
15195         reload<FPALL:mode><P:mode>_tomem_z10,
15196         reload<FPALL:mode><P:mode>_toreg_z10,
15197         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
15198         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
15199         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
15200         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
15201         definition.
15202         (movmem, clrmem, cmpmem): New splitters added.
15203
15204         * config/s390/predicates.md (larl_operand): Use
15205         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
15206         SYMBOL_REF_ALIGN1_P.
15207         (s390_signed_integer_comparison,
15208         s390_unsigned_integer_comparison): New predicates.
15209
15210         * config/s390/s390-protos.h (s390_check_symref_alignment,
15211         s390_contiguous_bitmask_p, s390_reload_larl_operand,
15212         s390_reload_symref_address,
15213         s390_compare_and_branch_condition_mask): Prototypes added.
15214
15215         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
15216         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
15217         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
15218
15219 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
15220
15221         * config/s390/s390.c (z10_cost): New cost function for z10.
15222         (s390_handle_arch_option, override_options): Support -march=z10 switch.
15223         (s390_issue_rate): Adjust issue rate for z10.
15224         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
15225         (processor_flags): Add PF_Z10.
15226         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
15227         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
15228         * gcc/config.gcc: Add z10.
15229
15230 2008-05-28  Richard Guenther  <rguenther@suse.de>
15231
15232         PR tree-optimization/36291
15233         * tree-flow. h (struct gimple_df): Remove var_anns member.
15234         * tree-flow-inline.h (gimple_var_anns): Remove.
15235         (var_ann): Simplify.
15236         * tree-dfa.c (create_var_ann): Simplify.
15237         (remove_referenced_var): Clear alias info from var_anns of globals.
15238         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
15239         (delete_tree_ssa): Clear alias info from var_anns of globals.
15240         Do not free var_anns.
15241         (var_ann_eq): Remove.
15242         (var_ann_hash): Likewise.
15243
15244 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
15245
15246         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
15247         and loongson2f entries.
15248         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
15249         * config/mips/mips.h (processor_type): Add Loongson-2E
15250         and Loongson-2F entries.
15251         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
15252         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
15253         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
15254         * doc/invoke.texi (MIPS Options): Document loongson2e
15255         and loongson2f processor names.
15256
15257 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
15258
15259         PR target/35767
15260         PR target/35771
15261         * config/i386/i386.c (ix86_function_arg_boundary): Use
15262         alignment of canonical type.
15263         (ix86_expand_vector_move): Check unaligned memory access for
15264         all SSE modes.
15265
15266 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
15267
15268         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
15269         Moved to the front of file.
15270
15271 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
15272             H.J. Lu  <hongjiu.lu@intel.com>
15273
15274         * dwarf2out.c (current_fde): New.
15275         (add_cfi): Use it.
15276         (lookup_cfa:): Likewise.
15277         (dwarf2out_end_epilogue): Likewise.
15278         (dwarf2out_note_section_used): Likewise.
15279
15280 2008-05-27  Michael Matz  <matz@suse.de>
15281
15282         PR c++/27975
15283         * c.opt (Wenum-compare): New warning option.
15284         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
15285
15286 2008-05-27  Michael Matz  <matz@suse.de>
15287
15288         PR middle-end/36326
15289         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
15290         non-BLKmode types.
15291         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
15292         into memory as tail calls.
15293
15294 2008-05-27  Richard Guenther  <rguenther@suse.de>
15295
15296         PR tree-optimization/36339
15297         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
15298         pointers cause all addressable variables to be call clobbered.
15299
15300 2008-05-27  Richard Guenther  <rguenther@suse.de>
15301
15302         PR tree-optimization/36245
15303         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
15304
15305 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
15306
15307         * config/s390/s390.md: Replace all occurences of the 'm'
15308         constraint with 'RT'.
15309
15310 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
15311
15312         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
15313         definitions added.
15314         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
15315         "*movdi_64".
15316         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
15317         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
15318         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
15319
15320 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
15321
15322         * reload.c: (find_reloads): Skip alternatives according to the
15323         "enabled" attribute. Constify the constraint variable.
15324         * recog.c (get_attr_enabled): Add default implementation.
15325         (extract_insn): Set the alternative_enabled_p array
15326         in the recog_data struct.
15327         (preprocess_constraints, constrain_operands): Skip
15328         alternatives according to the "enabled" attribute
15329         * recog.h (struct recog_data): New field alternative_enabled_p.
15330         (skip_alternative): New inline function.
15331         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
15332         (record_reg_classes): Skip alternative according to the
15333         "enabled" attribute.
15334
15335         * doc/md.texi: Add documention for the "enabled" attribute.
15336
15337 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
15338
15339         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
15340         * postreload.c (reload_cse_simplify_operands): Replace 'm'
15341         constraint with TARGET_MEM_CONSTRAINT.
15342         * recog.c (asm_operand_ok, preprocess_constraints,
15343         constrain_operands): Likewise.
15344         * regclass.c (record_reg_classes): Likewise.
15345         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
15346         * reload1.c (maybe_fix_stack_asms): Likewise.
15347         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
15348         * recog.h: Adjust comment.
15349         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
15350         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
15351         * doc/md.texi: Add a note to description of 'm' constraint.
15352         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
15353
15354 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
15355
15356         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
15357         that the bitfield is of integral type before testing its precision.
15358
15359 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
15360             Sa Liu  <saliu@de.ibm.com>
15361
15362         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3,
15363         __modti3, __udivti3, __umodti3 and __udivmodti4.
15364         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
15365         that implement TImode mul and div functions.
15366         * config/spu/multi3.c: New. Implement __multi3.
15367         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
15368         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
15369         functions on SPU.
15370
15371 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
15372
15373         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
15374         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
15375         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
15376         tls_sysv_suffix): New mode and mode attribute iterators.
15377         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
15378         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
15379         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
15380         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
15381         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
15382         iterators.
15383
15384 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
15385
15386         PR tree-optimization/36329
15387         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
15388         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
15389         * cgraphbuild.c (initialize_inline_failed): Use the latter
15390         macro in lieu of the former.
15391         * ipa-inline.c (cgraph_mark_inline): Likewise.
15392         (cgraph_decide_inlining_of_small_function): Likewise.
15393         (cgraph_decide_inlining): Likewise.
15394         (cgraph_decide_inlining_incrementally): Likewise.
15395
15396 2008-05-26  Tristan Gingold  <gingold@adacore.com>
15397             Anatoly Sokolov  <aesok@post.ru>
15398
15399         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
15400         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
15401         * config/avr/avr.c (expand_prologue): Tune "call_prologue"
15402         optimization for 'avr6' architecture.
15403
15404 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
15405
15406         PR target/34932
15407         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
15408
15409 2008-05-26  Richard Guenther  <rguenther@suse.de>
15410
15411         * tree-ssa-sccvn.c (expr_has_constants): Declare.
15412         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
15413
15414 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
15415
15416         PR middle-end/36253
15417         * caller-save.c (insert_restore): Verify alignment of spill space.
15418         (insert_save): Likewise.
15419         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
15420         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
15421         (STACK_SLOT_ALIGNMENT): Likewise.
15422         * function.c (LOCAL_ALIGNMENT): Removed.
15423         (get_stack_local_alignment): New.
15424         (assign_stack_local): Use it.  Set alignment on stack slot.
15425         (assign_stack_temp_for_type): Use get_stack_local_alignment.
15426         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
15427         (STACK_SLOT_ALIGNMENT): New.
15428         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
15429         stack slot in XFmode.
15430
15431         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
15432
15433 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
15434
15435         PR/36321
15436         * config/i386/i386.md (allocate_stack_worker_64): Make sure
15437         argument operand in rax isn't removed.
15438
15439 2008-05-26  Richard Guenther  <rguenther@suse.de>
15440
15441         PR middle-end/36300
15442         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
15443         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
15444
15445 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
15446
15447         PR bootstrap/36331
15448         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
15449
15450 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
15451
15452         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
15453         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
15454
15455 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
15456
15457         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
15458         build a trampoline if we don't want one.
15459         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
15460         return zero for nested functions if we don't want a trampoline.
15461
15462 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
15463
15464         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
15465
15466 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
15467
15468         PR fortran/18428
15469         * c.opt: Removed undocumented option '-lang-fortran'.
15470         * c-common.h: Removed global variable 'lang_fortran'.
15471         * c-opts.c (c_common_handle_option): Removed code to handle
15472         option '-lang-fortran'. Updated includes.
15473         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
15474         definition of '__GFORTRAN__'.
15475         (define__GNUC__): Reimplemented to use BASEVER and
15476         cpp_define_formatted.
15477         (builtin_define_with_value_n): Removed.
15478         * c-incpath.h: Renamed to ...
15479         * incpath.h: ... this.
15480         * c-incpath.c: Renamed to ...
15481         * incpath.c: ... this. Updated includes.
15482         * fix-header.c: Updated includes.
15483         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
15484         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
15485         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
15486
15487 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
15488
15489         * tree.h: Update the table of flags used on tree nodes.
15490         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
15491         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
15492         (FORCED_LABEL): Add access check.
15493         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
15494         (ASM_INPUT_P): Likewise.
15495         (ASM_VOLATILE_P): Likewise.
15496         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
15497         (OMP_SECTION_LAST): Access private_flag directly.
15498         (OMP_RETURN_NOWAIT): Likewise.
15499         (OMP_PARALLEL_COMBINED): Likewise.
15500         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
15501         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
15502         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
15503         deprecated_flag directly.
15504
15505 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
15506
15507         * final.c (frame_pointer_needed): Removed.
15508         * flags.h (frame_pointer_needed): Likewise.
15509
15510         * function.h (rtl_data): Add frame_pointer_needed.
15511         (frame_pointer_needed): New.
15512
15513 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
15514
15515         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
15516
15517 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
15518
15519         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
15520         SRC is a REG.
15521
15522 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
15523
15524         * c-common.c (strip_array_types): Move function to..
15525         * tree.c: ..here.
15526         (get_inner_array_type): Delete.
15527         * c-common.h (strip_array_types): Move declaration to..
15528         * tree.h: ..here.
15529         (get_inner_array_type): Delete.
15530         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
15531         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
15532         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
15533         * config/pa/pa.c (emit_move_sequence): Likewise.
15534
15535 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
15536
15537         * config/i386/i386.md (*sse_prologue_save_insn): Set length
15538         attribute to 34.
15539
15540 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
15541
15542         * function.c: Include target hook for nonlocal_goto frame value.
15543
15544 2008-05-24  Richard Guenther  <rguenther@suse.de>
15545
15546         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
15547         variable can be only accessed through a pointer or a union.
15548
15549 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15550
15551         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
15552         * doc/extend.texi: Likewise.
15553
15554 2008-05-23  DJ Delorie  <dj@redhat.com>
15555
15556         * config/m32c/jump.md (untyped_call): Add.
15557
15558         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
15559         for A24 to PSImode.
15560         (m32c_address_cost): Detail costs for indirect offsets.
15561
15562 2008-05-23  Rafael EspÃ\83­ndola  <espindola@google.com>
15563
15564         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
15565         if a node is a SUBREG.
15566         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
15567         is a SUBREG.
15568
15569 2008-05-23  Paul Brook  <paul@codesourcery.com>
15570             Carlos O'Donell  <carlos@codesourcery.com>
15571
15572         * doc/extend.texi: Clarify use of __attribute__((naked)).
15573         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
15574         * target.h (gcc_target): Add allocate_stack_slots_for_args.
15575         * function.c (use_register_for_decl): Use
15576         targetm.calls.allocate_stack_slots_for_args.
15577         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
15578         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
15579         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
15580
15581 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
15582
15583         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
15584
15585 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
15586
15587         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
15588         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
15589         is only rounded once.
15590
15591 2008-05-23  Richard Guenther  <rguenther@suse.de>
15592
15593         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
15594
15595 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
15596             Jakub Jelinek  <jakub@redhat.com>
15597
15598         PR target/36079
15599         * configure.ac: Handle --enable-cld.
15600         * configure: Regenerated.
15601         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
15602         * config/i386/i386.h (struct machine_function): Add needs_cld field.
15603         (ix86_current_function_needs_cld): New define.
15604         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
15605         (cld): New isns pattern.
15606         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
15607         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
15608         * config/i386/i386.opt (mcld): New option.
15609         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
15610         TARGET_CLD and ix86_current_function_needs_cld.
15611         (override_options): Use -mcld by default for 32-bit code if
15612         USE_IX86_CLD.
15613
15614         * doc/install.texi (Options specification): Document --enable-cld.
15615         * doc/invoke.texi (Machine Dependent Options)
15616         [i386 and x86-64 Options]: Add -mcld option.
15617         (Intel 386 and AMD x86-64 Options): Document -mcld option.
15618
15619 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
15620         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
15621         (return_in_memory_64): Likewise.
15622         (return_in_memory_ms_64): Likewise.
15623
15624 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15625
15626         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
15627         * builtins.c (fold_builtin_fpclassify): New.
15628         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
15629         * builtins.def (BUILT_IN_FPCLASSIFY): New.
15630         * c-common.c (handle_type_generic_attribute): Adjust to accept
15631         fixed arguments before an elipsis.
15632         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
15633         * doc/extend.texi: Document __builtin_fpclassify.
15634
15635 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
15636
15637         * omp-low.c (gate_expand_omp_ssa): Remove.
15638         (pass_expand_omp_ssa): Remove.
15639         (gate_expand_omp): Do not check for flag_openmp_ssa.
15640         * common.opt (-fopenmp-ssa): Remove.
15641         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
15642
15643 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
15644
15645         * config/sh/sh.opt (mfixed-range): New option.
15646         * config/sh/sh-protos.h (sh_fix_range): Declare.
15647         * config/sh/sh.c (sh_fix_range): New function.
15648         * config/sh/sh.h (sh_fixed_range_str): Declare.
15649         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
15650         is not empty.
15651         * doc/invoke.texi (SH Options): Document -mfixed-range.
15652
15653 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
15654
15655         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
15656         it before the redeclaration.
15657
15658 2008-05-22  Anatoly Sokolov <aesok@post.ru>
15659
15660         * config/avr/avr.c (get_sequence_length): Add new function.
15661         (expand_prologue, expand_epilogue): Remove duplicate code.
15662
15663 2008-05-22  Rafael EspÃ\83­ndola  <espindola@google.com>
15664
15665         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
15666         sharing.
15667
15668 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
15669
15670         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
15671         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
15672
15673         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
15674         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
15675         (vect_update_misalignment_for_peel): Likewise.
15676         (vector_alignment_reachable_p): Likewise.
15677         * tree-vect-transform.c (vectorizable_load): Likewise.
15678         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
15679         (get_vectype_for_scalar_type): Pass mode of scalar_type
15680         to UNITS_PER_SIMD_WORD.
15681
15682         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
15683         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
15684         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
15685         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
15686         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
15687
15688 2008-05-22  Ira Rosen  <irar@il.ibm.com>
15689
15690         PR tree-optimization/36293
15691         * tree-vect-transform.c (vect_transform_strided_load): Don't check
15692         if the first load must be skipped because of a gap.
15693
15694 2008-05-22  Richard Guenther  <rguenther@suse.de>
15695
15696         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
15697         more cases of offset disambiguation that is possible if
15698         strict-aliasing rules apply.
15699         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
15700         for basic offset and type-based disambiguation.
15701
15702 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
15703
15704         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
15705         ix86_expand_vector_set on V16QImode for SSE4.1.
15706
15707 2008-05-21  Tom Tromey  <tromey@redhat.com>
15708
15709         * c.opt (Wimport): Mark as undocumented.
15710         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
15711         -Wno-import.
15712         (Warning Options): Likewise.
15713         * doc/cppopts.texi: Don't mention -Wimport.
15714
15715 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
15716
15717         PR tree-optimization/36287
15718         PR tree-optimization/36286
15719         * lambda-code.c (build_access_matrix): Do not use the loop->num
15720         for computing the number of induction variables: use the loop depth
15721         instead.
15722
15723 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
15724
15725         PR/36280
15726         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
15727         option -f(no-)leading-underscore.
15728
15729 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
15730
15731         * config/i386/i386.c (ix86_expand_vector_init_general): Use
15732         GET_MODE_NUNITS (mode).
15733
15734 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
15735
15736         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
15737         (-mmulhw): Add 464 to description.
15738         (-mdlmzb): Likewise.
15739         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
15740         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
15741         464fp entries.
15742         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
15743         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
15744         * config/rs6000/rs6000.md: Update comments for 464.
15745
15746 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
15747
15748         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
15749
15750 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
15751
15752         * config/i386/sse.md (vec_extractv4sf): Removed.
15753         (vec_extractv2df): Likewise.
15754         (vec_extractv2di): Likewise.
15755         (vec_extractv4si): Likewise.
15756         (vec_extractv8hi): Likewise.
15757         (vec_extractv16qi): Likewise.
15758         (vec_extract<mode>): New.
15759
15760 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
15761
15762         * config/i386/sse.md (vec_setv4sf): Removed.
15763         (vec_setv2df): Likewise.
15764         (vec_setv2di): Likewise.
15765         (vec_setv4si): Likewise.
15766         (vec_setv8hi): Likewise.
15767         (vec_setv16qi): Likewise.
15768         (vec_set<mode>): New.
15769
15770 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
15771
15772         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
15773         goto for vec_concat and vec_interleave.
15774
15775 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
15776
15777         * config/i386/sse.md (vec_initv4sf): Removed.
15778         (vec_initv2df): Likewise.
15779         (vec_initv2di): Likewise.
15780         (vec_initv4si): Likewise.
15781         (vec_initv8hi): Likewise.
15782         (vec_initv16qi): Likewise.
15783         (vec_init<mode>): New.
15784
15785 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
15786
15787         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
15788
15789 2008-05-21  Tom Tromey  <tromey@redhat.com>
15790
15791         * ggc-zone.c (lookup_page_table_if_allocated): New function.
15792         (zone_find_object_offset): Likewise.
15793         (gt_ggc_m_S): Likewise.
15794         (highest_bit): Likewise.
15795         * ggc-page.c (gt_ggc_m_S): New function.
15796         * stringpool.c (string_stack): Remove.
15797         (init_stringpool): Update.
15798         (ggc_alloc_string): Use ggc_alloc.
15799         (maybe_delete_ident): New function.
15800         (ggc_purge_stringpool): Likewise.
15801         (gt_ggc_m_S): Remove.
15802         * ggc-common.c (ggc_protect_identifiers): New global.
15803         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
15804         ggc_protect_identifiers.
15805         * ggc.h (ggc_protect_identifiers): Declare.
15806         (gt_ggc_m_S): Update.
15807         (ggc_purge_stringpool): Declare.
15808         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
15809         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
15810         special case.
15811         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
15812
15813 2008-05-21  David S. Miller  <davem@davemloft.net>
15814
15815         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
15816         tmake_file.
15817
15818 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
15819
15820         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
15821         once finished.
15822
15823 2008-05-20  David Daney  <ddaney@avtrex.com>
15824
15825         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
15826         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
15827         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
15828         UNSPEC_UPDATE_GOT_VERSION): Renumber.
15829         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
15830         (atomic_hiqi_op): New define_code_iterator.
15831         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
15832         mips_expand_compare_and_swap_12.
15833         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
15834         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
15835         (sync_<optab><mode>, sync_old_<optab><mode>,
15836         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
15837         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
15838         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
15839         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
15840         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
15841         (test_and_set_12): New insn.
15842         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
15843         sync_new_<optab><mode>, sync_old_nand<mode>,
15844         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
15845         clobber to operand 0 for SI and DI mode insns.
15846         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
15847         mips_gen_fn_4): New typedefs.
15848         (mips_gen_fn_ptrs): Define new union type.
15849         (mips_expand_compare_and_swap_12): Remove declaration.
15850         (mips_expand_atomic_qihi): Declare function.
15851         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
15852         (mips_expand_atomic_qihi): ... this.  Use new generator function
15853         parameter.
15854         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
15855         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
15856         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
15857         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
15858         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
15859         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
15860         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
15861         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
15862         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
15863         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
15864         New macros.
15865
15866 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
15867
15868         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
15869         the missing break.
15870
15871 2008-05-20  Anatoly Sokolov <aesok@post.ru>
15872
15873         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
15874         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
15875         (avr_attribute_table): Add 'OS_main' function attribute.
15876         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
15877         functions with 'OS_main' attribute.
15878
15879 2008-05-20  Richard Guenther  <rguenther@suse.de>
15880
15881         PR tree-optimization/35204
15882         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
15883         helper, split out from ...
15884         (DFS): ... here.  Make the DFS walk non-recursive.
15885
15886 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
15887             Jan Sjodin  <jan.sjodin@amd.com>
15888
15889         PR tree-optimization/36181
15890         * tree-parloops.c (loop_has_vector_phi_nodes): New.
15891         (parallelize_loops): Don't parallelize when the loop has vector
15892         phi nodes.
15893
15894 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
15895             Sebastian Pop  <sebastian.pop@amd.com>
15896
15897         * tree-loop-linear.c (gather_interchange_stats): Look in the access
15898         matrix, and never look at the tree representation of the memory
15899         accesses.
15900         (linear_transform_loops): Computes parameters and access matrices.
15901         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
15902         when fails.
15903         (access_matrix_get_index_for_parameter): New.
15904         * tree-data-ref.h (struct access_matrix): New.
15905         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
15906         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
15907         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
15908         am_vector_index_for_loop): New.
15909         (struct data_reference): Add field access_matrix.
15910         (DR_ACCESS_MATRIX): New.
15911         (compute_data_dependences_for_loop): Update declaration.
15912         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
15913         * lambda.h (lambda_vector_vec_p): Declared.
15914         * lambda-code.c: Depend on pointer-set.h.
15915         (lambda_collect_parameters_from_af, lambda_collect_parameters,
15916         av_for_af_base, av_for_af, build_access_matrix,
15917         lambda_compute_access_matrices): New.
15918         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
15919
15920 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
15921
15922         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
15923         $SOURCEDIR/include.
15924
15925 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
15926             Sebastian Pop  <sebastian.pop@amd.com>
15927
15928         PR tree-optimization/36206
15929         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
15930         FOLD_CONVERSIONS.
15931         (instantiate_scev_1): Rename flags to fold_conversions.
15932         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
15933         outeside instantiation_loop.
15934         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
15935         (evolution_function_is_affine_or_constant_p): Removed.
15936         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
15937         instantiate_scev.
15938         (analyze_siv_subscript): Pass in the loop nest number.
15939         Call evolution_function_is_affine_in_loop instead of
15940         evolution_function_is_affine_p.
15941         (analyze_overlapping_iterations): Pass in the loop nest number.
15942
15943 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
15944             Sebastian Pop  <sebastian.pop@amd.com>
15945
15946         PR tree-optimization/36206
15947         * tree-chrec.h (chrec_fold_op): New.
15948         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
15949         and other trees.
15950
15951 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
15952
15953         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
15954         (DIRS_EQ): New.
15955         (remove_duplicates): Do not set inode on non-inode systems.
15956         Use DIRS_EQ.
15957
15958 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
15959
15960         * config.gcc (tm_file): Update comments about relative pathnames.
15961
15962 2008-05-20  Richard Guenther  <rguenther@suse.de>
15963
15964         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
15965         * tree-ssa-sccvn.c (process_scc): Likewise.
15966         * tree-ssa-sink.c (execute_sink_code): Likewise.
15967         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
15968         * tree-vrp.c (process_assert_insertions): Likewise.
15969         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
15970         (perform_tree_ssa_dce): Likewise.
15971         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
15972         (dump_dominator_optimization_stats): Likewise.
15973         * tree-vectorizer.c (vectorize_loops): Likewise.
15974
15975 2008-05-20  Richard Guenther  <rguenther@suse.de>
15976
15977         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
15978
15979 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
15980
15981         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
15982         (ix86_i386elf_return_in_memory): Likewise.
15983         (ix86_i386interix_return_in_memory): Likewise.
15984         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
15985         (SUBTARGET_RETURN_IN_MEMORY): New.
15986         * config/i386/i386elf.h: Likewise.
15987         * config/i386/ptx4-i.h: Likewise.
15988         * config/i386/sol2-10.h: Likewise.
15989         * config/i386/sysv4.h: Likewise.
15990         * config/i386/vx-common.h: Likewise.
15991         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
15992         * config/i386/i386.c (ix86_return_in_memory): Made static and
15993         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
15994         (ix86_i386elf_return_in_memory): Removed.
15995         (ix86_i386interix_return_in_memory): Removed.
15996         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
15997         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
15998
15999 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
16000
16001         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
16002
16003 2008-05-19  Xinliang David Li  <davidxl@google.com>
16004
16005         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18.
16006         * opts.c: Ditto.
16007         * common.opt: Ditto.
16008         * doc/invoke.texi: Ditto.
16009
16010 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
16011
16012         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
16013         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
16014
16015 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
16016
16017         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
16018         sizes of operand array from 8/4 to 4/2.
16019         (ix86_expand_vector_init_general): Change size of operand array
16020         from 32 to 16.  Remove op0, op1 and half_mode.
16021
16022 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
16023
16024         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
16025         (ix86_expand_vector_init_interleave): Likewise.
16026         (ix86_expand_vector_init_general): Use them.  Assert
16027         word_mode == SImode when n_words == 4.
16028
16029 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
16030
16031         * config/i386/i386.c (ix86_secondary_reload): New static function.
16032         (TARGET_SECONDARY_RELOAD): New define.
16033         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
16034         * config/i386/i386.md (reload_outqi): Remove.
16035
16036 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16037
16038         PR middle-end/35509
16039         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
16040         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
16041         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
16042         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
16043         (fold_builtin_1): Likewise.
16044         * builtins.def (BUILT_IN_ISINF_SIGN): New.
16045         c-common.c (check_builtin_function_arguments): Handle
16046         BUILT_IN_ISINF_SIGN.
16047         * doc/extend.texi: Document __builtin_isinf_sign.
16048         * fold-const.c (operand_equal_p): Handle COND_EXPR.
16049
16050 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
16051
16052         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
16053         EH cleanup at the end of the pass, search for those that have been
16054         turned into forwarder blocks and do the cleanup on their successor.
16055
16056 2008-05-18  Richard Guenther  <rguenther@suse.de>
16057
16058         * tree-cfg.c (verify_gimple_expr): Allow conversions from
16059         pointers to sizetype and vice versa.
16060
16061 2008-05-18 Xinliang David Li   <davidxl@google.com>
16062
16063         * gcc/tree-ssa-dce.c: Coding style fix.
16064         (check_pow): Documentation comment.
16065         (check_log): Documenation comment. Coding style fix.
16066         (is_unnecessary_except_errno_call): Ditto.
16067         (gen_conditions_for_pow): Ditto.
16068         (gen_conditions_for_log): Ditto.
16069         (gen_shrink_wrap_conditions): Ditto.
16070         (shrink_wrap_one_built_in_calls): Ditto.
16071         * gcc/doc/invoke.texi: Better documentation string.
16072         * ChangeLog: Fix wrong change log entries from
16073         May 17 checkin on function call DCE.
16074
16075 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
16076
16077         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
16078
16079 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
16080
16081         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
16082         * df-problems.c (simulation routines): Fixed block comment to
16083         properly say how to add forwards scanning functions.
16084
16085 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
16086
16087         * tree-inline.c (setup_one_parameter): Remove dead code.
16088
16089 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
16090
16091         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
16092         a BIT_AND_EXPR only for an INTEGER_TYPE.
16093
16094 2008-05-17 Xinliang David Li   <davidxl@google.com>
16095
16096         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
16097         (check_pow, check_log, is_unnecessary_except_errno_call): New
16098         functions to check for eliminating math functions that are pure
16099         except for setting errno.
16100         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
16101         general condition expressions for shrink-wrapping pow/log calls.
16102         (gen_shrink_wrap_conditions): Ditto.
16103         (shrink_wrap_one_built_in_call): Ditto.
16104         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
16105         (mark_operand_necessary): If debugging, output if OP is necessary.
16106         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
16107         unnecessary.
16108         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
16109         opt level >= 2.
16110         * gcc/common.opt: New user flag -ftree-builtin-dce.
16111         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
16112
16113 2008-05-16  David S. Miller  <davem@davemloft.net>
16114
16115         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
16116         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
16117
16118 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
16119
16120         PR target/36246
16121         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
16122
16123 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
16124
16125         * ifcvt.c (dead_or_predicable): Rename
16126         df_simulate_one_insn_backwards to df_simulate_one_insn.
16127         * recog.c (peephole2_optimize): Ditto.
16128         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
16129         Ditto.
16130         * df.h: Rename df_simulate_one_insn_backwards to
16131         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
16132         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
16133         scanning of defs and uses.
16134         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
16135         (df_simulate_one_insn_forwards): Removed.
16136
16137 2008-05-16  Doug Kwan  <dougkwan@google.com>
16138
16139         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
16140         QNaN & SNaN.
16141         (real_from_string): Handle NaNs and Inf as approriate.
16142
16143 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
16144
16145         * doc/gty.texi (Source Files Containing Type Information): Note
16146         that headers should appear first in the gtfiles list.
16147
16148 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
16149
16150         * tree.def (COND_EXEC): Properly documented this code.
16151
16152 2008-05-16  Diego Novillo  <dnovillo@google.com>
16153
16154         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
16155         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
16156         the new field.
16157
16158 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
16159
16160         * tree-ssa-dse (max_stmt_uid): Removed.
16161         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt,
16162         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
16163         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
16164         * function.h (cfun.last_stmt_uid): New field.
16165         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
16166         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
16167         New functions.
16168         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
16169         (create_stmt_ann): Initialize the ann->uid field.
16170         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
16171         with new calls.
16172         * tree-flow.h (renumber_gimple_stmt_uids): New function.
16173
16174 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
16175
16176         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
16177         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
16178         (init_empty_tree_cfg): Call it.
16179
16180 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
16181
16182         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
16183         Update all users.
16184
16185 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
16186
16187         * doc/invoke.text (-fdump-tree-*-verbose): New option.
16188         * tree-dump.c (dump_options): New verbose option.
16189         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
16190         Add verbose dump.
16191         * tree-pass.h (TDF_VERBOSE): New dump flag.
16192         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
16193         (tree-flow.h): Added include.
16194         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
16195
16196 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
16197
16198         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
16199
16200         From Jie Zhang  <jie.zhang@analog.com>
16201         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
16202         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
16203         mcpu=bf561-none and mcpu=bf561-0.2.
16204         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
16205         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
16206         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
16207         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
16208         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
16209         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
16210         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
16211         option.
16212         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
16213         (cputype_selected): Remove.
16214         (bfin_handle_option): Don't use cputype_selected.
16215         (override_options): When no mcpu option, enable all workarounds.
16216         Don't use bfin_workarounds.
16217         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
16218         processor type.
16219         (DEFAULT_CPU_TYPE): Don't define.
16220
16221 2008-05-16  Richard Guenther  <rguenther@suse.de>
16222
16223         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
16224         on deletion of the last stmt.
16225
16226 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
16227
16228         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
16229         V8HImode for SSE2 and V16QImode for SSE4.1.
16230
16231 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
16232
16233         * cgraph.h (compute_inline_parameters): Made public.
16234         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
16235         variable_generate_summary, function_write_summary,
16236         variable_write_summary, variable_read_summary.  Added generate_summary,
16237         write_summary, read_summary.
16238         * cgraphunit.c (cgraph_process_new_functions): Changed call from
16239         pass_ipa_inline.function_generate_summary, to
16240         compute_inline_parameters.
16241         * ipa-inline.c (compute_inline_parameters): Made public and added
16242         node parameter.
16243         (compute_inline_parameters_for_current): New function.
16244         (pass_inline_param): Now calls compute_inline_parameters_for_current.
16245         (inline_generate_summary): Removed parameter and made to loop over
16246         all cgraph nodes.
16247         (pass_ipa_inline): Updated for new IPA_PASS structure.
16248         * passes.c (execute_ipa_summary_passes): Now is called once per
16249         pass rather than once per node*pass.
16250
16251 2008-05-15  Anatoly Sokolov <aesok@post.ru>
16252
16253         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p,
16254         avr_have_mul_p, avr_asm_only_p): Remove variables.
16255         (avr_override_options): Remove initialization of removed variables.
16256         (avr_file_start):  Convert removed variables to fields of
16257         'struct base_arch_s *avr_current_arch'.
16258         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
16259         (AVR_HAVE_MUL): (Ditto.).
16260         (AVR_HAVE_MOVW): (Ditto.).
16261         (AVR_HAVE_LPMX): (Ditto.).
16262         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p,
16263         avr_asm_only_p): Remove declaration.
16264
16265 2008-05-15  Diego Novillo  <dnovillo@google.com>
16266
16267         * config/arm/arm.c (arm_return_in_memory): Fix return type.
16268         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
16269
16270 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
16271
16272         PR middle-end/36194
16273         * combine.c (check_conversion): Rename back to check_promoted_subreg.
16274         Don't call record_truncated_value from here.
16275         (record_truncated_value): Turn it into a for_each_rtx callback.
16276         (record_truncated_values): New function.
16277         (combine_instructions): Call note_uses with record_truncated_values.
16278         Change name of check_conversion to check_promoted_subreg.
16279
16280 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
16281
16282         * doc/sourcebuild.texi: Document support for torture tests.
16283
16284 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
16285
16286         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
16287         to alternative 4 of operand 2.
16288
16289 2008-05-15  Richard Guenther  <rguenther@suse.de>
16290
16291         * tree-pass.h (current_pass): Declare.
16292         (get_pass_for_id): Likewise.
16293         * passes.c (passes_by_id, passes_by_id_size): New globals.
16294         (set_pass_for_id): New function.
16295         (get_pass_for_id): Likewise.
16296         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
16297         (execute_function_todo): Flush per function statistics.
16298         * toplev.c (compile_file): Init statistics.
16299         (general_init): Do early statistics initialization.
16300         (finalize): Finish statistics.
16301         * statistics.h (statistics_early_init): Declare.
16302         (statistics_init): Likewise.
16303         (statistics_fini): Likewise.
16304         (statistics_fini_pass): Likewise.
16305         (statistics_counter_event): Likewise.
16306         (statistics_histogram_event): Likewise.
16307         * statistics.c: New file.
16308         * Makefile.in (OBJS-common): Add statistics.o.
16309         (statistics.o): Add dependencies.
16310         * doc/invoke.texi (-fdump-statistics): Document.
16311
16312         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
16313         (insert): Likewise.
16314         (execute_pre): Use statistics_counter_event.
16315         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
16316         (substitute_and_fold): Increment it.  Use statistics_counter_event.
16317
16318 2008-05-15  Diego Novillo  <dnovillo@google.com>
16319
16320         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
16321
16322         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
16323         * tree-ssa-alias.c (new_type_alias): Remove references to
16324         sub-variables from comment.
16325         * tree-ssa-operands.c (swap_tree_operands): Likewise.
16326
16327 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
16328
16329         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
16330         attribute to 1 only for insertps alternative.
16331
16332 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
16333
16334         * config/bfin/bfin.md (loadbytes): New pattern.
16335         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
16336         (bfin_init_builtins): Initialize it.
16337         (bdesc_1arg): Add it.
16338
16339 2008-05-15  Sa Liu  <saliu@de.ibm.com>
16340
16341         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
16342         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
16343         * testsuite/lib/target-supports.exp: Add
16344         check_effective_target_fortran_integer_16.
16345
16346 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
16347
16348         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
16349         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
16350         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
16351         (TARGET_RETURN_IN_MEMORY): Define.
16352
16353 2008-05-15  Richard Guenther  <rguenther@suse.de>
16354
16355         PR middle-end/36244
16356         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
16357         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
16358         represent unmodifiable vars.
16359
16360 2008-05-15  Richard Guenther  <rguenther@suse.de>
16361
16362         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
16363         INDIRECT_REF and TARGET_MEM_REF.
16364         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
16365         TARGET_MEM_REF.
16366
16367 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
16368             H.J. Lu  <hongjiu.lu@intel.com>
16369
16370         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
16371         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
16372         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
16373         insn alternatives.  Add missing alternatives.
16374         (*vec_concatv2di_rex64_sse4_1): Likewise.
16375         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
16376         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
16377         Require TARGET_SSE.
16378
16379 2008-05-15  Richard Guenther  <rguenther@suse.de>
16380
16381         PR tree-optimization/36009
16382         PR tree-optimization/36204
16383         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
16384         (determine_invariantness_stmt): Record the loop a store is
16385         always executed in.
16386         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
16387         dependency.
16388
16389 2008-05-15  Richard Guenther  <rguenther@suse.de>
16390
16391         PR tree-optimization/34330
16392         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
16393         through the pointer will alias the SMT.
16394
16395 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
16396
16397         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
16398
16399 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
16400
16401         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
16402
16403 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
16404             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
16405
16406         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
16407         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
16408         (vashl_optab): New optab for vector/vector shifts.
16409         (vashr_optab): Ditto.
16410         (vlshr_optab): Ditto.
16411         (vrotl_optab): Ditto.
16412         (vrotr_optab): Ditto.
16413         (optab_subtype): New enum for optab_for_tree_code call.
16414         (optab_for_tree_code): Add enum optab_subtype argument.
16415
16416         * optabs.c (optab_for_tree_code): Take an additional argument to
16417         distinguish between a vector shift by a scalar and vector shift by
16418         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
16419         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
16420         vector shift by a vector.
16421         (expand_widen_pattern_expr): Pass additional argument to
16422         optab_for_tree_code.
16423
16424         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
16425         vrotl_optab, vrotr_optab.
16426
16427         * expr.c (expand_expr_real_1): Update calls to
16428         optab_for_tree_code to distinguish between vector shifted by a
16429         scalar and vector shifted by a vector.
16430         * tree-vectorizer.c (supportable_widening_operation): Ditto.
16431         (supportable_narrowing_operation): Ditto.
16432         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
16433         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
16434         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
16435         (vect_create_epilog_for_reduction): Ditto.
16436         (vectorizable_reduction): Ditto.
16437         (vectorizable_operation): Ditto.
16438         (vect_strided_store_supported): Ditto.
16439         (vect_strided_load_supported): Ditto.
16440         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
16441         * expmed.c (expand_shift): Ditto.
16442
16443         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
16444         scalar type.
16445         (ashr@var{m}3): Ditto.
16446         (vashl@var{m}3): Document new vector/vector shift standard name.
16447         (vashr@var{m}3): Ditto.
16448         (vlshr@var{m}3): Ditto.
16449         (vrotl@var{m}3): Ditto.
16450         (vrotr@var{m}3): Ditto.
16451
16452         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
16453         (PPERM_INVERT): Ditto.
16454         (PPERM_REVERSE): Ditto.
16455         (PPERM_REV_INV): Ditto.
16456         (PPERM_ZERO): Ditto.
16457         (PPERM_ONES): Ditto.
16458         (PPERM_SIGN): Ditto.
16459         (PPERM_INV_SIGN): Ditto.
16460         (PPERM_SRC1): Ditto.
16461         (PPERM_SRC2): Ditto.
16462
16463         * config/i386/sse.md (mulv2di3): Add SSE5 support.
16464         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
16465         allows a memory operand to be the value being added, and split it
16466         to improve vectorization.
16467         (sse5_pmacsdqh_mem): Ditto.
16468         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
16469         (sse5_mulv2div2di3_high): Ditto.
16470         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
16471         (vec_pack_trunc_v4si): Ditto.
16472         (vec_pack_trunc_v2di): Ditto.
16473         (sse5_pcmov_<mode>): Remove code that tried to use use
16474         andps/andnps instead of pcmov.
16475         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
16476         pmacsdqh instructions.
16477         (vec_widen_smult_lo_v4si): Ditto.
16478
16479         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
16480         (PPERM_INVERT): Ditto.
16481         (PPERM_REVERSE): Ditto.
16482         (PPERM_REV_INV): Ditto.
16483         (PPERM_ZERO): Ditto.
16484         (PPERM_ONES): Ditto.
16485         (PPERM_SIGN): Ditto.
16486         (PPERM_INV_SIGN): Ditto.
16487         (PPERM_SRC1): Ditto.
16488         (PPERM_SRC2): Ditto.
16489         (ix86_expand_sse_movcc): Move the SSE5 test after the if
16490         true/false tests.
16491         (ix86_expand_int_vcond): If SSE5 generate all possible integer
16492         comparisons.
16493         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
16494         says ignore whether the last reference is a memory operand.
16495
16496 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
16497             Paolo Bonzini <bonzini at gnu dot org>
16498
16499         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
16500         shift patterns.
16501
16502         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
16503         (vlshr<mode>3): Rename from vlshr<mode>3.
16504         (vashr<mode>3): Rename from vashr<mode>3.
16505         (mulv4sf3): Change the names of vector shift patterns.
16506         (mulv4si3): Ditto.
16507         (negv4sf2): Ditt.
16508
16509         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
16510         shift insns.
16511
16512         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
16513         (SI_SHLHI): Ditto.
16514         (SI_SHL): Ditto.
16515         (SI_SHLI): Ditto.
16516         (SI_ROTH): Ditto.
16517         (SI_ROTHI): Ditto.
16518         (SI_ROT): Ditto.
16519         (SI_ROTI): Ditto.
16520         (SPU_RL_0): Ditto.
16521         (SPU_RL_1): Ditto.
16522         (SPU_RL_2): Ditto.
16523         (SPU_RL_3): Ditto.
16524         (SPU_RL_4): Ditto.
16525         (SPU_RL_5): Ditto.
16526         (SPU_RL_6): Ditto.
16527         (SPU_RL_7): Ditto.
16528         (SPU_SL_0): Ditto.
16529         (SPU_SL_1): Ditto.
16530         (SPU_SL_2): Ditto.
16531         (SPU_SL_3): Ditto.
16532         (SPU_SL_4): Ditto.
16533         (SPU_SL_5): Ditto.
16534         (SPU_SL_6): Ditto.
16535         (SPU_SL_7): Ditto.
16536
16537         * config/spu/spu.md (v): New iterator macro to add v for vector types.
16538         (floatunssidf2_internal): Change vector/vector shift names.
16539         (floatunsdidf2_internal): Ditto.
16540         (mulv8hi3): Ditto.
16541         (ashrdi3): Ditto.
16542         (ashrti3): Ditto.
16543         (cgt_df): Ditto.
16544         (cgt_v2df): Ditto.
16545         (dftsv): Ditto.
16546         (vashl<mode>3): Rename from ashl<mode>3.
16547         (vashr<mode>3): Rename from ashr<mode>3.
16548         (vlshr<mode>3): Rename from lshr<mode>3.
16549         (vrotl<mode>3): Rename from rotl<mode>3.
16550
16551 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
16552
16553         PR target/36224
16554         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
16555         multiply gives the wrong value when doing widening multiplies.
16556         (vec_widen_smult_lo_v4si): Ditto.
16557
16558 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
16559
16560         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
16561         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
16562         emit_library_call_value.
16563         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
16564         * tree.h (ECF_LIBCALL_BLOCK): Removed.
16565         * calls.c (initialize_argument_information, precompute_arguments,
16566         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
16567         (precompute_arguments): Removed flags parameter.
16568         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
16569
16570 2008-05-14  Richard Guenther  <rguenther@suse.de>
16571
16572         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
16573         Make sure to register the store if the use is a PHI_NODE.
16574
16575 2008-05-14  Olivier Hainque  <hainque@adacore.com>
16576
16577         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
16578         memory if the component is to be referenced in BLKmode according
16579         to get_inner_reference.
16580
16581 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
16582
16583         * calls.c (emit_library_call_value_1): Restore code clearing
16584         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
16585
16586 2008-05-14  Olivier Hainque  <hainque@adacore.com>
16587             Nicolas Roche  <roche@adacore.com>
16588
16589         * configure.ac: Add support for a "gcc_subdir" variable in
16590         config-lang.in, to denote a subdirectory where the language/GCC
16591         integration files are to be found.
16592         * configure: Regenerate.
16593
16594 2008-05-14  Ira Rosen  <irar@il.ibm.com>
16595
16596         PR tree-optimization/36098
16597         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
16598         value for the first load in the group in case of a gap.
16599         (vect_build_slp_tree): Check that there are no gaps in loads.
16600
16601 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
16602
16603         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
16604         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
16605         expand_copysign_bit, ): Change call to emit_no_conflict_block to
16606         emit_insn and remove unneeded code to construct extra args.
16607         (emit_no_conflict_block): Removed.
16608         * optabls.h: (emit_no_conflict_block): Removed.
16609         * cse.c (cse_extended_basic_block): Remove search for
16610         REG_NO_CONFLICT note.
16611         * global.c: Removed incorrect comment added in revision 117.
16612         * expr.c (convert_move): Change call to emit_no_conflict_block to
16613         emit_insn.
16614         * recog.c: Change comments so that they do not mention
16615         REG_NO_CONFLICT.
16616         * local_alloc.c (combine_regs): Removed last parameter.
16617         (no_conflict_p): Removed.
16618         (block_alloc): Removed note, no_conflict_combined_regno and set
16619         local vars. Removed all code to process REG_NO_CONFLICT blocks.
16620         (combine_regs): Removed already_dead and code to look for
16621         REG_NO_CONFLICT notes.
16622         * lower_subreg (remove_retval_note): Removed code to look for
16623         REG_NO_CONFLICT block.
16624         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
16625         (resolve_clobber): Remove code to process libcalls that have
16626         REG_NO_CONFLICT notes.
16627         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
16628         case.
16629         * combine.c (can_combine_p, distribute_notes):  Removed
16630         REG_NO_CONFLICT case.
16631         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
16632         to emit_insns.
16633         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
16634         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
16635         Ditto.
16636         * reg-notes.def (NO_CONFLICT): Removed.
16637
16638 2008-05-14  David S. Miller  <davem@davemloft.net>
16639
16640         * config/sparc/sparc.c (sparc_profile_hook): If
16641         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
16642         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
16643         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
16644
16645 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
16646
16647         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
16648
16649 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
16650
16651         PR target/36222
16652         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
16653         and op1 expansion before vector concat to have less live pseudos.
16654
16655 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
16656
16657         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
16658         ix86_expand_vector_set if supported.
16659
16660 2008-05-13  Diego Novillo  <dnovillo@google.com>
16661             Kenneth Zadeck  <zadeck@naturalbridge.com>
16662
16663         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
16664
16665         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
16666         phinodes_print_statistics, init_ssanames, fini_ssanames,
16667         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
16668         release_ssa_name, release_defs, replace_ssa_name_symbol,
16669         ssanames_print_statistics): Move ...
16670         * tree-flow.h: ... here.
16671         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
16672         Use FN instead of cfun.
16673         (make_ssa_name_fn): Rename from make_ssa_name.
16674         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
16675         * tree-flow-inline.h (make_ssa_name): Move from
16676         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
16677         * omp-low.c (expand_omp_parallel):
16678         * tree-flow-inline.h (redirect_edge_var_map_result):
16679         * tree-ssa.c (init_tree_ssa): Add argument FN.
16680         Use it instead of cfun.  Update all users.
16681
16682 2008-05-13  Tom Tromey  <tromey@redhat.com>
16683
16684         PR preprocessor/22168:
16685         * doc/cpp.texi (Top): Update menu.
16686         (Alternatives to Wrapper #ifndef): New node.
16687         (Other Directives): Document deprecation.
16688         (Obsolete Features): Remove menu.
16689         (Assertions): Merge node into Obsolete Features.
16690         (Obsolete once-only headers): Move earlier; rename to Alternatives
16691         to Wrapper #ifndef.
16692         * doc/cppopts.texi: Update.
16693         * c.opt (Wdeprecated): Enable for C and ObjC.
16694         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
16695         (C++ Dialect Options): Move -Wno-deprecated from here to...
16696         (Warning Options): ... here.
16697
16698 2008-05-13  Richard Guenther  <rguenther@suse.de>
16699
16700         PR middle-end/36227
16701         * fold-const.c (fold_sign_changed_comparison): Do not allow
16702         changes in pointer-ness.
16703
16704 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
16705
16706         PR target/24713
16707         * config/sh/sh.c (sh_expand_prologue): Don't clear
16708         RTX_FRAME_RELATED_P for push insns.
16709
16710 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
16711
16712         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
16713
16714 2008-05-12  Anatoly Sokolov <aesok@post.ru>
16715
16716         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
16717         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
16718         Use 'machine->is_leaf' instead of 'leaf_func_p'.
16719
16720 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
16721
16722         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
16723         (*vec_concatv4sf_sse): This.
16724         (*sse2_concatv2si): Renamed to ...
16725         (*vec_concatv2si_sse2): This.
16726         (*sse1_concatv2si): Renamed to ...
16727         (*vec_concatv2si_sse): This.
16728         (*vec_concatv2di_rex): Renamed to ...
16729         (*vec_concatv2di_rex64): This.
16730         (*vec_concatv2si_sse4_1): New.
16731         (*vec_concatv2di_rex64_sse4_1): Likewise.
16732
16733 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
16734
16735         PR rtl-optimization/36111
16736         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
16737         that was created for swappable operands.
16738
16739 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
16740
16741         PR ada/36001
16742         * Makefile.in: Substitute GNATMAKE and GNATBIND.
16743         * configure.ac: Add call to ACX_PROG_GNAT.
16744
16745 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
16746
16747         * optc-gen.awk: Fix comment typo.
16748
16749 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
16750
16751         * pretty-print.c (pp_integer_with_precision): Use
16752         HOST_LONG_LONG_FORMAT.
16753
16754 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
16755
16756         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
16757
16758 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
16759
16760         * config/i386/i386.c (bdesc_ptest): Removed.
16761         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
16762         (bdesc_args): Add __builtin_ia32_ptestz128,
16763         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
16764         (ix86_init_mmx_sse_builtins): Updated.
16765         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
16766         (ix86_expand_builtin): Updated.
16767
16768 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
16769
16770         * tree-cfg.c (valid_fixed_convert_types_p): New function.
16771         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
16772
16773 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
16774
16775         * value-prof.c (interesting_stringop_to_profile): Do not
16776         return early for BUILT_IN_MEMPCPY.
16777
16778 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
16779
16780         * calls.c (expand_call): Don't use callgraph to increase
16781         preferred_stack_boundary.
16782
16783         * cgraph.h (cgraph_rtl_info): Use unsigned on
16784         preferred_incoming_stack_boundary.
16785
16786         * final.c (rest_of_clean_state): Use unsigned on
16787         preferred_stack_boundary.
16788
16789 2008-05-09  Tom Tromey  <tromey@redhat.com>
16790
16791         PR preprocessor/22231:
16792         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
16793         proceeding.
16794
16795 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
16796
16797         PR tree-optimization/36129
16798         * tree-ssa-ccp.c: Include value-prof.h.
16799         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
16800         built-in function was folded to a constant.
16801         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
16802
16803 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
16804             Sebastian Pop  <sebastian.pop@amd.com>
16805
16806         * tree-scalar-evolution.c: Document instantiate_scev.
16807         (instantiate_parameters_1): Renamed instantiate_scev_1.
16808         Don't use the same loop for instantiation_loop and evolution_loop.
16809         (instantiate_scev): New.
16810         (instantiate_parameters): Moved...
16811         (resolve_mixers): Update call to instantiate_scev_1 to pass the
16812         same loop twice.  Maintains the semantics for this function.
16813         * tree-scalar-evolution.h (instantiate_scev): Declare.
16814         (instantiate_parameters): ...here.  Now static inline.
16815         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
16816         instead of resolve_mixers.
16817
16818 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
16819
16820         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
16821
16822 2008-05-09  Tomas Bily  <tbily@suse.cz>
16823
16824         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
16825         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
16826         * tree-ssa-structalias.c (get_constraint_for): Likewise.
16827         * c-common.c (c_common_truthvalue_conversion): Likewise.
16828         * tree-object-size.c (compute_object_offset): Likewise.
16829         * tree-inline.c (estimate_num_insns_1): Likewise.
16830         * varasm.c (const_hash_1, compare_constant, copy_constant)
16831         (compute_reloc_for_constant, output_addressed_constants)
16832         (initializer_constant_valid_p): Likewise.
16833         * c-omp.c (check_omp_for_incr_expr): Likewise.
16834         * gimplify.c (gimplify_expr): Likewise.
16835         * c-typeck.c (c_finish_return): Likewise.
16836         * tree-vectorizer.c (supportable_widening_operation)
16837         (supportable_narrowing_operation): Likewise.
16838         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
16839         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
16840         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
16841         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
16842         (descr_info_loc): Likewise.
16843         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
16844         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
16845         (fold_unary): Likewise.
16846         * builtins.c (get_pointer_alignment): Likewise.
16847         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
16848         (instantiate_parameters_1): Likewise.
16849         * tree.c (expr_align, stabilize_reference): Likewise.
16850         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
16851         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
16852         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
16853         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
16854         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
16855         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
16856         Likewise.
16857         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
16858         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
16859         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
16860         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
16861         (forward_propagate_comparison)
16862         (tree_ssa_forward_propagate_single_use_vars): Likewise.
16863         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
16864         * emit-rtl.c (component_ref_for_mem_expr)
16865         (set_mem_attributes_minus_bitpos): Likewise.
16866         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
16867         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
16868         Likewise.
16869         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
16870         (build_function_call, pointer_diff, build_compound_expr)
16871         (c_finish_return): Likewise.
16872         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
16873         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
16874         Likewise.
16875         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
16876         * expr.c (is_aligning_offset): Likewise.
16877         * tree-ssa-alias.c (is_escape_site): Likewise.
16878         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
16879         (check_all_va_list_escapes): Likewise.
16880         * tree-ssa-loop-ivopts.c (determine_base_object)
16881         (determine_common_wider_type): Likewise.
16882         * dojump.c (do_jump): Likewise.
16883         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
16884         * tree-gimple.c (is_gimple_cast): Likewise.
16885         * fold-const.c (decode_field_reference, )
16886         (fold_sign_changed_comparison, fold_unary, fold_comparison)
16887         (fold_binary): Likewise.
16888         * tree-ssa-alias-warnings.c (find_alias_site_helper)
16889         (already_warned_in_frontend_p): Likewise.
16890         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
16891         * tree.c (really_constant_p, get_unwidened): Likewise.
16892         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
16893         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
16894         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
16895         Likewise.
16896         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
16897         CONVERT_EXPR_P.
16898         (CONVERT_EXPR_P): Define.
16899         (CASE_CONVERT): Define.
16900
16901 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
16902
16903         PR middle-end/36117
16904         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
16905         (delete_unmarked_insns): When deleting a call, call
16906         delete_unreachable_blocks.
16907         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
16908         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
16909
16910 2008-05-08  Richard Guenther  <rguenther@suse.de>
16911
16912         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
16913         (-ftree-salias): Likewise.
16914         (salias-max-implicit-fields): Remove param documentation.
16915         (salias-max-array-elements): Likewise.
16916         * tree-pass.h (pass_create_structure_vars): Remove.
16917         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
16918         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
16919         * tree-ssa-alias.c (create_structure_vars): Remove.
16920         (gate_structure_vars): Likewise.
16921         (pass_create_structure_vars): Likewise.
16922         (gate_build_alias): Likewise.
16923         (pass_build_alias): Adjust to run always and dump the function.
16924         * common.opt (ftree-salias): Hide.
16925         * passes.c (init_optimization_passes): Remove
16926         pass_create_structure_vars, adjust comment.
16927         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
16928         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
16929         * opts.c (decode_options): Do not set flag_tree_salias.
16930         (common_handle_option): Add OPT_ftree_salias to the backward
16931         compatibility section.
16932
16933 2008-05-08  Richard Guenther  <rguenther@suse.de>
16934
16935         * tree-flow-inline.h (var_can_have_subvars): Move ...
16936         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
16937         * tree-flow.h (var_can_have_subvars): Remove.
16938         (push_fields_onto_fieldstack): Remove.
16939         (sort_fieldstack): Likewise.
16940         (struct fieldoff): Move ...
16941         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
16942         alias_set and base_for_components fields.
16943         (sort_fieldstack): Make static.
16944         (push_fields_onto_fieldstack): Likewise.  Remove code that
16945         handles anything but RECORD_TYPEs.  Remove alias_set and
16946         base_for_components handling.
16947         (create_variable_info_for): Adjust.
16948
16949 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
16950
16951         * common.opt (Wframe-larger-than=): Shorten the help message
16952         to one line.
16953         * doc/invoke.texi (Wframe-larger-than=): Add more description.
16954
16955 2008-05-08  Rafael EspÃ\83­ndola  <espindola@google.com>
16956
16957         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
16958         trap.
16959         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
16960         trap and that both operands are gimple values.
16961         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
16962         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
16963         is a fp operation.
16964
16965 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
16966
16967         * read-rtl.c (join_c_conditions): Return the first string if the
16968         two strings are equal.
16969
16970 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
16971
16972         * gensupport.h (pred_data): Add a "num_codes" field.
16973         (add_predicate_code): Declare.
16974         * gensupport.c (add_predicate_code): New function.
16975         (std_pred_table): Add an "allows_const_p" field.
16976         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
16977         Remove the (incomplete) list of such codes from the codes field.
16978         (init_predicate_table): Use add_predicate_code.  Add all
16979         RTX_CONST_OBJs if allows_const_p is true.
16980         * genrecog.c (process_define_predicate): Use add_predicate_code.
16981
16982 2008-05-08  David Daney  <ddaney@avtrex.com>
16983             Richard Sandiford  <rsandifo@nildram.co.uk>
16984
16985         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
16986         special case of constant zero operands.
16987         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
16988         old and new values.  Special case constant zero values.
16989         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
16990         fails.
16991         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
16992         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
16993
16994 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
16995
16996         PR target/36090
16997         * simplify-rtx.c (simplify_plus_minus): Create CONST of
16998         similar RTX_CONST_OBJ before CONST_INT.
16999
17000 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
17001
17002         * stmt.c (expand_stack_restore): Change sa mode if needed.
17003
17004 2008-05-08  Richard Guenther  <rguenther@suse.de>
17005
17006         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
17007         return type to bool.
17008         (ix86_sol10_return_in_memory): Likewise.
17009         (ix86_i386elf_return_in_memory): Likewise.
17010         (ix86_i386interix_return_in_memory): Likewise.
17011         * config/i386/i386.c (ix86_return_in_memory): Likewise.
17012         (ix86_sol10_return_in_memory): Likewise.
17013         (ix86_i386elf_return_in_memory): Likewise.
17014         (ix86_i386interix_return_in_memory): Likewise.
17015
17016 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
17017
17018         PR bootstrap/36180
17019         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
17020         fndecl argument.
17021         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
17022         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
17023         declared in front.
17024
17025 2008-05-08  Richard Guenther  <rguenther@suse.de>
17026
17027         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
17028         * tree-data-ref.h (struct dr_alias): Remove subvars field.
17029         (DR_SUBVARS): Remove.
17030         * tree-dfa.c (dump_subvars_for): Remove.
17031         (debug_subvars_for): Likewise.
17032         (dump_variable): Do not dump subvars.
17033         (remove_referenced_var): Do not remove subvars.
17034         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
17035         (lookup_subvars_for_var): Remove.
17036         (get_subvars_for_var): Likewise.
17037         (get_subvars_at): Likewise.
17038         (get_first_overlapping_subvar): Likewise.
17039         (overlap_subvar): Likewise.
17040         * tree-flow.h (subvar_t): Remove.
17041         (struct var_ann_d): Remove subvars field.
17042         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
17043         argument.  Remove special handling of SFTs.
17044         (compute_tag_properties): Likewise.
17045         (set_initial_properties): Likewise.
17046         (compute_call_clobbered): Likewise.
17047         (count_mem_refs): Likewise.
17048         (compute_memory_partitions): Likewise.
17049         (compute_flow_insensitive_aliasing): Likewise.
17050         (setup_pointers_and_addressables): Likewise.
17051         (new_type_alias): Likewise.
17052         (struct used_part): Remove.
17053         (used_portions): Likewise.
17054         (struct used_part_map): Likewise.
17055         (used_part_map_eq): Likewise.
17056         (used_part_map_hash): Likewise.
17057         (free_used_part_map): Likewise.
17058         (up_lookup): Likewise.
17059         (up_insert): Likewise.
17060         (get_or_create_used_part_for): Likewise.
17061         (create_sft): Likewise.
17062         (create_overlap_variables_for): Likewise.
17063         (find_used_portions): Likewise.
17064         (create_structure_vars): Likewise.
17065         * tree.def (STRUCT_FIELD_TAG): Remove.
17066         * tree.h (MTAG_P): Adjust.
17067         (struct tree_memory_tag): Remove base_for_components and
17068         unpartitionable flags.
17069         (struct tree_struct_field_tag): Remove.
17070         (SFT_PARENT_VAR): Likewise.
17071         (SFT_OFFSET): Likewise.
17072         (SFT_SIZE): Likewise.
17073         (SFT_NONADDRESSABLE_P): Likewise.
17074         (SFT_ALIAS_SET): Likewise.
17075         (SFT_UNPARTITIONABLE_P): Likewise.
17076         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
17077         (union tree_node): Remove sft field.
17078         * alias.c (get_alias_set): Remove special handling of SFTs.
17079         * print-tree.c (print_node): Remove handling of SFTs.
17080         * tree-dump.c (dequeue_and_dump): Likewise.
17081         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
17082         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
17083         * tree-predcom.c (set_alias_info): Do not set subvars.
17084         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
17085         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
17086         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
17087         (add_vars_for_offset): Remove.
17088         (add_virtual_operand): Remove special handling of SFTs.
17089         (add_call_clobber_ops): Likewise.
17090         (add_call_read_ops): Likewise.
17091         (get_asm_expr_operands): Likewise.
17092         (get_modify_stmt_operands): Likewise.
17093         (get_expr_operands): Likewise.
17094         (add_to_addressable_set): Likewise.
17095         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
17096         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
17097         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
17098         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
17099         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
17100         (tree_node_structure): Likewise.
17101         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
17102         handling of SFTs.
17103         (find_what_p_points_to): Likewise.
17104
17105 2008-05-08  Sa Liu  <saliu@de.ibm.com>
17106
17107         * config/spu/spu.md: Fixed subti3 pattern.
17108
17109 2008-05-08  Richard Guenther  <rguenther@suse.de>
17110
17111         PR middle-end/36154
17112         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
17113         sure to create a representative for trailing arrays for PTA.
17114
17115 2008-05-08  Richard Guenther  <rguenther@suse.de>
17116
17117         PR middle-end/36172
17118         * fold-const.c (operand_equal_p): Two objects which types
17119         differ in pointerness are not equal.
17120
17121 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
17122
17123         * calls.c (compute_argument_block_size): Add argument tree fndecl.
17124         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
17125         (emit_library_call_value_1): Add new variable fndecl initialized by
17126         NULL_TREE. It should be the decl type of orgfun, but this information
17127         seems not to be available here, so it uses the default calling abi.
17128         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
17129         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
17130         by TARGET_RETURN_IN_MEMORY.
17131         * config/i386/i386-interix.h: Likewise.
17132         * config/i386/i386.h: Likewise.
17133         * config/i386/i386elf.h: Likewise.
17134         * config/i386/ptx4-i.h: Likewise.
17135         * config/i386/sol2-10.h: Likewise.
17136         * config/i386/sysv4.h: Likewise.
17137         * config/i386/vx-common.h: Likewise.
17138         * config/cris/cris.h: Removed #if 0 clause.
17139         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
17140         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
17141         argument.
17142         (ix86_sol10_return_in_memory): Likewise.
17143         (ix86_i386elf_return_in_memory): New.
17144         (ix86_i386interix_return_in_memory): New.
17145         * config/mt/mt-protos.h (mt_return_in_memory): New.
17146         * config/mt/mt.c: Likewise.
17147         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
17148         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
17149         * config/bfin/bfin.h: Likewise.
17150         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
17151         argument.
17152         * config/bfin/bfin.c: Likewise.
17153         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
17154         * config/alpha/unicosmk.h: Likewise.
17155         * config/i386/cygming.h: Likewise.
17156         * config/iq2000/iq2000.h: Likewise.
17157         * config/mips/mips.h: Likewise.
17158         * config/mn10300/mn10300.h: Likewise.
17159         * config/rs6000/rs6000.h: Likewise.
17160         * config/score/score.h: Likewise.
17161         * config/spu/spu.h: Likewise.
17162         * config/v850/v850.h: Likewise.
17163         * defaults.h: Likewise.
17164         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
17165         * expr.c (emit_block_move): Adjust use of
17166         OUTGOING_REG_PARM_STACK_SPACE.
17167         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
17168         OUTGOING_REG_PARM_STACK_SPACE.
17169         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
17170
17171 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
17172
17173         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
17174         on OMP_RETURN for OMP_FOR.
17175
17176         PR debug/35896
17177         * dwarf2out.c (dw_expand_expr, common_check): Removed.
17178         (fortran_common): New function.
17179         (gen_variable_die): Call fortran_common instead of common_check,
17180         adjust for it returning tree instead of rtx.  Formatting.
17181
17182 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
17183
17184         PR rtl/7335
17185         PR rtl/33826
17186         * see.c (see_copy_insn): Copy new pure const attributes for new call.
17187         * c-decl.c (merge_decls): Ditto.
17188         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
17189         to RTL_CONST_OR_PURE_CALL_P.
17190         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
17191         Initialized DECL_LOOPING_CONST_PURE.
17192         (process_call_operands): Set tree_side_effects properly.
17193         * tree.h (TREE_READONLY_DECL_P): Removed.
17194         (DECL_IS_PURE): Renamed to DECL_PURE_P.
17195         (DECL_LOOPING_OR_CONST_P): New macro.
17196         (struct tree_function_decl): Added looping_const_or_pure_p.
17197         (ECF_*) Renumbered.
17198         (ECF_LOOPING_OR_CONST_P): New macro.
17199         * rtlanal.c (pure_const_p): Removed.
17200         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
17201         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
17202         to RTL_CONST_CALL_P.
17203         * ipa-pure-const.c (pure_const_state_e): Added looping field.
17204         (check_decl, check_tree, check_call, scan_function): Initialize
17205         looping.
17206         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
17207         (static_execute): Set looping true for recursive functions.
17208         Undo setting state to IPA_NEITHER for recursive functions.
17209         * cse.c (cse_insn):
17210         * ifcvt.c (noce_can_store_speculate_p): Changed
17211         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or
17212         RTL_CONST_OR_PURE_CALL_P.
17213         * dse.c (scan_insn): Ditto.
17214         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
17215         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
17216         RTL_CONST_OR_PURE_CALL_P.
17217         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
17218         pure_call_p to RTL_CONST_CALL_P.
17219         * gimplify.c (gimplify_call_expr): Clear side effects for
17220         non-looping pure and constant calls.
17221         * calls.c (emit_call_1): Set rtl flags from ecf flags.
17222         (flags_from_decl_or_type): Set ecf flags from decl flags.
17223         (initialize_argument_information): Turn off
17224         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
17225         Change const to pure if callee_copies is true rather than just
17226         turning off const.
17227         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
17228         way of marking pure calls.
17229         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
17230         Remove hack that was supposed to fix pr7335 and remove old
17231         way of marking pure calls.
17232         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
17233         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
17234         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
17235         RTL_CONST_OR_PURE_CALL_P.
17236         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
17237         * loop-invariant.c (find_exits, find_invariant_bb): Changed
17238         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
17239         * sched-deps.c (schedule_analyze): Ditto.
17240         * rtl.h (struct rtx_def): Use call field, unchanging field, and
17241         return_val field of calls to represent pure and const function info.
17242         (CONST_OR_PURE_CALL_P): Deleted macro.
17243         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
17244         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
17245         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
17246         TREE_READONLY.
17247         * tree-optimize.c (execute_fixup_cfg): Added test for
17248         ECF_LOOPING_CONST_OR_PURE.
17249         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
17250         DECL_PURE_P.
17251         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
17252         effects for looping pure or const calls.
17253         (verify_gimple_expr): Added verification code.
17254         * config/alpha/alpha.c (alpha_legitimize_address,
17255         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
17256         RTL_CONST_CALL_P.
17257         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
17258         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
17259         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
17260         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
17261         RTL_CONST_OR_PURE_CALL_P.
17262         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
17263         and const calls to be deleted.
17264
17265 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
17266
17267         PR target/35714
17268         * config/i386/mmx.md (mmx_subv2sf3): New expander.
17269         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
17270         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
17271         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
17272         to handle nonimmediate operands.
17273         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
17274         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
17275         to handle nonimmediate operands.
17276         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
17277         (mmx_pmulhrwv4hi3): New expander.  Use
17278         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17279         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
17280         (sse2_umulv1siv1di3): New expander.  Use
17281         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17282         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
17283         (mmx_eq<mode>3): New expander.  Use
17284         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17285         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
17286         (mmx_uavgv8qi3): New expander.  Use
17287         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17288         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
17289         (mmx_uavgv4hi3): New expander.  Use
17290         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17291
17292         * config/i386/sse.md
17293         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
17294         to handle nonimmediate operands.
17295         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
17296         to handle nonimmediate operands.
17297         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
17298         to handle nonimmediate operands.
17299         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
17300         to handle nonimmediate operands.
17301         (sse2_unpckhpd_exp): New expander.  Use
17302         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17303         (sse2_unpcklpd_exp): New expander.  Use
17304         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17305         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
17306         to handle nonimmediate operands.
17307         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
17308         to handle nonimmediate operands.
17309         (*sse2_<plusminus_insn><mode>3): Rename from
17310         sse2_<plusminus_insn><mode>3 insn pattern.
17311         (sse2_<plusminus_insn><mode>3): New expander.  Use
17312         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17313         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
17314         (sse2_umulv2siv2di3): New expander.  Use
17315         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17316         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
17317         (sse4_1_mulv2siv2di3): New expander.  Use
17318         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17319         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
17320         (sse2_pmaddwd): New expander.  Use
17321         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17322         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
17323         (sse2_eq<mode>3): New expander.  Use
17324         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17325         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
17326         (sse4_1_eqv2di3): New expander.  Use
17327         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17328         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
17329         (sse2_uavgv16qi3): New expander.  Use
17330         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17331         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
17332         (sse2_uavgv16qi3): New expander.  Use
17333         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17334         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
17335         (sse2_uavgv8hi3): New expander.  Use
17336         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17337         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
17338         (ssse3_pmulhrswv8hi3): New expander.  Use
17339         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17340         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
17341         (ssse3_pmulhrswv4hi3): New expander.  Use
17342         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17343
17344         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
17345         (<sse>_vmmul<mode>3): Ditto.
17346         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
17347         (divv2df3): Ditto.
17348         (ssse3_pmaddubsw128): Use register_operand for operand 1.
17349         (ssse3_pmaddubsw): Ditto.
17350
17351         * config/i386/i386.c (struct_builtin_description)
17352         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
17353         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
17354         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
17355         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
17356         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
17357         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
17358         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
17359         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
17360         (ix86_fixup_binary_operands): Assert that src1
17361         and src2 must have the same mode when swapped.
17362         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
17363         and ix86_binary_operator_ok.  Do not force operands in registers
17364         when optimizing.
17365
17366 2008-05-07  Jan Hubicka  <jh@suse.cz>
17367
17368         * cgraph.c (dump_cgraph_node): Update.
17369         * cgraph.h (cgraph_local_info): Break out inline summary.
17370         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
17371         hook.
17372         * ipa-inline (inline_summary): New accestor function.
17373         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
17374         cgraph_decide_inlining, compute_inline_parameters): Update.
17375         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
17376
17377 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
17378
17379         Cleanup ColdFire scheduling support and add V4 pipeline model.
17380
17381         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
17382         (define_attr cpu): Add cfv4 value.
17383         (define_attr type, define_attr type1): Merge into a single 'type'
17384         attribute.  Update all uses.
17385         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
17386         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
17387         Update all uses.
17388         (define_attr opx_mem, define_attr opy_mem): Remove.
17389         (define_attr op_mem): Clean up, update comment.
17390         (define_attr size): Use specific values instead of general int.
17391         (define_attr guess, define_attr split): Remove.  Update all uses.
17392         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
17393         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
17394         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
17395         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
17396         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
17397         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
17398         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
17399         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
17400         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
17401         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
17402         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
17403         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
17404         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
17405         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
17406         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
17407         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
17408         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
17409         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
17410         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
17411         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
17412         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
17413         Update or set attributes.
17414         (stack_tie): New fake instruction.
17415
17416         * config/m68k/m68k.h (TUNE_CFV4): New macro.
17417         (m68k_sched_attr_size): Update declaration.
17418         (m68k_sched_attr_type2): Remove.
17419         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
17420         Declare new bypass predicates.
17421
17422         * config/m68k/m68k.c (m68k_sched_issue_rate,
17423         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
17424         implementations.
17425         (TARGET_SCHED_ISSUE_RATE,
17426         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
17427         (override_options): Handle scheduling for ColdFire V4 core.
17428         (m68k_expand_prologue): Emit stack_tie.
17429         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
17430         'OP_TYPE_FPN'.  Update all uses.
17431         (sched_guess_p): Remove.
17432         (sched_address_type): Handle symbolic addresses.
17433         (sched_get_operand): New static function.
17434         (sched_operand_type): Merge into sched_attr_op_type.
17435         (sched_attr_op_type): Handle FP registers, handle quick constants,
17436         update.
17437         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
17438         (m68k_sched_attr_size): Update.  Move logic to ...
17439         (sched_get_attr_size_int): New static function.
17440         (sched_get_opxy_mem_type): New static function.
17441         (m68k_sched_attr_op_mem): Update.
17442         (m68k_sched_attr_type2): Remove.
17443         (sched_cfv4_bypass_data): New static variable.
17444         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
17445         (m68k_sched_issue_rate): Implement scheduler hook.
17446         (struct _sched_ib: enabled_p): New field.
17447         (m68k_sched_variable_issue): Update.  Handle V4.
17448         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
17449         sched_dump_class_func_t, sched_dump_split_class,
17450         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
17451         sched_dump_dfa_class, m68k_sched_dump): Remove.
17452         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
17453         hook.
17454         (m68k_sched_init_global): Remove statisctics dumping, introduce
17455         sanity check that all instructions have pipeline reservations.  Handle
17456         ColdFire V4 core.
17457         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
17458         Handle ColdFire V4 core.
17459         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
17460         New static functions.
17461         (m68k_sched_address_bypass_p): New bypass predicate.
17462         (sched_get_indexed_address_scale): New static function.
17463         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
17464
17465         * cf.md: Update comments.
17466         (define_attr type2): Remove.  Use 'type' attribute instead.
17467         Update all uses.
17468         (cf_ib): Rename to cfv123_ib.  Update all uses.
17469         (cf_oep): Rename to cfv123_oep.  Update all uses.
17470         (cf_chr): Rename to cfv123_chr.  Update all uses.
17471         (cf_mem): Rename to cfv123_mem.  Update all uses.
17472         (cf_mac): Move to more appropriate place.
17473         (cfv123_guess): New automaton and cpu_unit.
17474         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
17475         Update uses of 'size' attribute.  Handle before reload scheduling.
17476         (cfv123_guess): New dummy reservation for unhandled instructions.
17477         (cfv4_*): Pipeline description of ColdFire V4 core.
17478         (ignore): New reservation to handle 'ignore' type.
17479
17480 2008-05-07  Ian Lance Taylor  <iant@google.com>
17481
17482         PR middle-end/36013
17483         * gimplify.c (find_single_pointer_decl_1): Don't look through
17484         indirections.
17485         (find_single_pointer_decl): Adjust comments.
17486
17487 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
17488
17489         PR middle-end/36137
17490         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
17491         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
17492
17493         PR middle-end/36106
17494         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
17495         integral type rather than floating point, then VIEW_CONVERT_EXPR
17496         to the floating point type.
17497
17498 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
17499
17500         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
17501         TFmode op0 to register.
17502
17503 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
17504
17505         * c-decl.c (grokdeclarator): Comment typo.
17506
17507 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
17508
17509         * tree-flow.h: Remove prototype for computed_goto_p.
17510         * tree-cfg.c (computed_goto_p): Make static.
17511
17512 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
17513
17514         PR target/35657
17515         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
17516         (contains_aligned_value_p): This.  Handle _Decimal128.
17517         (ix86_function_arg_boundary): Only align _Decimal128 to its
17518         natural boundary and handle it properly.
17519
17520 2008-05-06  Martin Jambor  <mjambor@suse.cz>
17521
17522         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
17523         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
17524         (ipcp_method_set_orig_node): Removed.
17525         (ipcp_cval_get_cvalue_type): Removed.
17526         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
17527         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
17528         (ipcp_cval_set_cvalue_type): Removed.
17529         (ipcp_cval_get_cvalue): Removed.
17530         (ipcp_cval_set_cvalue): Removed.
17531         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
17532         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
17533         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
17534         (ipcp_cval_meet): Renamed to ipa_lattice_meet
17535         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
17536         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
17537         (ipcp_get_ith_lattice): Changed parameters.
17538         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
17539         (ipcp_lattice_from_jfunc): Changed parameters.
17540         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
17541         (ipcp_method_cval_print): Added temporary variable info.
17542         (ipcp_redirect): Removed already unused local variable caller.
17543         (ipcp_redirect): New temporary variable orig_callee_info
17544         (ipcp_redirect): Removed newly unused local variable callee.
17545         (ipcp_redirect): Removed (a bit confusing) local variable type.
17546         (ipcp_insert_stage): Added local variable info.
17547         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters
17548         renamed too
17549         (ipcp_formal_create): Removed.
17550         (ipcp_method_cval_set): Removed.
17551         (ipcp_propagate_stage): Renamed lattice variables.
17552         (ipcp_method_cval_set_cvalue_type): Removed.
17553         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
17554         (ipcp_print_all_lattices): Changed printed strings to refer to
17555         lattices rather than cvals.
17556         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
17557         (ipcp_propagate_const): Changed formal parameters.
17558         (build_const_val): Changed formal parameters.
17559         (ipcp_insert_stage): Removed useless variable cvalue
17560         (build_const_val): Changed formal parameters.
17561         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
17562         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
17563         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
17564         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
17565         (ipcp_print_func_profile_counts): Changed string from "method" to
17566         "function"
17567         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
17568         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
17569         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
17570         (ipcp_structures_print): Renamed to ipcp_print_all_structures
17571         (ipcp_profile_print): Renamed to ipcp_print_profile_data
17572         (ipcp_lat_is_const): Changed parameters and made inline.
17573         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
17574         (ipcp_redirect): Renamed to ipcp_need_redirect_p
17575         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using
17576         the predicate condition directly
17577         (ipcp_propagate_stage): Added local variable args. Removed local
17578         variable callee.  (Both are mere code simplifications.)
17579         (ipcp_method_dont_insert_const): Renamed to
17580         ipcp_node_not_modifiable_p.
17581         (ipcp_node_not_modifiable_p): Made inline.
17582         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
17583         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
17584         (ipcp_print_all_lattices): Removed variable cvalue
17585         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
17586         Updated comments.
17587
17588 2008-05-06  Olivier Hainque  <hainque@adacore.com>
17589
17590         * tree-sra.c (try_instantiate_multiple_fields): Early return
17591         if field has POINTER_TYPE.
17592
17593 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
17594
17595         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
17596         by using 'q' specifier for instruction.
17597         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
17598
17599 2008-05-06  Anatoly Sokolov <aesok@post.ru>
17600
17601         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
17602         Change mode of zero_extract from QImode to HImode.
17603         (sign bit tests peepholes): (Ditto.).
17604
17605 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
17606
17607         * config/i386/mmx.md: Remove double backslashes from asm templates.
17608         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
17609         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
17610         to handle nonimmediate operands.
17611         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
17612         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
17613         to handle nonimmediate operands.
17614         (*mmx_<code>v2sf3_finite): New insn pattern.
17615         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
17616         (mmx_<code>v2sf3): New expander.  Use
17617         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17618         (mmx_<plusminus_insn><mode>3): New expander.  Use
17619         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17620         (*mmx_<plusminus_insn><mode>3): New insn pattern.
17621         (mmx_add<mode>3): Removed.
17622         (mmx_ssadd<mode>3): Ditto.
17623         (mmx_usadd<mode>3): Ditto.
17624         (mmx_sub<mode>3): Ditto.
17625         (mmx_sssub<mode>3): Ditto.
17626         (mmx_ussub<mode>3): Ditto.
17627         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
17628         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
17629         to handle nonimmediate operands.
17630         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
17631         insn pattern.
17632         (mmx_smulv4hi3_highpart): New expander.  Use
17633         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17634         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
17635         insn pattern.
17636         (mmx_umulv4hi3_highpart): New expander.  Use
17637         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17638         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
17639         (mmx_<code>v4hi3): New expander.  Use
17640         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17641         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
17642         (mmx_<code>v8qi3): New expander.  Use
17643         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17644         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
17645         (mmx_<code><mode>3): New expander.  Use
17646         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17647
17648 2008-05-05  Jan Hubicka  <jh@suse.cz>
17649
17650         PR tree-optimization/36118
17651         * passes.c (pass_init_dump_file): Fix dump header.
17652
17653 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
17654
17655         PR middle-end/36141
17656         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
17657         VCE for function decls.
17658
17659 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
17660
17661         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
17662
17663 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
17664
17665         * config/i386/i386.md (sat_plusminus): New.
17666         (plusminus_insn): Likewise.
17667         (plusminus_mnemonic): Likewise.
17668         (addsub): Removed.
17669         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
17670         (*<addsub><mode>3_cc_overflow): Renamed to ...
17671         (*<plusminus_insn><mode>3_cc_overflow): This.
17672         (*<addsub>si3_zext_cc_overflow): Renamed to ...
17673         (*<plusminus_insn>si3_zext_cc_overflow): This.
17674
17675         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
17676         (<plusminus_insn><mode>3): This.
17677         (*<addsub><mode>3): Renamed to ...
17678         (*<plusminus_insn><mode>3): This.
17679         (<sse>_vm<addsub><mode>3): Renamed to ...
17680         (<sse>_vm<plusminus_insn><mode>3): This.
17681         (sse3_h<addsub>v4sf3): Renamed to ...
17682         (sse3_h<plusminus_insn>v4sf3): This.
17683         (sse3_h<addsub>v2df3): Renamed to ...
17684         (sse3_h<plusminus_insn>v2df3): This.
17685         (<plusminus_insn><mode>3): New.
17686         (*<plusminus_insn><mode>3): Likewise.
17687         (sse2_<plusminus_insn><mode>3): Likewise.
17688         (add<mode>): Removed.
17689         (*add<mode>3): Likewise.
17690         (sse2_ssadd<mode>3): Likewise.
17691         (sse2_usadd<mode>3): Likewise.
17692         (sub<mode>3): Likewise.
17693         (*sub<mode>3): Likewise.
17694         (sse2_sssub<mode>3): Likewise.
17695         (sse2_ussub<mode>3): Likewise.
17696
17697 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
17698
17699         * gthr-single.h: Add in required interface elements as per gthr.h.
17700         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
17701         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
17702         Generalize UNUSED macro.
17703         (__gthread_once): Add.
17704         (__gthread_key_create): Add.
17705         (__gthread_key_delete): Add.
17706         (__gthread_getspecific): Add.
17707         (__gthread_setspecific): Add.
17708
17709 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
17710
17711         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
17712         the same size types for the indirect reference on the rhs, then
17713         create a VCE.
17714
17715 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
17716
17717         * config/i386/i386.md
17718         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
17719         one insn template instead of template series.
17720         (*xordi_1_rex64): Ditto.
17721         (*xordi_2_rex64): Ditto.
17722
17723 2008-05-05  Ira Rosen  <irar@il.ibm.com>
17724
17725         PR tree-optimization/36119
17726         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
17727         in case of SLP.
17728
17729 2008-06-04  Jan Hubicka  <jh@suse.cz>
17730
17731         tree-optimization/36100
17732         * tree-pass.h (pass_O0_always_inline): Declare.
17733         * ipa-inline.c (inline_transform): Remove dead code.
17734         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
17735         pass_O0_always_inline): New.
17736         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
17737
17738 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
17739
17740         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
17741         mnemonic in this_param move for TARGET_64BIT.
17742
17743 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
17744
17745         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
17746         (*strmovsi_rex_1): Ditto.
17747         (*strsetsi_1): Ditto.
17748         (*strsetsi_rex_1): Ditto.
17749
17750         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
17751         adddicc expanders using SWI mode iterator.
17752
17753 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
17754
17755         PR target/36121
17756         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
17757         argument handling.
17758
17759 2008-05-04  David S. Miller  <davem@davemloft.net>
17760
17761         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
17762         (sparc*-*-linux*): Use linux.h in tm_file.
17763         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
17764         compiler defaulting to 32-bit.
17765         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
17766         no longer needed.
17767         * config/sparc/linux.h: Remove definitions now obtained
17768         properly from linux.h
17769         * config/sparc/linux64.h: Likewise.
17770         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
17771         don't want this setting for 32-bit builds in a biarch compiler.
17772         * doc/install.texi: Add sparc-linux to list of targets
17773         supporting --enable-targets=all.
17774
17775 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
17776
17777         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
17778
17779 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
17780
17781         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
17782         after V4SI_FTYPE_V8HI.
17783         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
17784         case V4SI_FTYPE_V2DF.
17785
17786 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
17787
17788         * doc/invoke.texi (max-flow-memory-locations): Removed.
17789         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
17790
17791 2008-05-03  Richard Guenther  <rguenther@suse.de>
17792
17793         PR middle-end/34973
17794         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
17795
17796 2008-05-02  David S. Miller  <davem@davemloft.net>
17797
17798         * config.gcc (need_64bit_hwint): Document libcpp dependency.
17799
17800 2008-05-02  Simon Baldwin <simonb@google.com>
17801
17802         PR bootstrap/36108
17803         * c-common.h (warn_array_subscript_range): Removed.
17804         * c-common.c (warn_array_subscript_range): Ditto.
17805         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
17806         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
17807
17808 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
17809
17810         * config/i386/i386.c (ix86_special_builtin_type): New.
17811         (bdesc_special_args): Likewise.
17812         (ix86_expand_special_args_builtin): Likewise.
17813         (ix86_init_mmx_sse_builtins): Updated.
17814         (ix86_expand_builtin): Updated.
17815         (ix86_expand_store_builtin): Removed.
17816         (ix86_expand_unop_builtin): Likewise.
17817
17818         * config/i386/mm3dnow.h (__v2sf): Moved to ...
17819         * config/i386/mmintrin.h (__v2sf): Here.
17820
17821         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
17822         const __v2sf.
17823         (_mm_loadl_pi): Likewise.
17824         (_mm_storeh_pi): Replace __v2si with __v2sf.
17825         (_mm_storel_pi): Likewise.
17826
17827         * doc/extend.texi: Correct __builtin_ia32_loadhps,
17828         __builtin_ia32_loadlps, __builtin_ia32_storehps,
17829         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
17830         __builtin_ia32_loadlpd.
17831
17832 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
17833
17834         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
17835         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
17836         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
17837         (ix86_init_mmx_sse_builtins): Updated.
17838         (ix86_expand_args_builtin): Likewise.
17839         (ix86_expand_builtin): Likewise.
17840         (ix86_expand_unop1_builtin): Renamed to ...
17841         (ix86_expand_unop_vec_merge_builtin): This.
17842
17843 2008-05-01  Jan Hubicka  <jh@suse.cz>
17844
17845         PR bootstrap/36100
17846         * ipa-inline.c (inline_generate_summary): Make static.
17847         (inline_transform): Do not call inlining at -O0; make static.
17848         * passes.c (execute_todo): Add sanity check.
17849         (execute_one_ipa_transform_pass): Execute proper flags.
17850
17851 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
17852
17853         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
17854         (DECL_NONADDRESSABLE_P): Likewise.
17855         * alias.c (record_component_aliases): Fix comment.
17856
17857 2008-05-01  Simon Baldwin <simonb@google.com>
17858
17859         * c-common.h (warn_array_subscript_range): New function.
17860         * c-common.c (warn_array_subscript_range): Ditto.
17861         * tree-vrp.c (check_array_ref): Corrected code to agree with
17862         comment, ignoring only arrays of size 0 or size 1.
17863         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
17864
17865 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
17866
17867         * config/i386/i386.c (ix86_builtin_type): Replace
17868         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
17869         (bdesc_args): Updated.
17870         (ix86_init_mmx_sse_builtins): Likewise.
17871         (ix86_expand_args_builtin): Likewise.
17872
17873         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
17874         with __v1di.
17875
17876         * doc/extend.texi: Correct __builtin_ia32_palignr.
17877
17878 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
17879
17880         PR target/36095
17881         * config/i386/i386.c (bdesc_crc32): Removed.
17882         (ix86_expand_crc32): Likewise.
17883         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
17884         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
17885         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
17886         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
17887         UINT_FTYPE_UINT_UCHAR.
17888         (bdesc_args): Updated. Add crc32 builtins.
17889         (ix86_init_mmx_sse_builtins): Updated.
17890         (ix86_expand_args_builtin): Updated to support subreg.
17891
17892         * doc/extend.texi: Correct __builtin_ia32_crc32di.
17893
17894 2008-05-01  Jan Hubicka  <jh@suse.cz>
17895
17896         * tree-pass.h (opt_pass): Add IPA_PASS.
17897         (varpool_node, cgraph_node): Forward declare.
17898         (ipa_opt_pass): Define.
17899         (pass_ipa_inline): Turn into ipa_opt_pass.
17900         (pass_apply_inline): Remove.
17901         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
17902         (apply_inline): Turn into ....
17903         (inline_transform): ... this one.
17904         (inline_generate_summary): New function.
17905         (pass_apply_inline): Remove.
17906         * function.h (ipa_opt_pass): Forward declare structure; typedef;
17907         vector.
17908         (struct function): Add ipa_transforms_to_apply.
17909         * passes.c (register_one_dump_file): Work on IPA_PASS.
17910         (init_optimization_passes): Remove pass_inline_parameters and
17911         pass_apply_inline.
17912         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
17913         (execute_one_pass) ... here; apply transforms when possible.
17914         (add_ipa_transform_pass, execute_ipa_summary_asses,
17915         execute_one_ipa_transform_pass): New.
17916         (execute_ipa_pass_list): Update for IPA_PASS type.
17917
17918 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
17919
17920         * config/i386/i386.c (ix86_builtin_type): Add
17921         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
17922         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
17923         (bdesc_args): Add SSE4a builtins.
17924         (ix86_init_mmx_sse_builtins): Updated.
17925         (ix86_expand_args_builtin): Likewise.
17926         (ix86_expand_builtin): Likewise.
17927
17928 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
17929
17930         * config/i386/i386.c (ix86_builtin_type): Add
17931         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
17932         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
17933         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
17934         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
17935         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
17936         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
17937         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
17938         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
17939         and DI_FTYPE_DI_DI_INT.
17940         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
17941         (ix86_init_mmx_sse_builtins): Updated.
17942         (ix86_expand_args_builtin): Likewise.
17943         (ix86_expand_builtin): Likewise.
17944         (ix86_expand_binop_imm_builtin): Removed.
17945
17946         * doc/extend.texi: Correct __builtin_ia32_palignr128.
17947
17948 2008-04-30  Richard Guenther  <rguenther@suse.de>
17949
17950         PR tree-optimization/32921
17951         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
17952
17953 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
17954
17955         * config/arm/arm.c (arm_unwind_emit): Use
17956         crtl->all_throwers_are_sibcalls instead of
17957         cfun->all_throwers_are_sibcalls.
17958         (arm_output_fn_unwind): Likewise.
17959         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
17960         instead of cfun->uses_pic_offset_table.
17961         (frv_expand_prologue): Likewise.
17962         (frv_frame_pointer_required): Likewise.
17963         (frv_expand_fdpic_call): Likewise.
17964         (frv_emit_movsi): Likewise.
17965         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
17966         cfun->returns_pcc_struct instead of
17967         current_function_returns_pcc_struct.
17968         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
17969         instead of cfun->calls_eh_return.
17970         (m32c_pushm_popm): Likewise.
17971         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
17972         "extern" declaration.
17973
17974 2008-04-30  Richard Guenther  <rguenther@suse.de>
17975
17976         PR tree-optimization/21636
17977         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
17978         constant address.
17979         (evaluate_stmt): Print the likely value.
17980         (ccp_visit_stmt): Avoid excessive vertical spacing.
17981
17982 2008-04-30  Rafael EspÃ\83­ndola  <espindola@google.com>
17983
17984         * builtins.c (fold_call_expr): Return realret.
17985         * tree-ssa-threadedge.c
17986         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
17987         __builtin_object_size.
17988
17989 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
17990
17991         * gcc.c (wrapper_string): New variable.
17992         (insert_wrapper): New function.
17993         (execute): New option -wrapper.
17994         * doc/invoke.texi (Overall Options): New driver option -wrapper.
17995
17996 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
17997
17998         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
17999         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
18000         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
18001         from...
18002         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
18003         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
18004         config/rs6000/e500crtres64gprctr.asm,
18005         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
18006         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
18007         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
18008         config/rs6000/e500crtsav64gprctr.asm,
18009         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
18010         config/rs6000/e500crtsavg64gprctr.asm: New files.
18011         * config/rs6000/t-ppccomm: Add build rules for new files.
18012         (LIB2FUNCS_STATIC_EXTRA): Add new files.
18013         * config/rs6000/t-netbsd: Add build rules for new files.
18014         (LIB2FUNCS_STATIC_EXTRA): New variable.
18015         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
18016         (CRTSAVRES_DEFAULT_SPEC): Likewise.
18017         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
18018
18019 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
18020
18021         * config/i386/i386.c (ix86_builtin_type): Add
18022         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
18023         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
18024         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
18025         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
18026         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
18027         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
18028         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
18029         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
18030         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
18031         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
18032         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
18033         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
18034         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
18035         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
18036         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
18037         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
18038         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
18039         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
18040         V1DI_FTYPE_V2SI_V2SI.
18041         (bdesc_2arg): Moved to ...
18042         (bdesc_args): Here.
18043         (ix86_init_mmx_sse_builtins): Updated.
18044         (ix86_expand_args_builtin): Updated.  Take a pointer
18045         to const struct builtin_description.  Handle comparison
18046         builtin functions.
18047         (ix86_expand_sse_compare): Take a new argument for swapping operands.
18048         (ix86_expand_builtin): Updated.
18049
18050         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
18051         (ssse3_pmaddubsw128): This.
18052         (ssse3_pmaddubswv4hi3): Renamed to ...
18053         (ssse3_pmaddubsw): This.
18054
18055         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
18056         (__builtin_ia32_packssdw128): Likewise.
18057         (__builtin_ia32_packuswb128): Likewise.
18058         (__builtin_ia32_pmaddubsw): Likewise.
18059         (__builtin_ia32_pmaddubsw128): Likewise.
18060
18061 2008-04-30  Richard Guenther  <rguenther@suse.de>
18062
18063         PR tree-optimization/14847
18064         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
18065         (recognize_bits_test): Use it.
18066         (recognize_single_bit_test): Likewise.
18067
18068 2008-04-30  Martin Jambor  <mjambor@suse.cz>
18069
18070         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
18071         instead of setting number of formal parameters to zero.
18072         (ipcp_init_stage): Do not set the number of actual parameters to zero
18073         either.
18074         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
18075         which are called with variable number of arguments.
18076         (ipcp_insert_stage): Explicitely skipping all nodes which are
18077         called with variable number of arguments.
18078         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible
18079         number of parameters.
18080
18081         * ipa-prop.h (struct ipa_node_params): Added flag
18082         called_with_var_arguments
18083         (ipa_set_param_count): Added.  Changed sole setter to use it.
18084         (ipa_get_param_count): Added.  All readers of param_count
18085         converted to use it instead.
18086         (ipa_set_called_with_variable_arg): Added.
18087         (ipa_is_called_with_var_arguments): Added.
18088         (ipa_get_ith_param): Added.  All readers of param_decls converted
18089         to use it instead.
18090         (ipa_set_cs_argument_count): Added, sole writer to argument_count
18091         changed to use it.
18092         (ipa_get_cs_argument_count): Added, all readers of argument_count
18093         changed to cal it.
18094         (ipa_get_ith_jump_func): Added. Accessors of jump values changed
18095         to use it.
18096
18097         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
18098         (struct ipcp_lattice): Renamed cval_type to type
18099         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
18100
18101         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
18102         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
18103         (ipcp_insert_stage): Changed the type of variable cvalue to tree
18104         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
18105         (build_const_val): Changed the type of parameter cvalue to tree
18106         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
18107         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
18108
18109         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called
18110         constant
18111
18112         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
18113         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
18114         (ipa_add_method): Renamed to ipa_push_func_to_list
18115         (ipa_remove_method): Renamed to ipa_pop_func_from_list
18116         (ipa_callsite_param_count): Removed.
18117         (ipa_callsite_param_count_set): Removed.
18118         (ipa_callsite_param): Removed.
18119         (ipa_callsite_callee): Removed.
18120         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
18121         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
18122         (ipa_method_formal_count): Removed.
18123         (ipa_method_formal_count_set): Removed.
18124         (ipa_method_get_tree): Removed.
18125         (ipa_method_tree_map_create): Removed.
18126         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
18127         (ipa_create_param_decls_array): Creates the array itself
18128         (ipa_create_param_decls_array): Temporary variable info instead of
18129         a few dereferences.
18130         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
18131         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
18132         (get_type): Removed.
18133         (ipa_jf_get_info_type): Removed.
18134         (ipa_node_create): Renamed to ipa_create_node_params
18135         (ipa_free): Renamed to ipa_free_all_node_params
18136         (ipa_nodes_create): Renamed to ipa_create_all_node_params
18137         (ipa_edges_create): Renamed to ipa_create_all_edge_args
18138         (ipa_edges_free): Renamed to ipa_free_all_edge_args
18139         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
18140         (ipa_free_all_node_params): Deallocation to jump_functions moved to
18141         ipa_free_all_edge_args
18142         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
18143         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
18144         (ipa_create_methodlist_node): Removed.
18145         (ipa_methodlist_method): Removed.
18146         (ipa_methodlist_method_set): Removed.
18147         (ipa_methodlist_next_method): Removed.
18148         (ipa_methodlist_next_method_set): Removed.
18149         (ipa_method_is_modified): Removed.
18150         (ipa_method_modify_create): Removed.
18151         (ipa_method_modify_init): Temporary variable info instead of a few
18152         dereferences.
18153         (ipa_detect_param_modifications): Temporary variable info instead of
18154         a few dereferences.
18155         (ipa_compute_jump_functions): Temporary variable info instead of
18156         a few dereferences.
18157         (ipa_method_modify_set): Removed.
18158         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
18159         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather
18160         than craph_node as the first parameter.
18161         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
18162         (ipa_method_modify_init): Removed.
18163         (ipa_compute_jump_functions): Added a temp variable instead of
18164         repeatadly dereferencing the cgraph_edge.aux pointer
18165         (ipa_callsite_param_set_type): Removed.
18166         (ipa_compute_jump_functions): i renamed to index and moved to
18167         an inner block
18168         (ipa_callsite_param_set_info_type_formal): Removed.
18169         (ipa_callsite_param_set_info_type): Removed.
18170         (ipa_callsite_param_map_create): Removed.
18171         (ipa_callsite_tree): Removed.
18172         (ipa_callsite_caller): Removed.
18173         (ipa_pop_func_from_list): return_method removed to return_func
18174
18175         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
18176         prefixed all values with IPA_. Changed all users.
18177         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN,
18178         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF
18179         and FORMAL_IPATYPE IPA_PASS_THROUGH.
18180         (union parameter_info): Renamed to jump_func_value.
18181         (union jump_func_value): Renamed value to constant
18182         (struct ipa_jump_func): Renamed info_type to value
18183         (struct ipa_node): Renamed to ipa_node_params
18184         (struct ipa_node_params): Renamed ipa_arg_num to param_count
18185         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
18186         (struct ipa_node_params): Renamed ipa_mod to modified_flags
18187         (struct ipa_edge): Renamed to ipa_edge_args
18188         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
18189         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
18190         (struct ipa_methodlist): Renamed to ipa_func_list
18191         (struct ipa_func_list): method_p renamed to node, next_method
18192         renamed to next
18193         (ipa_methodlist_p): Removed, switched all users to struct pointer
18194         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
18195
18196 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
18197
18198         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
18199         (rs6000_emit_epilogue): Use backchain to restore only when we
18200         have a large frame.  Make use of frame pointer to restore if we
18201         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
18202
18203 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
18204
18205         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
18206         Add mode to zero_extract.
18207         (sign bit tests peepholes): (Ditto.).
18208
18209 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
18210
18211         * config/i386/i386.c (ix86_builtins): Replace Prescott New
18212         Instructions in comments with SSE3.
18213         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
18214         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
18215         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
18216         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
18217         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
18218         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
18219         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
18220         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
18221         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
18222         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
18223         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
18224         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
18225         (bdesc_sse_args): Renamed to ...
18226         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
18227         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
18228         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
18229         IX86_BUILTIN_FABSQ.
18230         (bdesc_1arg): Moved to ...
18231         (bdesc_args): Here.
18232         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
18233         Instructions in comments with SSE3.
18234         (ix86_expand_sse_operands_builtin): Renamed to ...
18235         (ix86_expand_args_builtin): This.  Updated.
18236         (ix86_expand_unop1_builtin): Update comments.
18237         (ix86_expand_builtin): Updated.
18238
18239 2008-04-29  Richard Guenther  <rguenther@suse.de>
18240
18241         PR tree-optimization/36078
18242         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
18243         Update virtual SSA form after cleaning up the CFG.
18244
18245 2008-04-29  Richard Guenther  <rguenther@suse.de>
18246
18247         PR middle-end/15255
18248         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
18249
18250 2008-04-29  Richard Guenther  <rguenther@suse.de>
18251
18252         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
18253         (compute_may_aliases): Do not call finalize_ref_all_pointers.
18254         (compute_flow_insensitive_aliasing): Do not treat
18255         PTR_IS_REF_ALL pointers special.
18256         (get_smt_for): Likewise.
18257         (may_alias_p): Re-structure.
18258         (is_escape_site): A ref-all pointer conversion is not an escape site.
18259         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
18260         PTR_IS_REF_ALL pointers special.
18261         * tree-ssa-structalias.h (struct alias_info): Remove
18262         ref_all_symbol_mem_tag field.
18263         (PTR_IS_REF_ALL): Remove.
18264
18265 2008-04-29  Richard Guenther  <rguenther@suse.de>
18266
18267         PR middle-end/36077
18268         * fold-const.c (extract_muldiv_1): In combining division constants
18269         make sure to never overflow.
18270
18271 2008-04-29  Nick Clifton  <nickc@redhat.com>
18272
18273         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
18274
18275 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18276
18277         PR bootstrap/35169
18278         * optc-gen.awk: Work around HP-UX/IA awk bug.
18279
18280 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
18281
18282         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
18283         2008-04-25 commit.
18284
18285 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
18286
18287         PR target/36073
18288         * config/i386/i386.md
18289         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
18290         Change operand 1 predicate to nonimmediate_operand.
18291
18292 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
18293
18294         PR debug/36060
18295         * dwarf2out.c (struct die_struct): Mark as chain_circular through
18296         die_sub field.
18297         * gengtype.c (walk_type, write_func_for_structure): Handle
18298         chain_circular.
18299         * doc/gty.texi: Document chain_circular.
18300
18301 2008-04-28  Richard Guenther  <rguenther@suse.de>
18302
18303         PR tree-optimization/36066
18304         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
18305         SCEV and loop.
18306
18307 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
18308
18309         PR target/36064
18310         * config/i386/i386.md
18311         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
18312         Use match_scratch instead of match_operand for operands 3 and 4.
18313
18314 2008-04-27  Richard Guenther  <rguenther@suse.de>
18315
18316         PR tree-optimization/18754
18317         PR tree-optimization/34223
18318         * tree-pass.h (pass_complete_unrolli): Declare.
18319         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
18320         loop size before and after unconditionally of UL_NO_GROWTH in effect.
18321         Rewrite loop into loop closed SSA form if it is not already.
18322         (tree_unroll_loops_completely): Re-structure to iterate over
18323         innermost loops with intermediate CFG cleanups.
18324         Unroll outermost loops only if requested or the code does not grow
18325         doing so.
18326         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
18327         loops are available.
18328         (tree_vectorize): Instead do so here.
18329         (tree_complete_unroll): Also unroll outermost loops.
18330         (tree_complete_unroll_inner): New function.
18331         (gate_tree_complete_unroll_inner): Likewise.
18332         (pass_complete_unrolli): New pass.
18333         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
18334         uses outside of the loop.
18335         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
18336         form if it is available.
18337         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
18338         * passes.c (init_optimization_passes): Schedule complete inner
18339         loop unrolling pass before the first CCP pass after final inlining.
18340
18341 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
18342
18343         * targhooks.h (default_emutls_var_fields,
18344         default_emutls_var_init): Declare.
18345         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
18346         * target.h (struct gcc_target): Add struct emutls member.
18347         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
18348         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
18349         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
18350         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
18351         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
18352         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
18353         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
18354         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
18355         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
18356         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
18357         emit debug information.
18358         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
18359         * varasm.c: Include targhooks.h.
18360         (emutls_object_section, emutls_tmpl_section): New.
18361         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
18362         (EMUTLS_SEPARATOR): New.
18363         (prefix_name): New.
18364         (get_emutls_object_name): New.
18365         (default_emutls_var_fields): New, broken out of ...
18366         (get_emutls_object_type): ... here.  Adjust to use target hooks.
18367         (get_emutls_init_templ_addr): Adjust to use target hooks.
18368         (emutls_decl): Adjust to use target hooks.
18369         (emutls_finish): Likewise.
18370         (default_emutls_var_init): New, broken out of ...
18371         (assemble_variable): ... here.  Adjust to use target hooks.
18372         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
18373         SECCAT_EMUTLS_TMPL.
18374         * c-common.c (handle_section_attribute): Prevent overriding
18375         sections for emulated tls with special sections.
18376         * config/i386/i386.c (x86_64_elf_select_section): Add
18377         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
18378         (x86_64_elf_unique_section): Likewise.
18379         * config/vxworks.c: Include tree.h.
18380         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
18381         (vxworks_override_options): Set TLS scheme.
18382         * doc/tm.texi (Emulated TLS): New node.
18383
18384 2008-04-26  Simon Baldwin <simonb@google.com>
18385
18386         PR c/35652
18387         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
18388         with propagated string constants.
18389
18390 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
18391
18392         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
18393         constraint for operand 2 when operand 0 is memory operand.
18394         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
18395         operand 0 is memory operand.
18396         (fix_trunc<mode>_i387_with_temp): Ditto.
18397         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
18398         operand 2 when operand 1 is memory operand.
18399         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
18400         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
18401         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
18402         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
18403         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
18404         operands 2,3 and 4 when operand 1 is memory operand.
18405         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
18406         is memory operand.
18407         (fistdi2_floor_with_temp): Ditto.
18408         (fist<mode>2_floor_with_temp): Ditto.
18409         (fistdi2_ceil_with_temp): Ditto.
18410         (fist<mode>2_ceil_with_temp): Ditto.
18411         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
18412
18413 2008-04-26  David Daney  <ddaney@avtrex.com>
18414
18415         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
18416         unspec_volitile.
18417         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
18418         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
18419         UNSPEC_UPDATE_GOT_VERSION): Renumber.
18420         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
18421         (compare_and_swap_12): New insn.
18422         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
18423         * config/mips/mips.c (mips_force_binary): New function.
18424         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
18425         (mips_expand_compare_and_swap_12): New function.
18426         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
18427
18428 2008-04-25  Jan Hubicka  <jh@suse.cz>
18429
18430         PR testsuite/35843
18431         * cfgexpand.c (pass_expand): Turn into RTL pass.
18432         * passes.c (execute_one_pass): Do pass typechecking after execution.
18433         * tree-pass.h (pass_expand): Turn into RTL pass.
18434
18435         * function.h (struct rtl_data): Move here fields
18436         accesses_prior_frames, calls_eh_return, saves_all_registers,
18437         has_nonlocal_goto, has_asm_statement, is_thunk,
18438         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
18439         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
18440         arg_pointer_save_area_init from struct function; turn into bool.
18441         (struct function): Move
18442         calls_eh_return, saves_all_registers, has_nonlocal_goto,
18443         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
18444         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
18445         tail_call_emit, arg_pointer_save_area_init
18446         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
18447         (current_function_returns_struct, current_function_returns_pcc_struct,
18448         current_function_calls_setjmp, current_function_calls_alloca,
18449         current_function_accesses_prior_frames,
18450         current_function_calls_eh_return, current_function_is_thunk,
18451         current_function_stdarg, current_function_profile,
18452         current_function_limit_stack, current_function_uses_pic_offset_table,
18453         current_function_uses_const_pool, current_function_has_nonlocal_label,
18454         current_function_saves_all_registers,
18455         current_function_has_nonlocal_goto,
18456         current_function_has_asm_statement): Remove accesor macros.
18457         * ra-conflict.c (global_conflicts): Update.
18458         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
18459         (suitable_for_tail_call_opt_p): Update.
18460         * builtins.c (expand_builtin_return_addr): Update.
18461         (expand_builtin_setjmp_setup): Update.
18462         (expand_builtin_nonlocal_goto): Update.
18463         * final.c (final_start_function): Update.
18464         (profile_function): Update.
18465         (leaf_function_p): Update.
18466         (only_leaf_regs_used): Update.
18467         * df-scan.c (df_get_exit_block_use_set): Update.
18468         * dojump.c (clear_pending_stack_adjust): Update.
18469         * tree-stdarg.c (gate_optimize_stdarg): Update.
18470         * gimple-low.c (lower_function_body): Update.
18471         * global.c (compute_regsets): Update.
18472         (global_alloc): Update.
18473         * dwarf2out.c (dwarf2out_begin_prologue): Update.
18474         * expr.c (expand_assignment): Update.
18475         * dse.c (dse_step0): Update.
18476         (dse_step1): Update.
18477         * c-decl.c (store_parm_decls): Update.
18478         * local-alloc.c (combine_regs): Update.
18479         (find_free_reg): Update.
18480         * function.c (assign_parms_augmented_arg_list): Update.
18481         (assign_parm_find_data_types): Update.
18482         (assign_parms): Update.
18483         (allocate_struct_function): Update.
18484         (expand_function_start): Update.
18485         (expand_function_end): Update.
18486         (get_arg_pointer_save_area): Update.
18487         (thread_prologue_and_epilogue_insns): Update.
18488         (rest_of_match_asm_constraints): Update.
18489         * stor-layout.c (variable_size): Update.
18490         * gcse.c (gcse_main): Update.
18491         (bypass_jumps): Update.
18492         * gimplify.c (gimplify_function_tree): Update.
18493         * calls.c (emit_call_1): Update.
18494         (expand_call): Update.
18495         * bt-load.c (compute_defs_uses_and_gen): Update.
18496         * except.c (sjlj_assign_call_site_values): Update.
18497         (sjlj_emit_function_enter): Update.
18498         (can_throw_external): Update.
18499         (set_nothrow_function_flags): Update.
18500         (expand_builtin_unwind_init): Update.
18501         (expand_eh_return): Update.
18502         (convert_to_eh_region_ranges): Update.
18503         (output_function_exception_table): Update.
18504         * emit-rtl.c (gen_tmp_stack_mem): Update.
18505         * cfgexpand.c (expand_used_vars): Update.
18506         (tree_expand_cfg): Update.
18507         * cfgcleanup.c (rest_of_handle_jump): Update.
18508         * explow.c (allocate_dynamic_stack_space): Update.
18509         * varasm.c (assemble_start_function): Update.
18510         (force_const_mem): Update.
18511         (mark_constant_pool): Update.
18512         * tree-optimize.c (tree_rest_of_compilation): Update.
18513         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
18514         * tree-cfg.c (notice_special_calls): Update.
18515         (is_ctrl_altering_stmt): Update.
18516         (tree_can_make_abnormal_goto): Update.
18517         (tree_purge_dead_abnormal_call_edges): Update.
18518         * config/alpha/predicates.md: Update.
18519         * config/alpha/alpha.c (alpha_sa_mask): Update.
18520         (alpha_sa_size): Update.
18521         (alpha_does_function_need_gp): Update.
18522         (alpha_expand_prologue): Update.
18523         (alpha_start_function): Update.
18524         (alpha_output_function_end_prologue): Update.
18525         (alpha_expand_epilogue): Update.
18526         * config/frv/frv.c (frv_stack_info): Update.
18527         (frv_expand_epilogue): Update.
18528         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
18529         (s390_register_info): Update.
18530         (s390_frame_info): Update.
18531         (s390_init_frame_layout): Update.
18532         (s390_can_eliminate): Update.
18533         (save_gprs): Update.
18534         * config/spu/spu.c (spu_split_immediate): Update.
18535         (need_to_save_reg): Update.
18536         (spu_expand_prologue): Update.
18537         (spu_expand_epilogue): Update.
18538         * config/sparc/sparc.md: Update.
18539         * config/sparc/sparc.c (eligible_for_return_delay): Update.
18540         (sparc_tls_got): Update.
18541         (legitimize_pic_address): Update.
18542         (sparc_emit_call_insn): Update.
18543         (sparc_expand_prologue): Update.
18544         (output_return): Update.
18545         (print_operand): Update.
18546         (sparc_function_ok_for_sibcall): Update.
18547         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
18548         * config/m32r/m32r.md: Update.
18549         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
18550         (m32r_compute_frame_size): Update.
18551         (m32r_expand_prologue): Update.
18552         (m32r_expand_epilogue): Update.
18553         (m32r_legitimize_pic_address): Update.
18554         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
18555         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
18556         * config/i386/i386.c (ix86_frame_pointer_required): Update.
18557         (gen_push): Update.
18558         (ix86_save_reg): Update.
18559         (ix86_compute_frame_layout): Update.
18560         (ix86_expand_prologue): Update.
18561         (ix86_expand_epilogue): Update.
18562         * config/sh/sh.c (output_stack_adjust): Update.
18563         (calc_live_regs): Update.
18564         (sh5_schedule_saves): Update.
18565         (sh_expand_prologue): Update.
18566         (sh_expand_epilogue): Update.
18567         (sh_setup_incoming_varargs): Update.
18568         (sh_allocate_initial_value): Update.
18569         (sh_get_pr_initial_val): Update.
18570         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
18571         * config/sh/sh.md (label:): Update.
18572         * config/avr/avr.c (out_movhi_mr_r): Update.
18573         * config/crx/crx.h (enum): Update.
18574         * config/xtensa/xtensa.h (along): Update.
18575         * config/stormy16/stormy16.c Update.
18576         (xstormy16_compute_stack_layout): Update.
18577         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
18578         (fr30_expand_prologue): Update.
18579         * config/cris/cris.c (cris_conditional_register_usage): Update.
18580         (cris_reg_saved_in_regsave_area): Update.
18581         (cris_initial_frame_pointer_offset): Update.
18582         (cris_simple_epilogue): Update.
18583         (cris_expand_prologue): Update.
18584         (cris_expand_epilogue): Update.
18585         (cris_expand_pic_call_address): Update.
18586         (cris_asm_output_symbol_ref): Update.
18587         (cris_asm_output_label_ref): Update.
18588         * config/cris/cris.md Update.
18589         * config/iq2000/iq2000.c (compute_frame_size): Update.
18590         (iq2000_expand_epilogue): Update.
18591         * config/mt/mt.h (save_direction): Update.
18592         * config/mn10300/mn10300.c (mn10300_function_value): Update.
18593         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
18594         (ia64_secondary_reload_class): Update.
18595         * config/m68k/m68k.c (m68k_save_reg): Update.
18596         (m68k_expand_prologue): Update.
18597         (m68k_expand_epilogue): Update.
18598         (legitimize_pic_address): Update.
18599         * config/rs6000/rs6000.c (rs6000_got_register): Update.
18600         (first_reg_to_save): Update.
18601         (first_altivec_reg_to_save): Update.
18602         (compute_vrsave_mask): Update.
18603         (compute_save_world_info): Update.
18604         (rs6000_stack_info): Update.
18605         (spe_func_has_64bit_regs_p): Update.
18606         (rs6000_ra_ever_killed): Update.
18607         (rs6000_emit_eh_reg_restore): Update.
18608         (rs6000_emit_allocate_stack): Update.
18609         (rs6000_emit_prologue): Update.
18610         (rs6000_emit_epilogue): Update.
18611         (rs6000_output_function_epilogue): Update.
18612         (output_profile_hook): Update.
18613         (rs6000_elf_declare_function_name): Update.
18614         * config/rs6000/rs6000.h (rs6000_args): Update.
18615         * config/rs6000/rs6000.md: Update.
18616         * config/mcore/mcore.c (mcore_expand_prolog): Update.
18617         * config/arc/arc.c (arc_output_function_epilogue): Update.
18618         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
18619         * config/darwin.c (machopic_function_base_name): Update.
18620         * config/score/score3.c (score3_compute_frame_size): Update.
18621         (rpush): Update.
18622         (rpop): Update.
18623         (score3_epilogue): Update.
18624         * config/score/score7.c (score7_compute_frame_size): Update.
18625         (score7_prologue): Update.
18626         (score7_epilogue): Update.
18627         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
18628         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
18629         * config/arm/arm.c (use_return_insn): Update.
18630         (require_pic_register): Update.
18631         (arm_load_pic_register): Update.
18632         (arm_compute_save_reg0_reg12_mask): Update.
18633         (arm_compute_save_reg_mask): Update.
18634         (thumb1_compute_save_reg_mask): Update.
18635         (output_return_instruction): Update.
18636         (arm_output_function_prologue): Update.
18637         (arm_output_epilogue): Update.
18638         (arm_get_frame_offsets): Update.
18639         (arm_expand_prologue): Update.
18640         (thumb_pushpop): Update.
18641         (thumb_exit): Update.
18642         (thumb1_expand_prologue): Update.
18643         (thumb1_expand_epilogue): Update.
18644         (arm_unwind_emit): Update.
18645         (arm_output_fn_unwind): Update.
18646         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
18647         * config/arm/arm.md: Update.
18648         * config/pa/pa.md: Update.
18649         * config/pa/pa.c (legitimize_pic_address): Update.
18650         (compute_frame_size): Update.
18651         (hppa_expand_prologue): Update.
18652         (hppa_expand_epilogue): Update.
18653         (borx_reg_operand): Update.
18654         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
18655         (HARD_REGNO_RENAME_OK): Update.
18656         * config/mips/mips.c (mips_global_pointer): Update.
18657         (mips_save_reg_p): Update.
18658         (mips_compute_frame_info): Update.
18659         (mips_frame_pointer_required): Update.
18660         (mips_expand_prologue): Update.
18661         (mips_expand_epilogue): Update.
18662         (mips_can_use_return_insn): Update.
18663         (mips_reorg_process_insns): Update.
18664         * config/v850/v850.c (compute_register_save_size): Update.
18665         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
18666         * config/mmix/mmix.c (along): Update.
18667         (mmix_expand_epilogue): Update.
18668         * config/bfin/bfin.c (legitimize_pic_address): Update.
18669         (must_save_p): Update.
18670         (stack_frame_needed_p): Update.
18671         (add_to_reg): Update.
18672         (bfin_expand_prologue): Update.
18673         * stmt.c (expand_asm_operands): Update.
18674         * reload1.c (reload): Update.
18675         (init_elim_table): Update.
18676
18677 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
18678
18679         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
18680
18681 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
18682
18683         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
18684         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
18685         (mov<mode>): Removed.
18686         (*movv4sf_internal): Likewise.
18687         (*movv2df_internal): Likewise.
18688
18689 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
18690
18691         * config.gcc (crx-*-elf): Remove deprecation.
18692
18693 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
18694
18695         * config/i386/cygming-crtend.c (register_frame_ctor): Register
18696         __gcc_deregister_frame with atexit.
18697         (deregister_frame_dtor): Remove.
18698
18699 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
18700             Nathan Sidwell  <nathan@codesourcery.com>
18701
18702         * config/rs6000/rs6000.opt (mspe): Remove Var property.
18703         (misel): Likewise.
18704         * config/rs6000/rs6000.h (rs6000_spe): Declare.
18705         (rs6000_isel): Likewise.
18706         * config/rs6000/rs6000.c (rs6000_spe): New variable.
18707         (rs6000_isel): New variable.
18708         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
18709
18710 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
18711
18712         PR c++/35758
18713         * c-common.c (handle_vector_size_attribute): Call
18714         lang_hooks.types.reconstruct_complex_type instead of
18715         reconstruct_complex_type.
18716         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
18717         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
18718         * langhooks.h (struct lang_hooks_for_types): Add
18719         reconstruct_complex_type hook.
18720         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
18721         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
18722
18723 2008-04-24  Richard Guenther  <rguenther@suse.de>
18724
18725         * c-common.h (check_builtin_function_arguments): Declare.
18726         * c-common.c (validate_nargs): New function.
18727         (check_builtin_function_arguments): Likewise.
18728         * c-typeck.c (build_function_call): Call
18729         check_builtin_function_arguments.
18730         * builtins.c (fold_builtin_classify): Remove error reporting code.
18731         (fold_builtin_unordered_cmp): Likewise.
18732         (fold_builtin_1): Likewise.
18733         (fold_builtin_n): Likewise.
18734
18735 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
18736
18737         PR tree-optimization/36008
18738         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
18739         the original op1, rather than delta by step.
18740
18741 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
18742             Sebastian Pop  <sebastian.pop@amd.com>
18743
18744         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
18745         eliminate_local_variables_stmt, eliminate_local_variables,
18746         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
18747         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
18748         of code delimited by two edges in the CFG.
18749         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
18750         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
18751         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate
18752         the case of parallelisation of reductions.
18753         (expr_invariant_in_region_p): New.
18754
18755         * tree-flow.h (gather_blocks_in_sese_region): Declared.
18756         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
18757
18758 2008-04-24  Ira Rosen  <irar@il.ibm.com>
18759             Richard Guenther  <rguenther@suse.de>
18760
18761         PR tree-optimization/36034
18762         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
18763         incapable of dealing with loads with gaps.
18764
18765 2008-04-24  Rafael EspÃ\83­ndola  <espindola@google.com>
18766
18767         * tree-flow.h (vrp_evaluate_conditional): Change signature.
18768         * tree-ssa-propagate.c (fold_predicate_in): Update call to
18769         vrp_evaluate_conditional.
18770         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
18771         (vrp_evaluate_conditional): Split the cond argument.
18772         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
18773         (simplify_stmt_for_jump_threading): Update call to
18774         vrp_evaluate_conditional.
18775
18776 2008-04-24  Ira Rosen  <irar@il.ibm.com>
18777
18778         PR tree-optimization/35982
18779         * tree-vect-analyze.c (vect_check_interleaving): Check that the
18780         interleaved data-refs are of the same type.
18781
18782 2008-04-24  Danny Smith  <dannysmith@users.net>
18783
18784         * c-format.c (check_format_info_main): Use strncmp rather than a
18785         magic prefix to handle multichar length specs.
18786         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
18787         Don't prefix "I64" and "I32" with '\0'.
18788
18789 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
18790
18791         PR target/36015
18792         * config/i386/i386.c (init_cumulative_args): Don't pass anything
18793         in registers for -m32 only if stdarg_p (fntype).
18794
18795 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
18796
18797         PR rtl-optimization/36006
18798         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
18799         temp to op0 in order to avoid invalid rtx sharing.
18800
18801 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
18802
18803         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
18804         check TREE_INVARIANT.
18805         * tree-gimple.c (is_gimple_address): New.
18806         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
18807         * tree-gimple.h (is_gimple_address): New.
18808         * tree.h (decl_address_invariant_p): New.
18809         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
18810         (build_string): Likewise.
18811         (decl_address_invariant_p): New, from is_gimple_invariant_address.
18812         (tree_invariant_p_1): Likewise.
18813         (save_expr): Use it.
18814         (tree_invariant_p): New.
18815         (skip_simple_arithmetic): Use it.
18816         (stabilize_reference_1): Use it.
18817         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
18818         simplify.
18819         (build1_stat): Drop code to compute TREE_INVARIANT.
18820         (build2_stat): Drop code to compute TREE_INVARIANT.
18821         (build3_stat): Drop code to compute TREE_INVARIANT.
18822         (build4_stat): Drop code to compute TREE_INVARIANT.
18823         (build5_stat): Drop code to compute TREE_INVARIANT.
18824         (build7_stat): Drop code to compute TREE_INVARIANT.
18825         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
18826         * tree.h (struct tree_base): Remove invariant_flag.
18827         (TREE_INVARIANT): Remove.
18828         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
18829         (fold_builtin_expect): Check TREE_CONSTANT.
18830         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
18831         * c-tree.h (c_expr_to_decl): Drop third parameter.
18832         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
18833         (build_c_cast): Don't set TREE_INVARIANT.
18834         (pop_init_level): Don't set TREE_INVARIANT.
18835         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
18836         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
18837         TREE_CONSTANT.
18838         (gimplify_init_constructor): Don't set TREE_INVARIANT.
18839         (gimplify_addr_expr): Adjust comment.
18840         * tree-mudflap.c (mf_build_string):
18841         * print-tree.c (print_node): Don't print TREE_INVARIANT.
18842         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
18843         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
18844         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
18845         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
18846         * langhooks.h (struct lang_hooks): Drop third parameter from
18847         expr_to_decl.
18848
18849 2008-04-23  Richard Guenther  <rguenther@suse.de>
18850
18851         PR tree-optimization/27799
18852         PR tree-optimization/32921
18853         PR tree-optimization/32624
18854         * tree-ssa-structalias.c (merge_smts_into): Only merge the
18855         SMTs aliases and the tag itself into the solution.
18856         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
18857         merge the points-to solution back into the SMT aliases.
18858         (may_alias_p): Use alias_set_subset_of instead of
18859         aliases_conflict_p.  A pointer which points to
18860         memory with alias set zero may access any variable.
18861
18862 2008-04-23  Richard Guenther  <rguenther@suse.de>
18863
18864         * alias.c (alias_set_subset_of): Correctly handle asking
18865         if zero is a subset of an alias set with zero child.
18866         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
18867         (compute_flow_insensitive_aliasing): Correctly walk all
18868         pointers.  Do not unnecessarily union sets.
18869
18870 2008-04-23  Richard Guenther  <rguenther@suse.de>
18871
18872         PR middle-end/36021
18873         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
18874
18875 2008-04-22  Tomas Bily  <tbily@suse.cz>
18876
18877         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
18878         unreachable case.
18879         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
18880         NON_LVALUE_EXPR.
18881         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
18882         * tree-ssa-structalias.c (get_constraint_for): Likewise.
18883         * tree-inline.c (estimate_num_insns_1): Likewise.
18884         * varasm.c (const_hash_1, compare_constant, copy_constant)
18885         (compute_reloc_for_constant, output_addressed_constants): Likewise.
18886         * emit-rtl.c (component_ref_for_mem_expr)
18887         (set_mem_attributes_minus_bitpos): Likewise.
18888         * expr.c (highest_pow2_factor, expand_expr_real_1, )
18889         (is_aligning_offset): Likewise.
18890         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
18891         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
18892         * dojump.c (do_jump): Likewise.
18893         * builtins.c (get_pointer_alignment, get_memory_rtx)
18894         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
18895         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
18896
18897 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
18898
18899         PR rtl-optimization/36017
18900         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
18901         expanding the library call.
18902
18903 2008-04-22  Ian Lance Taylor  <iant@google.com>
18904
18905         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
18906         than size_in_bytes.
18907
18908 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
18909
18910         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
18911         of LR/CTR moves for Power6.
18912
18913 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
18914
18915         PR middle-end/36003
18916         * passes.c (init_optimization_passes): Remove
18917         pass_fast_rtl_byte_dce.
18918
18919 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
18920
18921         PR target/29096
18922         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
18923         builtin functions to generate faster code.
18924         (_mm_cvtpu16_ps): Ditto.
18925         (_mm_cvtpi32x2_ps): Ditto.
18926
18927 2008-04-22  Nick Clifton  <nickc@redhat.com>
18928
18929         * common.opt (ftree-loop-distribution): Add Optimization
18930         attribute.
18931
18932         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
18933         (frv_expand_builtin_va_start): Likewise.
18934
18935         * config/arm/arm.c (thumb_find_work_register): Fix location of
18936         argument register count.
18937
18938 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
18939
18940         Support scheduling for ColdFire V1 and V3 microarchitecture.
18941         Improve scheduling of multiplication instructions.
18942
18943         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
18944         (mac): New instruction attribute.
18945         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
18946         (m68k_sched_mac): New variable.
18947         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
18948         Handle cfv1 and cfv3.
18949         (max_insn_size): New static variable.
18950         (struct _sched_ib): New type.
18951         (sched_ib): New static variable.
18952         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
18953         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
18954         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
18955         Update.
18956         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
18957         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
18958         new variables.  Update.
18959         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
18960         Add modeling of cfv3 instruction buffer.  Update.
18961         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
18962         * config/m68k/m68k.h (TUNE_CFV3): New macro.
18963         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
18964         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
18965         a particular reservation applies to.
18966         (type2): Reorganize attribute values.  Rename alu to alu_reg,
18967         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
18968         to mul_l and mul_w.
18969         (cf_ib_*): Simplify description of instruction buffer.
18970         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
18971         (cf_mem): Split into cf_mem1 and cf_mem2.
18972         (cf_v2_move_??): Rename to cfv12_alu_??.
18973         (cf_v2_move_l_??): Rename to cfv12_omove_??.
18974         (cf_v2_mul_??): Remove reservations.
18975         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
18976         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
18977         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
18978         appropriate place.
18979         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
18980         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
18981         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
18982         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
18983         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
18984         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
18985         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
18986         expansions of the above reservations for instructions of sizes
18987         1, 2 and 3 words.
18988
18989 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
18990
18991         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
18992
18993 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
18994
18995         * coverage.c: Include tree-pass.h.
18996         (coverage_counter_alloc): Print da_file_name to the dump file.
18997
18998 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
18999
19000         * sbitmap.c (sbitmap_range_empty_p): New function.
19001         * sbitmap.h (sbitmap_range_empty_p): New function.
19002         * bitmap.h: Now includes obstack.h.
19003
19004 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
19005             Kenneth Zadeck  <zadeck@naturalbridge.com>
19006
19007         * dbgcnt.def (ra_byte_scan): Added.
19008         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
19009         when the last hit happens for a counter.
19010         * timevar.def (TV_DF_BYTE_LR): New variable.
19011         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
19012         * passes.c (pass_fast_rtl_byte_dce): New pass.
19013         * fwprop.c (update_df): Added mode to call df_ref_create.
19014         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
19015         DF_REF_EXTRACT_OFFSET.
19016         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN,
19017         DF_BYTE_LR_OUT, df_byte_lr): New macro.
19018         (df_mm): New enum.
19019         (df_ref_extract): Added mode field.
19020         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
19021         DF_REF_EXTRACT_OFFSET.
19022         (DF_REF_EXTRACT_MODE): New macro.
19023         (df_byte_lr_bb_info): New structure.
19024         (df_print_byte_regset, df_compute_accessed_bytes,
19025         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
19026         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
19027         df_byte_lr_simulate_uses,
19028         df_byte_lr_simulate_artificial_refs_at_top,
19029         df_byte_lr_simulate_artificial_refs_at_end,
19030         df_compute_accessed_bytes): New function.
19031         (df_ref_create): Add parameter.
19032         (df_byte_lr_get_bb_info): New inline function.
19033         * df-scan.c (df_ref_record, df_uses_record,
19034         df_ref_create_structure): Added mode parameter.
19035         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1,
19036         df_defs_record, df_uses_record, df_get_conditional_uses,
19037         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
19038         df_entry_block_defs_collect, df_exit_block_uses_collect):
19039         Added mode parameter to calls to df_ref_record, df_uses_record,
19040         df_ref_create_structure.
19041         (df_ref_equal_p, df_ref_compare): Added test for modes.
19042         (df_ref_create_structure): Added code to set mode.  Renamed
19043         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
19044         DF_REF_EXTRACT_OFFSET.
19045         * df-core.c (df_print_byte_regset): New function.
19046         * df-byte-scan.c: New file.
19047         * df-problems.c (df_rd_transfer_function): Removed unnecessary
19048         calls to BITMAP_FREE.
19049         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
19050         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
19051         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info,
19052         df_byte_lr_check_regs, df_byte_lr_expand_bitmap,
19053         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
19054         df_byte_lr_local_compute, df_byte_lr_init,
19055         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
19056         df_byte_lr_transfer_function, df_byte_lr_free,
19057         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
19058         df_byte_lr_add_problem, df_byte_lr_simulate_defs,
19059         df_byte_lr_simulate_uses,
19060         df_byte_lr_simulate_artificial_refs_at_top,
19061         df_byte_lr_simulate_artificial_refs_at_end): New function.
19062         * dce.c (byte_dce_process_block): New function.
19063         (dce_process_block): au is now passed in rather than computed
19064         locally.  Changed loops that look at artificial defs to not look
19065         for conditional or partial ones, because there never are any.
19066         (fast_dce): Now is able to drive byte_dce_process_block or
19067         dce_process_block depending on the kind of dce being done.
19068         (rest_of_handle_fast_dce): Add parameter to fast_dce.
19069         (rest_of_handle_fast_byte_dce): New function.
19070         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
19071         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
19072
19073 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
19074
19075         PR fortran/35019
19076         * gcc.h: Added fortran options that take arguments to
19077         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
19078         macros.
19079
19080 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
19081
19082         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
19083         scalarization if on the LHS and not a full access.
19084
19085 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
19086
19087         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
19088
19089 2008-04-18  Rafael EspÃ\83­ndola  <espindola@google.com>
19090
19091         * tree-vrp.c (find_case_label_index): Fix the binary search.
19092         (find_case_label_range): New.
19093         (vrp_visit_switch_stmt): Use find_case_label_range.
19094         (simplify_switch_using_ranges): Use find_case_label_range.
19095
19096 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
19097
19098         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
19099         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
19100
19101 2008-04-18  Tom Tromey  <tromey@redhat.com>
19102
19103         PR libcpp/15500:
19104         * doc/cpp.texi (Implementation-defined behavior): Mention
19105         -finput-charset.
19106
19107 2008-04-18  Ian Lance Taylor  <iant@google.com>
19108
19109         * fold-const.c (pointer_may_wrap_p): New static function.
19110         (fold_comparison): Add another test for pointer overflow.  Use
19111         pointer_may_wrap_p to disable some false positives.
19112
19113 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
19114
19115         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
19116         (fname_as_string): Match updated cpp_interpret_string prototype.
19117         (fix_string_type): Support char16_t* and char32_t*.
19118         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
19119         derivative) nodes.  Register as builtin if C++0x.
19120         (c_parse_error): Support CPP_CHAR{16,32}.
19121         * c-common.h (RID_CHAR16, RID_CHAR32): New elements.
19122         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
19123         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
19124         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
19125         CTI_CHAR32_ARRAY_TYPE>: New elements.
19126         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
19127         char32_type_node, signed_char32_type_node, char16_array_type_node,
19128         char32_array_type_node): New defines.
19129         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
19130         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
19131         (lex_string): Support CPP_STRING{16,32}, match updated
19132         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
19133         (lex_charconst): Support CPP_CHAR{16,32}.
19134         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
19135         and CPP_STRING{16,32}.
19136
19137 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
19138
19139         PR bootstrap/35457
19140         * aclocal.m4: Regenerate.
19141         * configure: Regenerate.
19142
19143 2008-04-18  Jan Hubicka  <jh@suse.cz>
19144
19145         * except.c (dw2_size_of_call_site_table,
19146         sjlj_size_of_call_site_table): Use vector API for call_site_record.
19147
19148         * cgraphbuild.c (build_cgraph_edges): Update.
19149         * tree-pass.h: Update comment.
19150         * final.c (leaf_function_p): Update.
19151         (leaf_renumber_regs): Update.
19152         (rest_of_clean_state): Update.
19153         * omp-low.c (expand_omp_parallel): Update.
19154         * ipa-reference.c (analyze_function): Update.
19155         * reorg.c (find_end_label): Update.
19156         (optimize_skip): Update.
19157         (fill_simple_delay_slots): Update.
19158         (fill_simple_delay_slots): Update.
19159         (make_return_insns): Update.
19160         (dbr_schedule): Update.
19161         * gimple-low.c (record_vars_into): Update.
19162         * cfgbuild.c (make_edges): Update.
19163         * function.c (assign_stack_local): Update.
19164         (assign_parm_adjust_stack_rtl): Update.
19165         (locate_and_pad_parm): Update.
19166         (allocate_struct_function): Do not initialize stack_alignment_needed
19167         and preferred_stack_boundary here.
19168         (stack_protect_prologue): Update.
19169         (stack_protect_epilogue): Update.
19170         (expand_function_start): Initialize stack_alignment_needed,
19171         preferred_stack_boundary and max_jumptable_ents.
19172         (expand_function_end): Update.
19173         (free_after_compilation): Do not NULLify epilogue_delay_list.
19174         * function.h (struct rtl_data): Add stack_protect_guard,
19175         stack_alignment_needed,
19176         preferred_stack_boundary, epilogue_delay_list.
19177         (struct function): Remove value_histograms, stack_alignment_needed,
19178         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
19179         last_label_uid,
19180         unexpanded_var_list, stack_protect_guard.
19181         (current_function_epilogue_delay_list): Remove.
19182         * ipa-type-escape.c (analyze_function): Update.
19183         * gimplify.c (pop_gimplify_context): Update comment.
19184         * calls.c (expand_call): Update.
19185         (emit_library_call_value_1): Update.
19186         * except.c (set_nothrow_function_flags): Update.
19187         * cfgexpand.c (get_decl_align_unit): Update.
19188         (create_stack_guard): Update.
19189         (estimated_stack_frame_size): Update.
19190         (expand_used_vars): Update.
19191         (tree_expand_cfg): Free histogram earliers, init expansion variables.
19192         * explow.c (allocate_dynamic_stack_space): Update.
19193         * tree-ssa-live.c (remove_unused_locals): Update.
19194         * varasm.c (mark_constant_pool): Update.
19195         * tree-inline.c (remap_decls): Update.
19196         (initialize_cfun): Update.
19197         (declare_return_variable): Update.
19198         (inline_forbidden_p): Update.
19199         (expand_call_inline): Update.
19200         (declare_inline_vars): Update.
19201         (tree_function_versioning): Update.
19202         * tree-flow.h (value_histograms): New.
19203         (VALUE_HISTOGRAMS): New macro.
19204         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
19205         last_label_uid.
19206         * tree-cfg.c (set_bb_for_stmt): Update.
19207         (replace_by_duplicate_decl): Update.
19208         (move_block_to_fn): Update.
19209         (new_label_mapper): Update.
19210         (dump_function_to_file): Update.
19211         * ipa-struct-reorg.c (build_data_structure): Update.
19212         * cfgrtl.c (print_rtl_with_bb): Update.
19213         * reload1.c (reload): Update.
19214         (reload): Update.
19215         * config/i386/i386.c (setup_incoming_varargs_64,
19216         ix86_compute_frame_layout): Update.
19217         * config/arc/arc.c (arc_output_function_epilogue): Update.
19218
19219 2008-04-18  Marius Strobl <marius@FreeBSD.org>
19220
19221         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
19222         for FreeBSD as well.
19223         * gthr-posix95.h: Likewise.
19224
19225 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
19226
19227         PR rtl-optimization/35838
19228         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
19229         out the byte offset of the first subreg.
19230
19231 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
19232
19233         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
19234         to split_ti instead of three separate calls with single member arrays.
19235         (subti3 splitter): Ditto.
19236         (adddi3 splitter): Ditto with split_di.
19237         (subdi3 splitter): Ditto.
19238         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
19239         two separate calls with single member arrays.  Swap match_dup
19240         operands 1 and 2 to better fit into the array.
19241         (negdi2 splitter): Ditto with split_di.
19242         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
19243         two separate calls with single member arrays.  Swap match_dup operands
19244         6 and 7 to better fit into the array.
19245
19246 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
19247
19248         * config/i386/i386.c (sse_builtin_type): New.
19249         (bdesc_sse_args): Likewise.
19250         (bdesc_sse_3arg): Removed.
19251         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
19252         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
19253         IX86_BUILTIN_ROUNDPS.
19254         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
19255         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
19256         IX86_BUILTIN_ROUNDPS.
19257         (ix86_expand_sse_4_operands_builtin): Removed.
19258         (ix86_expand_sse_operands_builtin): New.
19259         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
19260         and CODE_FOR_sse4_1_roundps.
19261         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
19262         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
19263
19264 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
19265
19266         PR target/35907
19267         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
19268         regs before frame pop when needed.  If use_backchain_to_restore_sp
19269         then load backchain into a temp reg to restore vr and vrsave.  Add
19270         code to restore vr after frame pop if possible.
19271
19272 2008-04-17  Richard Guenther  <rguenther@suse.de>
19273
19274         * tree-vn.c (expressions_equal_p): Do not check type
19275         equality or compatibility before calling operand_equal_p.
19276         * fold-const.c (operand_equal_p): Check equivalence of
19277         integer constants before bailing out due to signedness or
19278         precision differences.
19279         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
19280         spurious differences in type qualification.  Ignore types
19281         for COMPONENT_REFs at all.
19282
19283 2008-04-17  Christian Bruel  <christian.bruel@st.com>
19284
19285         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
19286         msw_skip comparison.
19287
19288 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
19289
19290         PR c/35739
19291         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
19292         reg type.
19293
19294         PR tree-optimization/35899
19295         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
19296         rather than TREE_OPERAND.
19297
19298 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
19299
19300         PR target/35944
19301         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
19302         temporary registers.  Change operand predicate to general_operand.
19303         (remainderxf3): Ditto.
19304
19305 2008-04-16  Richard Guenther  <rguenther@suse.de>
19306
19307         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
19308         * tree-affine.c (aff_combination_expand): Look through some
19309         conversions.
19310
19311 2008-04-15  Doug Kwan  <dougkwan@google.com>
19312
19313         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
19314         for hex printing.
19315         * tree-pretty-print.c (dump_generic_node): Ditto.
19316         * final.c (output_addr_const): Ditto.
19317         * dwarf2out.c (output_cfi): Ditto.
19318         * c-pretty-print.c (pp_c_integer_constant): Ditto.
19319         * print-rtl.c (print_rtx): Ditto.
19320         * print-tree.c (print_node_brief, print_node): Ditto.
19321         * c-common.c (match_case_to_enum_1): Ditto.
19322         * sched-vis.c (print_value): Ditto.
19323         * config/i386/i386.c (print_operand): Cast to long unsigned int
19324         for hex printing.
19325
19326 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
19327         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
19328         MS Windows VirtualProtect function.
19329
19330 2008-04-15  Jan Hubicka  <jh@suse.cz>
19331
19332         * gengtype.c (write_root): Param_is argument is OK.
19333         * expr.c (expand_expr_real_1): Update call of get_exception_*.
19334         * function.h: Include varray.h
19335         (rtl_eh): New stucture based on except.c one.
19336         (call_site_record): New forward declaration and vector type.
19337         * calls.c (emit_call_1): Do not call
19338         note_current_region_may_contain_throw.
19339         * except.c (eh_status): Remove cur_region, try_region since they are
19340         unused.
19341         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
19342         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
19343         sjlj_fc, sjlj_exit_after to rth_eh in function.h.
19344         Remove call_site_data_used, call_site_data_size.
19345         Turn call_site_record into vector in function.h.
19346         (note_current_region_may_contain_throw): Remove.
19347         (get_exception_pointer, get_exception_filter): Do not take struct
19348         function argument; update.
19349         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
19350         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
19351         build_post_landing_pads, dw2_build_landing_pads,
19352         sjlj_assign_call_site_values, sjlj_mark_call_sites,
19353         sjlj_emit_function_enter, sjlj_emit_function_enter,
19354         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
19355         sjlj_build_landing_pads, finish_eh_generation,
19356         remove_exception_handler_label, remove_eh_handler,
19357         maybe_remove_eh_handler, add_reachable_handler,
19358         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
19359         add_action_record, collect_one_action_chain, add_call_site,
19360         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
19361         sjlj_output_call_site_table, output_function_exception_table,
19362         * except.h (note_current_region_may_contain_throw): Remove
19363         (get_exception_pointer, get_exception_filter): Do not take struct
19364         function argument.
19365         * Makefile.in (GTFILES): Put varargs before struct function.
19366
19367 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
19368
19369         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
19370         punt for STRING_CST.
19371         (get_constraint_for): Deal with STRING_CST here instead.
19372
19373 2008-04-15  Richard Guenther  <rguenther@suse.de>
19374
19375         * tree-ssa-propagate.c (substitute_and_fold): Substitute
19376         statements in a basic-block with a backward walk.  Do not
19377         substitute into dead statements but instead remove those.
19378
19379 2008-04-15  Richard Guenther  <rguenther@suse.de>
19380
19381         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
19382         to zero, thus disable creation of SFTs.
19383
19384 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
19385
19386         * tree-predcom.c (suitable_reference_p): Return false if the
19387         reference can throw.
19388
19389 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
19390
19391         PR c/35751
19392         * c-decl.c (finish_decl): If extern or static var has variable
19393         size, set TREE_TYPE (decl) to error_mark_node.
19394
19395 2008-04-15  Rafael EspÃ\83­ndola  <espindola@google.com>
19396
19397         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
19398         variable arg1.
19399
19400 2008-04-15  Richard Guenther  <rguenther@suse.de>
19401
19402         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
19403         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
19404         (visit_reference_op_load): Do walk vuse-vdef chains on
19405         vn_reference_lookup.
19406         (visit_reference_op_store): But do not here.
19407         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
19408         vn_reference_lookup.
19409         (vn_lookup_with_vuses): But do so here.
19410
19411 2008-04-14  Ian Lance Taylor  <iant@google.com>
19412
19413         * fold-const.c (fold_overflow_warning): Remove assertion.
19414
19415 2008-04-15  Ben Elliston  <bje@au.ibm.com>
19416
19417         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
19418         temp1 local variables.
19419
19420 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
19421
19422         PR target/35661
19423         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
19424         ".text.unlikely" section as executable.
19425
19426 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
19427
19428         * config/ia64/ia64.c (rtx_needs_barrier): Handle
19429         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
19430         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
19431         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
19432         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
19433         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
19434         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
19435
19436 2008-04-14  Ian Lance Taylor  <iant@google.com>
19437
19438         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
19439         * fold-const.c (fold_comparison): If appropriate, test
19440         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
19441         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
19442         reassociating a pointer type.
19443         * doc/invoke.texi (Optimize Options): Document that
19444         -fstrict-overflow applies to pointer wraparound.
19445
19446 2008-04-13  Jan Hubicka  <jh@suse.cz>
19447
19448         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
19449
19450 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
19451
19452         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
19453         we are going to "save the world".
19454
19455 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
19456
19457         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
19458         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
19459         operand 0 constraint, not "=".
19460
19461 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
19462
19463         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
19464
19465 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
19466
19467         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
19468         of size of positions_needed * CHAR_BIT.
19469
19470 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
19471
19472         PR middle-end/35897
19473         * dse.c (store_info): Change positions_needed to unsigned
19474         HOST_WIDE_INT.
19475         (lowpart_bitmask): New.
19476         (record_store): Cast to unsigned HOST_WIDE_INT for
19477         positions_needed.  Assert width <= size of positions_needed *
19478         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
19479         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
19480         lowpart_bitmask to set mask.
19481
19482 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
19483
19484         * config/bfin/constraints.md: New file.
19485         * config/bfin/bfin.md: Include it.
19486         (adddi3): Use satisfies_constraint functions instead of the old macros.
19487         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
19488         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
19489         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
19490         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
19491         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
19492         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
19493         EXTRA_CONSTRAINT): Delete.
19494         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
19495         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
19496         of the old macros.
19497         * config/bfin/bfin.c: Include "tm-constrs.h".
19498         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
19499         Use satisfies_constraint functions instead of the old macros.
19500         * doc/md.texi (Blackfin Constraints): Update file name reference.
19501
19502 2008-04-11  Richard Guenther  <rguenther@suse.de>
19503
19504         PR tree-optimization/35869
19505         * tree-vrp.c (execute_vrp): Move switch statement update after
19506         jump threading.  Schedule another cfg cleanup run.
19507
19508 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
19509
19510         PR c/35744
19511         * attribs.c (decl_attributes): Return early on errorneous node.
19512
19513 2008-04-10  Oleg Ryjkov  <olegr@google.com>
19514
19515         * tree.h (struct tree_base): Added a new flag default_def_flag.
19516         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
19517
19518 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
19519
19520         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
19521
19522 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19523
19524         PR target/35768
19525         * pa.md: Define mode iterator P.  Define mode attribute dwc.
19526         (dcacheflush): Update pattern to use iterator P and attribute dwc.
19527         (icacheflush): Likewise.
19528         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
19529         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
19530
19531 2008-04-11  Ben Elliston  <bje@au.ibm.com>
19532
19533         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
19534
19535 2008-04-10  Rafael EspÃ\83­ndola  <espindola@google.com>
19536
19537         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
19538         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
19539         (extract_range_from_expr): The same.
19540
19541 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
19542
19543         * config/mips/mips.md (GPR2): New mode iterator.
19544         (seq): Add comment.
19545         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
19546         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
19547         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
19548         Rewrite these to take two modes, the mode of comparison and the
19549         mode of the destination.
19550         * config/mips/mips.c (mips_expand_scc): Instead of having
19551         paradoxical subreg as destination, expand "narrowing" scc if mode
19552         of comparison is SI and target is requested in DI mode.
19553         (mips_emit_int_order_test): Update comment.  Make mode of
19554         comparison match CMP0 rather than TARGET.  When creating inverse
19555         target use mode of TARGET.
19556
19557 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
19558
19559         * gcov-dump.c (tag_summary): Only print summaries for the first
19560         GCOV_COUNTERS_SUMMABLE counters.
19561
19562 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
19563
19564         * config/i386/i386.md (absneg): New code iterator.
19565         (absnegprefix): New code attribute.
19566         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
19567         patterns using absneg code iterator.
19568         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
19569         using absneg code iterator.
19570         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
19571         *neg<mode>2 patterns using absneg code iterator.
19572         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
19573         *negextendsfdf2 patterns using absneg code iterator.
19574         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
19575         *negextendsfxf2 patterns using absneg code iterator.
19576         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
19577         *negextendsfdf2 patterns using absneg code iterator.
19578         * config/i386/sse.md (<code><mode>2): Macroize expander from
19579         abs<mode>2 and neg<mode>2 patterns using absneg code iterator.
19580
19581 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
19582
19583         * config/s390/s390.h: Remove the remains of the recent search
19584         & replace action of current_function_outgoing_args_size.
19585
19586 2008-04-10  Ira Rosen  <irar@il.ibm.com>
19587
19588         PR tree-optimization/35821
19589         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
19590         NEW_STMT_LIST is not NULL.
19591
19592 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
19593
19594         PR libstdc++/35597
19595         * toplev.c (process_options): Remove -ffunction-sections debugging
19596         warning.
19597
19598 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
19599
19600         PR middle-end/PR28690
19601         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
19602         than gen_rtx_fmt_ee to perform more canonicalizations.
19603
19604 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19605
19606         PR driver/35665
19607         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
19608
19609 2008-04-09  Richard Guenther  <rguenther@suse.de>
19610
19611         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
19612         (dump_function_to_file): Dump function arguments with types.
19613
19614 2008-04-08  Richard Guenther  <rguenther@suse.de>
19615
19616         * fold-const.c (fold_widened_comparison): Do not allow
19617         sign-changes that change the result.
19618
19619 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
19620
19621         PR target/35839
19622         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
19623         kinds of indirect references.
19624
19625 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
19626
19627         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
19628         GNU Fortran language string.
19629
19630 2008-04-08  Rafael EspÃ\83­ndola  <espindola@google.com>
19631
19632         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
19633         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
19634         * tree.h (tree_call_nonnegative_warnv_p): New.
19635
19636 2008-04-08  Jan Hubicka  <jh@suse.cz>
19637
19638         * function.c (free_after_compilation): Clear out regno_reg_rtx
19639         pointer.
19640
19641 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
19642
19643         Revert
19644         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
19645
19646         PR middle-end/PR28690
19647         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
19648         same precedence as REG_POINTER and MEM_POINTER operands.
19649
19650 2008-04-08  Richard Guenther  <rguenther@suse.de>
19651
19652         PR middle-end/35834
19653         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
19654         for adding index to base.
19655
19656 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
19657
19658         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
19659         (MINGW_ENABLE_EXECUTE_STACK): New.
19660         (IN_LIBGCC2): For libgcc include windows.h file for
19661         function declarations.
19662
19663 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
19664
19665         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
19666         and tem2 if tem1 is not a REG or MULT.
19667
19668 2008-04-08  Jan Hubicka  <jh@suse.cz>
19669
19670         * function.h (incomming_args): Break out of struct function.
19671         (function_subsections): Break out of struct function.
19672         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
19673         return_rtx and hard_reg_initial_vals from struct function.
19674         Kill inl_max_label_num.
19675         (current_function_pops_args, current_function_args_info,
19676         current_function_args_size, current_function_args_size,
19677         current_function_pretend_args_size,
19678         current_function_outgoing_args_size,
19679         current_function_internal_arg_pointer, current_function_return_rtx):
19680         Kill compatibility accestor macros.
19681         * builtins.c (expand_builtin_apply_args_1): Update.
19682         (expand_builtin_next_arg): Update.
19683         * df-scan.c (df_get_call_refs): Update.
19684         * dbxout.c (dbxout_function_end): Update.
19685         * dwarf2out.c (dwarf2out_switch_text_section): Update.
19686         (output_line_info): Update.
19687         (secname_for_decl): Update.
19688         (dwarf2out_var_location): Update.
19689         * function.c (free_after_compilation): Update.
19690         (assign_parm_find_stack_rtl): Update.
19691         (assign_parms): Update.
19692         (expand_dummy_function_end): Update.
19693         (expand_function_end): Update.
19694         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
19695         (expand_call): Update.
19696         (emit_library_call_value_1): Update.
19697         (store_one_arg): Update.
19698         * varasm.c (initialize_cold_section_name): Update.
19699         (unlikely_text_section): Update.
19700         (unlikely_text_section_p): Update.
19701         (assemble_start_function): Update.
19702         (assemble_end_function): Update.
19703         (default_section_type_flags): Update.
19704         (switch_to_section): Update.
19705         * integrate.c (set_decl_abstract_flags): Update.
19706         (get_hard_reg_initial_val): Update.
19707         (has_hard_reg_initial_val): Update.
19708         (allocate_initial_values): Update.
19709         * resource.c (init_resource_info): Update.
19710         * config/alpha/alpha.c (NUM_ARGS): Update.
19711         (direct_return): Update.
19712         (alpha_va_start): Update.
19713         (alpha_sa_size): Update.
19714         (alpha_initial_elimination_offset): Update.
19715         (alpha_expand_prologue): Update.
19716         (alpha_start_function): Update.
19717         (alpha_expand_epilogue): Update.
19718         (unicosmk_initial_elimination_offset):
19719         * config/alpha/alpha.md (call expander): Update.
19720         * config/s390/s390.c (s390_register_info): Update.
19721         (s390_register_info): Update.
19722         (s390_frame_info): Update.
19723         (s390_initial_elimination_offset): Update.
19724         (s390_build_builtin_va_list): Update.
19725         (s390_va_start): Update.
19726         * config/spu/spu.c (direct_return): Update.
19727         (spu_expand_prologue): Update.
19728         (spu_initial_elimination_offset): Update.
19729         (spu_build_builtin_va_list): Update.
19730         (spu_va_start): Update.
19731         * config/sparc/sparc.c (sparc_init_modes): Update.
19732         (sparc_compute_frame_size): Update.
19733         (function_value): Update.
19734         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
19735         * config/i386/i386.md (return expander): Update.
19736         * config/i386/i386.c (ix86_va_start): Update.
19737         (ix86_can_use_return_insn_p): Update.
19738         (ix86_compute_frame_layout): Update.
19739         (ix86_expand_epilogue): Update.
19740         * config/sh/sh.c (output_stack_adjust): Update.
19741         (calc_live_regs): Update.
19742         (sh_expand_prologue): Update.
19743         (sh_builtin_saveregs): Update.
19744         (sh_va_start): Update.
19745         (initial_elimination_offset): Update.
19746         (sh_allocate_initial_value): Update.
19747         (sh_function_ok_for_sibcall): Update.
19748         (sh_get_pr_initial_val): Update.
19749         * config/sh/sh.md (return expander): Update.
19750         * config/avr/avr.c (frame_pointer_required_p): UPdate.
19751         * config/crx/crx.c (crx_compute_frame): UPdate.
19752         (crx_initial_elimination_offset): UPdate.
19753         * config/xtensa/xtensa.c (compute_frame_size): Update
19754         (xtensa_builtin_saveregs): Update.
19755         (xtensa_va_start): Update.
19756         (order_regs_for_local_alloc): Update.
19757         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
19758         (xstormy16_expand_builtin_va_start): Update.
19759         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
19760         * config/m68hc11/m68hc11.md (return expanders): Update.
19761         * config/m68hc11/m68hc11.c (expand_prologue): Update.
19762         (expand_epilogue): Update.
19763         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
19764         (cris_simple_epilogue): Update.
19765         (cris_expand_prologue): Update.
19766         (cris_expand_epilogue): Update.
19767         * config/iq2000/iq2000.c (iq2000_va_start): Update.
19768         (compute_frame_size): Update.
19769         * config/mt/mt.c (mt_compute_frame_size): Update.
19770         * config/mn10300/mn10300.c (expand_prologue): Update.
19771         (expand_epilogue): Update.
19772         (initial_offset): Update.
19773         (mn10300_builtin_saveregs):
19774         * config/mn10300/mn10300.md (return expander): Update.
19775         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
19776         (ia64_initial_elimination_offset): Update.
19777         (ia64_initial_elimination_offset): Update.
19778         (ia64_expand_prologue): Update.
19779         * config/m68k/m68k.md (return expander): Update.
19780         * config/rs6000/rs6000.c (rs6000_va_start): Update.
19781         (rs6000_stack_info): Update.
19782         * config/mcore/mcore.c (layout_mcore_frame): Update.
19783         (mcore_expand_prolog): Update.
19784         * config/arc/arc.c (arc_compute_frame_size): Update.
19785         * config/score/score3.c (score3_compute_frame_size): Update.
19786         * config/score/score7.c (score7_compute_frame_size): Update.
19787         * config/arm/arm.c (use_return_insn): Update.
19788         (thumb_find_work_register): Update.
19789         (arm_compute_save_reg_mask): Update.
19790         (arm_output_function_prologue): Update.
19791         (arm_output_epilogue): Update.
19792         (arm_size_return_regs): Update.
19793         (arm_get_frame_offsets): Update.
19794         (arm_expand_prologue): Update.
19795         (thumb_exit): Update.
19796         (thumb_unexpanded_epilogue): Update.
19797         (thumb1_output_function_prologue): Update.
19798         * config/pa/pa.md (return expander): Update.
19799         * config/pa/pa.c (compute_frame_size): Update.
19800         (hppa_builtin_saveregs): Update.
19801         * config/mips/mips.c (mips_va_start): Update.
19802         (mips16_build_function_stub): Update.
19803         (mips_compute_frame_info): Update.
19804         (mips_restore_gp): Update.
19805         (mips_output_function_prologue): Update.
19806         (mips_expand_prologue): Update.
19807         * config/v850/v850.c (compute_frame_size): Update.
19808         (expand_prologue): * config/mmix/mmix.c (along): update.
19809         (mmix_initial_elimination_offset): update.
19810         (mmix_reorg): update.
19811         (mmix_use_simple_return): update.
19812         (mmix_expand_prologue): update.
19813         (mmix_expand_epilogue): Update.
19814         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
19815         (emit_link_insn): Update.
19816
19817 2008-04-08  Anatoly Sokolov <aesok@post.ru>
19818
19819         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define
19820         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL
19821         instructions.
19822         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for
19823         atmega103 device.
19824
19825 2008-04-07  Jan Hubicka  <jh@suse.cz>
19826
19827         * function.h (rtl): Rename to x_rtl.
19828         (crtl): New define.
19829         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
19830         frame_offset, stack_check_probe_note, arg_pointer_save_area,
19831         used_temp_slots avail_temp_slots, temp_slot_level,
19832         nonlocal_goto_handler_labels): Update accesstors.
19833         (rtl): New global variable.
19834         (struct function): Move some fileds to rtl_data.
19835         (get_arg_pointer_save_area): Update prototype.
19836         * builtins.c (expand_builtin_setjmp_receiver): Update call of
19837         get_arg_pointer_save_area.
19838         * expr.c (init_expr): Update
19839         * function.c (get_frame_size): Update
19840         (assign_stack_local): Update
19841         (expand_function_end): Update.
19842         (get_art_pointer_save_area): Update
19843         * function.h
19844         * emit-rtl.c (rtl): Declare.
19845         (regno_reg_rtx): Declare.
19846         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
19847         Update.
19848         (gen_reg_rtx): Update.
19849         * varasm.c (n_deferred_constatns): Update accestor.
19850         (init_varasm_status): Do not allocate varasm_status.
19851         (force_const_mem, get_pool_size, output_constant_pool): Update.
19852         * stmt.c (force_label_rtx): Do not use x_ prefixes.
19853         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
19854         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
19855         * sparc/sparc.h (INIT_EXPANDERS): Update.
19856         * ia64/ia64.h (INIT_EXPANDERS): Update.
19857
19858 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
19859
19860         * reload.c (push_secondary_reload): Add missing break to for loop.
19861
19862 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
19863
19864         PR middle-end/PR28690
19865         * rtlanal.c: Update copyright years.
19866         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
19867         as REG_POINTER and MEM_POINTER operands.
19868         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
19869         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
19870         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
19871         * gcse.c: Update copyright years.
19872         (pre_delete): Call gen_reg_rtx_and_attrs.
19873         (hoist_code): Likewise.
19874         (build_store_vectors): Likewise.
19875         (delete_store): Likewise.
19876         * loop-invariant.c (move_invariant_reg): Likewise.
19877         Update copyright years.
19878
19879 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
19880
19881         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
19882         control string instead of quoted.
19883
19884 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
19885
19886         * doc/rtl.texi: Rewrite of subreg section.
19887
19888 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
19889
19890         PR/35842
19891         * config/i386/i386.c (legitimize_pic_address): Add treating
19892         of dllimport SYM_REF's.
19893         (legitimize_dllimport_symbol): Add prototype.
19894
19895 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
19896
19897         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
19898         reference in constructor with non self-referential type.
19899
19900 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
19901
19902         Removal of Return with Depressed Stack Pointer support
19903         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
19904         (ECF_SP_DEPRESSED): Likewise.
19905         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
19906         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
19907         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
19908         (expand_call): Do not test ECF_SP_DEPRESSED.
19909         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
19910         * function.c (keep_stack_depressed): Delete.
19911         (handle_epilogue_set): Likewise.
19912         (update_epilogue_consts): Likewise.
19913         (emit_equiv_load): Likewise.
19914         (thread_prologue_and_epilogue_insns): Remove support for Return with
19915         Depressed Stack Pointer.
19916         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
19917
19918 2008-04-06  Richard Guenther  <rguenther@suse.de>
19919
19920         PR tree-optimization/35400
19921         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
19922         information from SSA_NAMEs.
19923
19924 2008-04-06  Anatoly Sokolov <aesok@post.ru>
19925
19926         * config/avr/avr.h (avr_mega_p): Remove declaration.
19927         (AVR_MEGA): Remove macro.
19928         * config/avr/avr.c (avr_mega_p): Remove variable.
19929         (avr_override_options): Remove inicializion of avr_mega_p.
19930         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
19931         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
19932         (avr_jump_mode): (Ditto.).
19933         (avr_output_progmem_section_asm_op): (Ditto.).
19934         (avr_asm_init_sections): (Ditto.).
19935         (avr_asm_init_sections): (Ditto.).
19936         (avr_rtx_costs): (Ditto.).
19937         * config/avr/avr.md: (Ditto.).
19938         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of
19939         '__AVR_MEGA__'.
19940
19941 2008-04-06  Richard Guenther  <rguenther@suse.de>
19942
19943         PR tree-optimization/35842
19944         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
19945         is_gimple_invariant_address.
19946
19947 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
19948
19949         * gcc.c (default_compilers): Sync Fortran extensions list with
19950         that in fortran/lang-specs.h.
19951         * doc/invoke.texi: Likewise.
19952         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
19953         * dwarf2out.c (gen_compile_unit_die): Likewise.
19954
19955 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
19956
19957         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
19958
19959 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
19960
19961         PR target/12329
19962         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
19963         attribute is used for nested functions.
19964
19965 2008-04-05  Jan Hubicka  <jh@suse.cz>
19966
19967         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
19968
19969         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
19970         letter argument.
19971         (dump_files): Update.
19972         (enable_rtl_dump_file): Do not accept letter argument.
19973         * tree-pass.h (dump_file_info): Remove letter argument.
19974         * toplev.c (decode_d_option): Update -da handling.
19975         * toplev.h (enable_rtl_dump_file): Update prototype.
19976         * passes.c (register_one_dump_file): Do not accept IPA argument; work
19977         it out based on pass type.
19978         (register_dump_files_1): Likewise.
19979         (init_optimization_passes): Update register_one_dump_file calls.
19980         (execute_one_pass): Sanity check that IPA passes are called at IPA
19981         level and RTL passes at RTL level.
19982         (execute_pass_list): IPA pass can not be after or subpass of
19983         GIMPLE/RTL pass.
19984         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
19985         disallov RTL subpasses of IPA subpasses.
19986
19987 2008-04-05  Ben Elliston  <bje@au.ibm.com>
19988
19989         * tree-cfg.c (need_fake_edge_p): Return false for calls to
19990         builtins that return exactly once and do not throw. Cache call to
19991         call_expr_flags.
19992
19993 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
19994
19995         PR rtl-optimization/34916
19996         PR middle-end/35519
19997         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
19998         between instruction pairs.
19999
20000 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
20001
20002         * doc/invoke.texi: Document -mbitops for SH.
20003         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
20004         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
20005         * config/sh/sh.c (print_operand): Add %t operand code.
20006         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
20007         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
20008         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
20009         (extendqihi2): Likewise.
20010         (movqi_i): Likewise.
20011         (insv): Use bset, bclr and bst instructions for SH2A if possible.
20012         (extv): Use bld instruction for SH2A if possible.
20013         (extzv): Likewise.
20014         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
20015         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
20016         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
20017         (bset.b, bclr.b): Define peepholes.
20018         * config/sh/sh.opt (mbitops): New option.
20019
20020 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
20021
20022         PR target/35620
20023         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
20024         and view convert expression.
20025
20026 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
20027
20028         PR target/35364
20029         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
20030
20031 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
20032
20033         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
20034
20035         * config/i386/cpuid.h (bit_AES): New.
20036         (bit_PCLMUL): Likewise.
20037
20038         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
20039         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
20040         SSE2 if AES or PCLMUL is enabled.
20041         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
20042         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
20043         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
20044         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
20045         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
20046         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
20047         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
20048         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
20049         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
20050         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
20051         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
20052         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
20053         __builtin_ia32_aeskeygenassist128 and
20054         __builtin_ia32_pclmulqdq128.
20055         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
20056         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
20057         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
20058
20059         * config/i386/i386.h (TARGET_AES): New.
20060         (TARGET_PCLMUL): Likewise.
20061         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
20062
20063         * config/i386/i386.md (UNSPEC_AESENC): New.
20064         (UNSPEC_AESENCLAST): Likewise.
20065         (UNSPEC_AESDEC): Likewise.
20066         (UNSPEC_AESDECLAST): Likewise.
20067         (UNSPEC_AESIMC): Likewise.
20068         (UNSPEC_AESKEYGENASSIST): Likewise.
20069         (UNSPEC_PCLMUL): Likewise.
20070
20071         * config/i386/i386.opt (maes): New.
20072         (mpclmul): Likewise.
20073
20074         * config/i386/sse.md (aesenc): New pattern.
20075         (aesenclast): Likewise.
20076         (aesdec): Likewise.
20077         (aesdeclast): Likewise.
20078         (aesimc): Likewise.
20079         (aeskeygenassist): Likewise.
20080         (pclmulqdq): Likewise.
20081
20082         * config/i386/wmmintrin.h: New.
20083
20084         * doc/extend.texi: Document AES and PCLMUL built-in function.
20085
20086         * doc/invoke.texi: Document -maes and -mpclmul.
20087
20088 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
20089
20090         * function.c (free_after_parsing): Replace with
20091         cxx_push_function_context from C++ front-end.
20092         (allocate_struct_function): Don't call langhook.
20093         * langhooks.h (struct lang_hooks_for_functions): Delete.
20094         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
20095         member "function".
20096         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
20097         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
20098         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
20099         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
20100         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
20101         remove LANG_HOOKS_FUNCTION_INITIALIZER.
20102         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
20103
20104         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
20105         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
20106
20107 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
20108
20109         PR c/35440
20110         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
20111         for all types.
20112
20113 2008-04-04  Richard Guenther  <rguenther@suse.de>
20114
20115         PR middle-end/35823
20116         * fold-const.c (optimize_minmax_comparison): Use the correct
20117         type for the constant in the simplified comparison.
20118
20119 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
20120
20121         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
20122         Pass L2 size as "--param l2-cache-size" to the compiler.
20123         (decode_l2_cache): New function to decode L2 cache parameters using
20124         0x8000006 extended cpuid function.
20125         (detect_caches_amd): Determine parameters of L2 cache using
20126         decode_l2_caches function.
20127         (decode_caches_intel): Decode L2 cache parameters.
20128         (detect_caches_intel): Determine L2 cache parameters using
20129         decode_caches_intel and decode_l2_caches functions.
20130
20131 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
20132
20133         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
20134         secondary input reload for subword loads from the constant pool.
20135
20136 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
20137
20138         PR target/35713
20139         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
20140           constants of the appropriate size for runtime calculations.
20141
20142         PR c/35712
20143         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
20144           decimal-float literal constant zero.
20145
20146 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
20147
20148         PR c/35738
20149         * c-parser.c (c_parser_omp_atomic): Call
20150         default_function_array_conversion on the RHS.
20151
20152         PR middle-end/35818
20153         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
20154         call is_variable_sized if decl has incomplete type.
20155
20156 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
20157
20158         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
20159
20160 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
20161
20162         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
20163         iterators.
20164         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
20165         (sgt<u>): Merge sgt and sgtu into new expander.
20166         (sgt, sgtu): Remove expanders.
20167         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
20168         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
20169         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
20170         *sgtu_<mode>_mips16 into new pattern.
20171         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
20172         (sge<u>): Merge sge and sgeu into new expander.
20173         (sge, sgeu): Remove expanders.
20174         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
20175         new pattern.
20176         (*sge_<mode>, second *sge_<mode>): Remove patterns.
20177         (slt<u>): Merge slt and sltu into new expander.
20178         (slt, sltu): Remove expanders.
20179         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
20180         (*slt_<mode>, *sltu_<mode>): Remove patterns.
20181         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
20182         *sltu_<mode>_mips16 into new pattern.
20183         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
20184         (sle<u>): Merge sle and sleu into new expander.
20185         (sle, sleu): Remove expanders.
20186         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
20187         (*sle_<mode>, *sleu_<mode>): Remove patterns.
20188         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
20189         *sleu_<mode>_mips16 into new pattern.
20190         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
20191
20192 2008-04-03  Jan Hubicka  <jh@suse.cz>
20193
20194         PR tree-optimization/35795
20195         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
20196         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
20197         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
20198         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
20199         * score/score3.c (score3_output_mi_thunk): Likewise.
20200         * score/score7.c (score7_output_mi_thunk): Likewise.
20201         * mips/mips.c (mips_output_mi_thunk): Likewise.
20202
20203 2008-04-03  Richard Guenther  <rguenther@suse.de>
20204
20205         * tree-vrp.c (extract_range_from_unary_expr): Handle all
20206         conversions.  Simplify code.
20207
20208 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
20209
20210         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
20211
20212 2008-04-03  Tom Tromey  <tromey@redhat.com>
20213             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20214
20215         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
20216         * config/bfin/t-bfin-linux (generated_files): Add
20217         linux-sysroot-suffix.h.
20218         * doc/install.texi (Prerequisites): Require make 3.80.
20219         * doc/sourcebuild.texi (Front End Directory): Document new
20220         variable.
20221         * Makefile.in (generated_files): New variable.
20222         (ALL_HOST_OBJS): New variable.
20223         ($(ALL_HOST_OBJS)): New target.
20224
20225 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
20226
20227         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
20228         (remap_block): Call id->transform_lang_insert_block instead
20229         of langhook.
20230         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
20231         Set id.transform_lang_insert_block to NULL.
20232         (clone_body): Move to cp/optimize.c
20233         * tree-inline.h (struct copy_body_data): Change
20234         transform_lang_insert_block to function pointer.
20235         (copy_generic_body, copy_decl_no_change): Export.
20236         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
20237         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
20238         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
20239
20240         * c-tree.h (insert_block): Kill.
20241         * c-decl.c (insert_block): Kill.
20242
20243 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
20244
20245         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
20246         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
20247         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
20248         argument.
20249         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
20250         argument, call {push,pop}_function_context from here.
20251         * c-parser.c: Use c_{push,pop}_function_context.
20252
20253         * function.c (push_function_context_to): Move meat ...
20254         (push_function_context): ... here.  Simplify.
20255         * function.c (pop_function_context_from): Move meat ...
20256         (pop_function_context): ... here.  Simplify.
20257         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
20258         leave_nested).
20259         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
20260         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
20261         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
20262         * tree.h (push_function_context_to, pop_function_context_from): Remove.
20263
20264 2008-04-03  Ben Elliston  <bje@au.ibm.com>
20265
20266         * expmed.c (extract_force_align_mem_bit_field): Remove.
20267
20268 2008-04-03  Richard Guenther  <rguenther@suse.de>
20269
20270         PR middle-end/35800
20271         * expr.h (try_casesi): Adjust prototype.
20272         * expr.c (try_casesi): Take fallback label as extra parameter.
20273         Use that for gen_casesi if default_label is NULL.
20274         * stmt.c (expand_case): Pass fallback label to try_casesi,
20275         make sure to fill gaps with a fallback label if default_label
20276         is not present.
20277
20278 2008-04-03  Dominique d'HumiÃ\83¨res <dominiq@lps.ens.fr>
20279
20280         PR target/35801
20281         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
20282
20283 2008-04-03  Ben Elliston  <bje@au.ibm.com>
20284
20285         * expmed.c (extract_split_bit_field): Remove if (0) code.
20286         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
20287         (do_ds_constraint): Likewise.
20288
20289 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
20290
20291         * doc/cppopts.texi (-dU): Document.
20292         * c-common.h (flag_dump_macros): Update comment.
20293         * c-opts.c (handle_OPT_d): Handle -dU.
20294         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
20295         dump_queued_macros, cb_used_define, cb_used_undef): New.
20296         (init_pp_output): Handle -dU.
20297         (cb_line_change): Call dump_queued_macros.
20298         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
20299
20300 2008-04-02  Anatoly Sokolov <aesok@post.ru>
20301
20302         * config/avr/predicates.md (io_address_operand): New predicate.
20303         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
20304         * config/avr/avr.c (avr_io_address_p): Remove function.
20305         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of
20306         'avr_io_address_p' function.
20307         (out_movhi_r_mr): (Ditto.).
20308         (out_movqi_mr_r): (Ditto.).
20309         (out_movhi_mr_r): (Ditto.).
20310         (avr_address_cost): (Ditto.).
20311
20312 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
20313
20314         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
20315         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
20316         in 32bit mode when XMM registers are available to avoid store
20317         forwarding stalls.
20318         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
20319         corresponding post-reload splitters.
20320
20321 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
20322
20323         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
20324         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
20325         __builtin_ia32_roundss.
20326         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
20327         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
20328         __builtin_ia32_roundss.
20329         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
20330         IX86_BUILTIN_SHUFPD here.
20331
20332 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
20333
20334         * config/i386/i386.md (plogic): New.
20335         (plogicprefix): Likewise.
20336
20337         * config/i386/mmx.md (mmx_<code><mode>3): New.
20338         (mmx_and<mode>3): Removed.
20339         (mmx_ior<mode>3): Likewise.
20340         (mmx_xor<mode>3): Likewise.
20341
20342         * config/i386/sse.md (<code><mode>3): New.
20343         (*<code><mode>3): Likewise.
20344         (*<code><mode>3): Likewise.
20345         (<code><mode>3): Likewise.
20346         (*sse_<code><mode>3): Likewise.
20347         (*sse2_<code><mode>3): Likewise.
20348         (<code>tf3): Likewise.
20349         (*<code>tf3): Likewise.
20350         (and<mode>3): Likewise.
20351         (*and<mode>3): Likewise.
20352         (ior<mode>3): Removed.
20353         (*ior<mode>3): Likewise.
20354         (xor<mode>3): Likewise.
20355         (*xor<mode>3): Likewise.
20356         (*and<mode>3): Likewise.
20357         (*ior<mode>3): Likewise.
20358         (*xor<mode>3): Likewise.
20359         (and<mode>3): Likewise.
20360         (*sse_and<mode>3): Likewise.
20361         (*sse2_and<mode>3): Likewise.
20362         (andtf3): Likewise.
20363         (*andtf3): Likewise.
20364         (ior<mode>3): Likewise.
20365         (*sse_ior<mode>3): Likewise.
20366         (*sse2_ior<mode>3): Likewise.
20367         (iortf3): Likewise.
20368         (*iortf3): Likewise.
20369         (xor<mode>3): Likewise.
20370         (*sse_xor<mode>3): Likewise.
20371         (*sse2_xor<mode>3): Likewise.
20372         (xortf3): Likewise.
20373         (*xortf3): Likewise.
20374
20375 2008-04-02  Richard Guenther  <rguenther@suse.de>
20376
20377         PR tree-optimization/14495
20378         PR tree-optimization/34793
20379         * tree-vrp.c (struct switch_update): New structure.
20380         (to_remove_edges, to_update_switch_stmts): New VECs.
20381         (simplify_switch_using_ranges): New function.  Remove not taken
20382         case labels and edges.
20383         (simplify_stmt_using_ranges): Call it.
20384         (identify_jump_threads): Mark edges we have queued for removal
20385         so we don't thread them.
20386         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
20387         case label vector.
20388         * tree-cfg.c (group_case_labels): Deal with missing default label.
20389         (tree_verify_flow_info): Allow missing default label.
20390         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
20391         (emit_case_nodes): Likewise.
20392         (expand_case): Do not rely on the default label to be present.
20393         * expr.c (try_casesi): Deal with NULL default_label.
20394         (do_tablejump): Likewise.
20395
20396 2008-04-02  Richard Guenther  <rguenther@suse.de>
20397
20398         PR tree-optimization/14495
20399         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
20400         SWITCH_EXPR here ...
20401         (vrp_visit_switch_stmt): ... but here (new function).
20402         (find_case_label_index): New helper function.
20403         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
20404
20405 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
20406
20407         * fwprop.c: Fix ISO-C99ism.
20408
20409 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
20410
20411         PR bootstrap/35752
20412         * Makefile.in (objdir): Set it here.
20413         * configure.ac: Not here.  Find dynamic linker characteristics.
20414         * exec-tool.in: Use them.
20415         * aclocal.m4: Regenerate.
20416         * configure: Regenerate.
20417
20418 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
20419
20420         * expr.c (expand_var): Delete it.
20421         * expr.h (expand_var): Delete prototype.
20422         * function.c (expand_function_start): Use expand_decl instead.
20423         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
20424         langhook.
20425
20426 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
20427
20428         PR rtl-optimization/35542
20429         * fwprop.c (forward_propagate_and_simplify): Replace
20430         loc_reg_mentioned_in_p with reg_mentioned_p.
20431
20432 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
20433
20434         PR rtl-optimization/35281
20435         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
20436         (propagate_rtx_1): Handle PR_HANDLE_MEM.
20437         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
20438         (varying_mem_p): Move above propagate_rtx.
20439         (all_uses_available_at): Do not check MEMs.
20440
20441 2008-04-02  Rafael EspÃ\83­ndola  <espindola@google.com>
20442
20443         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
20444         (register_edge_assert_for_2): Split the cond argument.
20445         (register_edge_assert_for_1): Adjust for the change in
20446         register_edge_assert_for_2.
20447         (register_edge_assert_for): Split the cond argument.
20448         (find_switch_asserts): Adjust for the change in
20449         register_edge_assert_for.
20450
20451 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
20452
20453         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
20454         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
20455         offsets for 64-bit mingw.
20456         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
20457         abi for x86_64-pc-mingw.
20458
20459 2008-04-02  Richard Guenther  <rguenther@suse.de>
20460
20461         * tree-vrp.c (extract_range_from_assert): Make sure to not
20462         produce range min/max with TREE_OVERFOW set.
20463         If merging a anti-range and a range keep the anti-range if
20464         the range covers all values of the type.
20465         (register_edge_assert_for_2): Only allow sign-changing
20466         conversions in detecting canonical range checks.  Also
20467         register an assert for the unsigned name if useful.
20468
20469         PR tree-optimization/35787
20470         * tree-vrp.c (vrp_val_max): New function.
20471         (vrp_val_min): Likewise.
20472         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
20473         (vrp_val_is_min): Likewise.
20474         (supports_overflow_infinity): Use vrp_val_{min,max}.
20475         (negative_overflow_infinity): Likewise.
20476         (positive_overflow_infinity): Likewise.
20477         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
20478         (is_positive_overflow_infinity): Likewise.
20479         (is_overflow_infinity): Likewise.
20480         (avoid_overflow_infinity): Use vrp_val_{min,max} and
20481         vrp_val_is_{min,max}.
20482         (set_and_canonicalize_value_range): Canonicalize anti-ranges
20483         to ranges if possible.  Avoid empty ranges.
20484
20485 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20486
20487         PR middle-end/35705
20488         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
20489         the expression is a function address.
20490
20491 2008-04-01  George Helffrich  <george@gcc.gnu.org>
20492
20493         PR fortran/35154, fortran/23057
20494         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
20495         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
20496         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
20497         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
20498         in common.
20499         (dbxout_syms): Check for COMMON-based symbol and wrap in
20500         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
20501         in bracket for efficiency.
20502
20503         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
20504         using DW_TAG_common_block + member offset.
20505         (add_pubname_string): New function.
20506         (dw_expand_expr): New function to find block name and offset for
20507         COMMON var.
20508         (common_check): New function to check whether symbol in Fortran COMMON.
20509         (gen_variable_die): If COMMON, use DW_TAG_common_block.
20510
20511 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
20512
20513         PR c/35436
20514         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
20515
20516 2008-04-02  Ben Elliston  <bje@au.ibm.com>
20517
20518         * config/v850/v850.md (casesi): Remove if (0) code.
20519         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
20520         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
20521
20522 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
20523
20524         * config/i386/i386.md (rex64suffix): New mode attribute.
20525         (floathi<mode>2): Disable expander for SSE math.
20526         (*floathi<mode>2_1): New insn insn_and_split pattern.
20527         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
20528         corresponding post-reload splitters.
20529         (*floathi<mode>2_i387): New macroized insn pattern.
20530         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
20531         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
20532         insn_and_split pattern.
20533         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
20534         New macroized instruction patterns and corresponding post-reload
20535         splitters.
20536         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
20537         and corresponding post-reload splitters.
20538         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
20539         New macroized instruction patterns.
20540         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
20541         macroized instruction patterns and corresponding post-reload splitters.
20542         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
20543         corresponding post-reload splitters.
20544         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
20545         New macroized instruction patterns.
20546         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
20547         corresponding post-reload splitters.
20548         (*floatsi<mode>2_i387): New macroized instruction patterns.
20549
20550 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
20551
20552         * config/i386/i386.md (smaxmin): New.
20553         (umaxmin): Likewise.
20554         (maxminiprefix): Likewise.
20555         (maxminfprefix): Likewise.
20556         (<code><mode>3): Likewise.
20557         (smin<mode>3): Removed.
20558         (smax<mode>3): Likewise.
20559
20560         * config/i386/mmx.md (mmx_<code>v2sf3): New.
20561         (mmx_<code>v4hi3): Likewise.
20562         (mmx_<code>v8qi3): Likewise.
20563         (mmx_smaxv2sf3): Removed.
20564         (mmx_sminv2sf3): Likewise.
20565         (mmx_umaxv8qi3): Likewise.
20566         (mmx_smaxv4hi3): Likewise.
20567         (mmx_uminv8qi3): Likewise.
20568         (mmx_sminv4hi3): Likewise.
20569
20570         * config/i386/sse.md (<addsub><mode>3): New.
20571         (*<addsub><mode>3): Likewise.
20572         (<sse>_vm<addsub><mode>3): Likewise.
20573         (<maxmin><mode>3): Likewise.
20574         (*<maxmin><mode>3_finite): Likewise.
20575         (*<maxmin><mode>3): Likewise.
20576         (<sse>_vm<maxmin><mode>3): Likewise.
20577         (sse3_h<addsub>v4sf3): Likewise.
20578         (sse3_h<addsub>v2df3): Likewise.
20579         (<maxmin>v16qi3): Likewise.
20580         (*<maxmin>v16qi3): Likewise.
20581         (<maxmin>v8hi3): Likewise.
20582         (*<maxmin>v8hi3): Likewise.
20583         (*sse4_1_<maxmin><mode>3): Likewise.
20584         (*sse4_1_<maxmin><mode>3): Likewise.
20585         (add<mode>3): Removed.
20586         (*add<mode>3): Likewise.
20587         (<sse>_vmadd<mode>3): Likewise.
20588         (sub<mode>3): Likewise.
20589         (*sub<mode>3): Likewise.
20590         (<sse>_vmsub<mode>3): Likewise.
20591         (smin<mode>3): Likewise.
20592         (*smin<mode>3_finite): Likewise.
20593         (*smin<mode>3): Likewise.
20594         (<sse>_vmsmin<mode>3): Likewise.
20595         (smax<mode>3): Likewise.
20596         (*smax<mode>3_finite): Likewise.
20597         (*smax<mode>3): Likewise.
20598         (<sse>_vmsmax<mode>3): Likewise.
20599         (sse3_haddv4sf3): Likewise.
20600         (sse3_haddv2df3): Likewise.
20601         (sse3_hsubv4sf3): Likewise.
20602         (sse3_hsubv2df3): Likewise.
20603         (umaxv16qi3): Likewise.
20604         (*umaxv16qi3): Likewise.
20605         (smaxv8hi3): Likewise.
20606         (*smaxv8hi3): Likewise.
20607         (*sse4_1_smax<mode>3): Likewise.
20608         (*sse4_1_umax<mode>3): Likewise.
20609         (uminv16qi3): Likewise.
20610         (*uminv16qi3): Likewise.
20611         (sminv8hi3): Likewise.
20612         (*sminv8hi3): Likewise.
20613         (*sse4_1_smin<mode>3): Likewise.
20614         (*sse4_1_umin<mode>3): Likewise.
20615
20616 2008-04-01  Rafael EspÃ\83­ndola  <espindola@google.com>
20617
20618         * tree-cfg.c (verify_expr): remove in_phi.
20619         (verify_stmt): Don't call walk_tree with verify_expr. Use
20620         is_gimple_min_invariant instead of is_gimple_val.
20621
20622 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
20623
20624         * doc/include/gpl_v3.texi: Update for manpage generation.
20625         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
20626         gpl.texi.
20627         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
20628         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
20629         gpl_v3.texi instead of gpl.texi.
20630         (gpl.pod): New.
20631
20632 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
20633
20634         PR pch/13675
20635         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
20636
20637 2008-04-01  Rafael EspÃ\83­ndola  <espindola@google.com>
20638
20639         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
20640         (extract_code_and_val_from_cond): Use
20641         extract_code_and_val_from_cond_with_ops.
20642
20643 2008-04-01  Jan Hubicka  <jh@suse.cz>
20644
20645         * function.c (free_after_compilation): Free epilogue_delay_list.
20646         (prepare_function_start): Assert that previous compilation was freed.
20647
20648 2008-04-01  Jan Hubicka  <jh@suse.cz>
20649             Jim Wilson  <wilson@tuliptree.org>
20650             Andreas Tobler <andreast@gcc.gnu.org>
20651
20652         PR middle-end/35781
20653         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
20654         rtl.emit instead cfun->emit.
20655         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
20656         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
20657
20658 2008-04-01  Ben Elliston  <bje@au.ibm.com>
20659
20660         * doc/c-tree.texi (Function Basics): Fix grammatical error.
20661
20662 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
20663
20664         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
20665         New options
20666         (fprofile-use): Add var flag_profile_use
20667         * coverage.c (coverage_begin_output): Do not open a gcno file for
20668         output only if -ftest-coverage is set.
20669         Do not add getpwd() to gcda file path.
20670         (build_gcov_info): Check the new flag
20671         flag_profile_datafile_relative_path.
20672         (coverage_init): Use profile_data_prefix.
20673         Read profile counter only if flag_profile_use is set.
20674         * opts.c (common_handle_option): New option fprofile-use=,
20675         fprofile-dir=, fprofile-generate=.
20676         * toplev.c (profile_data_prefix): New variable definition.
20677         * toplev.h (profile_data_prefix): New declaration.
20678         * doc/invoke.tex (Option Summary, Optimization Options):
20679         Add new options.
20680
20681 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
20682
20683         * varasm.c (output_constant_pool_1): In LABEL_REF check,
20684         use tmp consistently.
20685
20686         PR target/35695
20687         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
20688         * config/ia64/ia64.c (rtx_needs_barrier): Handle
20689         UNSPEC_FR_RECIP_APPROX_RES.
20690         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
20691
20692 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
20693
20694         PR c/35750
20695         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
20696
20697 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
20698
20699         PR middle-end/30186
20700         * fold-const.c (fold_indirect_ref_1): Support accessing non first
20701         element of the vector via a pointer.
20702
20703 2008-03-31  Ian Lance Taylor  <iant@google.com>
20704
20705         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
20706
20707 2008-03-31  Jan Hubicka  <jh@suse.cz>
20708
20709         * builtins.c (expand_builtin_setjmp_receiver): Update call of
20710         get_arg_pointer_save_area.
20711         * expr.c (init_expr): Just clear out rtl.expr.
20712         * function.c (free_after_compilation): Clear out whole RTL structure.
20713         (get_func_frame_size): Merge into ...
20714         (get_frame_size): ... this one.
20715         (assign_stack_local_1): Merge into ...
20716         (assign_stack_local): ... this one.
20717         (expand_function_end): Update call of get_arg_pointer_save_area.
20718         (get_art_pointer_save_area): Remove cfun argument.
20719         * function.h (emit_status): regno_pointer_align does not need length
20720         attribute. Move x_regno_reg_rtx to ...
20721         (regno_reg_rtx): ... new global array.
20722         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
20723         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
20724         apply_args_value, forced_labels, stack_pointer_delta):
20725         Update accestors.
20726         (struct varasm_status): Move here from varasm.c
20727         (struct rtl_data): New. Move here some fields from struct function.
20728         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
20729         frame_offset, stack_check_probe_note, arg_pointer_save_area,
20730         used_temp_slots avail_temp_slots, temp_slot_level,
20731         nonlocal_goto_handler_labels): Update accesstors.
20732         (rtl): New global variable.
20733         (struct function): Move some fileds to rtl_data.
20734         (get_arg_pointer_save_area): Update prototype.
20735         * emit-rtl.c (rtl): Declare.
20736         (regno_reg_rtx): Declare.
20737         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
20738         Update.
20739         (gen_reg_rtx): Update.
20740         (init_virtual_regs): Do not tate emit_status argument.
20741         (init_emit): Do not allocate emit.
20742         * varasm.c (varasm_statuc): Move to function.h.
20743         (n_deferred_constatns): Update accestor.
20744         (init_varasm_status): Do not allocate varasm_status.
20745         (force_const_mem, get_pool_size, output_constant_pool): Update.
20746         * stmt.c (force_label_rtx): Do not use x_ prefixes.
20747         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
20748
20749 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
20750
20751         PR rtl-optimization/35729
20752         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
20753         references.
20754
20755 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
20756
20757         PR target/32000
20758         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
20759         load/store if memory is unaligned.
20760         (*movti_rex64): Likewise.
20761
20762         * config/i386/predicates.md (misaligned_operand): New.
20763
20764 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
20765
20766         PR tree-opt/35431
20767         * tree-ssa-phiopt.c (conditional_replacement): Return early for
20768         complex types.
20769
20770 2008-03-31  Jan Beulich  <jbeulich@novell.com>
20771
20772         * config/ia64/constraints.md: Add 'j' constraint.
20773         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
20774         (movdi_internal): Likewise.
20775
20776 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
20777
20778         PR c/35748
20779         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
20780
20781 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
20782
20783         PR target/35757
20784         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
20785         proper error message for the third argument on blendpd and
20786         blendps.
20787
20788         * config/i386/sse.md (blendbits): New.
20789         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
20790
20791 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
20792
20793         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
20794
20795 2008-03-30  Richard Guenther  <rguenther@suse.de>
20796
20797         PR middle-end/31023
20798         * fold-const.c (fold_sign_changed_comparison): Do leave
20799         conversions to base-types alone.
20800
20801 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
20802
20803         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
20804         the link register if one altivec register is be saved.
20805
20806 2008-03-30  Ben Elliston  <bje@au.ibm.com>
20807
20808         * final.c (final_scan_insn): Remove if (0) code.
20809
20810 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
20811
20812         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
20813
20814 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
20815
20816         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
20817         of V4SFmode to ix86_binary_operator_ok.
20818
20819 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
20820
20821         * config/i386/i386.c (override_options): Initialize
20822         ix86_veclib_handler to ix86_veclibabi_svml when
20823         -mveclibabi=svml is used.
20824         (ix86_veclibabi_svml): New function for SVML ABI style
20825         vectorization support.
20826         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
20827
20828 2008-03-28  Rafael EspÃ\83­ndola  <espindola@google.com>
20829
20830         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
20831         (tree_binary_nonnegative_warnv_p): Make it public.
20832         (tree_single_nonnegative_warnv_p): Make it public.
20833         (tree_invalid_nonnegative_warnv_p): Make it public.
20834         (tree_unary_nonzero_warnv_p): Make it public.
20835         (tree_binary_nonzero_warnv_p): Make it public
20836         (tree_single_nonzero_warnv_p): Make it public.
20837         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
20838         (extract_range_from_binary_expr): Split the expr argument.
20839         (extract_range_from_unary_expr): Split the expr argument.
20840         (extract_range_from_comparison): Split the expr argument.
20841         (extract_range_from_expr): Use the new aux functions.
20842         (vrp_evaluate_conditional_warnv): Use
20843         vrp_evaluate_conditional_warnv_with_ops.
20844         * tree.h (tree_unary_nonzero_warnv_p): Declare.
20845         (tree_binary_nonzero_warnv_p): Declare.
20846         (tree_single_nonzero_warnv_p): Declare.
20847         (tree_expr_nonzero_warnv_p): Declare.
20848         (tree_unary_nonnegative_warnv_p): Declare.
20849         (tree_binary_nonnegative_warnv_p): Declare.
20850         (tree_single_nonnegative_warnv_p): Declare.
20851         (tree_invalid_nonnegative_warnv_p): Declare.
20852
20853 2008-03-28  Richard Guenther  <rguenther@suse.de>
20854
20855         PR tree-optimization/30317
20856         PR tree-optimization/30911
20857         PR tree-optimization/34793
20858         * tree-vrp.c (set_and_canonicalize_value_range): New function.
20859         (struct assert_locus_d): New member EXPR.
20860         (register_new_assert_for): Add EXPR parameter to support
20861         ASSERT_EXPR <name, expr OP limit>.
20862         (register_edge_assert_for_1): Adjust callers.
20863         (find_assert_locations): Likewise.
20864         (process_assert_insertions_for): Build condition from expression.
20865         (extract_range_from_assert): Handle ASSERT_EXPRs
20866         of the form ASSERT_EXPR <name, expr OP limit>.
20867         (register_edge_assert_for_2): New helper registering
20868         asserts for comparisons.  Recognize range tests of the form
20869         (unsigned)i - CST1 OP CST2.
20870         (register_edge_assert_for_1): Use it.
20871         (register_edge_assert_for): Likewise.
20872         (needs_overflow_infinity): Integer sub-types
20873         do not need overflow infinities.
20874         (vrp_val_is_max): The extreme values of integer sub-types
20875         are those of the base type.
20876         (vrp_val_is_min): Likewise.
20877         * tree.def (ASSERT_EXPR): Document extra allowed conditional
20878         expressions.
20879
20880 2008-03-28  Nick Clifton  <nickc@redhat.com>
20881
20882         PR target/31110
20883         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
20884         Return GENERAL_REGS for stack adjustment reloads.
20885
20886 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
20887
20888         PR target/31334
20889         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
20890         const_vector when all the vectors are constant.
20891
20892 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
20893
20894         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
20895         comparisons.
20896         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
20897         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
20898         (scc_sf): New.
20899         (s<code>_sf): Use new scc_sf attribute for opcode names.
20900
20901 2008-03-27  Tom Tromey  <tromey@redhat.com>
20902
20903         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
20904         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
20905         config/spu/t-spu-elf, config/i386/t-interix,
20906         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
20907         config/i386/x-darwin, config/i386/x-mingw32,
20908         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
20909         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
20910         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
20911         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
20912         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
20913         config/rs6000/x-darwin, config/rs6000/t-rs6000,
20914         config/score/t-score-elf, config/arm/t-strongarm-pe,
20915         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
20916         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
20917         Revert automatic dependency patch.
20918
20919 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
20920
20921         PR target/35657
20922         * config/i386/i386.c (ix86_function_arg_boundary): Align
20923         decimal floating point to its natural boundary.
20924
20925 2008-03-27  Richard Guenther  <rguenther@suse.de>
20926
20927         PR middle-end/35716
20928         * fold-const.c (fold_comparison): Restrict distinct decl
20929         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
20930         solely rely on operand_equal_p.
20931
20932 2008-03-27  Richard Guenther  <rguenther@suse.de>
20933
20934         PR c/32511
20935         * c-common.c (handle_weak_attribute): Reject combination of
20936         weak and inline.
20937
20938 2008-03-27  Richard Guenther  <rguenther@suse.de>
20939
20940         PR tree-optimization/32810
20941         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
20942         conversions from DECL_INITIAL.
20943         (fold_const_aggregate_ref): Likewise from constructor elements.
20944
20945 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
20946
20947         * tree-affine.h (aff_combination_expand): Declare.
20948         (get_inner_reference_aff): Likewise.
20949         * tree-affine.c (aff_combination_expand): Split out from
20950         tree_to_aff_combination_expand.
20951         (get_inner_reference_aff): New function.
20952         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
20953         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
20954         (struct lim_aux_data): sm_done field removed.
20955         (mem_ref_loc_p, mem_ref_locs_p): New types.
20956         (struct mem_ref): Added id, stored, accesses_in_loop,
20957         indep_loop, dep_loop, indep_ref, dep_ref fields.
20958         Removed is_stored, locs and next fields.
20959         (memory_accesses): New variable.
20960         (movement_possibility): Do not allow moving statements
20961         that store to memory.
20962         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
20963         New functions.
20964         (determine_max_movement): For statements with memory references,
20965         find the outermost loop in that the reference is independent.
20966         (move_computations_stmt): Mark the virtual operands for renaming.
20967         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
20968         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
20969         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
20970         add_vop_ref_mapping, create_vop_ref_mapping_loop,
20971         create_vop_ref_mapping, analyze_memory_references,
20972         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
20973         get_all_locs_in_loop, ref_always_accessed_p,
20974         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
20975         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
20976         store_motion_loop, store_motion): New functions.
20977         (struct vop_to_refs_elt): New type.
20978         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
20979         memref_hash, memref_eq, hoist_memory_references): Rewritten.
20980         (schedule_sm): Replaced by...
20981         (execute_sm): ... this.
20982         (determine_lsm_ref, hoist_memory_references,
20983         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
20984         find_more_ref_vops, free_mem_ref, free_mem_refs,
20985         determine_lsm_loop, determine_lsm): Removed.
20986         (tree_ssa_lim_finalize): Free data structures used by store motion.
20987         (tree_ssa_lim): Call analyze_memory_references.  Use
20988         store_motion instead of determine_lsm.
20989
20990 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
20991
20992         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
20993         rename tmake_file to m68hc11/t-m68hc11.
20994         (mcore): Set inhibit_libc to true.
20995         * config.host (alpha*-dec-*vms*): Set extra_programs.
20996         (interix3*): Don't use host_xmake_file.
20997         * configure.ac: Let config.gcc override inhibit_libc.
20998         * configure: Regenerate.
20999
21000         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
21001         * config/t-openbsd-thread: Remove commented out lines.
21002
21003         * config/x-interix: Remove.
21004
21005         * config/m68hc11/t-m68hc11-gas: Rename to...
21006         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
21007
21008         * config/mcore/t-mcore: Remove T_CFLAGS.
21009         * config/mcore/t-mcore-pe: Likewise.
21010
21011 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
21012
21013         * configure.ac: Replace custom __GNU_SOURCE test with
21014         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
21015         * aclocal.m4: Regenerate.
21016         * configure: Regenerate.
21017         * config.in: Regenerate.
21018
21019 2008-03-27  Richard Guenther  <rguenther@suse.de>
21020
21021         * fold-const.c (target.h): Include.
21022         (fold_comparison): Fold comparison of addresses of decls
21023         that bind locally or of constants.  Consolidate address folding code.
21024         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
21025         results from fold_binary_to_constant.
21026         (compare_values_warnv): Likewise.
21027
21028 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
21029
21030         PR middle-end/35429
21031         * fold-const.c (fold_truthop): Check for integeral types when folding
21032         a == 0 && b == 0 and a != 0 || b != 0 .
21033
21034 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
21035
21036         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
21037
21038 2008-03-26  Andreas Schwab  <schwab@suse.de>
21039
21040         * doc/invoke.texi: Fix use of @item vs. @itemx.
21041
21042 2008-03-26  Tom Tromey  <tromey@redhat.com>
21043
21044         * Makefile.in (build/gensupport.o, build/print-rtl.o,
21045         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
21046         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
21047         build/gencodes.o, build/genconditions.o, build/genconfig.o,
21048         build/genconstants.o, build/genemit.o, build/genextract.o,
21049         build/genflags.o, build/genmddeps.o, build/genopinit.o,
21050         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
21051         options.h.
21052
21053 2008-03-26  Richard Guenther  <rguenther@suse.de>
21054
21055         Revert
21056         2008-03-26  Richard Guenther  <rguenther@suse.de>
21057
21058         * fold-const.c (target.h): Include.
21059         (fold_comparison): Fold comparison of addresses of two decls
21060         that bind locally.  Consolidate address folding code.
21061
21062 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21063
21064         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
21065         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
21066         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
21067         dconstsqrt2, dconstthird, dconste and/or dconst10.
21068         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
21069         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
21070         dconstsqrt2, dconste): Delete.
21071         (init_emit_once): Likewise.  Simplify initializing dconstm1.
21072         Constify variable.
21073         * real.c (get_real_const): New.
21074         * real.h (dconst3, dconst10, dconstm2, dconstthird,
21075         dconstsqrt2, dconste): Delete.
21076         (real_value_const, get_real_const): New.
21077
21078 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
21079
21080         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
21081
21082         * config/i386/i386.c (ix86_function_arg_boundary): Check
21083         BIGGEST_ALIGNMENT instead of 128.
21084         (setup_incoming_varargs_64): Likewise.
21085
21086 2008-03-26  Tom Tromey  <tromey@redhat.com>
21087
21088         * Makefile.in (DEPFILES): Add missing '/'.
21089
21090 2008-03-26  Richard Guenther  <rguenther@suse.de>
21091
21092         * fold-const.c (target.h): Include.
21093         (fold_comparison): Fold comparison of addresses of two decls
21094         that bind locally.  Consolidate address folding code.
21095
21096 2008-03-26  Nick Clifton  <nickc@redhat.com>
21097
21098         PR target/31232
21099         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
21100         not allow INT+INT as a legitimate addressing mode.
21101
21102 2008-03-26  Richard Guenther  <rguenther@suse.de>
21103
21104         * tree-flow.h (widen_bitfield): Remove declaration.
21105         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
21106         (widen_bitfield): Remove function.
21107         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
21108         code.
21109
21110 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
21111
21112         PR target/31558
21113         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
21114         error_mark_node's.
21115
21116 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
21117
21118         PR rtl-optimization/35232
21119         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
21120         (forget_old_reloads_1, forget_marked_reloads): Don't clear
21121         reg_reloaded_call_part_clobbered here.
21122         (reload_regs_reach_end_p): New function.
21123         (reload_reg_rtx_for_input): New variable.
21124         (reload_reg_rtx_for_output): Likewise.
21125         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
21126         when reassigning a pseudo register.  Load reloadreg from
21127         reload_reg_rtx_for_input, moving the mode and register
21128         calculation to...
21129         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
21130         instead of the original when deciding whether an input reload
21131         would be a no-op or whether an output reload can be deleted.
21132         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
21133         when setting up new_spill_reg_store.  Load it from
21134         reload_reg_rtx_for_output, moving the mode and register
21135         calculation to...
21136         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
21137         instead of the original when deciding whether an output reload
21138         would be a no-op.  Do the same when modifying insn notes.
21139         Use rtx_equal_p instead of == to compare the registers.
21140         (inherit_piecemeal_p): Take a mode and two register numbers
21141         as argument.
21142         (emit_reload_insns): Clear new_spill_reg_store for every hard
21143         register in the reload register.  Remove spill registers
21144         from reg_reloaded_valid before considering whether to record
21145         inheritance information for them.  Use reload_reg_rtx_for_output
21146         instead of reg_rtx when recording output reloads.  Use
21147         reload_reg_rtx_for_input instead of reg_rtx when recording
21148         input reloads.  Set or clear reg_reloaded_call_part_clobbered
21149         at the same time as setting reg_reloaded_valid.
21150         (delete_output_reload): Add a new_reload_reg parameter and use it
21151         instead of rld[j].reg_rtx.
21152         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
21153         calls accordingly.
21154
21155 2008-03-25  Tom Tromey  <tromey@redhat.com>
21156
21157         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
21158         (build/genattr.o): Likewise.
21159         (build/genattrtab.o): Likewise.
21160         (build/gencodes.o): Likewise.
21161         (build/genconfig.o): Likewise.
21162         (build/genconstants.o): Likewise.
21163         (build/genemit.o): Likewise.
21164         (build/genextract.o): Likewise.
21165         (build/genflags.o): Likewise.
21166
21167 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
21168
21169         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
21170         instead of size_int for integer types.
21171         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
21172         to match type of MINUS_EXPR.
21173
21174 2008-03-25  Tom Tromey  <tromey@redhat.com>
21175
21176         * configure: Rebuilt.
21177         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
21178         Makefile.
21179
21180 2008-03-25  Tom Tromey  <tromey@redhat.com>
21181
21182         * config/x-solaris (host-solaris.o): Update.
21183         * config/x-linux (host-linux.o): Update.
21184         * config/x-hpux (host-hpux.o): Update.
21185         * config/x-darwin (host-darwin.o): Update.
21186         * config/v850/t-v850e (v850-c.o): Update.
21187         * config/v850/t-v850 (v850-c.o): Update.
21188         * config/t-vxworks (vxworks.o): Update.
21189         * config/t-sol2 (sol2-c.o, sol2.o): Update.
21190         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
21191         * config/spu/t-spu-elf (spu-c.o): Update.
21192         (spu.o): Remove.
21193         * config/sh/t-symbian (sh-c.o): Update.
21194         (symbian.o): Update.
21195         * config/sh/t-sh (sh-c.o): Update.
21196         * config/score/t-score-elf (score7.o, score3.o): Update.
21197         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
21198         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
21199         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
21200         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
21201         (rs6000.o): Remove.
21202         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
21203         * config/m32c/t-m32c (m32c-pragma.o): Update.
21204         * config/ia64/t-ia64 (ia64-c.o): Update.
21205         * config/i386/x-mingw32 (host-mingw32.o): Update.
21206         * config/i386/x-i386 (driver-i386.o): Update.
21207         * config/i386/x-darwin (host-i386-darwin.o): Update.
21208         * config/i386/x-cygwin (host-cygwin.o): Update.
21209         * config/i386/t-nwld (nwld.o): Update.
21210         * config/i386/t-netware (netware.o): Update.
21211         * config/i386/t-interix (winnt.o): Update.
21212         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
21213         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
21214         msformat-c.o): Update.
21215         * config/bfin/t-bfin-linux (generated_files): Add
21216         linux-sysroot-suffix.h.
21217         * config/arm/t-wince-pe (pe.o): Update.
21218         * config/arm/t-strongarm-pe (pe.o): Update.
21219         * config/arm/t-pe (pe.o): Update.
21220         * config/arm/t-arm (arm-c.o): Update.
21221         * doc/install.texi (Prerequisites): Require make 3.80.
21222         * Makefile.in: Remove .o targets.
21223         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
21224         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
21225         (simple_generated_h, simple_generated_c): Move earlier.
21226         (generated_files): New variable.
21227         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
21228         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
21229         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
21230         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
21231         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
21232         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
21233         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
21234         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
21235         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
21236         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
21237         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
21238         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
21239         (.c.o): Remove.
21240         (COMPILE.base, COMPILE): New variables.
21241         (%.o): New pattern rule.
21242         (ALL_HOST_OBJS): New variable.
21243         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
21244         (dummy-checksum.o, cc1-checksum.o): Remove.
21245         (DRIVER_SHLIB): New variable.
21246         (DRIVER_DEFINES): Use it.
21247         (gencondmd.c): Move out of build/.
21248         (s-conditions): Update.
21249         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
21250         (ALL_BUILD_OBJS): Likewise.
21251         (build/%.o): Use BUILDCOMPILE.
21252         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
21253         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
21254         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
21255         build/gencheck.o, build/gencodes.o, build/genconditions.o,
21256         build/genconfig.o, build/genconstants.o, build/genemit.o,
21257         build/genextract.o, build/genflags.o, build/genmddeps.o,
21258         build/genopinit.o, build/genoutput.o, build/genpeep.o,
21259         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
21260         build/gen-protos.o, build/scan.o, build/fix-header.o,
21261         build/scan-decls.o): Simplify.
21262         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
21263         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
21264         prefix.o, toplev.o): Reduce to variable setting.
21265         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
21266         ($(out_object_file), gcc-options.o): New targets.
21267         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
21268         * configure: Rebuilt.
21269         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
21270         * doc/sourcebuild.texi (Front End Directory): Document new variable.
21271
21272 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
21273
21274         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
21275         complain when we hit an error, return ERROR_MARK_NODE.
21276
21277 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
21278
21279         * config/sh/constraints.md (Pso, Psz): New constraints.
21280         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
21281         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
21282
21283 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
21284
21285         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
21286         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
21287
21288 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
21289
21290         * config/sh/sh.md (prefetch): Add condition for SH2A target.
21291         (prefetch_sh2a): New.
21292
21293 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
21294             Naveen.H.S  <naveen.hs@kpitcummins.com>
21295
21296         * config/sh/constraints.md (I28): New constraint.
21297         * config/sh/sh.c (broken_move): Add support for movi20s.
21298         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
21299
21300 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
21301             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
21302             Naveen.H.S  <naveen.hs@kpitcummins.com>
21303
21304         * config/sh/sh.c (SH_ATTRIBUTES): Define.
21305         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
21306         (print_operand): Handle resbank in %@ operand code.
21307         (sh_encode_section_info): New.
21308         (push_regs): Add conditions for resbank.
21309         (sh_expand_epilogue): Likewise.
21310         (sh_insert_attributes): Likewise.
21311         (sh_attribute_table): Likewise.
21312         (sh_handle_resbank_handler_attribute): New.
21313         (sh2a_handle_function_vector_handler_attribute): New.
21314         (sh2a_is_function_vector_call): New.
21315         (sh2a_get_function_vector_number): New.
21316         (sh2a_function_vector_p): New.
21317         (sh_cfun_resbank_handler_p): New.
21318         * config/sh/sh.md (calli): Emit jsr/n if possible.
21319         (calli_tbr_rel): New.
21320         (calli_pcrel): Emit jsr/n if possible.
21321         (return_i): Emit rts/n if possible.
21322         (call_valuei_tbr_rel): New.
21323         (call_valuei_pcrel): Add condition for SH2A target.
21324         (call_value): Likewise.
21325         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
21326         (sh2a_get_function_vector_number): Likewise.
21327         (sh2a_is_function_vector_call): Likewise.
21328         * doc/extend.texi: Document TBR relative addressing of SH2A.
21329         (resbank): Add description for SH2A.
21330
21331 2008-03-24  Richard Guenther  <rguenther@suse.de>
21332
21333         PR c/22371
21334         * gimplify.c (gimplify_modify_expr): For frontend type-correct
21335         pointer assignments change conversions according to middle-end rules.
21336         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
21337         * configure.ac: Include type checking in yes.
21338         * configure: Regenerate.
21339
21340 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
21341
21342         * diagnostic.c (diagnostic_count_diagnostic): Delete.
21343         (diagnostic_report_diagnostic): Update. Handle ICEs here.
21344
21345 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
21346
21347         * gthr-vxworks.h (UNUSED): Define.
21348
21349 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
21350
21351         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
21352
21353 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
21354
21355         * doc/extend.texi (Function Attributes): Add missing comma in the
21356         example of the "alloc_size" attribute.
21357
21358 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
21359
21360         Revert:
21361         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
21362
21363         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
21364         32bit host.
21365
21366         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
21367
21368         PR target/35496
21369         * stor-layout.c (update_alignment_for_field): Set minimum alignment
21370         of the underlying type of a MS bitfield layout to the natural
21371         alignment of the type.
21372
21373         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
21374
21375         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
21376         to their natural alignment to avoid store forwarding stalls.
21377
21378 2008-03-22  Richard Guenther  <rguenther@suse.de>
21379
21380         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
21381         For PHI nodes verify the address is invariant.
21382         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
21383         (get_symbol_constant_value): Use is_gimple_min_invariant.
21384         (maybe_fold_stmt_indirect): Likewise.
21385
21386 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
21387
21388         PR rtl-optimization/33927
21389         * Makefile.in (dse.o): Depend on $(TM_P_H).
21390         * expr.h (extract_low_bits): Declare.
21391         * expmed.c (extract_low_bits): New function.
21392         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
21393         * dse.c: Include tm_p.h.
21394         (find_shift_sequence): Remove the read_reg argument and return the
21395         read value.  Emit the instructions instead of returning them.
21396         Iterate on new_mode rather than calculating it each time.
21397         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
21398         source to NEW_MODE and extract_low_bits to convert the shifted
21399         value to READ_MODE.
21400         (replace_read): Allow the load and store to have different mode
21401         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
21402         or extraction instructions before trying the replacement.  Update
21403         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
21404
21405 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
21406
21407         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
21408         to their natural alignment to avoid store forwarding stalls.
21409
21410 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
21411
21412         PR target/27946
21413         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
21414         encouraging but not allowing gprs for input;
21415         change the input constraint to !f#r.
21416         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
21417         gprs for output;
21418         change the output constraint to !f#r.
21419
21420 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
21421
21422         PR target/13958
21423         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
21424         corresponding post-reload splitters.
21425         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
21426         when x87 FP math is selected.
21427         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
21428         New function prototype.
21429         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
21430         unreachable function to ease macroization of insn patterns.
21431
21432 2008-03-21  Martin Jambor  <mjambor@suse.cz>
21433
21434         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
21435         reference dumps if ddr is NULL or dependence is unknown.
21436
21437 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
21438
21439         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
21440         unsigned extension into account.
21441         (ATOMIC_COMPARE_AND_SWAP): Likewise.
21442         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
21443         Do computations on a scratch register.
21444
21445 2008-03-21  Richard Guenther  <rguenther@suse.de>
21446
21447         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
21448         Use is_gimple_min_invariant instead of TREE_INVARIANT.
21449         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
21450         * tree-ssa-dom.c (record_equality): Likewise.
21451         * tree-inline.c (copy_body_r): Likewise.
21452         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
21453         TREE_INVARIANT.
21454
21455 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
21456
21457         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
21458         as 'delete_unused' argument.
21459
21460 2008-03-20  Richard Guenther  <rguenther@suse.de>
21461
21462         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
21463         special casing of constant qualifiers.
21464         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
21465         care about them in general.
21466         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
21467         regardless of their type.
21468         (fold_stmt_r): Forcefully fold *& if we end up with that.
21469
21470 2008-03-20  Paul Brook  <paul@codesourcery.com>
21471
21472         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
21473         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
21474         linker flags.
21475         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
21476         definition.
21477         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
21478         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
21479
21480 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
21481
21482         * common.opt (Wmudflap): New option.
21483         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
21484         (mx_register_decls): Likewise.
21485         (mudflap_finish_file): Likewise.
21486         * doc/invoke.texi: Document -Wno-mudflap.
21487
21488 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
21489
21490         * c-format.c (replace_format_name_to_system_name): New.
21491         (cmp_attribs): New.
21492         (convert_format_name_to_system_name): New.
21493         (decode_format_attr): Add use of convert_format_name_to_system_name.
21494         (format_types_orig): Add gnu_ prefix to names.
21495         (check_format_info_main): Special treating of \0 escaped names for
21496         supporting multi-character format specifiers as I32, I64.
21497         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
21498         (gnu_target_overrides_format_attributes): New.
21499         * c-format.h: Add structure target_ovr_attr to hold
21500         system specific formatter names.
21501         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
21502         msformat-c.o file to c_target_objs and cxx_target_objs.
21503         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
21504         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
21505         (TARGET_N_FORMAT_TYPES): New.
21506         * config/i386/msformat-c.c: New.
21507         * config/i386/t-cygming: Add build rule for msformat-c.o.
21508         * doc/extend.texi: Add new format names gnu_* and ms_* and
21509         further details.
21510         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
21511
21512 2008-03-20  Ira Rosen  <irar@il.ibm.com>
21513
21514         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
21515         optimizations turned on under -O3.
21516         (ftree-vectorize): Add that the flag is turned on with -O3.
21517
21518 2008-03-20  Ben Elliston  <bje@au.ibm.com>
21519
21520         * regmove.c (try_auto_increment): Fix spelling error in comment.
21521         * final.c (final_scan_insn): Likewise.
21522
21523 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
21524
21525         PR target/14552
21526         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
21527         allocator preferences for "y" and "r" class registers.
21528         ("*mov<mode>_internal"): Ditto.
21529         ("*movv2sf_internal_rex64"): Ditto.
21530         ("*movv2sf_internal"): Ditto.
21531
21532 2008-03-19  Michael Matz  <matz@suse.de>
21533
21534         PR middle-end/35616
21535         * calls.c (expand_call): Check overlap of arguments with call
21536         address for sibcalls.
21537
21538 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
21539
21540         PR target/35496
21541         * stor-layout.c (update_alignment_for_field): Set minimum alignment
21542         of the underlying type of a MS bitfield layout to the natural
21543         alignment of the type.
21544
21545 2008-03-19  Jan Hubicka  <jh@suse.cz>
21546
21547         PR other/35094
21548         * toplev.c (decode_d_option): Handle all CPP flags.
21549         * tree-vrp.c: Update tree_pass descriptors.
21550         * regrename.c: Update tree_pass descriptors.
21551         * fwprop.c: Update tree_pass descriptors.
21552         * doc/invoke.texi: Remove documentation of dropped -d? flags.
21553         * tree-into-ssa.c: Update tree_pass descriptors.
21554         * tree-dump.c: Update tree_pass descriptors.
21555         * tree-complex.c: Update tree_pass descriptors.
21556         * tree-dump.h: Update tree_pass descriptors.
21557         * see.c: Update tree_pass descriptors.
21558         * cgraphbuild.c: Update tree_pass descriptors.
21559         * tracer.c: Update tree_pass descriptors.
21560         * tree-loop-distribution.c: Update tree_pass descriptors.
21561         * cgraph.c: Update tree_pass descriptors.
21562         * postreload-gcse.c: Update tree_pass descriptors.
21563         * postreload.c: Update tree_pass descriptors.
21564         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
21565         * tree-tailcall.c: Update tree_pass descriptors.
21566         * tree-pass.h (tree_opt_pass): Rename to ...
21567         (opt_pass) ... this one; add "type" field and remove letter field.
21568         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
21569         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
21570         all_lowering_passes): Update declaration.
21571         * ipa-cp.c: Update tree_pass descriptors.
21572         * final.c: Update tree_pass descriptors.
21573         * omp-low.c: Update tree_pass descriptors.
21574         * tree-ssa-dse.c: Update tree_pass descriptors.
21575         * ipa-reference.c: Update tree_pass descriptors.
21576         * tree-ssa-uncprop.c: Update tree_pass descriptors.
21577         * auto-inc-dec.c: Update tree_pass descriptors.
21578         * reorg.c: Update tree_pass descriptors.
21579         * cgraphunit.c: Update tree_pass descriptors.
21580         * tree-ssa-copyrename.c: Update tree_pass descriptors.
21581         * tree-ssa-ccp.c: Update tree_pass descriptors.
21582         * df-core.c: Update tree_pass descriptors.
21583         * mode-switching.c: Update tree_pass descriptors.
21584         * tree-nomudflap.c: Update tree_pass descriptors.
21585         * modulo-sched.c: Update tree_pass descriptors.
21586         * ipa-pure-const.c: Update tree_pass descriptors.
21587         * cse.c: Update tree_pass descriptors.
21588         * web.c: Update tree_pass descriptors.
21589         * tree-stdarg.c: Update tree_pass descriptors.
21590         * tree-ssa-math-opts.c: Update tree_pass descriptors.
21591         * tree-ssa-dom.c: Update tree_pass descriptors.
21592         * tree-nrv.c: Update tree_pass descriptors.
21593         * tree-ssa-alias.c: Update tree_pass descriptors.
21594         * loop-init.c: Update tree_pass descriptors.
21595         * gimple-low.c: Update tree_pass descriptors.
21596         * ipa-inline.c: Update tree_pass descriptors.
21597         * tree-ssa-sink.c: Update tree_pass descriptors.
21598         * global.c: Update tree_pass descriptors.
21599         * ifcvt.c: Update tree_pass descriptors.
21600         * jump.c: Update tree_pass descriptors.
21601         * predict.c: Update tree_pass descriptors.
21602         * tree-ssa-loop.c: Update tree_pass descriptors.
21603         * recog.c: Update tree_pass descriptors.
21604         * dse.c: Update tree_pass descriptors.
21605         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
21606         * tree-eh.c: Update tree_pass descriptors.
21607         * regmove.c: Update tree_pass descriptors.
21608         * local-alloc.c
21609         * function.c: Update tree_pass descriptors.
21610         * tree-vectorizer.c: Update tree_pass descriptors.
21611         * gcse.c: Update tree_pass descriptors.
21612         * ipa-type-escape.c: Update tree_pass descriptors.
21613         * tree-if-conv.c: Update tree_pass descriptors.
21614         * init-regs.c: Update tree_pass descriptors.
21615         * ipa.c: Update tree_pass descriptors.
21616         * tree-ssa-phiopt.c: Update tree_pass descriptors.
21617         * rtl-factoring.c: Update tree_pass descriptors.
21618         * lower-subreg.c: Update tree_pass descriptors.
21619         * bt-load.c: Update tree_pass descriptors.
21620         * tree-dfa.c: Update tree_pass descriptors.
21621         * except.c: Update tree_pass descriptors.
21622         * emit-rtl.c: Update tree_pass descriptors.
21623         * cfgexpand.c: Update tree_pass descriptors.
21624         * tree-cfgcleanup.c: Update tree_pass descriptors.
21625         * cfgcleanup.c: Update tree_pass descriptors.
21626         * tree-ssa-pre.c: Update tree_pass descriptors.
21627         * tree-sra.c: Update tree_pass descriptors.
21628         * tree-mudflap.c: Update tree_pass descriptors.
21629         * tree-ssa-copy.c: Update tree_pass descriptors.
21630         * cfglayout.c: Update tree_pass descriptors.
21631         * tree-ssa-forwprop.c: Update tree_pass descriptors.
21632         * tree-ssa-dce.c: Update tree_pass descriptors.
21633         * tree-ssa.c: Update tree_pass descriptors.
21634         * regclass.c: Update tree_pass descriptors.
21635         * integrate.c: Update tree_pass descriptors.
21636         * tree-optimize.c: Update tree_pass descriptors.
21637         * tree-ssa-phiprop.c: Update tree_pass descriptors.
21638         * tree-object-size.c: Update tree_pass descriptors.
21639         * combine.c: Update tree_pass descriptors.
21640         * tree-outof-ssa.c: Update tree_pass descriptors.
21641         * bb-reorder.c: Update tree_pass descriptors.
21642         * stack-ptr-mod.c: Update tree_pass descriptors.
21643         * var-tracking.c: Update tree_pass descriptors.
21644         * tree-profile.c: Update tree_pass descriptors.
21645         * tree-vect-generic.c: Update tree_pass descriptors.
21646         * reg-stack.c: Update tree_pass descriptors.
21647         * sched-rgn.c: Update tree_pass descriptors.
21648         * tree-ssa-structalias.c: Update tree_pass descriptors.
21649         * tree-cfg.c: Update tree_pass descriptors.
21650         * passes.c (current_pass): Update declaration.
21651         (finish_optimization_passes): Update.
21652         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
21653         (register_one_dump_file, register_dump_files_1, next_pass_1):
21654         Update arguments.
21655         (init_optimization_passes): Update handling of new types.
21656         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
21657         * ipa-struct-reorg.c: Update tree_pass descriptors.
21658         * tree-ssa-reassoc.c: Update tree_pass descriptors.
21659         * combine-stack-adj.c: Update tree_pass descriptors.
21660         * cfgrtl.c: Update tree_pass descriptors.
21661         * dce.c: Update tree_pass descriptors.
21662         * tree-ssanames.c: Update tree_pass descriptors.
21663
21664 2008-03-19  Richard Guenther  <rguenther@suse.de>
21665
21666         PR middle-end/35609
21667         * tree-ssa.c (walk_data): New structure.
21668         (warn_uninitialized_var): If not always_executed warn with "maybe"
21669         instead of "is".
21670         (execute_early_warn_uninitialized): Compute post-dominators.
21671         Initialize always_executed before processing each basic block.
21672
21673 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
21674
21675         PR target/35504
21676         * config/i386/i386.c (x86_this_parameter): Calculate correct location
21677         of "this" pointer when "regparm = N" or "fastcall" is in effect.
21678
21679 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
21680
21681         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
21682
21683 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
21684
21685         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
21686         is true.
21687         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
21688         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
21689         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
21690         target after ignore has been set, and move there also the commputation
21691         of subtarget and original_target.
21692         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
21693         (LANG_HOOKS_INITIALIZER): Remove it.
21694         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
21695
21696 2008-03-18  Richard Guenther  <rguenther@suse.de>
21697
21698         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
21699         found an expression with constants, note that in the VN for the lhs.
21700         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
21701         fold them to constants if possible.  Run cleanup_cfg if done so.
21702         (execute_pre): Return todo.
21703         (do_pre): Likewise.
21704         (execute_fre): Likewise.
21705         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
21706         of constants.
21707         (get_prop_source_stmt): Look through pointer conversions.
21708
21709 2008-03-18  Jan Hubicka  <jh@suse.cz>
21710
21711         * tree-pretty-print.c: Include predict.h.
21712         (dump_generic_node): Dump predictor.
21713         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
21714         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
21715         * gimple-low.c (lower_stmt): Likewise.
21716         * expr.c (expand_expr_real): Likewise.
21717         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
21718         them.
21719         (build_predict_expr, build_predict_expr): New.
21720         * predict.h (predictor_name, build_predict_expr): Update.
21721         * c-typeck.c (c_finish_bc_stmt): Add prediction.
21722         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
21723         * predict.def (PRED_CONTINUE): Update hitrate.
21724         * tree.def (PREDICT_EXPR): Define.
21725         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
21726         do not handle BIND_EXPR.
21727         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
21728         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
21729         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
21730         operands.
21731
21732 2008-03-18  Michael Matz  <matz@suse.de>
21733
21734         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
21735
21736 2008-03-18  Richard Guenther  <rguenther@suse.de>
21737
21738         * tree-gimple.h (is_gimple_invariant_address): Declare.
21739         (is_gimple_constant): Likewise.
21740         * tree-gimple.c (is_gimple_constant): New function.
21741         (is_gimple_invariant_address): Likewise.
21742         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
21743         and is_gimple_invariant_address.
21744         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
21745         previous change.
21746         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
21747         an addressable base.
21748
21749 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
21750
21751         PR middle-end/35611
21752         * gimplify.c (gimplify_expr): Gimplify second operand of
21753         OMP_ATOMIC_LOAD.
21754
21755 2008-03-17  Richard Guenther  <rguenther@suse.de>
21756
21757         PR tree-optimization/19637
21758         * fold-const.c (fold_unary): Remove restrictions of removing
21759         intermediate pointer-conversions (P2)(P1)P0.
21760         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
21761         conversion to void pointer.
21762         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
21763
21764 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
21765
21766         PR debug/31510
21767         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
21768         emulated thread local variables.
21769
21770 2008-03-16  Richard Guenther  <rguenther@suse.de>
21771
21772         PR middle-end/35607
21773         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
21774         expand TREE_INVARIANT operations that are not gimple invariant.
21775
21776 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
21777
21778         * doc/extend.texi (Alignment): Say that the ABI controls
21779         the __alignof__ for non-strict-alignment targets rather
21780         than being a recommendation.
21781
21782 2008-03-15  Paul Brook  <paul@codesourcery.com>
21783
21784         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
21785         annotations.
21786         (arm_output_fn_unwind): Mark functions that can not be unwound.
21787
21788 2008-03-15  Paul Brook  <paul@codesourcery.com>
21789
21790         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
21791         extension instructions.
21792
21793 2008-03-15  Richard Guenther  <rguenther@suse.de>
21794
21795         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
21796         and fold constant aggregate refs.
21797         (fold_const_aggregate_ref): Handle string constants
21798         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
21799         (evaluate_stmt): Simplify now that ccp_fold folds constant
21800         aggregate refs.
21801
21802 2008-03-15  Paul Brook  <paul@codesourcery.com>
21803
21804         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
21805         (extzv): Use gen_extzv_t2.
21806         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
21807
21808 2008-03-15  Richard Guenther  <rguenther@suse.de>
21809
21810         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
21811         (fold_const_aggregate_ref): Likewise.
21812         (get_value): Return NULL if we don't have any values.
21813         (ccp_finalize): Set const_val to NULL after freeing it.
21814         * tree-flow.h (get_symbol_constant_value): Declare.
21815         (fold_const_aggregate_ref): Likewise.
21816         * tree-ssa-sccvn.c (try_to_simplify): Use them.
21817
21818 2008-03-15  Richard Guenther  <rguenther@suse.de>
21819
21820         PR middle-end/35593
21821         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
21822         to not produce negative array indices if not allowed.  Add
21823         parameter to indicate that.
21824         (maybe_fold_offset_to_component_ref): Allow negative array
21825         indices only for the first member of a structure.
21826         (maybe_fold_offset_to_reference): Allow negative array indices.
21827         (maybe_fold_stmt_addition): Likewise.
21828
21829 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
21830             Anatoly Sokolov <aesok@post.ru>
21831
21832         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
21833         (avr_arch): Add ARCH_AVR6.
21834         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
21835         (initial_elimination_offset): Initialize and use 'avr_pc_size'
21836         instead of fixed value 2.
21837         (print_operand_address): Use gs() asm specifier instead of pm().
21838         (avr_assemble_integer): (Ditto.).
21839         (avr_output_addr_vec_elt): (Ditto.).
21840         (print_operand): Handle "!" code.
21841         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add
21842         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
21843         (AVR_HAVE_EIJMP_EICALL): Define.
21844         (AVR_3_BYTE_PC): Redefine.
21845         (AVR_2_BYTE_PC): (Ditto.).
21846         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
21847         (LINK_SPEC): Add atmega2560 and atmega2561.
21848         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561
21849         (crtm2561.o).
21850         * config/avr/avr.md (call_insn): Use eicall instead of icall
21851         for 3 byte PC devices.
21852         (call_value_insn): (Ditto.).
21853         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
21854         (indirect_jump): Use only for for 2 byte PC devices.
21855         (*tablejump): (Ditto.).
21856         (*indirect_jump_avr6): Add insn.
21857         (*tablejump_rjmp): Don't use for 3 byte PC devices.
21858         * config/avr/libgcc.S (__prologue_saves__): Use eijmp
21859         instead of ijmp for 3 byte PC devices.
21860         (__tablejump2__): (Ditto.).
21861         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
21862         (MULITLIB_DIRNAMES): (Ditto.).
21863         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
21864
21865 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
21866
21867         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
21868         "sse2_umulsidi3".  Use V1DI mode for operand 0.
21869         ("mmx_psadbw"): Use V1DI mode for operand 0.
21870         * config/i386/i386-modes.def (V1SI): New vector mode.
21871         * config/i386/i386.c (struct builtin_description)
21872         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
21873         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
21874         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
21875         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
21876         v1di_ftype_v8qi_v8qi type.
21877         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
21878
21879         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
21880         __builtin_ia32_pmuludq]: Fix the mode of return value.
21881
21882 2008-03-15  Richard Guenther  <rguenther@suse.de>
21883
21884         PR middle-end/35595
21885         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
21886         being a PHI_NODE.
21887
21888 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
21889
21890         * doc/invoke.texi (Option Summary, Xtensa Options): Document
21891         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
21892         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
21893         unless TARGET_SERIALIZE_VOLATILE is enabled.
21894         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
21895         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
21896         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
21897
21898 2008-03-14  Richard Guenther  <rguenther@suse.de>
21899
21900         PR tree-optimization/34172
21901         * tree-flow.h (refs_may_alias_p): Declare.
21902         (get_single_def_stmt): Likewise.
21903         (get_single_def_stmt_from_phi): Likewise.
21904         (get_single_def_stmt_with_phi): Likewise.
21905         * tree-dfa.c (refs_may_alias_p): New function.
21906         (get_single_def_stmt): Likewise.
21907         (get_single_def_stmt_from_phi): Likewise.
21908         (get_single_def_stmt_with_phi): Likewise.
21909         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
21910         (vn_reference_lookup_1): New helper function.
21911         (vn_reference_lookup): Walk the virtual use-def chain to
21912         continue searching for a match if the def does not alias the
21913         reference we are looking for.
21914
21915 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
21916
21917         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
21918         archive and Perzl.  Update The Written Word listing.
21919
21920 2008-03-14  Richard Guenther  <rguenther@suse.de>
21921
21922         PR tree-optimization/34043
21923         PR tree-optimization/33989
21924         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
21925         when doing FRE.
21926         (bitmap_find_leader): Use extra argument to verify dominance
21927         relationship inside a basic-block.
21928         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
21929         (find_leader_in_sets): Adjust.
21930         (create_component_ref_by_pieces): Take extra argument for
21931         dominance check, handle lookup failures.
21932         (find_or_generate_expression): Likewise.
21933         (create_expression_by_pieces): Likewise.
21934         (insert_into_preds_of_block): Adjust.
21935         (create_value_expr_from): If asked for, verify all operands
21936         are in the blocks AVAIL_OUT set.
21937         (make_values_for_stmt): Check for SSA_NAMEs that are life
21938         over an abnormal edge.
21939         (compute_avail): Remove such check.
21940         (do_SCCVN_insertion): New function.
21941         (eliminate): If we do not find a leader suitable for replacement
21942         insert a replacement expression from SCCVN if available.
21943         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
21944         (struct vn_ssa_aux): Add needs_insertion flag.
21945         * tree-ssa-sccvn.c (may_insert): New global flag.
21946         (copy_reference_ops_from_ref): Value-number union member access
21947         based on its size, not type and member if insertion is allowed.
21948         (visit_reference_op_load): For a weak match from union type
21949         punning lookup a view-converted value and insert a SSA_NAME
21950         for that value if that is not found.
21951         (visit_use): Make dumps shorter.  Do not disallow value numbering
21952         SSA_NAMEs that are life over an abnormal edge to constants.
21953         (free_scc_vn): Release inserted SSA_NAMEs.
21954         (run_scc_vn): New flag to specify whether insertion is allowed.
21955         Process SSA_NAMEs in forward order.
21956         * tree-ssa-loop-im.c (for_each_index): Handle invariant
21957         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
21958         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
21959         pointer type to/from integral types that do not change the
21960         precision to regular conversions.
21961
21962 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
21963
21964         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
21965         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
21966         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
21967         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
21968         input arguments and the mode of return value.  Built-in functions
21969         that operate on whole 64-bit MMX register now use V1DI mode.
21970
21971 2008-03-13  Alon Dayan  <alond@il.ibm.com>
21972             Olga Golovanevsky  <olga@il.ibm.com>
21973
21974         PR tree-optimization/35041
21975         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
21976         to locate the right position in a statement.
21977
21978 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
21979
21980         PR target/34000
21981         PR target/35553
21982         * config/i386/xmmintrin.h:  Change all static inline functions to
21983         extern inline and add __gnu_inline__ attribute.
21984         * config/i386/bmintrin.h: Ditto.
21985         * config/i386/smmintrin.h: Ditto.
21986         * config/i386/tmmintrin.h: Ditto.
21987         * config/i386/mmintrin-common.h: Ditto.
21988         * config/i386/ammintrin.h: Ditto.
21989         * config/i386/emmintrin.h: Ditto.
21990         * config/i386/pmmintrin.h: Ditto.
21991         * config/i386/mmintrin.h: Ditto.
21992         * config/i386/mm3dnow.h: Ditto.
21993
21994 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
21995
21996         PR middle-end/35185
21997         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
21998         (lower_omp_2): New function.
21999         (lower_omp_1, lower_omp): Rewritten.
22000
22001 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
22002
22003         PR 35054
22004         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
22005         with the phrase "Microsoft Windows compilers".
22006         (Push/Pop Macro Pragmas): New subsection. Document
22007         #pragma push_macro and pragma pop_macro.
22008
22009 2008-03-12  Paul Brook  <paul@codesourcery.com>
22010
22011         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
22012
22013 2008-03-12  Paul Brook  <paul@codesourcery.com>
22014
22015         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
22016         (thumb2_alusi3_short): Exclude PLUS and MINUS.
22017         (thumb2_addsi_shortim): Rename ...
22018         (thumb2_addsi_short): ... to this.  Allow register operands.
22019         (thumb2_subsi_short): New pattern.
22020         (thumb2_one_cmplsi2_short,
22021         thumb2_negsi2_short): New patterns and peepholes.
22022
22023 2008-03-12  Paul Brook  <paul@codesourcery.com>
22024
22025         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
22026
22027 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
22028
22029         * config/i386/i386.md (int_cond): New code iterator.
22030         (fp_cond): Ditto.
22031         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
22032         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
22033         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
22034         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
22035         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
22036         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
22037         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
22038         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
22039
22040 2008-03-12  Paul Brook  <paul@codesourcery.com>
22041
22042         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
22043         instead of {arm,thumb}_compute_save_reg_mask.
22044         (output_return_instruction): Ditto.
22045         (thumb_unexpanded_epilogue): Ditto.
22046         (thumb1_expand_prologue): Ditto.
22047         (thumb1_output_function_prologue): Ditto.
22048         (arm_set_return_address): Ditto.
22049         (thumb_set_return_address): Ditto.
22050         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
22051         regs to achieve stack alignment.
22052         (thumb1_compute_save_reg_mask): Fix compiler warning.
22053         (arm_output_epilogue): Use offsets->saved_regs_mask.
22054         Adjust stack pointer by poping call clobered registers.
22055         (arm_expand_prologue): Use offsets->saved_regs_mask.
22056         Adjust stack pointer by pushing extra registers.
22057         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
22058
22059 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
22060
22061         PR tree-opt/35422
22062         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
22063         conversion to the operands of a multiplication.
22064
22065 2008-03-12  Richard Guenther  <rguenther@suse.de>
22066
22067         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
22068         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
22069         * timevar.def (TV_TREE_PHIPROP): Add.
22070         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
22071         pass description.  Use TV_TREE_PHIPROP.
22072         * tree-ssa-forwprop.c: Remove phiprop code.
22073
22074 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
22075
22076         PR middle-end/35549
22077         * omp-low.c (maybe_lookup_decl): Constify first argument.
22078         (use_pointer_for_field): Change last argument from bool to
22079         omp_context *.  Disallow shared copy-in/out in nested
22080         parallel if decl is shared in outer parallel too.
22081         (build_outer_var_ref, scan_sharing_clauses,
22082         lower_rec_input_clauses, lower_copyprivate_clauses,
22083         lower_send_clauses, lower_send_shared_vars): Adjust callers.
22084
22085 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
22086             Ira Rosen  <irar@il.ibm.com>
22087
22088         * tree-vectorizer.c (free_stmt_vec_info): New function.
22089         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
22090         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
22091         * tree-vectorizer.h (free_stmt_vec_info): Declare.
22092         * tree-vect-transform.c (vectorizable_conversion): Free
22093         vec_oprnds0 if it was allocated.
22094         (vect_permute_store_chain): Remove unused VECs.
22095         (vectorizable_store): Free VECs that are allocated in the..
22096         function.
22097         (vect_transform_strided_load, vectorizable_load): Likewise.
22098         (vect_remove_stores): Simplify the code.
22099         (vect_transform_loop): Move code to vect_remove_stores().
22100         Call vect_remove_stores() and free_stmt_vec_info().
22101
22102 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22103
22104         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
22105         TARGET_HPUX.  Revise comment.
22106         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
22107         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
22108         Use sr4 variant of `be' instruction when not generating PIC code.
22109         (attr_length_call): Adjust for above change.
22110
22111 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
22112
22113         * ipa-reference.c (static_execute): Remove module_statics_const and
22114         associated setting code.
22115
22116 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
22117
22118         PR target/35540
22119         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
22120         predicate for operand 1.
22121         (paritysi2_cmp): Use register_operand predicate for operand 2.
22122         Use earlyclobber modifier for operand 1.  Remove support for
22123         memory operands.
22124         (paritydi2_cmp): Use register_operand predicate for operand 3.
22125         Use earlyclobber modifier for operand 1.  Remove support for
22126         memory operands.
22127
22128 2008-03-11  Paul Brook  <paul@codesourcery.com>
22129             Vladimir Prus  <vladimir@codesourcery.com>
22130
22131         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
22132         (arm_compute_save_reg0_reg12_mask): Always
22133         check if register 11 must be saved.  Always safe hard frame pointer
22134         when frame_pointer_needeed.
22135         (arm_compute_save_reg_mask): Save IP and PC
22136         only with apcs frames.
22137         (arm_output_epilogue): Adjust Thumb2 codepath to
22138         be also invoked and work for ARM non-apcs frames.
22139         (arm_expand_prologue): Don't bother saving IP
22140         for non-apcs frame, since it's not clobbered by
22141         prologue code.  Implement non-apcs frame
22142         layout.
22143
22144 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
22145
22146         PR rtl-optimization/35281
22147         * expr.c (convert_move): Use a new pseudo for the intermediate
22148         from_mode->word_mode result.
22149
22150 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
22151
22152         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
22153         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
22154         * toplev.c (compile_file): Don't call it.
22155
22156 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
22157
22158         PR middle-end/35526
22159         * expr.c (store_expr): Call emit_block_move if the mode
22160         of "temp" RTX is BLKmode.
22161
22162 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
22163             Richard Guenther  <rguenther@suse.de>
22164
22165         PR tree-optimization/31358
22166         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
22167         the step with a NULL_TREE.
22168         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
22169         to sizetype if type is a pointer type.
22170         (add_candidate_1): Don't convert the base and step to
22171         the generic type if the orginal type is a pointer type.
22172         (add_iv_value_candidates): Use sizetype for the step
22173         if type is a pointer type.
22174         (cand_value_at): Likewise.
22175         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
22176         for pointer types.
22177         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
22178         Don't convert the tem affine to the type.
22179         (add_elt_to_tree): Use sizetype for the step if a pointer.
22180         Use POINTER_PLUS_EXPR for pointers.
22181         (aff_combination_to_tree): Use sizetype for the step if a
22182         pointer.
22183
22184 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
22185
22186         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
22187         Remove commutativity hint.
22188
22189 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
22190
22191         PR c/35438
22192         PR c/35439
22193         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
22194         errorneous type.  Check that v is a VAR_DECL.
22195
22196         PR middle-end/35099
22197         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
22198
22199 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
22200
22201         PR tree-optimization/35494
22202         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
22203         may be overriden at link and run time.
22204
22205 2008-03-10  Richard Guenther  <rguenther@suse.de>
22206
22207         PR tree-optimization/34677
22208         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
22209         (poolify_tree): Likewise.
22210         (modify_expr_template): Likewise.
22211         (poolify_modify_stmt): Likewise.
22212         (insert_fake_stores): Handle all component-ref style stores
22213         in addition to INDIRECT_REF.  Also handle complex types.
22214         Do not poolify the inserted load.
22215         (realify_fake_stores): Do not rebuild the tree but only
22216         make it a SSA_NAME copy.
22217         (init_pre): Remove initialzation of modify_expr_template.
22218         Do not allocate modify_expr_node_pool.
22219         (fini_pre): Do not free modify_expr_node_pool.
22220
22221 2008-03-10  Paul Brook  <paul@codesourcery.com>
22222
22223         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
22224         to avoid conflicts.
22225
22226 2008-03-10  Paul Brook  <paul@codesourcery.com>
22227             Mark Shinwell  <shinwell@codesourcery.com>
22228
22229         * config/arm/cortex-r4.md: New.
22230         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
22231         insn attributes.
22232         * config/arm/arm.md: Include cortex-r4.md.
22233         (insn): Add smmls, sdiv and udiv values.
22234         (generic_sched): Don't use generic scheduling for Cortex-R4.
22235         (arm_issue_rate): New function.
22236         (TARGET_SCHED_ISSUE_RATE): Define.
22237
22238 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
22239
22240         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
22241
22242 2008-03-10  Richard Guenther  <rguenther@suse.de>
22243
22244         * tree-ssa-pre.c (get_sccvn_value): Simplify.
22245         (compute_avail): Do not add stmt uses to AVAIL_OUT.
22246
22247 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
22248
22249         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
22250         Set default to true.
22251
22252 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22253
22254         * c.opt (Wsynth): Deprecate.
22255         * doc/invoke.texi (Option Summary, Warning Options): Document
22256         -Wno-format-contains-nul.
22257
22258 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
22259
22260         PR target/35496
22261         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
22262         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
22263
22264 2008-03-09  Ira Rosen  <irar@il.ibm.com>
22265
22266         * config/rs6000/rs6000.c (builtin_description): Rename vector
22267         left shift operations.
22268         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
22269         (altivec_vsl<VI_char>): Rename to ...
22270         (ashl<mode>3): ... new name.
22271         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
22272         gen_ashlv4si3.
22273         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
22274
22275 2008-03-08  Richard Guenther  <rguenther@suse.de>
22276
22277         * coverage.h (tree_coverage_counter_addr): Declare.
22278         * coverage.c (tree_coverage_counter_addr): New function.
22279         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
22280         before using again.
22281         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
22282         (tree_gen_one_value_profiler): Likewise.
22283         (tree_gen_ic_profiler): Likewise.
22284         (tree_gen_average_profiler): Likewise.
22285         (tree_gen_ior_profiler): Likewise.
22286
22287 2008-03-08  Richard Guenther  <rguenther@suse.de>
22288
22289         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
22290         (vn_binary_op_insert): Likewise.
22291         (vn_unary_op_lookup): Likewise.
22292         (vn_unary_op_insert): Likewise.
22293         (vn_nary_op_lookup): Declare.
22294         (vn_nary_op_insert): Likewise.
22295         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
22296         and binary hashes, use a single obstack for unary_op_pool
22297         and binary_op_pool.
22298         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
22299         a single struct vn_nary_op_s.  Store tree code length and
22300         a variable number of operands.
22301         (struct vn_reference_op_struct): Remove unused op2.
22302         (vn_reference_op_eq): Do not compare op2.
22303         (vn_reference_op_compute_hash): Do not compute hash of op2.
22304         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
22305         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
22306         with vn_nary_op_compute_hash.
22307         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
22308         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
22309         vn_nary_op_lookup.
22310         (vn_unary_op_insert, vn_binary_op_insert): Replace with
22311         vn_nary_op_insert.
22312         (visit_unary_op): Call nary functions.
22313         (visit_binary_op): Likewise.
22314         (process_scc): Adjust for struct vn_tables_s changes.
22315         (allocate_vn_table): Likewise.
22316         (free_vn_table): Likewise.
22317         * tree-vn.c (vn_add): Call nary functions.
22318         (vn_lookup): Likewise.
22319
22320 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
22321
22322         PR target/35498
22323         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
22324         wdst back after sync_compare_and_swapqhi_internal.
22325
22326 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
22327
22328         PR target/22152
22329         * config/i386/i386-modes.def (V1DI): New vector mode.
22330         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
22331         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
22332         (MMXMODE248): Ditto.
22333         (MMXMODE): Add V1DI mode.
22334         (mmxvecsize): Change DI mode to V1DI mode.
22335         ("mov<mode>): Use MMXMODEI8 mode iterator.
22336         ("*mov<mode>_internal_rex64"): Ditto.
22337         ("*mov<mode>_internal"): Ditto.
22338         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
22339         ("mmx_sub<mode>3"): Ditto.
22340         ("mmx_adddi3"): Remove insn pattern.
22341         ("mmx_subdi3"): Ditto.
22342         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
22343         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
22344         ("mmx_ashl<mode>3"): Ditto.
22345         ("mmx_lshrdi3"): Remove insn pattern.
22346         ("mmx_ashldi3"): Ditto.
22347         * config/i386/i386.c (classify_argument): Handle V1DImode.
22348         (function_arg_advance_32): Ditto.
22349         (function_arg_32): Ditto.
22350         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
22351         mmx_addv1di3 insn pattern.
22352         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
22353         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
22354         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
22355         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
22356         Remove definitions of built-in functions.
22357         (V1DI_type_node): New node.
22358         (v1di_ftype_v1di_int): Ditto.
22359         (v1di_ftype_v1di_v1di): Ditto.
22360         (v2si_ftype_v2si_si): Ditto.
22361         (v4hi_ftype_v4hi_di): Remove node.
22362         (v2si_ftype_v2si_di): Ditto.
22363         (ix86_init_mmx_sse_builtins): Handle V1DImode.
22364         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
22365         Redefine builtins using def_builtin_const with *_ftype_*_int node.
22366         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
22367         Add new builtins using def_builtin_const.
22368         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
22369         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
22370         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
22371         * config/i386/mmintrin.h (__v1di): New typedef.
22372         (_mm_add_si64): Cast arguments to __v1di type.
22373         (_mm_sub_si64): Ditto.
22374         (_mm_sll_pi16): Cast __count to __v4hi type.
22375         (_mm_sll_pi32): Cast __count to __v2si type.
22376         (_mm_sll_si64): Cast arguments to __v1di type.
22377         (_mm_srl_pi16): Cast __count to __v4hi type.
22378         (_mm_srl_pi32): Cast __count to __v2si type.
22379         (_mm_srl_si64): Cast arguments to __v1di type.
22380         (_mm_sra_pi16): Cast __count to __v4hi type.
22381         (_mm_sra_pi32): Cast __count to __v2si type.
22382         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
22383         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
22384         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
22385         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
22386         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
22387         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
22388         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
22389         (_mm_srai_pi32): Use __builtin_ia32_psradi.
22390         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
22391         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
22392         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
22393         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
22394
22395 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
22396
22397         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
22398
22399 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
22400
22401         PR target/35373
22402         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
22403         reg+const addressing for Altivec modes.  Don't generate reg+reg
22404         addressing for TFmode or TDmode quantities.
22405
22406 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
22407
22408         * c-common.c (vector_types_convertible_p): Call langhook
22409         instead of comptypes.
22410
22411 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
22412
22413         PR tree-opt/35402
22414         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
22415         integral and scalar float variables which have a
22416         NULL DECL_INITIAL.
22417
22418 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
22419
22420         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
22421         dwarf_register_span hook when emitting unwind information for
22422         register-to-memory saves.
22423         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
22424         (rs6000_frame_related): Remove call to spe_synthesize_frame.
22425
22426 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
22427
22428         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
22429         for the same VAR_DECL.
22430
22431 2008-03-06  Tom Tromey  <tromey@redhat.com>
22432
22433         * treelang: Delete.
22434         * doc/standards.texi (Standards): Don't mention treelang.
22435         * doc/invoke.texi (Overall Options): Don't mention treelang.
22436         * doc/install.texi (Prerequisites): Don't mention bison or
22437         treelang.
22438         (Configuration): Don't mention treelang.
22439         (Building): Likewise.
22440         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
22441
22442 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
22443
22444         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
22445         word-extractions out of a multi-word object.
22446
22447 2008-03-06  Richard Guenther  <rguenther@suse.de>
22448
22449         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
22450         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
22451         result type and precision.
22452         * expr.c (get_inner_reference): Set unsignedp based on the result
22453         type of BIT_FIELD_REF.
22454         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
22455         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
22456         (try_instantiate_multiple_fields): Likewise.  Use the correct type
22457         for BIT_FIELD_REF.
22458         (sra_build_assignment): Likewise.
22459         (sra_build_elt_assignment): Likewise.
22460         (sra_explode_bitfield_assignment): Likewise.
22461         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
22462         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
22463         set BIT_FIELD_REF_UNSIGNED.
22464         (vectorizable_load): Likewise.
22465
22466 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
22467
22468         * cse.c (cse_extended_basic_block): Invalidate artificial defs
22469         at bb start.
22470
22471 2008-03-06  Richard Guenther  <rguenther@suse.de>
22472
22473         * alias.c (struct alias_set_entry): Move has_zero_child field
22474         to pack with alias_set.
22475
22476 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
22477
22478         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
22479         32bit host.
22480
22481 2008-03-05  Ian Lance Taylor  <iant@google.com>
22482
22483         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
22484
22485 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
22486
22487         * fwprop.c (update_df): Support width and offset parameters of
22488         df_ref_create.
22489         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
22490         global_conflicts): Change DF_REF_EXTRACT to either
22491         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
22492         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
22493         * df-scan.c (df_ref_record, df_defs_record,
22494         df_ref_create_structure, df_def_record_1, df_uses_record,
22495         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
22496         df_bb_refs_collect, df_entry_block_defs_collect,
22497         df_exit_block_uses_collect): Support new width and offset fields.
22498         (ref_extract_pool): New storage pool.
22499         (df_free_ref): New function.
22500         (df_reg_chain_unlink, df_free_collection_rec,
22501         df_sort_and_compress_refs): Call df_free_ref.
22502         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
22503         of df_ref_extract.
22504         (df_ref_create_structure): Allocate df_ref_extract if offset and
22505         width fields are used.
22506         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
22507         (df_uses_record): Get offset and width from ZERO_EXTRACT
22508         and SIGN_EXTRACT.
22509         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
22510         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
22511         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
22512         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
22513         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
22514         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
22515         (df_ref_extract): New structure.
22516         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
22517         (df_ref_create): Add width and offset parameters.
22518
22519 2008-03-05  Richard Guenther  <rguenther@suse.de>
22520
22521         * tree-ssa-structalias.c (get_constraint_for_component_ref):
22522         Use ranges_overlap_p.
22523         (offset_overlaps_with_access): Rename
22524         to ranges_overlap_p and move ...
22525         * tree-flow-inline.h (ranges_overlap_p): ... here.
22526
22527         * tree.h (get_inner_reference, handled_component_p): Update
22528         comments.
22529
22530         * tree.h (record_component_aliases, get_alias_set,
22531         alias_sets_conflict_p, alias_sets_must_conflict_p,
22532         objects_must_conflict_p): Move declarations ...
22533         * alias.h (record_component_aliases, get_alias_set,
22534         alias_sets_conflict_p, alias_sets_must_conflict_p,
22535         objects_must_conflict_p): ... here.
22536         Include coretypes.h.
22537         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
22538
22539 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
22540
22541         * cfg.c: Include tree-flow.h.
22542         (remove_edge_raw): Call redirect_edge_var_map_clear.
22543         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
22544         * tree-flow-inline.h (redirect_edge_var_map_def): New.
22545         (redirect_edge_var_map_result): New.
22546         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
22547         PENDING_STMT use with redirect_edge_var_map_*.
22548         * tree-ssa.c (edge_var_maps): New definition.
22549         (redirect_edge_var_map_add): New.
22550         (redirect_edge_var_map_clear): New.
22551         (redirect_edge_var_map_dup): New.
22552         (redirect_edge_var_map_vector): New.
22553         (redirect_edge_var_map_destroy): New.
22554         (ssa_redirect_edge): Replace PENDING_STMT use with
22555         redirect_edge_var_map_*.
22556         (flush_pending_stmts): Same.
22557         (delete_tree_ssa): Destroy edge var map.
22558         * tree-flow.h (struct _edge_var_map): New.
22559         Define edge_var_map vector type.
22560         Declare redirect_edge_var_map_* prototypes.
22561         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
22562         * tree-cfg.c (reinstall_phi_args): Replace
22563         PENDING_STMT use with redirect_edge_var_map_*.
22564
22565 2008-03-05  Richard Guenther  <rguenther@suse.de>
22566
22567         PR tree-optimization/35472
22568         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
22569         whose single use_stmt has a overlapping set of loaded and
22570         stored symbols as that use_stmt might be a noop assignment then.
22571
22572 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
22573
22574         * gthr-rtems.h: Implement __gthread_mutex_destroy.
22575
22576 2008-03-05  Richard Guenther  <rguenther@suse.de>
22577
22578         PR c++/35336
22579         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
22580         should be constants.
22581         * tree-cfg.c (verify_expr): Verify it.
22582         * fold-const.c (fold_truthop): Remove code generating
22583         BIT_FIELD_REFs of structure bases.
22584         (fold_binary): Likewise.
22585         (fold_ternary): Position and size of BIT_FIELD_REFs are
22586         always host integers.
22587         (make_bit_field_ref): Remove.
22588         (optimize_bit_field_compare): Remove.
22589         (all_ones_mask_p): Remove.
22590
22591 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
22592
22593         PR gcc/33009
22594         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
22595         (split_block_and_df_analyze): New. Split basic block and rebuild
22596         dataflow.
22597         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
22598         SPLIT_BLOCK.
22599         (split_pattern_seq): Likewise.
22600         (erase_matching_seqs): Likewise.
22601         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
22602
22603 2008-03-04  Geoff Keating  <geoffk@apple.com>
22604
22605         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
22606         declaration and code.
22607         (tree_invalid_nonnegative_warnv_p): Likewise.
22608
22609 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
22610
22611         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
22612         examples.  Truncate option-names then causing overfull hbox.
22613
22614 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22615
22616         PR target/35222
22617         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
22618         on hpux10.
22619         * configure: Rebuilt.
22620
22621 2008-03-04  Rafael EspÃ\83­ndola  <espindola@google.com>
22622
22623         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
22624         (tree_unary_nonnegative_warnv_p): New.
22625         (tree_binary_nonnegative_warnv_p): New.
22626         (tree_single_nonnegative_warnv_p): New.
22627         (tree_invalid_nonnegative_warnv_p): New.
22628         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
22629
22630 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
22631
22632         PR 28322
22633         * opts.c (handle_option): Postpone 'unknown option' errors only for
22634         warning options.
22635
22636 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
22637
22638         PR target/35453
22639         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
22640         (_SIDD_XXX): This.
22641
22642 2008-03-04  Rafael EspÃ\83­ndola  <espindola@google.com>
22643
22644         * fold-const.c (tree_unary_nonzero_warnv_p): New.
22645         (tree_binary_nonzero_warnv_p): New.
22646         (tree_single_nonzero_warnv_p): New.
22647         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
22648
22649 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
22650
22651         PR middle-end/35456
22652         * fold-const.c (fold_cond_expr_with_comparison): Prevent
22653         transformations for modes that have signed zeros.
22654         * ifcvt.c (noce_try_abs): Ditto.
22655
22656 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
22657
22658         * config/i386/i386.c (override_options): Force
22659         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
22660
22661 2008-03-04  Jan Hubicka  <jh@suse.cz>
22662
22663         PR c++/35262
22664         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
22665         in last commit.
22666
22667 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
22668
22669         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
22670         label to probe the stack.
22671
22672 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
22673
22674         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
22675         (__gthr_win32_mutex_destroy): Declare.
22676         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
22677         __gthr_win32_mutex_destroy.
22678         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
22679
22680 2008-03-03  Jan Hubicka  <jh@suse.cz>
22681
22682         PR c++/35262
22683         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
22684         aggressive on inlining cold calls.
22685
22686 2008-03-03  Richard Guenther  <rguenther@suse.de>
22687
22688         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
22689         struct copies into the expression table.
22690         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
22691         (try_to_simplify): Likewise.
22692         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
22693         integral and pointer arguments which do not change the
22694         precision to NOP_EXPRs.
22695         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
22696         VIEW_CONVERT_EXPR case.
22697
22698 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
22699
22700         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
22701         defined in a loop at depth 0 is invariant.
22702         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
22703         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
22704         be called at loop depth 0.
22705
22706 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
22707
22708         PR driver/35420
22709         * gcc.c (process_command): Update copyright notice dates.
22710         * gcov.c (print_version): Likewise.
22711         * gcov-dump.c (print_version): Likewise.
22712         * mips-tfile.c (main): Likewise.
22713         * mips-tdump.c (main): Likewise.
22714
22715 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
22716
22717         PR 24924
22718         * c-common.c (flag_permissive): Delete.
22719         (constant_expression_warnings): Check flags first.
22720         (constant_expression_error): New.
22721         * c-common.h (flag_permissive): Delete.
22722         (constant_expression_error): Declare.
22723         * flags.h (flag_permissive): Declare. Update description.
22724         * diagnostic.c (pedwarn): Update.
22725         (permerror): New.
22726         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
22727         (permissive_error_kind): New.
22728         * toplev.c (flag_permissive): Define. Update description.
22729         * toplev.h (permissive_error_kind): Declare.
22730         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
22731         (pedwarn_c90): Use pedantic_warning_kind.
22732         * c-opts.c (c_common_post_options): flag_permissive does not affect
22733         flag_pedantic_errors.
22734
22735 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
22736
22737         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
22738         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
22739         __absvsi2, __absvDI2): Use unsigned arithmetic.
22740
22741 2008-03-02  Andi Kleen  <ak@suse.de>
22742             Richard Guenther  <rguenther@suse.de>
22743
22744         * struct-equiv.c: Remove file.
22745         * cfg_cleanup.c (condjump_equiv_p): Remove.
22746         * Makefile.in (OBJS-common): Remove struct-equiv.o.
22747         (struct-equiv.o): Remove rule.
22748         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
22749         insns_match_p, struct_equiv_block_eq, struct_equiv_init,
22750         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
22751
22752 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
22753
22754         * ifcvt.c (noce_process_if_block): Try to handle only the then
22755         block if the else block exists but isn't suitable.
22756
22757 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
22758
22759         PR gcc/35063
22760         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
22761         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
22762         regression from previous patch.
22763
22764 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
22765
22766         PR gcc/35063
22767         * gthr.h: Add __gthread_mutex_destroy as a function that must be
22768         implemented.
22769         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
22770         * gthr-single.h (__gthread_mutex_destroy): Likewise.
22771         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
22772         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
22773         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
22774         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
22775         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
22776         (__gthread_mutex_destroy_function): Rename to
22777         __gthread_mutex_destroy.
22778         * gthr-dce.h (__gthread_mutex_destroy): Call
22779         pthread_mutex_destroy.
22780         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
22781         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
22782         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
22783
22784 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
22785
22786         * df-scan.c (df_ref_chain_change_bb): Simplify.
22787         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
22788         set_block_for_insn if there's any change.
22789         * df.h ((df_insn_change_bb): Fix prototype.
22790         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
22791         df_insn_change_bb, don't call set_block_for_insn.
22792         * emit-rtl.c (reorder_insns): Likewise.
22793         * haifa-sched.c (move_insn): Likewise.
22794
22795 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
22796
22797         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
22798
22799 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
22800
22801         * tree-flow-inline.h (next_readonly_imm_use): Return
22802         NULL_USE_OPERAND_P after the end.
22803
22804 2008-03-01  Richard Guenther  <rguenther@suse.de>
22805
22806         PR tree-optimization/35411
22807         * tree-sra.c (sra_build_assignment): Split conversion to
22808         final type to a separate statement if we are not assigning
22809         to a register.
22810
22811 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
22812
22813         * fold-const.c (fold_convertible_p): Correct the logic to follow
22814         that in fold_convert().
22815
22816 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
22817
22818         PR c++/35315
22819         * tree-inline.c (build_duplicate_type): When we make a
22820         duplicate type, make it unique in the canonical types system.
22821
22822 2008-02-29  Tom Tromey  <tromey@redhat.com>
22823
22824         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
22825         input_file_stack_history, input_file_stack_restored): Remove.
22826         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
22827         * input.h (struct file_stack): Remove.
22828         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
22829         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
22830         Likewise.
22831         * diagnostic.h (struct diagnostic_context) <last_module>: Change
22832         type.
22833         (diagnostic_last_module_changed): Add 'map' argument.
22834         (diagnostic_set_last_function): Likewise.
22835         * diagnostic.c (undiagnostic_report_current_module): Iterate using
22836         line map, not input_file_stack.
22837         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
22838
22839 2008-02-29  Paul Brook  <paul@codesourcery.com>
22840
22841         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
22842
22843 2008-02-29  Paul Brook  <paul@codesourcery.com>
22844
22845         * config/arm/ieee754-df.S (muldf3): Use RET macros.
22846
22847 2008-02-29  Richard Guenther  <rguenther@suse.de>
22848
22849         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
22850         vn_lookup_or_add.
22851         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
22852         value for comparing for a store match.
22853         (simplify_unary_expression): Do nothing for SSA_NAMEs.
22854         (try_to_simplify): Do not do a full-blown reference lookup.
22855
22856 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
22857
22858         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
22859         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
22860
22861         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
22862
22863 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
22864
22865         * tree-loop-linear.c (try_interchange_loops): Compare memory access
22866         strides against cache sizes.
22867
22868 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
22869
22870         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
22871         constant to fpul.
22872
22873 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
22874
22875         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
22876         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
22877         is smaller than the original promoted value.
22878         (simplify_subreg): If OP is a SUBREG, try to preserve its
22879         SUBREG_PROMOTED_VAR_P information.
22880
22881 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
22882
22883         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
22884         (VN_INFO_GET): Allocate new objects on the obstack.
22885         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
22886         for rpo_numbers_temp, for consistency.
22887         (free_scc_vn): Free the obstack.
22888
22889 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
22890
22891         * doc/invoke.texi: Document -ftree-loop-distribution.
22892         * tree-loop-distribution.c: New.
22893         * tree-pass.h (pass_loop_distribution): New.
22894         * graphds.h (struct graph): Add htab_t indices.
22895         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
22896         * tree-vectorizer.c (rename_variables_in_loop): Extern.
22897         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
22898         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
22899         * tree-data-ref.c (debug_data_dependence_relations): New.
22900         (dump_data_dependence_relation): Also print data references.
22901         (free_data_ref): Extern.
22902         (same_access_functions): Moved...
22903         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
22904         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
22905         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
22906         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
22907         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
22908         (stmts_from_loop): Skip LABEL_EXPR.
22909         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
22910         New.
22911         (build_rdg): Initialize rdg->indices htab.
22912         (free_rdg, stores_from_loop, ref_base_address,
22913         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
22914         have_similar_memory_accesses_1, ref_base_address_1,
22915         remove_similar_memory_refs): New.
22916         * tree-data-ref.h: Depend on tree-chrec.h.
22917         (debug_data_dependence_relations, free_data_ref): Declared.
22918         (same_access_functions): ... here.
22919         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
22920         New.
22921         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
22922         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
22923         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
22924         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
22925         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
22926         rdg_vertex_for_stmt): Declared.
22927         (struct rdg_edge): Add level.
22928         (RDGE_LEVEL): New.
22929         (free_rdg, stores_from_loop, remove_similar_memory_refs,
22930         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
22931         Declared.
22932         (rdg_has_similar_memory_accesses): New.
22933         * tree-vect-analyze.c: Remove unused static decls.
22934         * lambda.h (dependence_level): New.
22935         * common.opt (ftree-loop-distribution): New.
22936         * tree-flow.h (mark_virtual_ops_in_bb,
22937         slpeel_tree_duplicate_loop_to_edge_cfg,
22938         rename_variables_in_loop): Declared.
22939         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
22940         (OBJS-common): Add tree-loop-distribution.o.
22941         (tree-loop-distribution.o): New rule.
22942         * tree-cfg.c (mark_virtual_ops_in_bb): New.
22943         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
22944         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
22945
22946 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
22947
22948         PR target/33963
22949         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
22950         other than structures and unions.
22951
22952 2008-02-28  Richard Guenther  <rguenther@suse.de>
22953
22954         Revert:
22955         2008-02-26  Richard Guenther  <rguenther@suse.de>
22956
22957         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
22958         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
22959         (lookup_decl_from_uid): Declare.
22960         (remove_decl_from_map): Likewise.
22961         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
22962         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
22963         (decl_for_uid_map): New global hashtable mapping DECL_UID
22964         to the decl tree.
22965         (init_ttree): Allocate it.
22966         (insert_decl_to_uid_decl_map): New helper function.
22967         (make_node_stat): Insert new decls into the map.
22968         (copy_node_stat): Likewise.
22969         (lookup_decl_from_uid): New function.
22970         (remove_decl_from_map): Likewise.
22971         (print_decl_for_uid_map_statistics): New helper.
22972         (dump_tree_statistics): Call it.
22973
22974         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
22975         (referenced_var_iterator): Adjust.
22976         (FOR_EACH_REFERENCED_VAR): Adjust.
22977         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
22978         (num_referenced_vars): Adjust.
22979         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
22980         (first_referenced_var): Remove.
22981         (end_referenced_vars_p): Likewise.
22982         (next_referenced_var): Likewise.
22983         (referenced_var_iterator_set): New helper function.
22984         * tree-dfa.c (referenced_var_lookup): Adjust.
22985         (referenced_var_check_and_insert): Likewise.
22986         (remove_referenced_var): Likewise.
22987         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
22988         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
22989         (verify_call_clobbering): Likewise.
22990         (verify_memory_partitions): Likewise.
22991         (init_tree_ssa): Allocate bitmap instead of hashtable for
22992         referenced_vars.
22993         (delete_tree_ssa): Adjust.
22994         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
22995         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
22996         (compute_tag_properties): Likewise.
22997         (set_initial_properties): Likewise.
22998         (find_partition_for): Likewise.
22999         (update_reference_counts): Likewise.
23000         (dump_may_aliases_for): Likewise.
23001         * tree-ssa-operands.c (add_virtual_operand): Likewise.
23002         (add_call_clobber_ops): Likewise.
23003         (add_call_read_ops): Likewise.
23004         (get_asm_expr_operands): Likewise.
23005         * tree-into-ssa.c (dump_decl_set): Likewise.
23006         (update_ssa): Likewise.
23007         * tree-sra.c (scan_function): Likewise.
23008         (decide_instantiations): Likewise.
23009         (scalarize_parms): Likewise.
23010         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
23011         (dsa_named_for): Likewise.
23012         * tree-ssa-structalias.c (update_alias_info): Likewise.
23013         (merge_smts_into): Likewise.
23014
23015 2008-02-27  David Daney  <ddaney@avtrex.com>
23016
23017         PR target/34409
23018         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
23019         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
23020         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
23021         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
23022         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
23023
23024 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
23025
23026         PR target/25477
23027         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
23028         (BUILT_IN_NEXTTOWARD): Remove.
23029         (BUILT_IN_NEXTTOWARDF): Ditto.
23030         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
23031         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
23032
23033 2008-02-27  Tom Tromey  <tromey@redhat.com>
23034
23035         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
23036         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
23037
23038 2008-02-27  Jan Beulich  <jbeulich@novell.com>
23039
23040         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
23041         update the respective field on newdecl.
23042
23043 2008-02-27  Revital Eres  <eres@il.ibm.com>
23044
23045         PR rtl-optimization/34999
23046         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
23047         crossing edges that ends with a call insn.
23048         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
23049         call insn and clear the EDGE_CROSSING flag of the crossing edge
23050         when fixing fallthru edges.
23051
23052 2008-02-27  Richard Guenther  <rguenther@suse.de>
23053
23054         PR middle-end/35390
23055         * fold-const.c (fold_unary): Return the correct argument,
23056         converted to the result type.
23057
23058 2008-02-27  Richard Guenther  <rguenther@suse.de>
23059
23060         PR middle-end/34971
23061         * expr.c (expand_expr_real_1): Assert on rotates that operate
23062         on partial modes.
23063         * fold-const.c (fold_binary): Use the types precision, not the
23064         bitsize of the mode if folding rotate expressions.  Build rotates
23065         only for full modes.
23066
23067 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
23068
23069         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
23070         and CPP_PRAGMA_EOL.
23071         * c-pragma.c (pragma_ns_name): New typedef.
23072         (registered_pp_pragmas): New variable.
23073         (c_pp_lookup_pragma): New function.
23074         (c_register_pragma_1): If flag_preprocess_only, do nothing
23075         for non-expanded pragmas, for expanded ones push pragma's
23076         namespace and name into registered_pp_pragmas vector.
23077         (c_invoke_pragma_handler): Register OpenMP pragmas even when
23078         flag_preprocess_only, don't register GCC pch_preprocess
23079         pragma if flag_preprocess_only.
23080         * c-opts.c (c_common_init): Call init_pragma even if
23081         flag_preprocess_only.
23082         * c-pragma.c (c_pp_lookup_pragma): New prototype.
23083         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
23084         cpp_register_pragma if flag_preprocess_only.
23085
23086 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23087
23088         PR c/28800
23089         * c-parser.c (c_parser_translation_unit): Warn for empty
23090         translation unit, not empty source file.
23091
23092 2008-02-26  Paul Brook  <paul@codesourcery.com>
23093
23094         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
23095         operand for Thumb-2.
23096         * config/arm/arm.h (reg_class): Add CORE_REGS.
23097         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
23098         (BASE_REG_CLASS): Use CORE_REGS.
23099         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
23100         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
23101         (REGNO_OK_FOR_INDEX_P): Exclude SP.
23102         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
23103         ARM_REGNO_OK_FOR_INDEX_P.
23104         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
23105         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
23106         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
23107         (ldm/stm peepholes): Ditto.
23108         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
23109         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
23110         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
23111         * config/arm/constraints.md: Enable "k" constraint on ARM.
23112
23113 2008-02-27  Ben Elliston  <bje@au.ibm.com>
23114
23115         * config/rs6000/rs6000.c: Annotate cache line size field in all
23116         instances of struct processor_costs.
23117
23118 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
23119
23120         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
23121         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
23122         jump_bypass): New counters.
23123         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
23124         * dce.c (gate_ud_dce): Same.
23125         (gate_fast_dce): Same.
23126         * dse.c (gate_dse1): New function.
23127         (gate_dse2): New function.
23128         (gate_dse): Merge results of new gate functions.
23129         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
23130         (gate_handle_jump_bypass): Add dbg_cnt.
23131         (gate_handle_gcse): Add dbg_cnt.
23132         * ifcvt.c (gate_handle_if_conversion): Same.
23133         (gate_handle_if_after_combine): Same.
23134         (gate_handle_if_after_reload): Same.
23135         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
23136
23137 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
23138
23139         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
23140         line sizes.
23141         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
23142
23143 2008-02-26  Jason Merrill  <jason@redhat.com>
23144
23145         PR c++/35315
23146         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE
23147         alone if it's the naming decl for the type's main variant.
23148
23149 2008-02-26  Tom Tromey  <tromey@redhat.com>
23150
23151         * system.h (USE_MAPPED_LOCATION): Poison.
23152         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
23153         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
23154         (make_goto_expr_edges): Likewise.
23155         (remove_bb): Likewise.
23156         (execute_warn_function_return): Likewise.
23157         * basic-block.h (struct edge_def) <goto_locus>: Change type to
23158         location_t.
23159         * c-common.c (fname_decl): Remove old location code.
23160         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
23161         location code.
23162         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
23163         variant.
23164         (ASM_INPUT_SOURCE_LOCATION): Likewise.
23165         (gen_rtx_ASM_INPUT): Likewise.
23166         (gen_rtx_ASM_INPUT_loc): Likewise.
23167         (get_rtx_asm_OPERANDS): Remove.
23168         * cfglayout.c (insn_locators_alloc): Remove old location code.
23169         (set_curr_insn_source_location): Likewise.
23170         (curr_insn_locator): Likewise.
23171         * print-tree.c (print_node): Remove old location code.
23172         * tree-mudflap.c (mf_varname_tree): Remove old location code.
23173         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
23174         * cfgexpand.c (expand_gimple_cond_expr): Don't use
23175         location_from_locus.
23176         (construct_exit_block): Remove old location code.
23177         * emit-rtl.c (force_next_line_note): Remove old location code.
23178         * profile.c (branch_prob): Remove old location code.
23179         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
23180         LOC_LINE): Remove old-location variants.
23181         * langhooks.c (lhd_print_error_function): Remove old location
23182         code.
23183         * configure, config.in: Rebuilt.
23184         * configure.ac (--enable-mapped-location): Remove.
23185         * c-decl.c (c_init_decl_processing): Remove old location code.
23186         (finish_function): Likewise.
23187         * recog.c (decode_asm_operands): Remove old location code.
23188         * c-pch.c (c_common_read_pch): Remove old location code.
23189         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
23190         variants.
23191         * gimple-low.c (lower_function_body): Remove old location code.
23192         * toplev.c (unknown_location): Remove.
23193         (push_srcloc): Remove old-location variant.
23194         (process_options): Remove old location code.
23195         (lang_dependent_init): Likewise.
23196         * input.h (UNKNOWN_LOCATION): Move definition.
23197         (location_t): Undeprecate.
23198         (source_locus): Remove.
23199         (location_from_locus): Remove.
23200         (struct location_s): Remove.
23201         Remove all old-location code.
23202         (input_line, input_filename): Remove.
23203         * final.c (final_scan_insn): Remove old location code.
23204         * diagnostic.c (diagnostic_build_prefix): Remove
23205         USE_MAPPED_LOCATION test.
23206         * tree.h (gimple_stmt) <locus>: Now a location_t.
23207         (tree_exp) <locus>: Likewise.
23208         (DECL_IS_BUILTIN): Remove old-location variant.
23209         (annotate_with_file_line, annotate_with_locus): Likewise.
23210         (expr_locus, set_expr_locus): Update.
23211         * tree.c (build1_stat): Remove old location code.
23212         (last_annotated_node): Remove.
23213         (annotate_with_file_line): Remove old-location variant.
23214         (annotate_with_locus): Likewise.
23215         (expr_location): Remove old location code.
23216         (set_expr_location): Likewise.
23217         (expr_has_location): Likewise.
23218         (expr_locus): Likewise.
23219         (set_expr_locus): Likewise.
23220         (expr_filename): Don't use location_from_locus.
23221         (expr_lineno): Likewise.
23222         * rtl-error.c (location_for_asm): Remove old location code.
23223         * c-lex.c (cb_line_change): Remove old location code.
23224         (fe_file_change): Likewise.
23225         (cb_def_pragma): Likewise.
23226         (c_lex_with_flags): Likewise.
23227         * gengtype.c (do_typedef): Don't special-case location types.
23228         (define_location_structures): Remove.
23229         (main): Don't call define_location_structures.
23230         * tree-pretty-print.c (dump_implicit_edges): Remove old location
23231         code.
23232
23233 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
23234
23235         PR 26264
23236         * builtins.def (BUILT_IN_STDARG_START): Remove.
23237         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
23238         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
23239         * tree-inline.c (inline_forbidden_p_1): Likewise.
23240
23241 2008-02-26  Richard Guenther  <rguenther@suse.de>
23242
23243         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
23244         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
23245         (lookup_decl_from_uid): Declare.
23246         (remove_decl_from_map): Likewise.
23247         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
23248         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
23249         (decl_for_uid_map): New global hashtable mapping DECL_UID
23250         to the decl tree.
23251         (init_ttree): Allocate it.
23252         (insert_decl_to_uid_decl_map): New helper function.
23253         (make_node_stat): Insert new decls into the map.
23254         (copy_node_stat): Likewise.
23255         (lookup_decl_from_uid): New function.
23256         (remove_decl_from_map): Likewise.
23257         (print_decl_for_uid_map_statistics): New helper.
23258         (dump_tree_statistics): Call it.
23259
23260         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
23261         (referenced_var_iterator): Adjust.
23262         (FOR_EACH_REFERENCED_VAR): Adjust.
23263         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
23264         (num_referenced_vars): Adjust.
23265         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
23266         (first_referenced_var): Remove.
23267         (end_referenced_vars_p): Likewise.
23268         (next_referenced_var): Likewise.
23269         (referenced_var_iterator_set): New helper function.
23270         * tree-dfa.c (referenced_var_lookup): Adjust.
23271         (referenced_var_check_and_insert): Likewise.
23272         (remove_referenced_var): Likewise.
23273         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
23274         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
23275         (verify_call_clobbering): Likewise.
23276         (verify_memory_partitions): Likewise.
23277         (init_tree_ssa): Allocate bitmap instead of hashtable for
23278         referenced_vars.
23279         (delete_tree_ssa): Adjust.
23280         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
23281         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
23282         (compute_tag_properties): Likewise.
23283         (set_initial_properties): Likewise.
23284         (find_partition_for): Likewise.
23285         (update_reference_counts): Likewise.
23286         (dump_may_aliases_for): Likewise.
23287         * tree-ssa-operands.c (add_virtual_operand): Likewise.
23288         (add_call_clobber_ops): Likewise.
23289         (add_call_read_ops): Likewise.
23290         (get_asm_expr_operands): Likewise.
23291         * tree-into-ssa.c (dump_decl_set): Likewise.
23292         (update_ssa): Likewise.
23293         * tree-sra.c (scan_function): Likewise.
23294         (decide_instantiations): Likewise.
23295         (scalarize_parms): Likewise.
23296         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
23297         (dsa_named_for): Likewise.
23298         * tree-ssa-structalias.c (update_alias_info): Likewise.
23299         (merge_smts_into): Likewise.
23300
23301 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
23302
23303         PR 34351
23304         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
23305         * c-opts.c (c_common_handle_option): Wall enables
23306         Wvolatile-register-var.
23307         * common.opt: Move Wvolatile-register-var to...
23308         * c.opt: ...here.
23309
23310 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
23311
23312         * common.opt (Wlarger-than=): New.
23313         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
23314         -Wlarger-than=.
23315         * opts.c (common_handle_option): Handle -Wlarger-than=.
23316         * optc-gen.awk: Likewise.
23317         * opth-gen.awk: Likewise.
23318         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
23319         * tree-optimize.c (tree_rest_of_compilation): Likewise.
23320
23321 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
23322
23323         * c-common.c (match_case_to_enum_1): Add appropriate
23324         OPT_W* parameter to warning.
23325         (c_do_switch_warnings): Likewise.
23326         * c-typeck.c (warning_init): Add one more parameter following
23327         'warning' function.
23328         (push_init_level): Update call to warning_init.
23329         (pop_init_level): Likewise.
23330         (add_pending_init): Likewise.
23331         (output_init_element: Likewise.
23332
23333 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
23334
23335         PR 28322
23336         * toplev.c (toplev_main): If there are warnings or error, print
23337         errors for ignored options.
23338         * opts.c (ignored_options): New static variable.
23339         (postpone_unknown_option_error): New.
23340         (print_ignored_options): New.
23341         (handle_option): Postpone errors for unknown -Wno-* options.
23342         * opts.h (print_ignored_options): Declare.
23343
23344 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
23345
23346         * config/mips/mips.md (loadgp_blockage, blockage): Change type
23347         to "ghost".
23348
23349 2008-02-25  Richard Guenther  <rguenther@suse.de>
23350
23351         Revert:
23352         2008-02-25  Richard Guenther  <rguenther@suse.de>
23353
23354         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
23355         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
23356         (lookup_decl_from_uid): Declare.
23357         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
23358         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
23359         (decl_for_uid_map): New global hashtable mapping DECL_UID
23360         to the decl tree.
23361         (init_ttree): Allocate it.
23362         (insert_decl_to_uid_decl_map): New helper function.
23363         (make_node_stat): Insert new decls into the map.
23364         (copy_node_stat): Likewise.
23365         (lookup_decl_from_uid): New function.
23366         (print_decl_for_uid_map_statistics): New helper.
23367         (dump_tree_statistics): Call it.
23368
23369         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
23370         (referenced_var_iterator): Adjust.
23371         (FOR_EACH_REFERENCED_VAR): Adjust.
23372         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
23373         (num_referenced_vars): Adjust.
23374         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
23375         (first_referenced_var): Remove.
23376         (end_referenced_vars_p): Likewise.
23377         (next_referenced_var): Likewise.
23378         (referenced_var_iterator_set): New helper function.
23379         * tree-dfa.c (referenced_var_lookup): Adjust.
23380         (referenced_var_check_and_insert): Likewise.
23381         (remove_referenced_var): Likewise.
23382         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
23383         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
23384         (verify_call_clobbering): Likewise.
23385         (verify_memory_partitions): Likewise.
23386         (init_tree_ssa): Allocate bitmap instead of hashtable for
23387         referenced_vars.
23388         (delete_tree_ssa): Adjust.
23389         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
23390         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
23391         (compute_tag_properties): Likewise.
23392         (set_initial_properties): Likewise.
23393         (find_partition_for): Likewise.
23394         (update_reference_counts): Likewise.
23395         (dump_may_aliases_for): Likewise.
23396         * tree-ssa-operands.c (add_virtual_operand): Likewise.
23397         (add_call_clobber_ops): Likewise.
23398         (add_call_read_ops): Likewise.
23399         (get_asm_expr_operands): Likewise.
23400         * tree-into-ssa.c (dump_decl_set): Likewise.
23401         (update_ssa): Likewise.
23402         * tree-sra.c (scan_function): Likewise.
23403         (decide_instantiations): Likewise.
23404         (scalarize_parms): Likewise.
23405         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
23406         (dsa_named_for): Likewise.
23407         * tree-ssa-structalias.c (update_alias_info): Likewise.
23408         (merge_smts_into): Likewise.
23409
23410 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
23411
23412         PR fortran/29549
23413         * doc/invoke.texi (-fcx-limited-range): Document new option.
23414         * toplev.c (process_options): Handle -fcx-fortran-rules.
23415         * common.opt: Add documentation for -fcx-fortran-rules.
23416
23417 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
23418
23419         PR c/35162
23420         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
23421         actual behaviour and C99.
23422
23423 2008-02-26  Ben Elliston  <bje@au.ibm.com>
23424
23425         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
23426         (ASM_CPU_POWER6_SPEC): Likewise.
23427         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
23428         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
23429         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
23430
23431 2008-02-25  Richard Guenther  <rguenther@suse.de>
23432
23433         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
23434         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
23435         (lookup_decl_from_uid): Declare.
23436         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
23437         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
23438         (decl_for_uid_map): New global hashtable mapping DECL_UID
23439         to the decl tree.
23440         (init_ttree): Allocate it.
23441         (insert_decl_to_uid_decl_map): New helper function.
23442         (make_node_stat): Insert new decls into the map.
23443         (copy_node_stat): Likewise.
23444         (lookup_decl_from_uid): New function.
23445         (print_decl_for_uid_map_statistics): New helper.
23446         (dump_tree_statistics): Call it.
23447
23448         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
23449         (referenced_var_iterator): Adjust.
23450         (FOR_EACH_REFERENCED_VAR): Adjust.
23451         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
23452         (num_referenced_vars): Adjust.
23453         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
23454         (first_referenced_var): Remove.
23455         (end_referenced_vars_p): Likewise.
23456         (next_referenced_var): Likewise.
23457         (referenced_var_iterator_set): New helper function.
23458         * tree-dfa.c (referenced_var_lookup): Adjust.
23459         (referenced_var_check_and_insert): Likewise.
23460         (remove_referenced_var): Likewise.
23461         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
23462         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
23463         (verify_call_clobbering): Likewise.
23464         (verify_memory_partitions): Likewise.
23465         (init_tree_ssa): Allocate bitmap instead of hashtable for
23466         referenced_vars.
23467         (delete_tree_ssa): Adjust.
23468         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
23469         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
23470         (compute_tag_properties): Likewise.
23471         (set_initial_properties): Likewise.
23472         (find_partition_for): Likewise.
23473         (update_reference_counts): Likewise.
23474         (dump_may_aliases_for): Likewise.
23475         * tree-ssa-operands.c (add_virtual_operand): Likewise.
23476         (add_call_clobber_ops): Likewise.
23477         (add_call_read_ops): Likewise.
23478         (get_asm_expr_operands): Likewise.
23479         * tree-into-ssa.c (dump_decl_set): Likewise.
23480         (update_ssa): Likewise.
23481         * tree-sra.c (scan_function): Likewise.
23482         (decide_instantiations): Likewise.
23483         (scalarize_parms): Likewise.
23484         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
23485         (dsa_named_for): Likewise.
23486         * tree-ssa-structalias.c (update_alias_info): Likewise.
23487         (merge_smts_into): Likewise.
23488
23489 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
23490
23491         PR target/35258
23492         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
23493         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
23494         * alias.h (nonoverlapping_memrefs_p): Likewise.
23495
23496 2008-02-25  Jan Beulich  <jbeulich@novell.com>
23497
23498         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
23499         * config/i386/netware-libgcc.exp: Add __bswap?i2,
23500         __emultls_get_address, __emultls_register_common,
23501         __floatundi?f, and _Unwind_GetIPInfo.
23502         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
23503         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
23504         (gen_regparm_prefix): Likewise.
23505         (i386_nlm_encode_section_info): Sync with
23506         config/i386/winnt.c:i386_pe_encode_section_info().
23507         (i386_nlm_maybe_mangle_decl_assembler_name): New.
23508         i386_nlm_mangle_decl_assembler_name): New.
23509         (netware_override_options): New.
23510         * config/i386/netware.h (netware_override_options): Declare.
23511         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
23512         (i386_nlm_mangle_decl_assembler_name): Declare.
23513         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
23514
23515 2008-02-25  Ben Elliston  <bje@au.ibm.com>
23516
23517         PR other/32948
23518         * c-decl.c (grokdeclarator): Remove unused local variables
23519         `typedef_type' and `type_as_written'.
23520         * bb-reorder.c
23521         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
23522         unused local variable `has_hot_blocks'.
23523         (fix_crossing_conditional_branches): Remove unused local variable
23524         `prev_bb'.
23525
23526 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
23527
23528         PR middle-end/19984
23529         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
23530         using DEF_C99_BUILTIN.
23531         (BUILT_IN_NANF): Ditto.
23532         (BUILT_IN_NANL): Ditto.
23533
23534 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
23535             Revital Eres  <eres@il.ibm.com>
23536
23537         * modulo-sched.c (calculate_must_precede_follow): Address TODO
23538         regarding the order of two dependent insns in the same row.
23539
23540 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
23541
23542         * stor-layout.c (layout_decl): Do not bump the alignment of a
23543         bit-field to more than byte alignment if it is packed.
23544
23545 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
23546
23547         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
23548         e300c2 and e300c3.
23549
23550 2008-02-24  Diego Novillo  <dnovillo@google.com>
23551
23552         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
23553
23554         PR 33738
23555         * tree-vrp.c (vrp_evaluate_conditional): With
23556         -Wtype-limits, emit a warning when comparing against a
23557         constant outside the natural range of OP0's type.
23558         * c.opt (Wtype-limits): Move ...
23559         * common.opt (Wtype-limits): ... here.
23560
23561 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
23562
23563         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
23564         * config/rs6000/e300c2c3.md: New file.
23565         * config/rs6000/rs6000.c (processor_costs): Add new costs for
23566         e300c2 and e300c3.
23567         (rs6000_override_options): Add e300c2 and e300c3 cases to
23568         processor_target_table. Do not allow usage of Altivec or Spe
23569         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
23570         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
23571         * config/rs6000/rs6000.h (processor_type): Add
23572         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
23573         (ASM_CPU_SPEC): Add e300c2 and e300c3.
23574         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
23575         and ppce300c3. Include e300c2c3.md.
23576
23577 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
23578
23579         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
23580         instead of TARGET_STRICT_ALIGN.
23581
23582 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
23583
23584         * explow.c (memory_address): Assert that the generated address is
23585         valid.
23586
23587 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
23588
23589         PR target/25477
23590         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
23591         * config/darwin-ppc-ldouble-patch.def: New file.
23592         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
23593         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
23594         SUBTARGET_INIT_BUILTINS if defined.
23595         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
23596         New functions.
23597
23598 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
23599
23600         PR rtl-opt/33512
23601         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
23602         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
23603
23604 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
23605
23606         PR pch/35027
23607         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
23608         file" warning condtional on -Winvalid-PCH.
23609
23610 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
23611
23612         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
23613
23614 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
23615
23616         PR target/22076
23617         PR target/34256
23618         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
23619         prevent reload from using MMX registers.
23620         (*mov<mode>_internal): Ditto.
23621         (*movv2sf_internal_rex64): Ditto.
23622         (*movv2sf_internal): Ditto.
23623
23624 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23625
23626         PR documentation/31569
23627         * doc/install.texi2html: Use makeinfo --no-number-sections.
23628
23629 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
23630
23631         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
23632         ensure that we can address an entire entity > 8 bytes.  Don't
23633         generate reg+reg addressing for such data.
23634
23635 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
23636
23637         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
23638         strings when optimizing for size, unless the target cares about
23639         alignment.
23640
23641 2008-02-22  Tom Tromey  <tromey@redhat.com>
23642
23643         * regclass.c (current_pass): Remove declaration.
23644
23645 2008-02-22  Anatoly Sokolov <aesok@post.ru>
23646
23647         * config/avr/libgcc.S (__RAMPZ__): Define.
23648         (__do_copy_data): Add for devices with 128KB code memory.
23649
23650 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
23651
23652         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
23653         Use spe_abi.
23654         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
23655
23656 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
23657
23658         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
23659         GENNONACR_REGS.
23660
23661 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23662
23663         PR c/19999
23664         * c-typeck.c (build_binary_op): Warn about floating point
23665         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
23666
23667 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
23668
23669         PR target/34526
23670         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
23671         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
23672         add vrsave.
23673         (rs6000_override_options): Set altivec_abi as default, not override,
23674         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
23675         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
23676         is used; use new member spe_abi.
23677         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
23678         spe_abi and altivec_abi.
23679
23680 2008-02-22  Tomas Bily  <tbily@suse.cz>
23681
23682         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
23683
23684 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23685
23686         PR bootstrap/35273
23687         * config.build (build_file_translate): Set to `CMD //c' only if
23688         it works.
23689         * Makefile.in (build_file_translate): Improve comment.
23690
23691 2008-02-21  Jan Hubicka  <jh@suse.cz>
23692
23693         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
23694         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
23695         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
23696
23697 2008-02-21  Michael Matz  <matz@suse.de>
23698
23699         PR target/35264
23700         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
23701
23702 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
23703
23704         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
23705         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
23706         as insn constraint.
23707         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
23708         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
23709         SSE_VEC_FLOAT_MODE_P as insn constraint.
23710         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
23711         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
23712         sse4a_movntdf using MODEF mode iterator.
23713         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
23714         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
23715         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
23716         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
23717         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
23718         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
23719         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
23720
23721 2008-02-21  Richard Guenther  <rguenther@suse.de>
23722
23723         * tree.def (PAREN_EXPR): New tree code.
23724         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
23725         and PAREN_EXPR.
23726         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
23727         * expr.c (expand_expr_real_1): Likewise.
23728         * tree-inline.c (estimate_num_insns_1): Likewise.
23729         * tree-complex.c (expand_complex_move): Likewise.
23730         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
23731         as plain x.
23732
23733 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
23734
23735         PR target/35225
23736         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
23737
23738 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
23739
23740         PR target/35190
23741         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
23742
23743         * config/sh/sh.c (find_barrier): Don't go past
23744         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
23745
23746 2008-02-20  DJ Delorie  <dj@redhat.com>
23747
23748         * config/h8300/h8300.md (insv): Force source operand to be a register.
23749
23750         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
23751         as a jump, not as a plain insn.
23752
23753 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
23754
23755         * doc/invoke.texi (Warning Options): Add new option
23756         -Wframe-larger-than=.
23757         (-Wframe-larger-than): Document.
23758
23759         * flags.h (warn_frame_larger_than, frame_larger_than_size):
23760         Add declarations for new option variables.
23761
23762         * final.c (final_start_function): Check the frame size
23763         before emission and issue a Wframe-larger-than warning.
23764
23765         * opts.c (warn_frame_larger_than, frame_larger_than_size):
23766         Add definitions for new option variables.
23767         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
23768
23769         * common.opt (Wframe-larger-than=): New option.
23770
23771 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
23772
23773         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
23774         (<sse>_div<mode>3): Ditto.
23775         (<sse>_vmdiv<mode>3): Ditto.
23776         (<sse>_vmsqrt<mode>2): Ditto.
23777         (*smax<mode>3): Ditto.
23778         (sse5_frcz<mode>2): Ditto.
23779         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
23780         as insn constraint.
23781
23782 2008-02-20  Richard Guenther  <rguenther@suse.de>
23783
23784         PR middle-end/35265
23785         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
23786         be happy with INTEGRAL_TYPE_P.
23787
23788 2008-02-20  Richard Guenther  <rguenther@suse.de>
23789
23790         * fold-const.c (split_tree): Associate floatig-point expressions
23791         if flag_associative_math is set.
23792
23793 2008-02-20  Richard Guenther  <rguenther@suse.de>
23794
23795         * tree.h (fold_real_zero_addition_p): Declare.
23796         * fold-const.c (fold_real_zero_addition_p): Export.
23797         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
23798         floating-point operations with zero and one.
23799
23800 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
23801
23802         * doc/install.texi: Correct references to CFLAGS, replacing them
23803         with BOOT_CFLAGS.  Document flags used during bootstrap for
23804         target libraries.
23805
23806 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
23807
23808         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
23809         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
23810         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
23811         insn constraint.
23812         (smin<mode>3): Ditto from similar patterns.
23813         (smax<mode>3): Ditto.
23814         (*ieee_smin<mode>3): Ditto.
23815         (*ieee_smax<mode>3): Ditto.
23816         * config/i386/sse.md (sse): New mode attribute.
23817         (mov<mode>): Macroize expander from movv4sf and movv2df using
23818         SSEMODEF2P mode iterator.
23819         (<sse>_movnt<mode>): Ditto from similar patterns. Use
23820         SSE_VEC_FLOAT_MODE_P as insn constraint.
23821         (storent<mode>): Ditto.
23822         (storent<mode>): Macroize expander from storentsf and storentdf using
23823         MODEF mode iterator.
23824         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
23825         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
23826         (abs<mode>2): Ditto from similar patterns.
23827         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
23828         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
23829         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
23830         (<sse>_vmsqrt<mode>2): Ditto.
23831         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
23832         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
23833         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
23834         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
23835         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
23836         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
23837         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
23838         insn constraint.
23839         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
23840         iterator and SSE_FLOAT_MODE_P as insn constraint.
23841         (<sse>_ucomi): Ditto from similar patterns.
23842         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
23843         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
23844         SSE_VEC_FLOAT_MODE_P as insn constraint.
23845         (vcond<mode>): Ditto from similar patterns.
23846         (and<mode>3, *and<mode>3): Ditto.
23847         (<sse>_nand<mode>3): Ditto.
23848         (ior<mode>3, *ior<mode>3): Ditto.
23849         (xor<mode>3, *xor<mode>3): Ditto.
23850         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
23851         iterator and SSE_FLOAT_MODE_P as insn constraint.
23852         (*nand<mode>3): Ditto from similar patterns.
23853         (*ior<mode>3): Ditto.
23854         (*xor<mode>3): Ditto.
23855
23856 2008-02-20  Ira Rosen  <irar@il.ibm.com>
23857
23858         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
23859         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
23860         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
23861
23862 2008-02-19  Jan Hubicka  <jh@suse.cz>
23863
23864         * predict.c (tree_bb_level_predictions): Remove variable next
23865         mistakely introduced by previous commit.
23866
23867 2008-02-19  Jan Hubicka  <jh@suse.cz>
23868
23869         * predict.c (predict_paths_leading_to): Rewrite.
23870         (predict_paths_for_bb): New.
23871         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
23872
23873 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23874
23875         PR bootstrap/35218
23876         * Makefile.in (build_file_translate): New.
23877         (gcc-vers.texi): Use it for translating $(abs_srcdir).
23878         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
23879         * configure.ac (build_file_translate): Substitute it.
23880         * configure: Regenerate.
23881
23882 2008-02-19  Jan Hubicka  <jh@suse.cz>
23883
23884         PR rtl-optimization/34408
23885         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
23886         invalid sharing.
23887
23888 2008-02-19  Jan Hubicka  <jh@suse.cz>
23889
23890         PR middle-end/28779
23891         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
23892         call_expr.
23893
23894 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
23895
23896         PR Ada/35186
23897         * config/i386/i386-modes.def: Revert the last DI alignment
23898         change until Ada people can look into it.
23899
23900 2008-02-19  Nick Clifton  <nickc@redhat.com>
23901
23902         * opts.c (print_specific_help): Fix typo in --help text.
23903
23904 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
23905
23906         PR target/35239
23907         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
23908         32-bit inline asm without asm alternatives for host GCC < 3.0.
23909
23910 2008-02-19  Richard Guenther  <rguenther@suse.de>
23911
23912         PR tree-optimization/34989
23913         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
23914         Allow propagation to INDIRECT_REF if we can simplify only.
23915
23916 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
23917
23918         * c-common.c (warn_for_collisions_1): Use appropriate option when
23919         warning.
23920
23921 2008-02-19  Nick Clifton  <nickc@redhat.com>
23922
23923         PR other/31349
23924         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
23925         (handle_options): Fix indentation.
23926         (print_filtered_help): If no language-specific options were
23927         displayed tell the user how to list all the options supported by
23928         the language's front-end.
23929         (print_specific_help): Fix indentation and remove duplicate line.
23930         (common_handle_option): Handle the -v option.
23931         For --help enable the display of undocumented options if the -v
23932         switch has been included on the command line.
23933         For --help= check for overlaps in the arguments between the option
23934         classes and the language names and issue a warning when they
23935         cannot be disambiguated.
23936         * c.opt (v): Pass on to the common option handler.
23937
23938 2008-02-19  Revital Eres  <eres@il.ibm.com>
23939
23940         * modulo-sched.c (sms_schedule): Change dump message when
23941         create_ddg function fails.
23942         (try_scheduling_node_in_cycle): Rename row to cycle.
23943         (print_partial_schedule): Rename CYCLE to ROW.
23944
23945 2008-02-19  Christian Bruel  <christian.bruel@st.com>
23946             Zdenek Dvorak  <ook@ucw.cz>
23947
23948         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
23949
23950 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
23951
23952         PR target/33555
23953         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
23954         (*x86_movdicc_0_m1_se): Ditto.
23955
23956 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
23957
23958         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
23959         (CMPtype): Define as __gcc_CMPtype.
23960         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
23961         (CMPtype): Define as __gcc_CMPtype.
23962
23963 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
23964
23965         Support valgrind 3.3 for --enable-checking=valgrind.
23966         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
23967         here.
23968         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
23969         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
23970         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
23971         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
23972         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
23973         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
23974         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
23975         respectively.
23976         * ggc-zone.c: Similar.
23977         * ggc-page.c: Similar.
23978
23979 2008-02-19  Paul Brook  <paul@codesourcery.com>
23980
23981         PR target/35071
23982         * config/arm/ieee754-df.S: Fix do_it typo.
23983         * config/arm/ieee754-sf.S: Fix do_it typo.
23984
23985 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
23986
23987         PR target/35189
23988         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
23989         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
23990         (OPTION_MASK_ISA_SSE_SET): Likewise.
23991         (OPTION_MASK_ISA_SSE2_SET): Likewise.
23992         (OPTION_MASK_ISA_SSE3_SET): Likewise.
23993         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
23994         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
23995         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
23996         (OPTION_MASK_ISA_SSE4_SET): Likewise.
23997         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
23998         (OPTION_MASK_ISA_SSE5_SET): Likewise.
23999         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
24000         (OPTION_MASK_ISA_MMX_UNSET): Updated.
24001         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
24002         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
24003         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
24004         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
24005         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
24006         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
24007         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
24008         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
24009         (OPTION_MASK_ISA_SSE4): Removed.
24010         (ix86_handle_option): Turn on bits in ix86_isa_flags and
24011         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
24012         (override_options): Don't turn on implied SSE/MMX bits in
24013         ix86_isa_flags.
24014
24015 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
24016
24017         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
24018         32bit host.
24019
24020 2008-02-18  Joey Ye  <joey.ye@intel.com>
24021
24022         PR middle-end/34921
24023         * tree-nested.c (insert_field_into_struct): Set type alignment
24024         to field alignment if the former is less than the latter.
24025
24026 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
24027
24028         * BASE-VER: Set to 4.4.0.
24029
24030 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
24031
24032         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
24033         * doc/cfg.texi: Likewise.
24034         * doc/extend.texi: Likewise.
24035         * doc/gty.texi: Likewise.
24036         * doc/invoke.texi: Likewise.
24037         * doc/loop.texi: Likewise.
24038         * doc/md.texi: Likewise.
24039         * doc/passes.texi: Likewise.
24040         * doc/rtl.texi: Likewise.
24041         * doc/sourcebuild.texi: Likewise.
24042         * doc/tm.texi: Likewise.
24043         * doc/tree-ssa.texi: Likewise.
24044
24045 2008-02-17  Richard Guenther  <rguenther@suse.de>
24046
24047         PR middle-end/35227
24048         * tree-complex.c (init_parameter_lattice_values): Handle parameters
24049         without default definition.
24050
24051 2008-02-17  Richard Guenther  <rguenther@suse.de>
24052
24053         PR tree-optimization/35231
24054         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
24055         if A | B != 1.
24056
24057 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
24058
24059         Revert:
24060         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
24061         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
24062         libgcc_cmp_return mode.
24063
24064 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
24065
24066         PR c/28368
24067         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
24068
24069 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
24070
24071         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
24072         multilibs.
24073
24074 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24075
24076         * doc/c-tree.texi: Use `@.' where appropriate.
24077         * doc/extend.texi: Likewise.
24078         * doc/install.texi: Likewise.
24079         * doc/invoke.texi: Likewise.
24080         * doc/loop.texi: Likewise.
24081         * doc/makefile.texi: Likewise.
24082         * doc/md.texi: Likewise.
24083         * doc/passes.texi: Likewise.
24084         * doc/standards.texi: Likewise.
24085         * doc/tm.texi: Likewise.
24086
24087 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
24088
24089         PR middle-end/35196
24090         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
24091         in entry_bb.
24092         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
24093         rather than in entry_bb.
24094
24095 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
24096
24097         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
24098         libgcc_cmp_return mode.
24099
24100 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
24101
24102         PR middle-end/35130
24103         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
24104         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
24105
24106 2008-02-15  Richard Guenther  <rguenther@suse.de>
24107             Zdenek Dvorak  <ook@ucw.cz>
24108
24109         PR tree-optimization/35164
24110         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
24111         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
24112         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
24113         Only propagate addresses which do not have abnormal SSA_NAMEs
24114         in their operands.
24115
24116 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
24117
24118         PR target/35088
24119         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
24120
24121 2008-02-15  Jan Hubicka  <jh@suse.cz>
24122
24123         PR middle-end/35149
24124         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
24125
24126 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
24127
24128         PR middle-end/34621
24129         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
24130         when calculating alignment_pad.
24131
24132 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
24133
24134         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
24135         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
24136         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
24137         and STACK_BOUNDARY define.
24138
24139 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
24140
24141         PR preprocessor/35061
24142         * c-pragma.c (handle_pragma_pop_macro): Check that
24143         pushed_macro_table has been allocated.
24144
24145 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
24146
24147         PR middle-end/35136
24148         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
24149         (force_gimple_operand): Likewise.
24150         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
24151         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
24152         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
24153         (find_interesting_uses_address): Check addressability and alignment
24154         of the base expression only after substituting bases of IVs into it.
24155
24156 2008-02-14  Michael Matz  <matz@suse.de>
24157
24158         PR target/34930
24159         * function.c (instantiate_virtual_regs_in_insn): Reload address
24160         before falling back to reloading the whole operand.
24161
24162 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
24163
24164         * config/s390/s390.c (s390_mainpool_start): Emit the pool
24165         before the first section switch note.
24166
24167 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
24168
24169         * doc/bugreport.texi: Update copyright years.
24170         * doc/c-tree.texi: Likewise.
24171         * doc/cfg.texi: Likewise.
24172         * doc/cpp.texi: Likewise.
24173         * doc/cppinternals.texi: Likewise.
24174         * doc/fragments.texi: Likewise.
24175         * doc/frontends.texi: Likewise.
24176         * doc/gcc.texi: Likewise.
24177         * doc/gty.texi: Likewise.
24178         * doc/hostconfig.texi: Likewise.
24179         * doc/implement-c.texi: Likewise.
24180         * doc/libgcc.texi: Likewise.
24181         * doc/loop.texi: Likewise.
24182         * doc/makefile.texi: Likewise.
24183         * doc/options.texi: Likewise.
24184         * doc/passes.texi: Likewise.
24185         * doc/rtl.texi: Likewise.
24186         * doc/sourcebuild.texi: Likewise.
24187         * doc/standards.texi: Likewise.
24188         * doc/tree-ssa.texi: Likewise.
24189         * doc/trouble.texi: Likewise.
24190
24191         * doc/extend.texi: Use @: or add comma where appropriate.
24192         * doc/invoke.texi: Likewise.
24193         * doc/tm.texi: Likewise.
24194
24195 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
24196
24197         PR target/34393
24198         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
24199         to a reg.
24200
24201 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
24202
24203         * doc/md.texi (clz, ctz): Add reference.
24204         * doc/rtl.texi (clz, ctz): Likewise.
24205
24206 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24207
24208         PR other/35148
24209         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
24210         srcdir.
24211
24212 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
24213
24214         * config/s390/s390.c (struct constant_pool): New field
24215         emit_pool_after added.
24216         (s390_mainpool_start): Set the emit_pool_after flag according
24217         to the section switch notes.
24218         (s390_mainpool_finish): Consider emit_pool_after when emitting
24219         the literal pool at the end of the function.
24220         (s390_chunkify_start): Force literal pool splits at section
24221         switch notes.
24222
24223 2008-02-13  Michael Matz  <matz@suse.de>
24224
24225         PR debug/35065
24226         * var-tracking.c (clobber_variable_part): Correctly traverse the
24227         list.
24228
24229 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
24230
24231         PR 29673
24232         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
24233         Add -fdump-ipa-inline.
24234         * tree-dump.c (dump_files): Remove tree-inlined dump.
24235         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
24236
24237 2008-02-12  Richard Guenther  <rguenther@suse.de>
24238
24239         PR tree-optimization/35171
24240         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
24241         default defs.
24242
24243 2008-02-12  Richard Guenther  <rguenther@suse.de>
24244
24245         PR middle-end/35163
24246         * fold-const.c (fold_widened_comparison): Use get_unwidened in
24247         value-preserving mode.  Disallow final truncation.
24248
24249 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
24250
24251         PR middle-end/35136
24252         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
24253         code from here to...
24254         (force_gimple_operand): ...here.
24255
24256 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
24257
24258         PR c++/35144
24259         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
24260         non-compatible pointers.
24261         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
24262         different FIELD_DECLs, try harder by comparing field offsets, sizes
24263         and types.
24264
24265         PR inline-asm/35160
24266         * function.c (match_asm_constraints_1): Don't replace the same input
24267         multiple times.
24268
24269 2008-02-12  Anatoly Sokolov <aesok@post.ru>
24270
24271         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
24272         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
24273         (expand_epilogue): Restore RAMPZ register.
24274         * config/avr/avr.md (RAMPZ_ADDR): New constant.
24275
24276 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
24277
24278         * config/i386/cygwin.asm: (__alloca): Correct calling
24279         convention and alignment.
24280         (__chkstk): Force 8 byte stack alignment.
24281
24282 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
24283             Richard Guenther  <rguenther@suse.de>
24284
24285         PR tree-optimization/33992
24286         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
24287         the zero we compare against.
24288
24289 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
24290
24291         PR libfortran/35063
24292         * gthr-win32.h (__gthread_mutex_destroy_function): New function
24293         to CloseHandle after unlocking to prevent accumulation of handle
24294         count.
24295
24296 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24297
24298         PR middle_end/34150
24299         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
24300         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
24301         and update LABEL_NUSES during and after reload.
24302
24303 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
24304
24305         PR middle-end/34627
24306         * combine.c (simplify_if_then_else): Make sure the comparison is
24307         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
24308
24309 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
24310
24311         PR bootstrap/35051
24312         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
24313         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
24314         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
24315         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
24316         * tree.h (get_type_static_bounds): Likewise.
24317
24318 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24319
24320         * doc/invoke.texi (Option Summary, C++ Dialect Options)
24321         (Objective-C and Objective-C++ Dialect Options, Warning Options):
24322         Make -Wfoo language annotations match what the compiler outputs.
24323
24324 2008-02-08  Sa Liu  <saliu@de.ibm.com>
24325
24326         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu
24327         intrinsics spu_convts, spu_convtu, spu_convtf.
24328
24329 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
24330
24331         * doc/extend.texi (Function Attributes) <noinline>: Mention
24332         asm ("") as method to keep calls.
24333
24334 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
24335
24336         PR other/32754
24337         * doc/options.texi (Options): Replace references to opts.sh with
24338         optc-gen.awk.
24339         * opts-common.c: Likewise.
24340         * optc-gen.awk: Likewise.
24341
24342 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
24343
24344         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
24345
24346 2008-02-07  Richard Henderson  <rth@redhat.com>
24347
24348         PR rtl-opt/33410
24349         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
24350         EXPR_LIST for the REG_EQUAL instead of a comparison with a
24351         funny mode.
24352
24353 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
24354
24355         PR tree-optimization/35085
24356         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
24357         for operand entry oe2 in addition to operand entry oe3 in order to
24358         expose more opportunities for vectorizer sum reduction.
24359
24360 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24361
24362         PR other/35107
24363         * Makefile.in (LIBS): Remove $(GMPLIBS).
24364         (cc1-dummy, cc1): Add $(GMPLIBS).
24365
24366 2008-02-06  Jan Hubicka  <jh@suse.cz>
24367
24368         PR target/23322
24369         * i386.md (moddf_integer): Do not produce partial memory stalls for
24370         targets where it hurts.
24371
24372 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
24373
24374         PR target/35083
24375         * optabs.c (expand_float): Do not check for decimal modes when
24376         expanding unsigned integer through signed conversion.
24377
24378 2008-02-06  Nick Clifton  <nickc@redhat.com>
24379
24380         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
24381         inside the clobber with a match_operand and duplicated operand
24382         number in the constraint.
24383         (ineqbranchsi): Delete redundant comment.
24384
24385 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
24386
24387         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add
24388         builtin_define ("__USE_INIT_FINI__").
24389         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
24390         -msx multilibs.
24391         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
24392
24393 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24394
24395         PR documentation/30330
24396         * doc/invoke.texi (C++ Dialect Options)
24397         (Objective-C and Objective-C++ Dialect Options, Warning Options):
24398         For each warning option -Wfoo that allows -Wno-foo, ensure both
24399         -Wfoo and -Wno-foo are listed in the option index.  Fix index
24400         entry of -Wswitch-default, index -Wnormalized= including the
24401         `=', and -Wlarger-than-@var{len} including @var{len}.
24402
24403 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
24404
24405         * config/i386/i386.md (floatunssisf2): Use
24406         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
24407         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
24408         Macroize expander using MODEF mode iterator.
24409
24410 2008-02-05  Diego Novillo  <dnovillo@google.com>
24411
24412         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
24413
24414         PR 33738
24415         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
24416
24417 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24418
24419         PR other/35070
24420         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
24421
24422 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
24423
24424         PR target/35084
24425         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
24426         to indicate if a message should be generated.
24427         (init_cumulative_args): Updated.
24428         (function_value_32): Likewise.
24429
24430 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
24431
24432         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
24433
24434 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
24435
24436         PR target/35083
24437         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
24438         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
24439
24440 2008-02-04  Diego Novillo  <dnovillo@google.com>
24441
24442         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
24443
24444         PR 33738
24445         * tree-vrp.c (vrp_evaluate_conditional): With
24446         -Wtype-limits, emit a warning when comparing against a
24447         constant outside the natural range of OP0's type.
24448
24449 2008-02-04  Richard Guenther  <rguenther@suse.de>
24450
24451         PR middle-end/33631
24452         * expr.c (count_type_elements): Give for unions instead of
24453         guessing.
24454
24455 2008-02-04  Richard Guenther  <rguenther@suse.de>
24456
24457         PR middle-end/35043
24458         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
24459         to TYPE_DOMAINs base type instead of using bitsizetype here.
24460
24461 2008-02-03  Jason Merrill  <jason@redhat.com>
24462
24463         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
24464
24465 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24466
24467         PR other/29972
24468         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
24469         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
24470         (RS/6000 and PowerPC Options): Fix typos and markup.
24471         * doc/passes.texi (Tree-SSA passes): Likewise.
24472
24473 2008-02-02  Michael Matz  <matz@suse.de>
24474
24475         PR target/35045
24476         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
24477         from record_last_reg_set_info.
24478         (record_last_reg_set_info): Take an RTX argument, iterate over all
24479         constituent hardregs.
24480         (record_last_set_info, record_opr_changes): Change calls to
24481         new signature or to record_last_reg_set_info_regno.
24482
24483 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
24484
24485         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
24486
24487 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
24488
24489         PR rtl-optimization/34773
24490         * reg-notes.def (EQUAL): Mention significance of combination of
24491         REG_EQUAL and REG_RETVAL.
24492         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
24493         insn that has a REG_RETVAL.
24494
24495 2008-02-01  Roger Sayle  <roger@eyesopen.com>
24496
24497         PR bootstrap/33781
24498         * configure.ac (--enable-fixed-point): Disable unless explicitly
24499         requested on IRIX.
24500         * configure: Regenerate.
24501
24502 2008-02-01  Richard Guenther  <rguenther@suse.de>
24503
24504         PR other/35042
24505         * invoke.texi (-finline-limit): Remove no longer true parts
24506         of the documentation.  Note that there is no default value.
24507
24508 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
24509             Mark Mitchell  <mark@codesourcery.com>
24510             Ben Elliston  <bje@au.ibm.com>
24511
24512         PR c/29326
24513         * doc/extend.texi (Other Builtins): Document.
24514
24515 2008-01-31  Tom Browder <tom.browder@gmail.com>
24516
24517         * doc/c-tree.texi (Types): Fix grammar.
24518         (Expression trees): Ditto.
24519         * doc/passes.texi (Tree-SSA passes): Ditto.
24520
24521         * doc/configterms.texi (Configure Terms): Fix typo.
24522         * doc/cpp.texi (Common Predefined Macros): Ditto.
24523         * doc/md.texi (Machine Constraints): Ditto.
24524
24525         * doc/makefile.texi (Makefile): Add comma.
24526
24527 2008-01-31  Tom Browder  <tom.browder@gmail.com>
24528             Gerald Pfeifer  <gerald@pfeifer.com>
24529
24530         * doc/sourcebuild.texi (Front End): Remove references to CVS
24531         and CVSROOT/modules.
24532         (Texinfo Manuals): Replace reference to CVS by one to SVN.
24533         (Back End): Remove reference to CVS.
24534
24535 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
24536
24537         PR target/34900
24538         * config/mips/mips.c (gen_load_const_gp): New function, taking a
24539         comment from...
24540         (mips16_gp_pseudo_reg): ...here.
24541         * config/mips/mips.md (load_const_gp): Replace with...
24542         (load_const_gp_<mode>): ...this :P-based insn.
24543
24544 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
24545
24546         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
24547         options. Minor fixes.
24548         (-std): Move reference to standards closer to where language
24549         standards are first mentioned.
24550
24551 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
24552
24553         PR rtl-optimization/34995
24554         * reload.c (alternative_allows_const_pool_ref): Take an rtx
24555         parameter and return a bool.  If the rtx parameter is nonnull,
24556         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
24557         (find_reloads): Update call accordingly.  Pass the new operand
24558         if it needed no address reloads, otherwise pass null.
24559
24560 2008-01-30  Richard Henderson  <rth@redhat.com>
24561
24562         PR c/34993
24563         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
24564         for unbounded arrays.
24565
24566 2008-01-30  Silvius Rus  <rus@google.com>
24567
24568         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
24569
24570 2008-01-30  Jan Hubicka  <jh@suse.cz>
24571
24572         PR target/34982
24573         * i386.c (init_cumulative_args): Use real function declaration when
24574         calling locally.
24575
24576 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
24577
24578         PR rtl-optimization/34998
24579         * global.c (build_insn_chain): Treat non-subreg_lowpart
24580         SUBREGs of pseudos as clobbering all the words covered by the
24581         SUBREG, not just all the bytes.
24582         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
24583         original df_ref rather than an extract parameter.
24584         (global_conflicts): Update call accordingly.
24585
24586 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
24587
24588         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
24589         the overflow check to make it easier to read.
24590         (__fixtfdi): Change the type of the ll member in union
24591         long_double to UDItype_x.
24592
24593 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
24594
24595         PR middle-end/34969
24596         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
24597         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
24598         * tree-inline.c (fold_marked_statements): Call
24599         cgraph_update_edges_for_call_stmt if folding a call statement.
24600         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
24601         debug_generic_stmt calls, reset it back afterwards.
24602
24603         PR c/35017
24604         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
24605         static decls.
24606         * c-typeck.c (build_external_ref): Don't pedwarn about
24607         static vars in current function's scope.
24608
24609 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
24610
24611         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
24612
24613 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
24614
24615         PR c/35002
24616         * ipa-struct-reorg.c: Fix spelling.
24617         * params.def: Ditto.
24618
24619 2008-01-29  Richard Guenther  <rguenther@suse.de>
24620
24621         PR middle-end/35006
24622         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
24623         field.
24624         * tree-inline.c (remap_type): Increment remapping_type_depth
24625         around remapping types.
24626         (copy_body_r): Only add referenced variables if they are referenced
24627         from code, not types.
24628
24629 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
24630
24631         PR c++/34055
24632         PR c++/34103
24633         PR c++/34219
24634         PR c++/34606
24635         PR c++/34753
24636         PR c++/34754
24637         PR c++/34755
24638         PR c++/34919
24639         PR c++/34961
24640         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
24641         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
24642
24643 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
24644
24645         PR target/34412
24646         * config/avr/avr.c (expand_prologue): Use correct QI mode frame
24647         pointer for tiny stack.
24648
24649 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
24650
24651         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
24652
24653 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
24654
24655         * config/vx-common.h: Fix typo in comment.
24656
24657 2008-01-28  Ian Lance Taylor  <iant@google.com>
24658
24659         PR c++/34862
24660         PR c++/33407
24661         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
24662         coalesce pointers if they have different DECL_NO_TBAA_P values.
24663         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
24664         between variables with different DECL_NO_TBAA_P values.
24665
24666 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
24667
24668         PR 31535
24669         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
24670         are not legitimate small data references on SPE targets.
24671
24672 2008-01-28  David Daney  <ddaney@avtrex.com>
24673
24674         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
24675
24676 2008-01-28  David Daney  <ddaney@avtrex.com>
24677
24678         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
24679
24680 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
24681
24682         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
24683         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
24684         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
24685         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
24686         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
24687         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
24688         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
24689         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
24690
24691 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
24692
24693         * basic-block.h (condjump_equiv_p): Fix comment.
24694
24695 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
24696
24697         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
24698         print_generic_stmt_indented): Fix comment.
24699
24700 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
24701
24702         * configure.ac (__stack_chk_fail): Add detecion for availability
24703         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
24704         * configure: Regenerate.
24705
24706 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
24707
24708         PR middle-end/34688
24709         * final.c (output_addr_const): Handle TRUNCATE.
24710
24711 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
24712
24713         PR target/34711
24714         * tree-ssa-loop-ivopts.c (comp_cost): New type.
24715         (zero_cost, infinite_cost): New constants.
24716         (struct cost_pair): Change type of cost to comp_cost.
24717         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
24718         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
24719         New functions.
24720         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
24721         split_address_cost, ptr_difference_cost, difference_cost,
24722         get_computation_cost_at, get_computation_cost,
24723         determine_use_iv_cost_generic, determine_use_iv_cost_address,
24724         determine_use_iv_cost_condition, determine_use_iv_costs,
24725         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
24726         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
24727         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
24728         Change type of cost to comp_cost.
24729         (determine_iv_cost): Increase cost of non-original ivs, instead
24730         of decreasing the cost of original ones.
24731         (get_address_cost): Indicate the complexity of the addressing mode
24732         in comp_cost.
24733         (try_add_cand_for): Prefer using ivs not specific to some object.
24734         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
24735
24736 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
24737             Janis Johnson  <janis187@us.ibm.com>
24738
24739         PR target/34814
24740         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
24741         (TARGET_INSTANTIATE_DECLS): Likewise.
24742         * target.h (expand_to_rtl_hook): New target hook.
24743         (instantiate_decls): Likewise.
24744         * function.c (instantiate_decl): Make non-static.  Rename to...
24745         (instantiate_decl_rtl): ... this.
24746         (instantiate_expr): Use instantiate_decl_rtl.
24747         (instantiate_decls_1): Likewise.
24748         (instantiate_decls): Likewise.
24749         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
24750         * function.h (instantiate_decl_rtl): Add prototype.
24751         * cfgexpand.c (target.h): New include.
24752         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
24753         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
24754         (TARGET_INSTANTIATE_DECLS): Likewise.
24755         (TARGET_INITIALIZER): New target hooks added.
24756         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
24757         New prototype.
24758         * config/rs6000/rs6000.c (tree-flow.h): New include.
24759         (machine_function): Add sdmode_stack_slot field.
24760         (rs6000_alloc_sdmode_stack_slot): New function.
24761         (rs6000_instantiate_decls): Likewise.
24762         (rs6000_secondary_memory_needed_rtx): Likewise.
24763         (rs6000_check_sdmode): Likewise.
24764         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
24765         (TARGET_INSTANTIATE_DECLS): Likewise.
24766         (rs6000_hard_regno_mode_ok): Allow SDmode.
24767         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
24768         (rs6000_emit_move): Handle SDmode.
24769         (function_arg_advance): Likewise.
24770         (function_arg): Likewise.
24771         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
24772         SDmode var args for 32-bit compiles.
24773         (rs6000_secondary_reload_class): Handle SDmode.
24774         (rs6000_output_function_epilogue): Likewise.
24775         (rs6000_function_value): Simplify if statement.
24776         (rs6000_libcall_value): Likewise.
24777         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
24778         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
24779         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
24780         (movsd_hardfloat): New define_insn.
24781         (movsd_softfloat): Likewise.
24782         (movsd_store): Likewise.
24783         (movsd_load): Likewise.
24784         (extendsddd2): Likewise.
24785         (extendsdtd2): Likewise.
24786         (truncddsd2): Likewise.
24787         (movdd_hardfloat64): Fixup comment.
24788         (UNSPEC_MOVSD_LOAD): New constant.
24789         (UNSPEC_MOVSD_STORE): Likewise.
24790
24791 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
24792
24793         PR c++/34965
24794         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
24795         TRUTH_XOR_EXPR.
24796         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
24797         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
24798         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
24799         and TRUTH_XOR_EXPR.
24800
24801 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
24802
24803         PR target/34794
24804         * config.gcc: Separate AIX 5.3 from AIX 6.1.
24805         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
24806         __LONGDOUBLE128 too.
24807         * config/rs6000/aix61.h: New file.
24808
24809 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
24810
24811         PR rtl-optimization/34959
24812         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
24813         popcount and parity rtxes the same mode as their operand.
24814         Truncate or extend the result to the return value's mode
24815         if necessary.
24816
24817 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
24818
24819         PR target/34981
24820         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
24821         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
24822         to GOT_VERSION_REGNUM.
24823         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
24824         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
24825         * config/mips/mips.c (mips_emit_call_insn): New function.
24826         (mips_call_tls_get_addr): Call mips_expand_call directly.
24827         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
24828         emit_call_insn.
24829         (mips16_build_call_stub): Likewise.  Return the call insn or null.
24830         (mips_expand_call): Update the call to mips16_build_call_stub
24831         accordingly and a remove redundant condition.  Assert that MIPS16
24832         stubs do not use lazy binding.  Use mips_emit_call_insn and return
24833         the call insn.
24834         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
24835         TARGET_USE_GOT.
24836         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
24837         (mips_avoid_hazard): Remove hazard_set handling.
24838         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
24839         (UNSPEC_RESTORE_GP): ...this.
24840         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
24841         (FAKE_CALL_REGNO): Rename to...
24842         (GOT_VERSION_REGNUM): ...this.
24843         (type): Add "ghost" value.  Add an associated insn reservation.
24844         (hazard_set): Remove.
24845         (exception_receiver): Rename to...
24846         (restore_gp): ...this and update the unspec identifier accordingly.
24847         (exception_receiver, nonlocal_got_receiver): New expanders.
24848         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
24849         FAKE_CALL_REGNO.  Remove hazard_set attribute.
24850         (set_got_version, update_got_version): New patterns.
24851
24852 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
24853
24854         PR target/34970
24855         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
24856
24857 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
24858
24859         PR other/31955
24860         * doc/install.texi2html: Generate gcc-vers.texi.
24861
24862 2008-01-25  DJ Delorie  <dj@redhat.com>
24863
24864         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
24865
24866 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
24867
24868         * config/c4x: Remove directory.
24869         * config.gcc (crx-*, mt-*): Mark obsolete.
24870         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
24871         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
24872         sh-*-rtemscoff*): Remove cases.
24873         * defaults.h (C4X_FLOAT_FORMAT): Remove.
24874         * real.c (encode_c4x_single, decode_c4x_single,
24875         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
24876         c4x_extended_format): Remove.
24877         * real.h (c4x_single_format, c4x_extended_format): Remove.
24878         * doc/extend.texi (interrupt, naked): Remove mention of attributes
24879         on C4x.
24880         (Pragmas): Remove comment about c4x pragmas.
24881         * doc/install.texi (c4x): Remove target-specific instructions.
24882         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
24883         * doc/md.texi (Machine Constraints): Remove C4x documentation.
24884         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
24885         refer to C4x source files as examples.
24886         (C4X_FLOAT_FORMAT): Remove documentation.
24887
24888 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
24889
24890         * config/bfin/bfin.c (override_options): Reorder tests so that
24891         flag_pic gets enabled for -msep-data.
24892
24893 2008-01-25  Richard Guenther  <rguenther@suse.de>
24894
24895         PR middle-end/32244
24896         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
24897         to its bitfield precision if required.
24898
24899 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
24900
24901         PR middle-end/33880
24902         * tree-nested.c (walk_omp_for): New function.
24903         (convert_nonlocal_reference, convert_local_reference): Call
24904         walk_omp_for on OMP_FOR.
24905         (convert_call_expr): Call walk_body on OMP_FOR's
24906         OMP_FOR_PRE_INIT_BODY.
24907
24908 2008-01-25  Richard Guenther  <rguenther@suse.de>
24909
24910         PR tree-optimization/34966
24911         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
24912         default defs and PHI_NODEs we have to insert after the
24913         defining statement.
24914
24915 2008-01-24  Nick Clifton  <nickc@redhat.com>
24916
24917         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
24918         Provide a default definition.
24919         (LIBGCC2_UNITS_PER_WORD): Likewise.
24920
24921         * config/stormy16/stormy16.c: Include df.h for the prototype
24922         for df_regs_ever_live_p.
24923         (xstormy16_expand_builtin_va_start): Convert the stack offset
24924         into a component_ref and then use POINTER_PLUS_EXPR to add it
24925         to the incoming_virtual_args_rtx.
24926         (xstormy16_gimplify_va_arg_expr): Rename to
24927         xstormy16_gimplify_va_arg_expr.
24928         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
24929         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
24930         xstormy16_gimplify_va_arg_expr.
24931         Fix up some formatting issues.
24932
24933         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
24934         Move to predicates.md.
24935         (xs_hi_general_operand): Likewise.
24936         (xs_hi_nonmemory_operand): Likewise.
24937         * config/stormy16/predicates.md:
24938         (xstormy16_carry_plus_operand): New predicate.
24939         (xs_hi_general_operand): New predicate.
24940         (xs_hi_nonmemory_operand): New predicate.
24941         * config/stormy16/stormy16-protos.h:
24942         (xstormy16_carry_plus_operand): Delete prototype.
24943         (xs_hi_general_operand): Likewise.
24944         (xs_hi_nonmemory_operand): Likewise.
24945
24946         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
24947         modifiers as they are no longer needed and they can trigger
24948         reload spill failures.
24949
24950         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
24951         with a match_operand in order to help reload.
24952
24953         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
24954         constraint with 'e' for the 8th alternative as this version of
24955         the mov.w instruction only accepts the lower 8 registers.
24956
24957 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
24958
24959         PR target/34856
24960         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
24961         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
24962         vector elements.
24963
24964 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
24965
24966         PR middle-end/33333
24967         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
24968
24969 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
24970
24971         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
24972         New functions.
24973         (remove_structure): Update allocations list before removing structure.
24974
24975 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
24976
24977         * ipa-struct-reorg.c (is_safe_cond_expr,
24978         create_new_stmts_for_cond_expr): Use integer_zerop function,
24979         that recognize not only zero-pointer, but zero-integer too.
24980
24981 2008-01-25  Ben Elliston  <bje@au.ibm.com>
24982
24983         PR other/22232
24984         * fixproto: Escape "." in sed expression that strips leading "./".
24985
24986 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
24987
24988         PR driver/34904
24989         * gcc.c (SWITCH_OK): Removed.
24990         (SWITCH_LIVE): Changed to bit.
24991         (SWITCH_FALSE): Likewise.
24992         (SWITCH_IGNORE): Likewise.
24993         (switchstr): Change live_cond to unsigned int.
24994         (process_command): Replace SWITCH_OK with 0.
24995         (do_self_spec): Likewise.
24996         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
24997         (give_switch): Likewise.
24998         (used_arg): Likewise.
24999         (do_spec_1): Set the SWITCH_IGNORE bit.
25000         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
25001         bits.  Set the SWITCH_LIVE bit.
25002
25003 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
25004
25005         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
25006
25007 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
25008
25009         PR tree-optimization/34472
25010         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
25011         parameter to a "bool *" and set *DATA to false if there is
25012         an unsafe access.  Do not delete the structure here.
25013         (check_cond_exprs): Delete it here instead.
25014         (check_cond_exprs, exclude_cold_structs): Do not increase
25015         I when removing a structure.
25016
25017 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
25018
25019         PR target/34856
25020         * config/i386/i386.c (ix86_expand_vector_init): Consider only
25021         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
25022
25023 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
25024
25025         PR middle-end/34934
25026         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
25027         a fixed vector for stack.
25028
25029 2008-01-24  Ben Elliston  <bje@au.ibm.com>
25030
25031         PR c++/25701
25032         * doc/gcc.texi (Software development): Add a direntry for g++.
25033
25034 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
25035
25036         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
25037         stale and straggling -fforce-addr comments above.
25038
25039         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
25040         define.
25041         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
25042         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
25043
25044 2008-01-23  Michael Matz  <matz@suse.de>
25045
25046         PR debug/34895
25047         * dwarf2out.c (force_type_die): Use modified_type_die instead of
25048         gen_type_die.
25049
25050 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
25051
25052         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
25053         malloc result type.
25054
25055 2008-01-23 Anatoly Sokolov <aesok@post.ru>
25056
25057         * config/avr/avr.c (avr_current_arch): New variable.
25058         (avr_arch_types): Add 'avr31' and 'avr51' entries.
25059         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
25060         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
25061         (avr_override_options): Init 'avr_current_arch'.
25062         (base_arch_s): Move from here...
25063         * config/avr/avr.h (base_arch_s): ... here. Add new members
25064         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename
25065         'mega' to 'have_jmp_call'.
25066         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__",
25067         "__AVR_HAVE_RAMPZ__", "__AVR_HAVE_ELPM__" and "__AVR_HAVE_ELPMX__"
25068         macros.
25069         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51'
25070         architectures.
25071         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
25072         MULTILIB_MATCHES): Ditto.
25073
25074 2008-01-23  Richard Guenther  <rguenther@suse.de>
25075
25076         PR middle-end/31529
25077         * cgraphunit.c (cgraph_reset_node): Always mark the node
25078         not reachable if it is not queued already.
25079
25080 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
25081
25082         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
25083         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
25084         (cputype_selected): New static variable.
25085         (bfin_handle_option): Set it if -mcpu is used.
25086         (override_option): Select default set of workarounds if no cpu type
25087         selected on the command line.
25088         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
25089
25090         From  Michael Frysinger  <michael.frysinger@analog.com>
25091         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
25092         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
25093
25094         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
25095         for bf547, bf523, bf524, and bf526.
25096         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
25097         bf526.
25098         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
25099         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
25100         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
25101         __ADSPBF547__ and __ADSPBF54x__ for bf547.
25102         * doc/invoke.texi (Blackfin Options): Document that
25103         -mcpu now accept bf547, bf523, bf524, and bf526.
25104
25105 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
25106
25107         PR rtl-optimization/34628
25108         * combine.c (try_combine): Stop and undo after the first combination
25109         if an autoincrement side-effect on the first insn has effectively
25110         been lost.
25111
25112 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
25113
25114         PR target/34529
25115         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
25116         Offset addresses are not valid for Altivec or paired float modes.
25117
25118 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
25119
25120         PR c++/34607
25121         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
25122         if DECL_INITIAL (decl) is error_mark_node.
25123
25124         PR c++/34914
25125         * c-common.c (handle_vector_size_attribute): Only allow
25126         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
25127         the same way as pointer, array etc. types.
25128         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
25129
25130         PR c++/34917
25131         * tree.c (build_type_attribute_qual_variant): Call
25132         build_qualified_type if attributes are equal, but quals are not.
25133
25134 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
25135
25136         PR 32102
25137         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
25138         * flags.h (warn_strict_aliasing): Remove.
25139         (warn_strict_overflow): Remove.
25140         * opts.c (warn_strict_aliasing): Remove.
25141         (warn_strict_overflow): Remove.
25142         * c-opts.c (c_common_handle_option): -Wall only sets
25143         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
25144         (c_common_post_options): Give default values to -Wstrict-aliasing
25145         and -Wstrict-overflow if they are uninitialized.
25146         * common.opt (Wstrict-aliasing): Specify Var and Init.
25147         (Wstrict-overflow): Likewise.
25148
25149 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
25150
25151         PR rtl-optimization/26854
25152         PR rtl-optimization/34400
25153         PR rtl-optimization/34884
25154         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
25155         DF_RD->gen.
25156         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
25157         (df_rd_bb_info.expanded_lr_out): Deleted
25158         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
25159         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
25160         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
25161         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
25162         Removed code to allocate, initialize or free expanded_lr_out.
25163         (df_rd_bb_local_compute_process_def): Restructured to make more
25164         understandable.
25165         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
25166         sets if the sets are being trimmed.
25167
25168 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
25169
25170         PR bootstrap/32287
25171         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
25172         (as_vers): Likewise.
25173         * configure: Regenerated.
25174
25175 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
25176
25177         PR middle-end/33092
25178         * tree-pass.h (pass_build_alias): New pass.
25179         * tree-ssa-alias.c (gate_build_alias): New.
25180         (pass_build_alias): New.
25181         * passes.c (init_optimization_passes): Add pass_build_alias after
25182         pass_create_structure_vars.
25183
25184 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
25185
25186         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
25187         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
25188         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
25189         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
25190         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
25191         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
25192         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
25193         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
25194         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
25195         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
25196         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
25197         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
25198         * config/s390/s390.md (FP_ALL): New mode iterator.
25199         (_d): New mode attribute.
25200         ("*signbit<mode>2>"): Changed mode of first operand.
25201         ("isinf<mode>2"): Changed mode of first operand.
25202         ("*TDC_insn"): Adaptation for DFP modes.
25203
25204 2008-01-22  Ben Elliston  <bje@au.ibm.com>
25205
25206         * tree.c (check_qualified_type): Improve function description.
25207
25208 2008-01-21  Jason Merrill  <jason@redhat.com>
25209
25210         PR c++/34196
25211         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
25212         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
25213         if it is set.
25214
25215 2008-01-21  DJ Delorie  <dj@redhat.com>
25216
25217         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
25218         return zero.
25219
25220 2008-01-21  Richard Guenther  <rguenther@suse.de>
25221
25222         PR middle-end/34856
25223         * tree-cfg.c (verify_expr): Allow all invariant expressions
25224         instead of just constant class ones as reference argument.
25225         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
25226         like any other constant.
25227         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
25228
25229 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
25230
25231         * regmove.c (fixup_match_1): Update call crossed frequencies.
25232
25233 2008-01-21  Richard Guenther  <rguenther@suse.de>
25234
25235         PR c/34885
25236         * tree-inline.c (setup_one_parameter): Deal with mismatched
25237         types using a VIEW_CONVERT_EXPR.
25238
25239 2008-01-21  Alon Dayan  <alond@il.ibm.com>
25240             Olga Golovanevsky  <olga@il.ibm.com>
25241
25242         PR tree-optimization/34701
25243         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
25244         when the structure size is not a power of 2.
25245
25246 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
25247
25248         * doc/install.texi: Add doc for --enable-checking=df.
25249
25250 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
25251
25252         PR rtl-optimization/34808
25253         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
25254
25255 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
25256
25257         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
25258         input.
25259
25260 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
25261
25262         PR rtl-optimization/26854
25263         PR rtl-optimization/34400
25264         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
25265         DF_RD->gen.
25266         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
25267         (df_rd_bb_info.expanded_lr_out): New.
25268         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
25269         * loop_iv.c (iv_analysis_loop_init): Ditto.
25270         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
25271         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
25272         Added code to allocate, initialize or free expanded_lr_out.
25273         (df_rd_bb_local_compute_process_def): Restructured to make
25274         more understandable.
25275         (df_rd_confluence_n): Add code to do nothing with fake edges and
25276         code to no apply invalidate_by_call sets if the sets are being trimmed.
25277         (df_lr_local_finalize): Renamed to df_lr_finalize.
25278         (df_live_local_finalize): Renamed to df_live_finalize.
25279
25280 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
25281
25282         PR target/34831
25283         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
25284         deciding whether to use reciprocal instructions.
25285
25286 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
25287
25288         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
25289         dwarf2out_note_section_used if cold_text_section is NULL.
25290
25291 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
25292
25293         PR gcov-profile/34610
25294         * tree-cfg.c (make_edges): Mark both outgoing edges from
25295         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
25296         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
25297         from OMP_FOR and OMP_CONTINUE outgoing edges.
25298
25299         * tree-profile.c (tree_profiling): Return early if
25300         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
25301         at the end.
25302         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
25303         from cfun to child_cfun.
25304         * function.h (struct function): Add after_tree_profile bit.
25305
25306 2008-01-19 Anatoly Sokolov <aesok@post.ru>
25307
25308         * config/avr/avr.S (_exit): Disable interrupt.
25309
25310 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
25311             Steven Bosscher  <stevenb.gcc@gmail.com>
25312
25313         PR rtl-optimization/26854
25314         PR rtl-optimization/34400
25315         * df-problems.c (df_live_scratch): New scratch bitmap.
25316         (df_live_alloc): Allocate df_live_scratch when doing df_live.
25317         (df_live_reset): Clear the proper bitmaps.
25318         (df_live_bb_local_compute): Only process the artificial defs once
25319         since the order is not important.
25320         (df_live_init): Init the df_live sets only with the variables
25321         found live by df_lr.
25322         (df_live_transfer_function): Use the df_lr sets to prune the
25323         df_live sets as they are being computed.
25324         (df_live_free): Free df_live_scratch.
25325
25326 2008-01-18  Ian Lance Taylor  <iant@google.com>
25327
25328         * common.opt: Add fmerge-debug-strings.
25329         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
25330         flag_merge_debug_strings rather than flag_merge_constants.
25331         * doc/invoke.texi (Option Summary): Mention
25332         -fmerge-debug-strings.
25333         (Debugging Options): Document -fmerge-debug-strings.
25334
25335 2008-01-18  Ian Lance Taylor  <iant@google.com>
25336
25337         PR c++/33407
25338         * tree.h (DECL_IS_OPERATOR_NEW): Define.
25339         (struct tree_function_decl): Add new field operator_new_flag.
25340         * tree-inline.c (expand_call_inline): When inlining a call to
25341         operator new, force the return value to go into a variable, and
25342         set DECL_NO_TBAA_P on that variable.
25343         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
25344
25345 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
25346
25347         PR debug/34484
25348         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
25349         DWARF2_DEBUGGING_INFO.
25350         (dwarf2out_note_section_used): Ditto.  Add prototype.
25351         (have_multiple_function_sections, text_section_used,
25352         cold_text_section_used, *cold_text_sections): Move declarations
25353         before their uses.
25354
25355 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
25356
25357         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
25358         field and add signal_ra.
25359         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
25360         assignments to frame state pc.  Move end of stack check after
25361         MD_FALLBACK_FRAME_STATE_FOR.
25362         (uw_update_context_1): Use frame state signal_regs if set, instead
25363         of checking signal_frame flag.
25364         (uw_update_context): Use frame state signal_ra if set.
25365         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
25366         * config/xtensa/linux-unwind.h: New file.
25367
25368 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
25369
25370         * modulo-sched.c (get_sched_window): Fix comment typo.
25371
25372 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
25373
25374         PR tree-optimization/34648
25375         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
25376
25377 2008-01-17  Anatoly Sokolov <aesok@post.ru>
25378
25379         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
25380         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
25381
25382 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
25383
25384         PR rtl-optimization/34400
25385         * df-core.c (df_worklist_dataflow_overeager,
25386         df_worklist_dataflow_doublequeue): New functions.
25387         (df_worklist_dataflow): Two different worklist solvers.
25388         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
25389         New param.
25390
25391 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
25392
25393         PR testsuite/34821
25394         * doc/invoke.texi: Document the dependence on pthread for fopenmp
25395         and ftree-parallelize-loops.
25396
25397 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
25398
25399         PR rtl-optimization/34826
25400         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
25401
25402 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
25403
25404         * global.c (find_reg): Mark the eh regs as used if necessary.
25405         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
25406         * ra.h (struct allocno): no_eh_reg field added.  Changed
25407         no_stack_reg type to bitfield.
25408
25409 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
25410
25411         * tree.c (substitute_in_expr): Add missing 'break'.
25412
25413 2008-01-17  Richard Guenther  <rguenther@suse.de>
25414
25415         PR tree-optimization/34825
25416         * tree-ssa-math-opts.c (is_division_by): Do not recognize
25417         x / x as division to handle.
25418
25419 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
25420
25421         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
25422         "-pthread" is specified.
25423         * pa-hpux11.h (LIB_SPEC): Likewise.
25424
25425 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
25426             Peter Bergner  <bergner@vnet.ibm.com>
25427
25428         PR rtl-optimization/33796
25429         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
25430
25431 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
25432
25433         PR libgfortran/34699
25434         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
25435         static links.
25436         * pa-hpux10.h (LINK_SPEC): Likewise.
25437         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
25438
25439 2008-01-16  Richard Guenther  <rguenther@suse.de>
25440
25441         PR middle-end/32628
25442         * fold-const.c (fold_convert_const_int_from_int): Do not
25443         set overflow if that occured only because of a sign extension
25444         change when converting from/to a sizetype with the same
25445         precision and signedness.
25446
25447 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
25448
25449         PR debug/34249
25450         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
25451         location address to the correct place.  Update copyright year.
25452
25453 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
25454
25455         * lambda-code.c (lambda_transform_legal_p): Handle the case of
25456         no dependences in the dependence_relations vector.
25457
25458 2008-01-16  Jan Hubicka  <jh@suse.cz>
25459
25460         PR rtl-optimization/31396
25461         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
25462         * cfg.c (dump_reg_info): Print it.
25463         * regs.h (struct reg_info_t): add freq_calls_crossed.
25464         (REG_FREQ_CALLS_CROSSED): New macro.
25465         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
25466         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
25467         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
25468         regmove_optimize): Update call crossed frequencies.
25469         * local-alloc.c (struct qty): Add freq_calls_crossed.
25470         (alloc_qty): Copute freq_calls_crossed.
25471         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
25472         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
25473         * ra.h (struct allocno): Add freq_calls_crossed.
25474
25475 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
25476
25477         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
25478         libgomp when compiling with ftree-parallelize-loops.
25479         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
25480
25481 2008-01-16  Richard Guenther  <rguenther@suse.de>
25482
25483         PR tree-optimization/34769
25484         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
25485         * tree.c (int_cst_value): Instead make this function more
25486         permissive in what it accepts as valid input.  Document this
25487         function always sign-extends the value.
25488
25489 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
25490             Richard Guenther  <rguenther@suse.de>
25491
25492         PR c/34668
25493         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
25494         (gimple_fold_indirect_ref_rhs): ... this.
25495         (gimple_fold_indirect_ref): New function with foldings
25496         that preserve lvalueness.
25497         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
25498         * tree-flow.h (gimple_fold_indirect_ref): Declare.
25499         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
25500         to fold an INDIRECT_REF, fall back to the old use of
25501         fold_indirect_ref_1.
25502
25503 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
25504
25505         * tree-data-ref.c (subscript_dependence_tester_1): Call
25506         free_conflict_function.
25507         (compute_self_dependence): Same.
25508
25509 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
25510
25511         PR debug/34249
25512         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
25513         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
25514         function global.
25515         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
25516         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
25517         for DWARF2_UNWIND_INFO targets.
25518
25519 2008-01-16  Richard Guenther  <rguenther@suse.de>
25520
25521         PR c/34768
25522         * c-typeck.c (common_pointer_type): Do not merge inconsistent
25523         type qualifiers for function types.
25524
25525 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
25526
25527         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
25528         loop_iterator li from previous commit.
25529
25530 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
25531
25532         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
25533
25534 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
25535
25536         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
25537         (parallelize_loops): Don't parallelize irreducible components.
25538
25539 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
25540
25541         PR c++/24924
25542         * c-opts (c_common_post_options): Do not enable CPP
25543         flag_pedantic_errors by default.
25544
25545 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
25546
25547         PR rtl-optimization/31944
25548         * cse.c (remove_pseudo_from_table): New function.
25549         (merge_equiv_classes): Use above function to remove pseudo-registers.
25550         (invalidate): Likewise.
25551
25552 2008-01-13  Richard Guenther  <rguenther@suse.de>
25553
25554         PR middle-end/34601
25555         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
25556         instead of TYPE_MODE to deal with calls from expand_one_error_var.
25557
25558 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
25559
25560         * gcse.c (cprop_jump): Call validate_unshare_change instead of
25561         validate_change to unshare the source of the PC set.
25562
25563 2008-01-12  Jan Hubicka  <jh@suse.cz>
25564
25565         PR middle-end/32135
25566         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
25567         references above array bounds.  This might trigger bounds checks for
25568         pointers to arrays.
25569
25570 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
25571
25572         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
25573         new_replaceable_dependencies.
25574
25575 2008-01-12  Doug Kwan  <dougkwan@google.com>
25576
25577         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
25578         instead of OPT_Wreturn_type in warning due to ignored return type
25579         qualifiers.
25580         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
25581         options included in -Wextra.
25582         * c.opt: New option -Wignored_qualifiers.
25583         * doc/invoke.texi (Warning Options, -Wextra): Add new option
25584         -Wignore_qualifiers.
25585         (-Wignored-qualifiers): Document.
25586         (-Wreturn-type): Remove description of functionality now handled
25587         by -Wignored-qualifiers.
25588
25589 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
25590
25591         PR ada/33788
25592         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
25593         NOP_EXPR if it is between integral types with the same precision.
25594
25595 2008-01-12  Jan Hubicka  <jh@suse.cz>
25596
25597         PR other/28023
25598         * invoke.texi (max-inline-recursive-depth): Fix default value.
25599
25600 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
25601
25602         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
25603         correct type.
25604
25605 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
25606
25607         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
25608
25609 2008-01-11  James E. Wilson  <wilson@specifix.com>
25610
25611         PR target/26015
25612         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
25613
25614 2008-01-11  Anatoly Sokolov <aesok@post.ru>
25615
25616         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't
25617         save/restore frame pointer register and don't use 'call-prologues'
25618         optimization in function with "OS_task" attribute.
25619
25620 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
25621
25622         PR middle-end/31309
25623         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
25624         when copying to memory.
25625
25626 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
25627
25628         PR rtl-optimization/30905
25629         * cfgcleanup.c: Include dce.h
25630         (crossjumps_occured): New global variable.
25631         (try_crossjump_bb): Exit loop after finding a fallthru edge.
25632         If something changed, set crossjumps_occured to true.
25633         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
25634         Don't add/remove fake edges to exit here...
25635         (cleanup_cfg): ...but do it here, when crossjumping.
25636         Run a fast DCE when successful crossjumps occured in the latest
25637         iteration of try_optimize_cfg.
25638
25639 2008-01-11  Richard Guenther  <rguenther@suse.de>
25640
25641         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
25642         (struct vn_unary_op_s): Likewise.
25643         (vn_reference_insert): Free old reference on hash collision.
25644
25645 2008-01-10  Raksit Ashok  <raksit@google.com>
25646
25647         PR rtl-optimization/27971
25648         * combine.c (find_split_point): Split PLUS expressions which are
25649         inside a MEM rtx, and whose first operand is complex.
25650
25651 2008-01-10  DJ Delorie  <dj@redhat.com>
25652
25653         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
25654         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
25655         (m32c_hard_regno_ok): Call the underlying function.
25656
25657 2008-01-10  Richard Guenther  <rguenther@suse.de>
25658
25659         PR middle-end/34683
25660         * tree-cfg.c (tree_merge_blocks): Do not go through the
25661         full-blown folding and stmt updating path if we just deal
25662         with virtual operands.
25663         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
25664         test for abnormal SSA_NAMEs.
25665
25666 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
25667
25668         PR middle-end/34641
25669         * reload.c (push_reload): Add assertions.  All constants from
25670         reg_equiv_constant should have been used for replacing the respective
25671         pseudo earlier.
25672         (find_reloads_address): Invoke find_reloads_address_part for
25673         constant taken from the reg_equiv_constant array.
25674
25675 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
25676
25677         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
25678         field (valnum) the first in the struct.  Replace bools with
25679         unit bit fields.
25680
25681 2008-01-10  Richard Guenther  <rguenther@suse.de>
25682
25683         PR tree-optimization/34651
25684         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
25685         types and ordering for masking and converting.
25686
25687 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
25688
25689         PR tree-optimization/34017
25690         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
25691         also for PHI_NODE expressions.
25692
25693 2008-01-09  Jan Hubicka  <jh@suse.cz>
25694
25695         PR tree-optimization/34708
25696         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
25697         based on number of case labels.
25698         (init_inline_once): Remove switch_cost.
25699         * tree-inline.h (eni_weights_d): Remove switch_cost.
25700
25701 2008-01-09  Richard Guenther  <rguenther@suse.de>
25702         Andrew Pinski  <andrew_pinski@playstation.sony.com>
25703
25704         PR middle-end/30132
25705         * gimplify.c (gimplify_cond_expr): Do not create an addressable
25706         temporary if an rvalue is ok or an lvalue is not required.
25707
25708 2008-01-09  Richard Guenther  <rguenther@suse.de>
25709
25710         PR middle-end/34458
25711         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
25712         adjust return type.
25713
25714 2008-01-09  Richard Guenther  <rguenther@suse.de>
25715
25716         PR middle-end/34679
25717         * tree.c (host_integerp): Check for sizetype only if the
25718         type is an integer type.
25719
25720 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
25721
25722         PR debug/26364
25723         * opts.c (decode_options): Disable inlining of functions called
25724         once if not in unit-at-a-time mode.
25725
25726 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
25727
25728         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
25729
25730 2008-01-08  Richard Guenther  <rguenther@suse.de>
25731
25732         PR middle-end/31863
25733         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
25734         out early if the result will be unused.
25735
25736 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
25737
25738         PR target/34709
25739         Revert:
25740
25741         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
25742         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
25743         for TARGET_RECIP.
25744
25745 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
25746
25747         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
25748         for vectorization tuned.
25749
25750 2008-01-08  Richard Guenther  <rguenther@suse.de>
25751
25752         PR tree-optimization/34683
25753         * tree-ssa-operands.c (operand_build_cmp): Export.
25754         * tree-ssa-operands.h (operand_build_cmp): Declare.
25755         * tree-vn.c (vuses_compare): Remove.
25756         (sort_vuses): Use operand_build_cmp.
25757         (sort_vuses_heap): Likewise.
25758         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
25759         to re-use old VEC if available.  Do not sort already sorted VUSEs.
25760         (vdefs_to_vec): Do not sort already sorted VDEFs.
25761
25762 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
25763
25764         PR middle-end/34694
25765         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
25766
25767 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
25768
25769         PR target/34702
25770         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
25771         limitations of reciprocal sequences on x86 targets.
25772
25773 2008-01-08  Richard Guenther  <rguenther@suse.de>
25774
25775         PR tree-optimization/34683
25776         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
25777
25778 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
25779
25780         PR target/34622
25781         * config/darwin.c (darwin_mergeable_string_section): Don't use
25782         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
25783
25784 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
25785
25786         PR target/34682
25787         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
25788         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
25789         predicates of op0 and op1 to register_operand.
25790         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
25791         expander using X87MODEF mode iterator.  Change predicates of
25792         op0 and op1 to register_operand.
25793         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
25794         corresponding patterns and macroize using MODEF macro.  Change
25795         predicates of op0 and op1 to register_operand and remove
25796         "m" constraint. Disparage "r" alternative with "!".
25797         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
25798         macroize using X87MODEF macro.  Change predicates of op0 and op1
25799         to register_operand and remove "m" constraint.  Disparage "r"
25800         alternative with "!".
25801         (absneg splitter with memory operands): Remove.
25802         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
25803         patterns and macroize using X87MODEF mode iterator.
25804         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
25805         Change predicate of op1 to register_operand.
25806         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
25807         for memory operands.
25808
25809 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
25810
25811         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
25812
25813 2008-01-07  Richard Guenther  <rguenther@suse.de>
25814
25815         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
25816         fields.
25817
25818 2008-01-07  Richard Guenther  <rguenther@suse.de>
25819
25820         PR tree-optimization/34683
25821         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
25822         VOPs of the needed size to save memory.  Use VEC_quick_push
25823         to save compile-time.
25824         (vdefs_to_vec): Likewise.
25825
25826 2008-01-07  Sa Liu  <saliu@de.ibm.com>
25827
25828         * config/spu/spu.md (divdf3): Genetate inline code for double
25829         division.  The implementation doesn't handle INF or NAN, therefore it
25830         only applies when -ffinite-math-only is given.
25831
25832 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
25833
25834         PR libstdc++/34680
25835         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
25836         * doc/cpp.texi ([Common Predefined Macros]): Document.
25837
25838 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
25839
25840         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
25841         order to use commutative addition instead of subtraction.
25842
25843 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
25844             Mircea Namolaru  <namolaru@il.ibm.com>
25845             Vladimir Yanovsky  <yanov@il.ibm.com>
25846             Revital Eres  <eres@il.ibm.com>
25847
25848         PR tree-optimization/34263
25849         * tree-outof-ssa.c (process_single_block_loop_latch,
25850         contains_tree_r): New functions.
25851         (analyze_edges_for_bb): Call process_single_block_loop_latch
25852         function to empty single-basic-block latch block if possible.
25853
25854 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
25855
25856         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
25857         for TARGET_RECIP.
25858         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
25859
25860 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
25861
25862         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
25863
25864 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
25865
25866         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
25867
25868 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
25869
25870         PR tree-optimization/34618
25871         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
25872         flag from T.
25873
25874 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
25875
25876         PR target/34673
25877         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
25878         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
25879         Update copyright year.
25880
25881         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
25882         Update copyright year.
25883         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
25884         using NR fixup.
25885
25886 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
25887
25888         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
25889         edge does not point to current bb before changing need_assert.
25890
25891 2008-01-04  Richard Guenther  <rguenther@suse.de>
25892
25893         PR middle-end/34029
25894         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
25895         for verifying purposes if they are is_gimple_min_invariant.
25896
25897 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
25898
25899         PR tree-optimization/34448
25900         PR tree-optimization/34465
25901         * gimplify.c (gimplify_init_constructor): Add new parameter
25902         notify_temp_creation.  Use it.
25903         (gimplify_modify_expr_rhs): Take volatiles into account when
25904         optimizing constructors.
25905         Do not optimize constructors if gimplify_init_constructor will dump to
25906         memory.
25907         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
25908         * gcc.c-torture/compile/pr34448.c: New.
25909
25910 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
25911
25912         PR gcov-profile/34609
25913         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
25914         return_slot if result is TREE_ADDRESSABLE.
25915
25916 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
25917
25918         * config/mips/mips.md (sqrt_condition): Tweak comment.
25919         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
25920
25921 2008-01-03  Tom Tromey  <tromey@redhat.com>
25922
25923         PR c/34457
25924         * c-common.c (c_type_hash): Handle VLAs.
25925
25926 2008-01-03  Jan Hubicka  <jh@suse.cz>
25927
25928         PR tree-optimization/31081
25929         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
25930         0 when inlining and not inlining to first basic block.
25931         (remap_decl): When var is initialized to 0, don't set default_def.
25932         (expand_call_inline): Set entry_bb.
25933         * tree-inline.h (copy_body_data): Add entry_bb.
25934
25935 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
25936
25937         PR c++/34619
25938         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
25939         before returning.
25940
25941         PR tree-optimization/29484
25942         * tree-inline.c (inline_forbidden_p_2): New function.
25943         (inline_forbidden_p): Disallow inlining if some static var
25944         has an address of a local LABEL_DECL in its initializer.
25945         * doc/extend.texi (Labels as Values): Document &&foo behaviour
25946         vs. inlining.
25947
25948 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
25949
25950         PR tree-optimization/34635
25951         * tree-data-ref.c (add_other_self_distances): Make sure that the
25952         evolution step is constant.
25953
25954 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
25955
25956         PR middle-end/34608
25957         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
25958
25959 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
25960
25961         * tree-sra.c (scalarize_init): Insert the generate_element_init
25962         statements after the generate_element_zero statements.
25963
25964 2008-01-02  Richard Guenther  <rguenther@suse.de>
25965
25966         PR middle-end/34093
25967         PR middle-end/31976
25968         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
25969         for very large number of operands instead of ICEing.
25970
25971 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
25972
25973         PR target/34013
25974         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
25975         while stack probing.
25976
25977 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
25978
25979         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
25980         in C++0x mode.
25981
25982 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
25983
25984         PR libmudflap/26442
25985         * tree-mudflap.c (mx_register_decls): Guard warning by
25986         !DECL_ARTIFICIAL check.
25987
25988 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
25989
25990         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
25991         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
25992         sse5_perm<mode>): Fix constraints.