OSDN Git Service

76d8c014ab286d6765ee8beaa59004667c8a778b
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-10-24  Richard Sandiford  <rdsandiford@googlemail.com>
2
3         * config/mips/mips.c (mips_canonicalize_move_class): New function.
4         (mips_move_to_gpr_cost): Likewise.
5         (mips_move_from_gpr_cost): Likewise.
6         (mips_register_move_cost): Make more fine-grained.
7
8 2008-10-23  Tobias Grosser  <grosser@fim.uni-passau.de>
9
10         * graphite.c (graphite_apply_transformations): Check for
11         -fgraphite-identity.
12         * toplev.c (process_options): Add graphite_identity.
13         * tree-ssa-loop.c (gate_graphite_transforms): Add graphite_identity.
14
15 2008-10-23  Bernd Schmidt  <bernd.schmidt@analog.com>
16
17         * config/bfin/bfin.c (bdesc_2arg): Add mulhisill, mulhisilh,
18         mulhisihl and mulhisihh builtins.
19
20         From Jie Zhang  <jie.zhang@analog.com>
21         * config/bfin/bfin.md (composev2hi): Put operands into vector
22         with correct order.
23         
24 2008-10-22  Chao-ying Fu  <fu@mips.com>
25
26         * config/mips/mips.opt (msmartmips): Accept -mno-smartmips.
27
28 2008-10-22  Bernd Schmidt  <bernd.schmidt@analog.com>
29
30         From Mike Frysinger  <michael.frysinger@analog.com>
31         * config/bfin/bfin-protos.h (bfin_cpu_type): Add BFIN_CPU_BF512,
32         BFIN_CPU_BF514, BFIN_CPU_BF516, and BFIN_CPU_BF518.
33         * config/bfin/bfin.c (bfin_cpus[]): Add 0.0 for bf512, bf514, bf516,
34         and bf518.  Add 0.2 for bf522, bf523, bf524, bf526, and bf527.
35         Add 0.6 for bf533, bf532, and bf531.  Add 0.5 for bf538 and bf539.
36         Add 0.2 for bf542, bf544, bf547, bf548, and bf549.
37         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF512__
38         for BFIN_CPU_BF512, __ADSPBF514__ for BFIN_CPU_BF514, __ADSPBF516__
39         for BFIN_CPU_BF516, and __ADSPBF518__ for BFIN_CPU_BF518.  Define
40         __ADSPBF51x__ for all of them.
41         * config/bfin/elf.h (LIB_SPEC): Select proper linker scripts for
42         -mcpu bf512, bf514, bf516, and bf518.
43         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
44         bf512-none, bf514-none, bf516-none, and bf518-none.
45         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
46         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
47         * doc/invoke.texi (Blackfin Options): Document that
48         -mcpu now accepts bf512, bf514, bf516, and bf518.
49
50 2008-10-22  Jakub Jelinek  <jakub@redhat.com>
51
52         PR middle-end/37882
53         * fold-const.c (build_range_type): For 1 .. signed_max
54         range call build_nonstandard_inter_type if signed_type_for
55         returned a type with bigger precision.
56
57 2008-10-22  Richard Guenther  <rguenther@suse.de>
58
59         * tree.def (COMPLEX_TYPE): Constrain element type.
60         * tree.c (build_complex_type): Assert that.
61         * tree-ssa-structalias.c (could_have_pointers): Complex types
62         cannot have pointers.
63
64 2008-10-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
65
66         PR c/30949
67         * c-typeck.c (convert_for_assignment): Do not give declaration's
68         location for builtins. Spell out which type was expected and which
69         was given.
70
71 2008-10-22  Nick Clifton  <nickc@redhat.com>
72
73         * config/frv/frv.h (HARD_REGNO_RENAME_OK): Define.  Do not allow
74         the fdpic register to be a target when running in fdpic mode.
75
76 2008-10-22 Rafael Espindola  <espindola@google.com>
77
78         * ipa-struct-reorg.c (create_new_alloc_sites): Properly insert the
79         newly created statements.
80
81 2008-10-22  Kaz Kojima  <kkojima@gcc.gnu.org>
82
83         PR target/37633
84         * config/sh/sh.c (sh_hard_regno_mode_ok): New function.
85         * config/sh/sh.h (HARD_REGNO_MODE_OK): Use it.
86         * config/sh/sh-protos.h (sh_hard_regno_mode_ok): Declare.
87
88 2008-10-22  Jakub Jelinek  <jakub@redhat.com>
89
90         PR target/37880
91         * doc/invoke.texi: Fix spelling of -mlarge-data-threshold option.
92         Adjust -mcmodel=medium description for 2005-07-31 changes.
93
94 2008-10-22  Jan Hubicka  <jh@suse.cz>
95             Jakub Jelinek  <jakub@redhat.com>
96
97         PR middle-end/35853
98         * doc/invoke.texi: Remove references to obsoleted -d dumps.
99
100 2008-10-21  Richard Henderson  <rth@redhat.com>
101
102         PR 37815
103         * emit-rtl.c (get_spill_slot_decl): Export.
104         * emit-rtl.h (get_spill_slot_decl): Declare.
105         * var-tracking.c (vt_add_function_parameters): Relax assertion
106         on the contents of MEM_EXPR in a PARM_DECL to include a spill slot.
107
108 2008-10-21  Bob Wilson  <bob.wilson@acm.org>
109
110         * var-tracking.c (insn_stack_adjust_offset_pre_post): If insn has a
111         REG_FRAME_RELATED_EXPR note, examine the pattern from the note instead
112         of from insn.
113
114 2008-10-21  Adam Nemet  <anemet@caviumnetworks.com>
115
116         PR middle-end/37669
117         * tree-ssa-ccp.c (ccp_fold_builtin): Only allow one argument to be
118         processed by get_maxval_strlen.
119
120 2008-10-21  David Edelsohn  <edelsohn@gnu.org>
121
122         PR target/35485
123         * tree.c (get_file_function_name): Copy first_global_object_name.
124         Centralize call to clean_symbol_name.
125
126 2008-10-21  Sandra Loosemore  <sandra@codesourcery.com>
127
128         * config.gcc (powerpc-*): Make t-ppcgas imply usegas.h.
129         * config/svr4.h (SVR4_ASM_SPEC): New.
130         (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
131         * config/rs6000/sysv4.h (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
132
133         * doc/invoke.texi (Option Summary): Add -T to linker options.
134         (Link Options): Document -T.
135         
136 2008-10-21  Jakub Jelinek  <jakub@redhat.com>
137
138         * tree-inline.c (tree_inlinable_function_p): Remove tuples
139         debugging hack.
140
141         * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from
142         INTEGER_CSTs.
143
144         PR debug/37020
145         * c-decl.c (merge_decls): Don't call outlining_inline_function hook.
146
147 2008-10-20  Daniel Berlin  <dberlin@dberlin.org>
148
149         * tree-ssa-pre.c (insert_into_preds_of_block): Don't rewrite constant
150         part of expression.
151
152 2008-10-20  Tobias Schlüter  <tobi@gcc.gnu.org>
153
154         * doc/install.texi: Fix typos in previous patch.
155
156 2008-10-19  Tobias Schlüter  <tobi@gcc.gnu.org>
157
158         * doc/install.texi: Document in-tree building of gcc and mpfr.
159
160 2008-10-19  Richard Guenther  <rguenther@suse.de>
161
162         * tree-ssa-alias.c (may_alias_p): Remove bogus shortcut.
163
164 2008-10-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
165
166         PR c/30260
167         * c-decl.c (finish_enum): Convert non-integer enumerators to enum
168         type.
169         (build_enumerator): Convert enumerators that fit in integer to
170         integer type.
171
172 2008-10-18  Uros Bizjak  <ubizjak@gmail.com>
173
174         * config/i386/i386.md (unnamed peephole2): Do not force memory
175         operands of arith or logical instructions into registers for
176         non-TARGET_READ_MODIFY targets.
177
178         (ffs_cmove): Change operand 0 predicate to register_operand.
179         Change operand 1 predicate to nonimmediate_operand.
180         (ffsdi2): Ditto.
181         (*ffs_no_cmove): Change operand 0 predicate to register_operand.
182
183 2008-10-18  Richard Guenther  <rguenther@suse.de>
184
185         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Guard
186         VIEW_CONVERT_EXPR case against invalid gimple.
187
188 2008-10-17  Andreas Krebbel  <krebbel1@de.ibm.com>
189
190         * c-parser.c (c_parser_binary_expression): Silence the
191         uninitialized variable warning emitted for binary_loc.
192
193 2008-10-16  Daniel Berlin  <dberlin@dberlin.org>
194
195         * tree-ssa-pre.c (phi_translate_set): Add constants to phi
196         translation cache.
197
198 2008-10-16  Joseph Myers  <joseph@codesourcery.com>
199
200         PR c/33192
201         * c-typeck.c (build_unary_op): Use omit_one_operand for
202         IMAGPART_EXPR of real argument.
203
204 2008-10-16  Jakub Jelinek  <jakub@redhat.com>
205
206         PR tree-optimization/37664
207         * fold-const.c (fold_binary): When optimizing comparison with
208         highest or lowest type's value, don't consider TREE_OVERFLOW.
209
210 2008-10-16  David Edelsohn  <edelsohn@gnu.org>
211
212         PR target/35483
213         * Makefile.in (coverage.o): Depend on $(TM_P_H).
214         * coverage.c: Include tm_p.h.
215         * config/rs6000/x-aix (jc1): Override LDFLAGS.
216         * config/rs6000/xcoff.h (ASM_GENERATE_INTERNAL_LABEL): Strip
217         dollar signs from PREFIX.
218         * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
219         instead of manual strip_name_encoding.
220
221 2008-10-16  Richard Guenther  <rguenther@suse.de>
222
223         PR middle-end/37418
224         * tree-ssa.c (useless_type_conversion_p_1): Do not treat
225         volatile qualified functions or methods as relevant.
226
227 2008-10-16  Jakub Jelinek  <jakub@redhat.com>
228
229         PR tree-optimization/37525
230         * tree.c (int_fits_type_p): Rewrite using double_int.  Zero extend
231         sizetype unsigned constants, both in the case of C and bounds.
232
233 2008-10-15  Jan Hubicka  <jh@suse.cz>
234
235         * ira-emit.c (change_regs): Return false when replacing reg by
236         itself.
237
238 2008-10-14  Vladimir Makarov  <vmakarov@redhat.com>
239
240         PR target/37633
241         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Check
242         HARD_REGNO_CALL_PART_CLOBBERED.
243
244 2008-10-15  Vladimir Makarov  <vmakarov@redhat.com>
245
246         PR middle-end/37535
247         * ira-lives.c (mark_early_clobbers): Remove.
248         (make_pseudo_conflict, check_and_make_def_use_conflicts,
249         check_and_make_def_conflicts,
250         make_early_clobber_and_input_conflicts,
251         mark_hard_reg_early_clobbers): New functions.
252         (process_bb_node_lives): Call
253         make_early_clobber_and_input_conflicts and
254         mark_hard_reg_early_clobbers.  Make hard register inputs live again.
255
256         * doc/rtl.texi (clobber): Change descriotion of RA behaviour for
257         early clobbers of pseudo-registers.
258         
259 2008-10-15  Vladimir Makarov  <vmakarov@redhat.com>
260
261         PR middle-end/37674
262         * ira-build.c (ira_flattening): Recalculate
263         ALLOCNO_TOTAL_NO_STACK_REG_P and ALLOCNO_TOTAL_CONFLICT_HARD_REGS
264         from the scratch instead of the propagation.
265         
266 2008-10-15  Richard Sandiford  <rdsandiford@googlemail.com>
267
268         * doc/rtl.texi (const_double): Remove the "addr" operand.
269         Describe CONST_DOUBLE_* macros under const_double rather
270         than const_vector.
271         (const_fixed): Fix the operand description.
272         (const): Add an @findex directive.
273         (CONST0_RTX, CONST1_RTX, CONST2_RTX): Move description
274         after the constant rtl table.
275         (fix): Combine floating-point and fixed-point descriptions.
276         Fix hyphenation.
277         * sched-deps.c (sched_analyze_2): Remove reference to
278         CONST_DOUBLE_CHAIN.
279
280 2008-10-15  Richard Sandiford  <rdsandiford@googlemail.com>
281
282         * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Handle
283         UNSPEC_GOTSYM_OFFs.
284         * config/mn10300/mn10300.c (legitimate_pic_operand_p): Return true
285         for UNSPEC_GOTSYM_OFFs.
286         * config/mn10300/mn10300.md (UNSPEC_GOTSYM_OFF): New unspec.
287         (add_GOT_to_pic_reg): Use it.
288         * config/mn10300/constraints.md (S): Allow UNSPEC_GOTSYM_OFF.
289
290 2008-10-15  Jan Sjodin  <jan.sjodin@amd.com>
291             Harsha Jagasia  <harsha.jagasia@amd.com>
292
293         PR tree-optimization/37485
294         * graphite.c (gmp_cst_to_tree): Moved.
295         (iv_stack_entry_is_constant): New.
296         (iv_stack_entry_is_iv): New.
297         (loop_iv_stack_push): Renamed to loop_iv_stack_push_iv.
298         (loop_iv_stack_insert_constant): New.
299         (loop_iv_stack_pop): Use new datatpype.
300         (loop_iv_stack_get_iv): Same.
301         (loop_iv_stack_get_iv_from_name): Same.
302         (loop_iv_stack_debug): Renamed to debug_loop_iv_stack.
303         (loop_iv_stack_patch_for_consts): New.
304         (loop_iv_stack_remove_constants): New.
305         (graphite_create_new_loop): Use loop_iv_stack_push_iv.
306         (translate_clast): Call loop_iv_stack_patch_for_consts and
307         loop_iv_stack_remove_constants.
308         (gloog): Use new datatype.  Redirect construction edge to end
309         block to avoid accidental deletion.
310         * graphite.h (enum iv_stack_entry_kind): New.  Tag for data in
311         iv stack entry.
312         (union iv_stack_entry_data): New.  Data in iv stack entry.
313         (struct iv_stack_entry): New.  Datatype for iv stack entries.
314
315 2008-10-15  Sebastian Pop  <sebastian.pop@amd.com>
316
317         * tree-data-ref.c (stmt_simple_memref_p): Fix memleak.
318         * graphite.c (free_scop): Same.
319         (build_scops): Same.
320         (free_scattering): New.
321         (build_cloog_prog): Call free_scattering.
322         (patch_phis_for_virtual_defs): Fix memleak.
323         (graphite_trans_bb_strip_mine): Same.
324         (limit_scops): Same.
325
326 2008-10-15  Sebastian Pop  <sebastian.pop@amd.com>
327             Harsha Jagasia  <harsha.jagasia@amd.com>
328
329         PR tree-optimization/37828
330         * graphite.c (graphite_trans_loop_block): Do not loop block
331         single nested loops.
332
333 2008-10-15  Sebastian Pop  <sebastian.pop@amd.com>
334
335         PR tree-optimization/37686
336         * tree-loop-linear.c (linear_transform_loops): Build a
337         loop nest vector.  Pass it to lambda_compute_access_matrices.
338         * tree-data-ref.h (struct access_matrix): Store the loop nest
339         relative to which it encodes the information.
340         (AM_LOOP_NEST_NUM): Renamed AM_LOOP_NEST.
341         (am_vector_index_for_loop): Reimplemented: iterate over the
342         loop nest for finding the loop index in the access matrix.
343         (lambda_compute_access_matrices): Update declaration.
344         * lambda-code.c (build_access_matrix): Pass the loop nest and
345         record it.
346         (lambda_compute_access_matrices): Same.
347
348 2008-10-15  Andreas Krebbel  <krebbel1@de.ibm.com>
349
350         * config/s390/s390.h: (TARGET_DFP): This requires TARGET_HARD_FLOAT.
351         * config/s390/s390.md: Replace "TARGET_HARD_FLOAT &&
352         TARGET_(HARD_)DFP" with only TARGET_(HARD_)DFP since this
353         already implies hard float.  Also fix several insn condition
354         with TARGET_DFP which shall require TARGET_HARD_DFP instead.
355
356 2008-10-15  David Edelsohn  <edelsohn@gnu.org>
357
358         PR target/35483
359         Based on patches by Laurent Vivier.
360         * xcoffout.h (DBX_FINISH_STABS): Translate dollar sign to underscore.
361         * config/rs6000/rs6000-protos.h (rs6000_xcoff_strip_dollar): Declare.
362         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Translate
363         dollar sign to underscore.
364         (ASM_OUTPUT_EXTERNAL): Same.
365         (ASM_OUTPUT_LABELREF): New.
366         * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): New.
367
368         * config/rs6000/aix51.h (TARGET_USE_JCR_SECTION): Define.
369         * config/rs6000/aix52.h (TARGET_USE_JCR_SECTION): Define.
370         * config/rs6000/aix53.h (TARGET_USE_JCR_SECTION): Define.
371         * config/rs6000/aix61.h (TARGET_USE_JCR_SECTION): Define.
372
373 2008-10-15  Jakub Jelinek  <jakub@redhat.com>
374
375         PR tree-optimization/36881
376         * tree-switch-conversion.c (check_final_bb): For flag_pic, check
377         that each value doesn't need runtime relocations, for !flag_pic
378         check that each value is just a valid initializer constant.
379
380 2008-10-14  Richard Sandiford  <rdsandiford@googlemail.com>
381
382         * config/mips/mips.h (reg_class): Remove HI_AND_GR_REGS,
383         LO_AND_GR_REGS, HI_AND_FP_REGS, COP0_AND_GR_REGS, COP2_AND_GR_REGS,
384         COP3_AND_GR_REGS, ALL_COP_REGS and ALL_COP_AND_GR_REGS.
385         Add GR_AND_MD0_REGS, GR_AND_MD1_REGS, GR_AND_MD_REGS and
386         GR_AND_ACC_REGS.
387         (REG_CLASS_NAMES): Update accordingly.
388         (REG_CLASS_CONTENTS): Likewise.  Use the class name in the comments,
389         rather than an unpredictable descriptive string.
390         * config/mips/mips.c (mips_register_move_cost): Remove comment.
391         (mips_register_move_cost): Check for specific COP*_REGS classes,
392         instead of ALL_COP_AND_GR_REGS.
393         (mips_ira_cover_classes): New function.
394         (mips_secondary_reload_class): Remove MTLO and MTHI workarounds.
395         (TARGET_IRA_COVER_CLASSES): Define.
396
397 2008-10-14  Douglas Gregor  <doug.gregor@gmail.com>
398
399         PR c++/37553
400         * tree.c (build_type_attribute_qual_variant): Hash on the
401         unqualified type, and don't overwrite an existing
402         (type_hash_eq): Make the TYPE_NAME of the types significant, to
403         allow distinguishing between wchar_t and its underlying type. This
404         also means that we'll retain a little more typedef information.
405
406 2008-10-14  Andrey Belevantsev  <abel@ispras.ru>
407             Dmitry Melnik  <dm@ispras.ru>
408             Dmitry Zhurikhin  <zhur@ispras.ru>
409             Alexander Monakov  <amonakov@ispras.ru>
410             Maxim Kuvyrkov  <maxim@codesourcery.com>
411
412         * target.h (struct gcc_target): Update prototypes of needs_block_p
413         and gen_spec_check.
414         * haifa-sched.c (create_check_block_twin): Update calls to the above.
415         * sel-sched.c (create_speculation_check): Likewise.
416         * doc/tm.texi: Provide documentation for new target hooks.
417                 
418         * config/ia64/ia64.c: Include sel-sched.h.  Rewrite speculation hooks.
419         (ia64_gen_spec_insn): Removed.
420         (get_spec_check_gen_function, insn_can_be_in_speculative_p,
421         ia64_gen_spec_check): New static functions.
422         (ia64_alloc_sched_context, ia64_init_sched_context,
423         ia64_set_sched_context, ia64_clear_sched_context,
424         ia64_free_sched_context, ia64_get_insn_spec_ds,
425         ia64_get_insn_checked_ds, ia64_skip_rtx_p): Declare functions.
426         (ia64_needs_block_p): Change prototype.
427         (ia64_gen_check): Rename to ia64_gen_spec_check.
428         (ia64_adjust_cost): Rename to ia64_adjust_cost_2.  Add new parameter
429         into declaration, add special memory dependencies handling.
430         (TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
431         TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
432         TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_SPEC_DS,
433         TARGET_SCHED_GET_INSN_CHECKED_DS, TARGET_SCHED_SKIP_RTX_P):
434         Define new target hooks.
435         (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
436         (ia64_optimization_options): Turn on selective scheduling with -O3,
437         disable -fauto-inc-dec. Set mflag_sched_control_spec to true by default
438         with selective scheduling.
439         (ia64_override_options): Initialize align_loops and align_functions
440         to 32 and 64, respectively.  Set global selective scheduling flags
441         according to target-dependent flags.
442         (rtx_needs_barrier): Support UNSPEC_LDS_A.
443         (group_barrier_needed): Use new mstop-bit-before-check flag.
444         Add heuristic.
445         (dfa_state_size): Make global.
446         (spec_check_no, max_uid): Remove.
447         (mem_ops_in_group, current_cycle): New variables.
448         (ia64_sched_init): Disable checks for !SCHED_GROUP_P after reload.
449         Initialize new variables.
450         (is_load_p, record_memory_reference): New functions.
451         (ia64_dfa_sched_reorder): Lower priority of loads when limit is
452         reached.
453         (ia64_variable_issue): Change use of current_sched_info to
454         sched_deps_info.  Update comment.  Note if a load or a store is issued.
455         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Require a cycle
456         advance if maximal number of loads or stores was issued on current
457         cycle.
458         (scheduled_good_insn): New static helper function.
459         (ia64_dfa_new_cycle): Assert that last_scheduled_insn is set when
460         a group barrier is needed.  Fix vertical spacing.  Guard the code
461         doing state transition with last_scheduled_insn check.
462         Mark that a stop bit should be before current insn if there was a 
463         cycle advance.  Update current_cycle and mem_ops_in_group.
464         (ia64_h_i_d_extended): Change use of current_sched_info to
465         sched_deps_info. Reallocate stops_p by larger chunks.
466         (struct _ia64_sched_context): New structure.
467         (ia64_sched_context_t): New typedef.
468         (ia64_alloc_sched_context, ia64_init_sched_context,
469         ia64_set_sched_context, ia64_clear_sched_context,
470         ia64_free_sched_context): New static functions.
471         (gen_func_t): New typedef.
472         (get_spec_load_gen_function): New function.
473         (SPEC_GEN_EXTEND_OFFSET): Declare.      
474         (ia64_set_sched_flags): Check common_sched_info instead of *flags.
475         (get_mode_no_for_insn): Change the condition that prevents use of
476         special hardware registers so it can now handle pseudos.
477         (get_spec_unspec_code): New function.
478         (ia64_skip_rtx_p, get_insn_spec_code, ia64_get_insn_spec_ds,
479         ia64_get_insn_checked_ds, ia64_gen_spec_load): New static functions.
480         (ia64_speculate_insn, ia64_needs_block_p): Support branchy checks
481         during selective scheduling.
482         (ia64_speculate_insn): Use ds_get_speculation_types when
483         determining whether we need to change the pattern.
484         (SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET): Declare.
485         (ia64_spec_check_src_p): Support new speculation/check codes.
486         (struct bundle_state): New field.
487         (issue_nops_and_insn): Initialize it.
488         (insert_bundle_state): Minimize mid-bundle stop bits.
489         (important_for_bundling_p): New function.
490         (get_next_important_insn): Use important_for_bundling_p.
491         (bundling): When shifting TImode from unimportant insns, ignore
492         also group barriers.  Assert that best state is found before
493         the backward bundling pass.  Print number of mid-bundle stop bits.
494         Minimize mid-bundle stop bits.  Check correct calculation of
495         mid-bundle stop bits.
496         (ia64_sched_finish, final_emit_insn_group_barriers): Fix formatting.
497         (final_emit_insn_group_barriers): Emit stop bits before insns starting
498         a new cycle.
499         (sel2_run): New variable.
500         (ia64_reorg): When flag_selective_scheduling2 is set, run the selective
501         scheduling pass instead of schedule_ebbs.
502         
503         * config/ia64/ia64.md (speculable1, speculable2): New attributes.
504         (UNSPEC_LDS_A): New UNSPEC.
505         (movqi_internal, movhi_internal, movsi_internal, movdi_internal,
506         movti_internal, movsf_internal, movdf_internal,
507         movxf_internal): Make visible.  Add speculable* attributes.
508         (output_c_nc): New mode attribute.
509         (mov<mode>_speculative_a, zero_extend<mode>di2_speculative_a,
510         mov<mode>_nc, zero_extend<mode>di2_nc,
511         advanced_load_check_nc_<mode>): New insns.
512         (zero_extend*): Add speculable* attributes.
513
514         * config/ia64/ia64.opt (msched_fp_mem_deps_zero_cost): New option.
515         (msched-stop-bits-after-every-cycle): Likewise.
516         (msched-max-memory-insns, msched-max-memory-insns-hard-limit):
517         Likewise.
518         (msched-spec-verbose): Remove.
519         (msched-prefer-non-data-spec-insns,
520         msched-prefer-non-control-spec-insns,
521         msched-count-spec-in-critical-path,
522         msel-sched-dont-check-control-spec): Use Target  Report Var
523         instead of Common Report Var.
524
525         * config/ia64/itanium2.md: Remove incorrect bypass.
526         
527         * config/ia64/t-ia64 (ia64.o): Add dependency on sel-sched.h.
528
529 2008-10-14  Jakub Jelinek  <jakub@redhat.com>
530
531         PR middle-end/37805
532         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
533         and -fhelp=separate.
534
535 2008-10-14  Ben Elliston  <bje@au.ibm.com>
536
537         * config/rs6000/rs6000.md (cell_micro): Fix formatting.
538
539 2008-10-13  Joseph Myers  <joseph@codesourcery.com>
540
541         * combine.c (simplify_set): Avoid calling LOAD_EXTEND_OP on
542         non-integer modes.
543
544 2008-10-13  Matthias Klose  <doko@ubuntu.com>
545
546         * config/pa/linux-atomic.c: Work around missing header file
547         for hppa64-linux-gnu targets.
548
549 2008-10-13  Andrew Pinski  <andrew_pinski@playstation.sony.com>
550             Kaushal Kantawala <Kaushal_Kantawala@playstation.sony.com>
551             Trevor Smigiel  <Trevor_Smigiel@playstation.sony.com>
552             Grace Cao  <grace_cao@playstation.sony.com>
553
554         * doc/invoke.texi (-mgen-cell-microcode): Document.
555         (-mwarn-cell-microcode): Document.
556         * cfglayout.c (locator_location): Export.
557         * rtl.h (locator_location): Define prototype.
558         * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand):
559         New predicate.
560         * rs6000/rs6000-protos.h (rs6000_final_prescan_insn): Define prototype.
561         * config/rs6000/rs6000.opt (mgen-cell-microcode): New option.
562         (mwarn-cell-microcode): New option.
563         * rs6000/rs6000.c (rs6000_cell_dont_microcode): Delete unused variable.
564         (rs6000_override_options): Set rs6000_gen_cell_microcode if tuning for
565         cell and not already set.
566         Turn off string instructions if not generating cell microcode.
567         (rs6000_final_prescan_insn): New function that warns about microcoded
568         instructions.
569         * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Define.
570         * config/rs6000/rs6000.md
571         Replace cc_reg_not_cr0_operand with cc_reg_not_micro_cr0_operand if
572         the instruction would have been microcoded on the Cell.  Set cell_micro
573         to always on unnamed patterns for the string instructions.
574         (cell_micro): Update definition, remove load/store conditional
575         microcoded.
576         (sign_extend:DI): Define new pattern for non microcoded version.
577         (sign_extend:SI): Likewise.
578         (compare (div:P)): Set cell_micro to not.
579         (andsi3): Define as an expand.
580         (andsi3_mc): New pattern.
581         (andsi3_nomc): New pattern.
582         (andsi3_internal0_nomc): New pattern.
583         (andsi3_internal2): Rename to ...
584         (andsi3_internal2_mc): this and enable iff generating microcode.
585         (andsi3_internal3): Rename to ...
586         (andsi3_internal3_mc): this and enable iff generating microcode.
587         (andsi3_internal4): Enable iif generating microcode.
588         (andsi3_internal5): Rename to ..
589         (andsi3_internal5_mc): this and enable iff generating microcode.
590         (andsi3_internal5_nomc): New pattern.
591         (extzvdi_internal1): Enable iff generating microcode.
592         (extzvdi_internal2): Likewise.
593         (rotlsi3_internal7): Set cell_micro to always if non immediate form.
594         (anddi3): Change to expand.
595         (anddi3_mc): Rename from anddi3.
596         (anddi3_no_mc): New pattern.
597         (anddi3_internal2): Rename to ..
598         (anddi3_internal2_mc): this and enable iff generating microcode.
599         (anddi3_internal2_nomc): New pattern.
600         (anddi3_internal3): Rename to ..
601         (anddi3_internal3_mc): this and enable iff generating microcode.
602         (anddi3_internal3_nomc): New pattern.
603         (movti_string): Set cell_micro to always if TARGET_STRING.
604         (stmsi8): Set cell_micro to always.
605         (stmsi7): Likewise.
606         (stmsi6): Likewise.
607         (stmsi5): Likewise.
608         (stmsi4): Likewise.
609         (stmsi3): Likewise.
610         (stmsi8_power): Likewise.
611         (stmsi7_power): Likewise.
612         (stmsi6_power): Likewise.
613         (stmsi5_power): Likewise.
614         (stmsi4_power): Likewise.
615         (stmsi3_power): Likewise.
616         (movsi_update2): Enable iff generating microcode.
617         (movhi_update3): Likewise.
618         (lmw): Set cell_micro to always.
619
620 2008-10-13  Richard Sandiford  <rdsandiford@googlemail.com>
621
622         * config/s390/s390.md (UNSPEC_POOL_OFFSET): New constant.
623         * config/s390/s390.c (machine_function): Remove
624         decomposed_literal_pool_addresses_ok_p.
625         (s390_decompose_address): Check for UNSPEC_POOL_OFFSET instead of
626         the difference of two labels.
627         (s390_output_addr_const_extra): Handle UNSPEC_POOL_OFFSET.
628         (s390_pool_offset): New function.
629         (s390_find_constant, s390_find_execute, s390_dump_pool): Use it.
630         (s390_reorg): Don't set decomposed_literal_pool_addresses_ok_p.
631
632 2008-10-13  Nathan Froyd  <froydnj@codesourcery.com>
633
634         * doc/install.texi (powerpc-*-*): Require binutils 2.15.
635         (powerpc*-*-linux-gnu*): Describe.
636         * config/rs6000/ppc-asm.h (HIDDEN_FUNC): New macro.
637         * config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
638         config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
639         config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
640         config/rs6000/e500crtres32gpr.asm,
641         config/rs6000/e500crtres64gpr.asm,
642         config/rs6000/e500crtres64gprctr.asm,
643         config/rs6000/e500crtrest32gpr.asm,
644         config/rs6000/e500crtrest64gpr.asm,
645         config/rs6000/e500crtresx32gpr.asm,
646         config/rs6000/e500crtresx64gpr.asm,
647         config/rs6000/e500crtsav32gpr.asm,
648         config/rs6000/e500crtsav64gpr.asm,
649         config/rs6000/e500crtsav64gprctr.asm,
650         config/rs6000/e500crtsavg32gpr.asm,
651         config/rs6000/e500crtsavg64gpr.asm,
652         config/rs6000/e500crtsavg64gprctr.asm: Use it.
653         * config/rs6000/crtsavres.asm: Really remove.
654
655 2008-10-13  Kai Tietz  <kai.tietz@onevision.com>
656
657         Fix PR/25502
658         * c-format.c (convert_format_name_to_system_name): Use
659         TARGET_OVERRIDES_FORMAT_INIT.
660         * config.gcc (extra_options): Add for mingw targets mingw.opt.
661         * config/i386/mingw.opt: New.
662         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_INIT): New.
663         * config/i386/msformat-c.c (TARGET_OVERRIDES_FORMAT_INIT): New.
664         (ms_printf_length_specs): Removed const specifier.
665         * doc/tm.texi (TARGET_OVERRIDES_FORMAT_INIT): New.
666         * doc/invoke.texi (Wno-pedantic-ms-format): New.
667
668 2008-10-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
669
670         * builtins.c: Remove MPFR_VERSION_NUM(2,3,0) conditionals.
671         * doc/install.texi: Bump recommended MPFR to 2.3.2.
672
673 2008-10-12  Kenneth Zadeck <zadeck@naturalbridge.com>
674
675         PR middle-end/37808
676         * df-scan.c (df_ref_change_reg_with_loc_1): Added test to make
677         sure that ref has valid bb.
678         
679 2008-10-12  Richard Henderson  <rth@redhat.com>
680
681         PR middle-end/37447
682         * Makefile.in (reload1.o): Depend on EMIT_RTL_H.
683         * alias.c (value_addr_p, stack_addr_p): Remove.
684         (nonoverlapping_memrefs_p): Remove IRA special case.
685         * emit-rtl.c (get_spill_slot_decl, set_mem_attrs_for_spill): New.
686         * emit-rtl.h (set_mem_attrs_for_spill): Declare.
687         * reload1.c (alter_reg): Use it.
688
689 2008-10-12  Uros Bizjak  <ubizjak@gmail.com>
690
691         * config/i386/driver-i386.c (detect_caches_cpuid2): Use array
692         of registers instead of eax, ebx, ecx and edx.  Use for loop
693         and check register for non-zero value before the call
694         to decode_caches_intel.
695
696 2008-10-11  Kenneth Zadeck <zadeck@naturalbridge.com>
697
698         PR rtl-optimization/37448
699         * df.h: (df_ref_class): New enum.
700         (DF_REF_TYPE_NAMES, df_ref_extract): Removed.
701         (struct df_ref): Replaced with union df_ref_d.
702         (df_base_ref, df_artificial_ref, df_regular_ref, df_extract_ref):
703         New members of df_ref_d union.
704         (DF_REF_REAL_REG, DF_REF_REGNO, DF_REF_REAL_LOC, DF_REF_REG,
705         DF_REF_LOC, DF_REF_BB, DF_REF_INSN_INFO, DF_REF_INSN,
706         DF_REF_CLASS, DF_REF_TYPE, DF_REF_CHAIN, DF_REF_ID, DF_REF_FLAGS,
707         DF_REF_ORDER, DF_REF_IS_ARTIFICIAL, DF_REF_NEXT_REG,
708         DF_REF_PREV_REG, DF_REF_EXTRACT_WIDTH, DF_REF_EXTRACT_OFFSET,
709         DF_REF_EXTRACT_MODE): Replaced definition to access union df_ref_d.
710         (DF_MWS_REG_DEF_P, DF_MWS_REG_USE_P, DF_MWS_TYPE): New macros.
711         (df_scan_bb_info, df_bb_regno_first_def_find,
712         df_bb_regno_last_def_find, df_find_def, df_find_use,
713         df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
714         debug_df_ref, df_chain_create, df_chain_unlink, df_chain_copy,
715         df_ref_create, df_ref_remove, df_compute_accessed_bytes,
716         df_get_artificial_defs, df_get_artificial_uses, union_defs)
717         Replaced struct df_ref * with df_ref.
718         * df-scan.c (df_collection_rec, df_null_ref_rec,
719         df_ref_chain_delete_du_chain, df_ref_chain_delete, df_install_ref,
720         df_grow_ref_info, df_ref_create, df_reg_chain_unlink,
721         df_ref_compress_rec, df_ref_remove, df_ref_chain_delete_du_chain,
722         df_ref_chain_delete, df_free_collection_rec, df_insn_rescan,
723         df_reorganize_refs_by_reg_by_reg,
724         df_reorganize_refs_by_reg_by_insn, df_reorganize_refs_by_reg,
725         df_ref_change_reg_with_loc_1, df_notes_rescan, df_swap_refs,
726         df_sort_and_compress_refs, df_install_ref, df_install_refs,
727         df_ref_record, df_get_conditional_uses, df_get_call_refs,
728         df_bb_refs_record, df_exit_block_uses_collect,
729         df_record_exit_block_uses, df_reg_chain_mark,
730         df_reg_chain_verify_unmarked, df_refs_verify): Replaced struct
731         df_ref * with df_ref.
732         (df_ref_record, df_uses_record, df_ref_create_structure): Added
733         df_ref_class parameter.
734         (df_scan_problem_data): Added new pools for different types of refs.
735         (df_scan_free_internal, df_scan_alloc, df_free_ref,
736         df_ref_create_structure): Processed new ref pools.
737         (df_scan_start_dump): Added counts of refs and insns.
738         (df_ref_create, df_notes_rescan, df_def_record_1, df_uses_record,
739         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
740         df_entry_block_defs_collect, df_exit_block_uses_collect): Added
741         code to pass df_ref_class down to ref creation functions.
742         (df_reg_chain_unlink, df_ref_remove, df_ref_change_reg_with_loc_1,
743         df_reg_chain_mark): Use macros to hide references to df_refs.
744         (df_ref_chain_change_bb): Removed.
745         (df_insn_change_bb): Remove calls to df_ref_insn_change_bb.
746         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
747         Enhanced to understand df_ref union structure.
748         * fwprop.c (local_ref_killed_between_p, use_killed_between,
749         all_uses_available_at, update_df, try_fwprop_subst,
750         forward_propagate_subreg, forward_propagate_and_simplify,
751         forward_propagate_into, fwprop, fwprop_addr): Replaced struct
752         df_ref * with df_ref.
753         (use_killed_between, all_uses_available_at): Use macros to hide
754         references to df_refs.
755         * regstat.c (regstat_bb_compute_ri,
756         regstat_bb_compute_calls_crossed): Replaced struct df_ref * with
757         df_ref.
758         * see.c (see_handle_relevant_defs, see_handle_relevant_uses,
759         see_handle_relevant_refs, see_analyze_one_def,
760         see_update_relevancy, see_propagate_extensions_to_uses): Replaced
761         struct df_ref * with df_ref.
762         * ra-conflict.c (record_one_conflict, clear_reg_in_live,
763         global_conflicts): Replaced struct df_ref * with df_ref.
764         * ddg.c (create_ddg_dep_from_intra_loop_link,
765         add_cross_iteration_register_deps, build_inter_loop_deps):
766         Replaced struct df_ref * with df_ref.
767         (create_ddg_dep_from_intra_loop_link,
768         add_cross_iteration_register_deps): Use macros to hide references
769         to df_refs.
770         * auto-inc-dec.c (find_inc, merge_in_block): Replaced struct
771         df_ref * with df_ref.
772         * df-core.c (df_bb_regno_first_def_find,
773         df_bb_regno_last_def_find, df_find_def, df_find_use,
774         df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
775         debug_df_ref): Replaced struct df_ref * with df_ref.
776         (df_mws_dump, df_ref_debug): Use macros to hide references to df_refs.
777         * cse.c (cse_extended_basic_block): Replaced struct df_ref * with
778         df_ref.
779         * web.c (union_defs, entry_register, replace_ref, web_main):
780         Replaced struct df_ref * with df_ref.
781         (union_defs, replace_ref): Use macros to hide references to df_refs.
782         * global.c (compute_regs_asm_clobbered, build_insn_chain):
783         Replaced struct df_ref * with df_ref.
784         * ifcvt.c (dead_or_predicable): Replaced struct df_ref * with df_ref.
785         * sel-sched-ir.c (maybe_downgrade_id_to_use, setup_id_reg_sets, ):
786         Replaced struct df_ref * with df_ref.
787         * ira-lives.c (mark_ref_live, def_conflicts_with_inputs_p,
788         mark_ref_dead, process_bb_node_lives): Replaced struct df_ref *
789         with df_ref.
790         * local-alloc.c (block_alloc): Replaced struct df_ref * with df_ref.
791         * df-byte-scan.c (df_compute_accessed_bytes_extract,
792         df_compute_accessed_bytes_strict_low_part,
793         df_compute_accessed_bytes_subreg, df_compute_accessed_bytes):
794         Replaced struct df_ref * with df_ref.
795         (df_compute_accessed_bytes): Use macros to hide references to df_refs.
796         * init-regs.c (initialize_uninitialized_regs): Replaced struct
797         df_ref * with df_ref.
798         * loop-invariant.c (invariant_for_use, hash_invariant_expr_1,
799         check_dependency, check_dependencies, record_uses): Replaced
800         struct df_ref * with df_ref.
801         (invariant_for_use, check_dependency): Use macros to hide
802         references to df_refs.
803         * loop-iv.c (iv_analysis_loop_init, iv_get_reaching_def,
804         get_biv_step_1, get_biv_step, record_iv, iv_analyze_def,
805         iv_analyze, biv_p): Replaced struct df_ref * with df_ref.
806         (iv_analysis_loop_init, iv_get_reaching_def): Use macros to hide
807         references to df_refs.
808         * ira.c (compute_regs_asm_clobbered): Replaced struct df_ref *
809         with df_ref.
810         * combine.c (create_log_links): Replaced struct df_ref * with df_ref.
811         * df-problems.c (df_rd_bb_local_compute_process_def,
812         df_lr_bb_local_compute, df_live_bb_local_compute, df_chain_create,
813         df_chain_unlink_1, df_chain_unlink, df_chain_copy,
814         df_chain_remove_problem, df_chain_create_bb_process_use,
815         df_chain_create_bb, df_chain_top_dump, df_chain_bottom_dump,
816         df_byte_lr_check_regs, df_byte_lr_bb_local_compute,
817         df_byte_lr_simulate_defs, df_byte_lr_simulate_uses,
818         df_byte_lr_simulate_artificial_refs_at_top,
819         df_byte_lr_simulate_artificial_refs_at_end, df_create_unused_note,
820         df_note_bb_compute, df_note_add_problem, df_simulate_defs,
821         df_simulate_uses, df_simulate_artificial_refs_at_end,
822         df_simulate_artificial_refs_at_top): Replaced struct df_ref * with
823         df_ref.
824         (df_chain_dump): Use macros to hide references to df_refs.
825         * config/mips/mips.c (r10k_simplify_address): Replaced struct
826         df_ref * with df_ref.
827         * dce.c (mark_nonreg_stores, delete_corresponding_reg_eq_notes,
828         mark_artificial_uses, mark_reg_dependencies,
829         byte_dce_process_block): Replaced struct df_ref * with df_ref.
830
831 2008-10-11  Eric Botcazou  <ebotcazou@adacore.com>
832
833         * tree.h (contains_packed_reference): Mention ARRAY_RANGE_REF in
834         head comment.
835         (array_ref_element_size): Likewise.
836         (array_ref_low_bound): Likewise.
837         (array_ref_up_bound): Likewise.
838         * expr.c (contains_packed_reference): Likewise.
839         (array_ref_element_size): Likewise.
840         (array_ref_low_bound): Likewise.
841         (array_ref_up_bound): Likewise.
842         * tree-ssa-loop-ivopts.c (idx_contains_abnormal_ssa_name_p): Deal
843         with ARRAY_RANGE_REF.
844         (idx_find_step): Likewise.
845         (idx_record_use): Likewise.
846         (strip_offset_1): Likewise.
847         (idx_remove_ssa_names): Likewise.
848
849 2008-10-11  Uros Bizjak  <ubizjak@gmail.com>
850             Andi Kleen  <ak@linux.intel.com>
851
852         * config/i386/cpuid.h (__cpuid_count): New defines.
853         * config/i386/driver-i386.c (struct cache_desc): New structure.
854         (describe_cache): Use struct cache_desc to pass cache descriptions.
855         (detect_l2_cache): Ditto. Rename from decode_l2_cache.
856         (detect_caches_amd): Use struct cache_desc to describe caches.
857         (decode_caches_intel): Use struct cache_desc to pass cache
858         descriptions.  Update descriptions to match latest (rev -032,
859         December 2007) CPUID documentation.  Do not check valid bit here.
860         Check for Xeon MP value 0x49 problems.
861         (detect_caches_cpuid2): New function, split from detect_caches_intel.
862         Check valid bit before calling decode_caches_intel.  Detect number
863         of times to repeat CPUID instruction.
864         (detect_caches_cpuid4): New function.
865         (detect_caches_intel): Depending on max_level, call
866         detect_caches_cpuid2 or detect_caches_cpuid4.  Call detect_l2_cache
867         only when other methods fail to provide valid L2 cache description.
868
869 2008-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
870
871         PR middle-end/37608
872         * pa.md (call, call_value): Generate an rtx for register r4 and pass
873         it to PIC call patterns.
874         (call_symref_pic): Revise pattern to expose PIC register save.  Remove
875         code generation and attributes from pattern.  Change peephole2 to split
876         for noreturn case.  Revise split pattern for non noreturn case.
877         (call_symref_64bit, call_reg_pic, call_reg_64bit, call_val_symref_pic,
878         call_val_symref_64bit, call_val_reg_pic, call_val_reg_64bit): Likewise.
879         * pa.c (attr_length_call): Simplify extraction of call rtx.  Add some
880         asserts.
881
882 2008-10-11  David Edelsohn  <edelsohn@gnu.org>
883
884         * config/rs6000/rs6000.md (aux_truncdfsf2): Remove TARGET_SINGLE_FLOAT.
885         (addsf3, subsf3, mulsf3 ! TARGET_POWERPC): Remove TARGET_SINGLE_FLOAT
886         and fp_type.
887         (divdf3): Reformat long line.
888
889 2008-10-11  Michael J. Eager  <eager@eagercon.com>
890
891         * config/rs6000/rs6000.c (rs6000_parse_fpu_option): Interpret
892         -mfpu options.
893         (rs6000_handle_option): Process -mfpu options.
894         * config/rs6000/rs6000.h: (TARGET_XILINX_FPU): New.
895         (enum fpu_type_t): New.
896         * config/rs6000/rs6000.md (attr fp_type): New.  Include xfpu.md.
897         (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3, trunctfdf2): Set
898         fp_type.
899         (floatsisf2): Remove TARGET_SINGLE_FPU condition.
900         (floatdidf2): Add TARGET_SINGLE_FPU condition.
901         * config/rs6000/rs6000.opt (-mfpu): New.
902         (-mxilinx-fpu): New.
903         * config/rs6000/sysv4.h: (DRIVER_SELF_SPECS): New.
904         * config/rs6000/xfpu.h: New. Define TARGET_XILINX_FPU.
905         * config/rs6000/xfpu.md: New. Define Xilinx pipeline.
906         * gcc/config.gcc: powerpc-xilinx-eabi target: New.
907         * gcc/doc/invoke.texi (RS/6000 and PowerPC Options): Add -mfpu option.
908
909 2008-10-11  Jakub Jelinek  <jakub@redhat.com>
910
911         PR target/35760
912         * config/rs6000/rs6000.c (rs6000_legitimize_address): Only create
913         LO_SUM on Darwin if mode has just one unit.
914
915 2008-10-10  H.J. Lu  <hongjiu.lu@intel.com>
916
917         PR debug/37002
918         * dwarf2out.c (mem_loc_descriptor): Use DRAP for vDRAP which
919         has been optimized out.
920
921 2008-10-10  Richard Sandiford  <rdsandiford@googlemail.com>
922
923         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Test PIC_ADDR_P
924         instead of PIC_DIRECT_ADDR_P.
925         (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
926         (IS_LITERAL_OR_SYMBOLIC_S16_P, IS_LITERAL_OR_SYMBOLIC_U16_P): Delete.
927         (IS_NON_EXPLICIT_CONSTANT_P): Don't test PIC_OFFSET_P.
928         (PIC_OFFSET_P): Rename to...
929         (PCREL_SYMOFF_P): ...this.
930         (PIC_DIRECT_ADDR_P): Delete.
931         (MOVI_SHORI_BASE_OPERAND_P): Check PCREL_SYMOFF_P instead of
932         PIC_OFFSET_P.
933         (OUTPUT_ADDR_CONST_EXTRA): Don't require unspecs to have a
934         single argument.  Handle UNSPEC_EXTRACT_S16, UNSPEC_EXTRACT_U16,
935         UNSPEC_SYMOFF and UNSPEC_PCREL_SYMOFF.
936         * config/sh/sh.c (print_operand): Remove CONST handling.
937         (unspec_caller_rtx_p): Rewrite to use split_const and check
938         the operands of UNSPEC bases.
939         (fixup_mova): Replace (unspec [(minus A B)] UNSPEC_PIC)
940         with (unspec [A B] UNSPEC_SYMOFF).
941         (nonpic_symbol_mentioned_p): Check for UNSPEC_SYMOFF and
942         UNSPEC_PCREL_SYMOFF.
943         (sh_secondary_reload): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
944         * config/sh/sh.md (UNSPEC_EXTRACT_S16): New unspec.
945         (UNSPEC_EXTRACT_U16): Likewise.
946         (UNSPEC_SYMOFF): Likewise.
947         (UNSPEC_PCREL_SYMOFF): Likewise.
948         (movsi_const): Use UNSPEC_EXTRACT_*16s to extract 16-bit portions
949         of constants.
950         (movsi_const_16bit): Likewise.
951         (movdi_const, movdi_const_32bit, movdi_const_16bit): Likewise.
952         (GOTaddr2picreg): Replace (unspec [(minus A (minus B pc))] UNSPEC_PIC)
953         with (unspec [A B] UNSPEC_PCREL_SYMOFF).
954         (sym_label2reg): Replace (minus (const (unspec [A] UNSPEC_PIC)) B)
955         with (unspec [A B] UNSPEC_SYMOFF).
956         (symPLT_label2reg): Replace (minus A (minus B pc)) with
957          (unspec [A B] PCREL_UNSPEC_SYMOFF).
958         * config/sh/constraints.md (Css): Check for an UNSPEC_EXTRACT_S16.
959         (Csu): Likewise UNSPEC_EXTRACT_U16.
960         (Csy): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
961         (Cpg): Update after changes to IS_NON_EXPLICIT_CONSTANT_P.
962
963 2008-10-10  Stepan Kasal  <skasal@redhat.com>
964
965         * gcc/doc/invoke.texi (Optimize Options): Fix typo in examples
966         for loop strip mining and loop blocking.
967
968 2008-10-10  Alexandre Oliva  <aoliva@redhat.com>
969
970         * fortran/trans-types.c (gfc_get_nodesc_array_type): Don't
971         vary types depending on debug info.
972
973 2008-10-10  Alexandre Oliva  <aoliva@redhat.com>
974
975         * c-gimplify.c (c_genericize): Don't refer to DECL_ASSEMBLER_NAME
976         before ensuring it's already computed.
977
978 2008-10-09  Jakub Jelinek  <jakub@redhat.com>
979
980         * rtl.h (locator_eq): New decl.
981         * cfglayout.c (locator_scope): New function.
982         (insn_scope): Use it.
983         (locator_eq): New function.
984         (fixup_reorder_chain): Search for last insn in src bb
985         that has locator set or first insn in dest bb.  Use
986         locator_eq instead of == to compare locators.
987         * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
988         * cfgcleanup.c (try_forward_edges): Use locator_eq instead of
989         == to compare locators.
990
991         * tree-ssa-live.c (remove_unused_locals): Mark all edge's goto_block
992         as used.
993         * gimple-low.c (lower_function_body, lower_gimple_return,
994         lower_builtin_setjmp): Set gimple_block on the newly created stmts.
995         * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Only set
996         goto_block on edges if goto_locus is known.
997
998         PR middle-end/37774
999         * tree.h (get_object_alignment): Declare.
1000         * emit-rtl.c (set_mem_attributes_minus_bitpos): Call
1001         get_object_alignment if needed.
1002         * builtins.c (get_pointer_alignment): Move ADDR_EXPR operand handling
1003         to ...
1004         (get_object_alignment): ... here.  New function.  Try harder to
1005         determine alignment from get_inner_reference returned offset.
1006
1007 2008-10-08  Jakub Jelinek  <jakub@redhat.com>
1008
1009         * graphite.c (gloog): Don't call find_unreachable_blocks
1010         before delte_unreachable_blocks.
1011
1012         * cfgexpand.c (expand_gimple_cond): Convert also goto_block and
1013         goto_locus of true_edge into RTL locator.
1014
1015 2008-10-08  Uros Bizjak  <ubizjak@gmail.com>
1016
1017         * config/i386/i386.md (*jcc_btdi_rex64): Clobber FLAGS_REG.
1018         (*jcc_btdi_mask_rex64): Ditto.
1019         (*jcc_btsi): Ditto.
1020         (*jcc_btsi_mask): Ditto.
1021         (*jcc_btsi_1): Ditto.
1022         (*jcc_btsi_mask_1): Ditto.
1023
1024 2008-10-08  Paul Brook  <paul@codesourcery.com>
1025
1026         * config/arm/bpabi.h (ARM_FUNCTION_PROFILER): Define new EABI
1027         compatible profiler (__gnu_mcount_nc).
1028         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
1029
1030 2008-10-08  H.J. Lu  <hongjiu.lu@intel.com>
1031
1032         * config/i386/i386.c (initial_ix86_tune_features): Add
1033         X86_TUNE_USE_VECTOR_FP_CONVERTS.
1034         * config/i386/i386.h (ix86_tune_indices): Likewise.
1035         (TARGET_USE_VECTOR_FP_CONVERTS): New.
1036
1037         * config/i386/i386.md: Check TARGET_USE_VECTOR_FP_CONVERTS
1038         instead of (TARGET_USE_VECTOR_CONVERTS || TARGET_GENERIC)
1039         for FP to FP splitters.
1040
1041 2008-10-08  H.J. Lu  <hongjiu.lu@intel.com>
1042
1043         * config/i386/i386.md: Add missing gen_sse2_cvtdq2p to convert
1044         splitter.
1045
1046 2008-10-08  Jakub Jelinek  <jakub@redhat.com>
1047
1048         PR target/36635
1049         PR target/37290
1050         PR rtl-optimization/37341
1051         * cse.c (cse_cc_succs): Add ORIG_BB argument, don't follow edges
1052         to ORIG_BB, pass through ORIG_BB recursively.
1053         (cse_condition_code_reg): Adjust caller.
1054
1055 2008-10-08  Kai Tietz  <kai.tietz@onevision.com>
1056
1057         * sdbout.c (sdbout_one_type): Treat the value type
1058         CONST_DECL for enumerals.
1059
1060 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
1061
1062         * config/i386/i386.md: Remove trailing white spaces.
1063
1064 2008-10-07  Kenneth Zadeck <zadeck@naturalbridge.com>
1065
1066         PR rtl-optimization/37448
1067         * alloc-pool.c (struct alloc_pool_descriptor) [elt_size]: New field.
1068         (stuct alloc_pool_descriptor) [created, allocated, current, peak]:
1069         Make unsigned long.
1070         (struct output_info) [count]: Renamed total_created and made
1071         unsigned long.
1072         (struct output_info) [size]: Renamed total_allocated and made
1073         unsigned long.
1074         (create_alloc_pool, empty_alloc_pool, pool_alloc, pool_free):
1075         Properly keep track of desc->size.
1076         (print_statistics, dump_alloc_pool_statistics): Enhance the
1077         printing of statistics to print the number of elements and to use
1078         unsigned longs.
1079         
1080 2008-10-07  Jakub Jelinek  <jakub@redhat.com>
1081
1082         PR middle-end/37576
1083         * opts.h (CL_SAVE): Move up to flags range.
1084         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET,
1085         CL_COMMON): Renumber.
1086         (CL_MIN_OPTION_CLASS): Set to CL_PARAMS.
1087         * opts.c (common_handle_option): Revert last change.
1088
1089 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
1090
1091         * config/i386/i386-protos.h (ix86_schedule): New.
1092
1093         * config/i386/i386.c (ix86_schedule): New.
1094         (override_options): Add schedule to processor_alias_table.  Set
1095         ix86_schedule from the schedule field in processor_alias_table.
1096         (ix86_function_specific_save): Save ix86_schedule.
1097         (ix86_function_specific_restore): Restore ix86_schedule.
1098
1099         * config/i386/i386.md (cpu): Map to ix86_schedule instead of
1100         ix86_tune.  Add none and remove i386, i486, pentium4, nocona
1101         and generic32.
1102
1103         * config/i386/i386.opt: Add schedule.
1104
1105         * config/i386/ppro.md: Remove generic32.
1106
1107 2008-10-07  Simon Martin  <simartin@users.sourceforge.net>
1108
1109         PR c/35437
1110         * expr.c (count_type_elements): Handle ERROR_MARK.
1111
1112 2008-10-07  Jakub Jelinek  <jakub@redhat.com>
1113
1114         PR debug/29609
1115         PR debug/36690
1116         PR debug/37616
1117         * basic-block.h (struct edge_def): Add goto_block field.
1118         * cfglayout.c (fixup_reorder_chain): Ensure that there is at least
1119         one insn with locus corresponding to edge's goto_locus if !optimize.
1120         * profile.c (branch_prob): Copy edge's goto_block.
1121         * cfgrtl.c (force_nonfallthru_and_redirect): Use goto_locus for
1122         emitted jumps.
1123         (cfg_layout_merge_blocks): Emit a nop with edge's goto_locus
1124         locator in between the merged basic blocks if !optimize and needed.
1125         * cfgexpand.c (expand_gimple_cond): Convert goto_block and
1126         goto_locus into RTL locator.  For unconditional jump use that
1127         locator for the jump insn.
1128         (expand_gimple_cond): Convert goto_block and goto_locus into
1129         RTL locator for all remaining edges.  For unconditional jump
1130         use that locator for the jump insn.
1131         * cfgcleanup.c (try_forward_edges): Avoid the optimization if
1132         there is more than one edge or insn locator along the forwarding
1133         edges and !optimize.  If there is just one, set e->goto_locus.
1134         * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Set also
1135         edge's goto_block.
1136         (move_block_to_fn): Adjust edge's goto_block.
1137
1138 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
1139
1140         PR middle-end/37731
1141         * expmed.c (expand_mult): Properly check DImode constant in
1142         CONST_DOUBLE.
1143
1144 2008-10-07  Jakub Jelinek  <jakub@redhat.com>
1145
1146         PR debug/37738
1147         * dwarf2out.c (common_block_die_table): New variable.
1148         (common_block_die_table_hash, common_block_die_table_eq): New
1149         functions.
1150         (gen_variable_die): Look up a DW_TAG_common_block die for a particular
1151         COMMON block in the current scope rather than globally.  Optimize
1152         DW_OP_addr SYMBOL_REF DW_OP_plus_uconst off into
1153         DW_OP_addr SYMBOL_REF+off.
1154
1155 2008-10-07  Eric Botcazou  <ebotcazou@adacore.com>
1156
1157         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p) <VIEW_CONVERT_EXPR>:
1158         Return true for non-addressable GIMPLE operands.
1159
1160 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
1161
1162         PR target/24765
1163         * config/i386/i386.c (initial_ix86_tune_features): Remove
1164         X86_TUNE_USE_BIT_TEST.
1165         * config/i386/i386.h (ix86_tune_indices): Likewise.
1166         (TARGET_USE_BIT_TEST): Removed.
1167
1168 2008-10-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1169
1170         * config.gcc (arm*-*-*): Add aapcs-linux to supported ABIs.
1171
1172 2008-10-06  Adam Nemet  <anemet@caviumnetworks.com>
1173
1174         * config/mips/mips.md (mulsi3_mul3, muldi3_mul3): Merge these ...
1175         (mul<mode>3_mul3): ... into this new template.
1176
1177 2008-10-06  Aldy Hernandez  <aldyh@redhat.com>
1178
1179         * gimplify.c (gimplify_arg): Add location argument.  Use it.
1180         (gimplify_call_expr): Pass location to gimplify_arg.
1181         (gimplify_modify_expr_to_memcpy): Same.
1182         (gimplify_modify_expr_to_memset): Same.
1183
1184 2008-10-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1185
1186         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1187         Update calls to build_unary_op and build_indirect_ref for location
1188         changes.
1189
1190 2008-10-06  Aldy Hernandez  <aldyh@redhat.com>
1191
1192         build_modify_expr.
1193         * c-decl.c (finish_decl): Pass input_location to build_unary_op.
1194         * c-typeck.c (array_to_pointer_conversion): Pass location to
1195         build_unary_op.
1196         (function_to_pointer_conversion): Use error_at and warning_at.
1197         (build_indirect_ref): Same.
1198         (build_array_ref): Pass location to build_binary_op.
1199         (parser_build_unary_op): Do not set location after calling
1200         build_unary_op.
1201         (build_unary_op): Add location argument.  Use it throughout.  Set
1202         EXPR_LOCATION before returning new tree.
1203         (build_modify_expr): Same.
1204         (build_binary_op): Use location throughout.  Set EXPR_LOCATION before
1205         returning node.
1206         * c-omp.c (c_finish_omp_atomic): Pass location to build_unary_op,
1207         build_indirect_ref, build_modify_expr.
1208         (c_finish_omp_for): Same.  Use error_at instead of error.
1209         * c-common.c (c_common_truthvalue_conversion): Pass location to
1210         build_unary_op.
1211         (warn_for_div_by_zero): Add location argument.
1212         * c-common.h: Add argument to build_modify_expr, build_indirect_ref,
1213         build_unary_op, warn_for_div_by_zero.
1214         * c-parser.c (c_parser_typeof_specifier): Use
1215         protected_set_expr_location.
1216         (c_parser_statement_after_labels): Same.
1217         (c_parser_condition): Same.
1218         (c_parser_expr_no_commas): Pass correct location to build_modify_expr.
1219         (c_parser_conditional_expression): Use protected_set_expr_location.
1220         (c_parser_unary_expression): Pass location to build_indirect_ref.
1221         (c_parser_postfix_expression_after_primary): Pass location to
1222         build_indirect_ref, build_unary_op.
1223         (c_parser_omp_for_loop): Set the increment expression's EXPR_LOCATION.
1224
1225 2008-10-06  Joshua Kinard  <kumba@gentoo.org>
1226
1227         * doc/invoke.texi: List r1x000 family under the -march MIPS option.
1228         * config/mips/mips.h (PROCESSOR_R10000): New processor_type.
1229         * config/mips/mips.c (mips_cpu_info_table): Add r10000, r12000,
1230         r14000 and r16000.
1231         (mips_rtx_cost_data): Add a PROCESSOR_R10000 entry.
1232         (mips_issue_rate): Handle PROCESSOR_R10000.
1233         * config/mips/mips.md (cpu): Add r10000.
1234         Include r10000.md.
1235         * config/mips/10000.md: New file.
1236
1237 2008-10-06  Richard Sandiford  <rdsandiford@googlemail.com>
1238
1239         * config/rs6000/rs6000-protos.h (rs6000_find_base_term): Declare.
1240         * config/rs6000/rs6000.h (FIND_BASE_TERM): New macro.
1241         * config/rs6000/rs6000.c (rs6000_find_base_term): New function.
1242
1243 2008-10-06  Richard Sandiford  <rdsandiford@googlemail.com>
1244
1245         * config/darwin-protos.h (machopic_function_base_name): Delete.
1246         (machopic_function_base_sym): Likewise.
1247         (machopic_gen_offset): Declare.
1248         * config/darwin.h (MACHOPIC_FUNCTION_BASE_NAME): New macro.
1249         (ASM_OUTPUT_LABELREF): Use it instead of a hard-coded string constant.
1250         * config/darwin.c (machopic_function_base_name): Delete.
1251         (machopic_function_base_sym): Likewise.
1252         (gen_pic_offset): Rename to...
1253         (machopic_gen_offset): ...this and remove the pic_base argument.
1254         Instead use MACHO_DYNAMIC_NO_PIC_P to decide whether a PIC offset
1255         is needed.  Create an UNSPEC_MACHOPIC_OFFSET if so, and set
1256         crtl->uses_pic_offset_table.
1257         (machopic_indirect_data_reference): Use new machopic_gen_offset
1258         interface.
1259         (machopic_legitimize_pic_address): Likewise.
1260         (machopic_operand_p): Check for UNSPEC_MACHOPIC_OFFSET.
1261
1262         * config/i386/darwin.h (GOT_SYMBOL_NAME): Use
1263         MACHOPIC_FUNCTION_BASE_NAME instead of machopic_function_base_name.
1264         * config/i386/i386.c (output_set_got): Likewise.
1265         (darwin_local_data_pic): Check for an UNSPEC_MACHOPIC_OFFSET
1266         instead of a MINUS.
1267         (legitimate_pic_operand_p): Handle UNSPEC_MACHOPIC_OFFSET.
1268         (legitimate_address_p): Likewise.
1269         (output_pic_addr_const): Likewise.
1270         (output_addr_const_extra): Likewise.
1271         (ix86_delegitimize_address): Expect darwin_local_data_pic to
1272         match an UNSPEC rather than a MINUS.
1273         * config/i386/i386.md (UNSPEC_MACHOPIC_OFFSET): Define.
1274         (builtin_setjmp_receiver): Use machopic_gen_offset.
1275         * config/i386/predicates.md (pic_symbolic_operand): Handle
1276         UNSPEC_MACHOPIC_OFFSET.
1277
1278         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
1279         Use machopic_gen_offset and machopic_operand_p.
1280         (rs6000_output_addr_const_extra): Handle UNSPEC_MACHOPIC_OFFSET.
1281         (rs6000_emit_prologue): Use MACHOPIC_FUNCTION_BASE_NAME.
1282         * config/rs6000/rs6000.md (UNSPEC_MACHOPIC_OFFSET): Define.
1283         (builtin_setjmp_receiver): Use MACHOPIC_FUNCTION_BASE_NAME.
1284         Set crtl->uses_pic_offset_table.
1285
1286 2008-10-06  Richard Sandiford  <rdsandiford@googlemail.com>
1287
1288         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
1289         Declare.
1290         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): New macro.
1291         * config/rs6000/rs6000.md (UNSPEC_TOCREL): New constant.
1292         * config/rs6000/rs6000.c (constant_pool_expr_1): Delete.
1293         (constant_pool_expr_p): Use split_const and check the base.
1294         (toc_relative_expr_p): Likewise, checking for an UNSPEC_TOCREL
1295         instead of a MINUS.
1296         (legitimate_constant_pool_address_p): Check toc_relative_p
1297         instead of constant_pool_expr_p.
1298         (print_operand_address): Always use output_addr_const for
1299         constant pool addresses.
1300         (rs6000_output_addr_const_extra): New function.
1301         (create_TOC_reference): Create an UNSPEC_TOCREL instead of a MINUS.
1302
1303 2008-10-06  Vladimir Makarov  <vmakarov@redhat.com>
1304
1305         PR middle-end/37535
1306
1307         * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
1308         (mark_ref_live, mark_ref_dead): Use them.
1309         (def_conflicts_with_inputs_p): Remove.
1310         (mark_early_clobbers): New function.
1311         (process_bb_node_lives): Call preprocess_constraints and
1312         mark_early_clobbers.
1313
1314         * doc/rtx.texi (clobber): Change how RA deals with clobbers.
1315
1316 2008-10-06  Danny Smith  <dannysmith@users.sourceforge.net>
1317
1318         * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Add thread cleanup
1319         lib with -mthread switch.
1320
1321 2008-10-05  Dodji Seketeli  <dodji@redhat.com>
1322
1323         PR c++/37410
1324         * dwarf2out.c (dwarf2out_imported_module_or_decl): Split this
1325         function in two, making it call a new and reusable
1326         dwarf2out_imported_module_or_decl() that takes the containing
1327         BLOCK of the declaration in argument.
1328         (dwarf2out_imported_module_or_decl_real): New function.
1329         (decls_for_scope, gen_decl_die, dwarf2out_decl): Take
1330         IMPORTED_DECL in account.
1331         * tree.def: Added IMPORTED_DECL node type.
1332         * tree.h: Added accessors for IMPORTED_DECL nodes.
1333         * tree.c (init_ttree): Initialise IMPORTED_DECL node type.
1334
1335 2008-10-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1336
1337         * doc/gimple.texi: Fix some typos, wrap some long lines,
1338         fix some broken wraps with continuations.
1339         * tree-ssa-reassoc.c: Fix comment typos.
1340
1341 2000-10-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1342
1343         PR target/37603
1344         * pa.c (legitimize_pic_address): Force function labels to memory in
1345         word mode.
1346
1347 2008-10-04  Anton Blanchard  <anton@samba.org>
1348
1349         * config/rs6000/rs6000.c (rs6000_emit_sync): Use gen_lwsync().
1350         (rs6000_split_atomic_op): Same.
1351         (rs6000_split_compare_and_swap): Same.
1352         (rs6000_split_compare_and_swapqhi): Same.
1353
1354 2008-10-04  Richard Guenther  <rguenther@suse.de>
1355
1356         * tree-ssa-sccvn.c (vn_reference_op_eq): Use types_compatible_p
1357         instead of pointer equality.
1358         (vn_nary_op_eq): Likewise.
1359
1360 2008-10-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1361
1362         * config/rs6000/rs6000.md (fseldfsf4): Add TARGET_SINGLE_FLOAT 
1363         condition.
1364         (fselsfdf4): Make condition on "TARGET_HARD_FLOAT && TARGET_FPRS &&
1365         TARGET_DOUBLE_FLOAT && TARGET_SINGLE_FLOAT".
1366
1367 2008-10-03  Danny Smith  <dannysmith@users.sourceforge.net>
1368
1369         * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
1370         Revert previous change.
1371
1372 2008-10-03  Tom Tromey  <tromey@redhat.com>
1373
1374         * stringpool.c (ggc_alloc_string): Terminate string.
1375
1376 2008-10-03  Jakub Jelinek  <jakub@redhat.com>
1377
1378         * gimplify.c (gimplify_function_tree): For -finstrument-functions
1379         use gimple_bind_{,set_}block instead of gimple_{,set_}block.
1380         * gimple.h (gimple_bind_set_block): Allow second argument to be NULL.
1381
1382         PR debug/37726
1383         * gimplify.c (declare_vars): Use gimple_bind_block instead of
1384         gimple_block.
1385
1386 2008-10-03  Pascal Obry  <obry@adacore.com>
1387
1388         * gcov.c (create_file_names): Properly handle UNIX and DOS
1389         directory separators.
1390         (make_gcov_file_name): Likewise + convert the ':' DOS drive
1391         separator to '~' to ensure clean filenames on Windows.
1392
1393 2008-10-02  Danny Smith  <dannysmith@users.sourceforge.net>
1394
1395         * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
1396         Add a null terminator to the stripped name.
1397
1398 2008-10-02  David Edelsohn  <edelsohn@gnu.org>
1399
1400         * config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Revert
1401         TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
1402         (function_arg_advance): Condition on TARGET_DOUBLE_FLOAT,
1403         TARGET_SINGLE_FLOAT.  Revert SCALAR_FLOAT_MODE_P condition.
1404         (function_arg): Condition on TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
1405         (rs6000_function_value): Revert TARGET_DOUBLE_FLOAT,
1406         TARGET_SINGLE_FLOAT.
1407
1408 2008-10-02  Daniel Jacobowitz  <dan@codesourcery.com>
1409
1410         * builtins.c (fold_builtin_pow): Check for 0 ** NEGATIVE.
1411
1412 2008-10-02  Richard Guenther  <rguenther@suse.de>
1413
1414         PR middle-end/37713
1415         * tree-ssa.c (useless_type_conversion_p_1): For COMPLEX_TYPE
1416         and VECTOR_TYPE recurse with useless_type_conversion_p which
1417         properly handles void pointer conversion.
1418
1419 2008-10-02  Danny Smith  <dannysmith@users.sourceforge.net>  
1420
1421         PR target/37528
1422         * config/i386/mingw32.h (LIBGCC_SPEC) : Replace with ..
1423         (REAL_LIBGCC_SPEC): New.  Always include -lgcc.
1424
1425 2008-10-01  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1426
1427         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1428         Handle ALTIVEC_BUILTIN_VEC_SPLATS, ALTIVEC_BUILTIN_VEC_PROMOTE,
1429         ALTIVEC_BUILTIN_VEC_EXTRACT, and ALTIVEC_BUILTIN_VEC_INSERT specially,
1430         they translate to non builtins.
1431         * config/rs6000/rs6000.c (altivec_init_builtins): Add new variable
1432         opaque_ftype_opaque.  Define builtins __builtin_vec_splats,
1433         __builtin_vec_promote, __builtin_vec_extract, and
1434         __builtin_vec_insert.
1435         * config/rs6000/rs6000.h (enum rs6000_builtins): Add
1436         ALTIVEC_BUILTIN_VEC_EXTRACT, ALTIVEC_BUILTIN_VEC_PROMOTE,
1437         ALTIVEC_BUILTIN_VEC_INSERT, and ALTIVEC_BUILTIN_VEC_SPLATS.
1438         * config/rs6000/altivec.h (vec_extract): Define
1439         (vec_insert): Define.
1440         (vec_splats): Define.
1441         (vec_promote): Define.
1442
1443 2008-10-01  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1444             Yukishige Shibata  <shibata@rd.scei.sony.co.jp>
1445             Trevor Smigiel  <Trevor_Smigiel@playstation.sony.com>
1446
1447         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add Cell
1448         Altivec intrinsics.
1449         * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Delete
1450         prototype.  Add new parameter, blk.
1451         Use BLKmode for the MEM if blk is true.
1452         (altivec_expand_builtin): Handle ALTIVEC_BUILTIN_STVLX,
1453         ALTIVEC_BUILTIN_STVLXL, ALTIVEC_BUILTIN_STVRX, and
1454         ALTIVEC_BUILTIN_STVRXL.
1455         Update usage of altivec_expand_lv_builtin.
1456         Handle ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL,
1457         ALTIVEC_BUILTIN_LVRX, and ALTIVEC_BUILTIN_LVRXL.
1458         (altivec_init_builtins): If compiling for the Cell, also define the
1459         cell VMX builtins.
1460         * config/rs6000/rs6000.h (rs6000_builtins): Define
1461         ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL, ALTIVEC_BUILTIN_LVRX,
1462         ALTIVEC_BUILTIN_LVRXL, ALTIVEC_BUILTIN_STVLX, ALTIVEC_BUILTIN_STVLXL,
1463         ALTIVEC_BUILTIN_STVRX, ALTIVEC_BUILTIN_STVRXL,
1464         ALTIVEC_BUILTIN_VEC_LVLX, ALTIVEC_BUILTIN_VEC_LVLXL,
1465         ALTIVEC_BUILTIN_VEC_LVRX, ALTIVEC_BUILTIN_VEC_LVRXL,
1466         ALTIVEC_BUILTIN_VEC_STVLX, ALTIVEC_BUILTIN_VEC_STVLXL,
1467         ALTIVEC_BUILTIN_VEC_STVRX, and ALTIVEC_BUILTIN_VEC_STVRXL.
1468         * config/rs6000/altivec.md (define_constants): Define UNSPEC_LVLX,
1469         UNSPEC_LVLXL, UNSPEC_LVRX, UNSPEC_LVRXL, UNSPEC_STVLX, UNSPEC_STVLXL,
1470         UNSPEC_STVRX, and UNSPEC_STVRXL.
1471         (altivec_lvlx): New pattern.
1472         (altivec_lvlxl): New pattern.
1473         (altivec_lvrx): New pattern.
1474         (altivec_lvrxl): New pattern.
1475         (altivec_stvlx): New pattern.
1476         (altivec_stvlxl): New pattern.
1477         (altivec_stvrx): New pattern.
1478         (altivec_stvrxl): New pattern.
1479         * config/rs6000/altivec.h (vec_lvlx): Define if PPU is defined.
1480         (vec_lvlxl): Likewise.
1481         (vec_lvrx): Define if PPU is defined.
1482         (vec_lvrxl): Likewise.
1483         (vec_stvlx): Define if PPU is defined.
1484         (vec_stvlxl): Likewise.
1485         (vec_stvrx): Define if PPU is defined.
1486         (vec_stvrxl): Likewise.
1487
1488 2008-10-01  Geert Bosch  <bosch@adacore.com>
1489
1490         * tree.c (contains_placeholder_p): Return 0 for a SAVE_EXPR.
1491
1492 2008-10-01  Richard Guenther  <rguenther@suse.de>
1493
1494         PR tree-optimization/37617
1495         * tree-ssa-pre.c (create_expression_by_pieces): During FRE
1496         do not add to the NEW_SETS.
1497
1498 2008-10-01  Richard Guenther  <rguenther@suse.de>
1499
1500         PR middle-end/37285
1501         * tree-vrp.c (execute_vrp): If we optimized away the default
1502         case make sure to promote the label that got in place of it
1503         to a default case label.
1504
1505 2008-10-01  Richard Henderson  <rth@redhat.com>
1506
1507         PR tree-opt/35737
1508         * tree-complex.c (set_component_ssa_name): Don't optimize
1509         is_gimple_min_invariant values with ssa_names in abnormal phis.
1510
1511 2008-09-30  Paolo Bonzini  <bonzini@gnu.org>
1512
1513         PR tree-optimization/37662
1514         * tree-ssa-ccp.c (fold_gimple_assign): Invert the operands of a
1515         commutative binary operation if they are in the wrong order and
1516         fold_build2 produces non-GIMPLE.
1517
1518 2008-09-30  Jakub Jelinek  <jakub@redhat.com>
1519
1520         PR tree-optimization/37662
1521         PR tree-optimization/37663
1522         * tree-vrp.c (simplify_truth_ops_using_ranges): Don't call
1523         get_value_range with non-SSA_NAME.  Don't assert operands have been
1524         folded, instead just bail out.
1525
1526 2008-09-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1527
1528         * config/rs6000/rs6000.md (fnmadds combiner): Revert typo.
1529
1530 2008-09-30  Richard Guenther  <rguenther@suse.de>
1531
1532         PR middle-end/37491
1533         * tree-vect-transform.c (vect_create_data_ref_ptr): Properly
1534         build restrict-qualified pointers.
1535         (vectorizable_store): Move alias check later.
1536         (vectorizable_load): Likewise.
1537
1538 2008-09-30  Paolo Bonzini  <bonzini@gnu.org>
1539
1540         * c-common.c (empty_if_body_warning): Remove.
1541         * c-common.h (empty_if_body_warning): Remove.
1542         * c-parser.c (c_parser_if_body, c_parser_else_body): Implement
1543         here the -Wempty-body warning for `if' and `else' statements.
1544         * c-typeck.c (c_finish_if_stmt): Do not call empty_body_warning.
1545
1546 2008-09-29  H.J. Lu  <hongjiu.lu@intel.com>
1547
1548         * config/i386/i386.opt: Add msse2avx.
1549
1550         * config/i386/linux.h (ASM_SPEC): New.  Support -msse2avx.
1551         * config/i386/linux64.h (ASM_SPEC): Likewise.
1552
1553         * doc/invoke.texi: Document -msse2avx.
1554
1555 2008-09-29  Eric Botcazou  <ebotcazou@adacore.com>
1556
1557         * dwarf2out.c (constant_size): Use HOST_WIDE_INT in parameter type.
1558
1559 2008-09-29  Joseph Myers  <joseph@codesourcery.com>
1560
1561         * ifcvt.c (noce_emit_store_flag): If using condition from original
1562         jump, reverse it if if_info->cond was reversed.
1563
1564 2008-09-29  Eric Botcazou  <ebotcazou@adacore.com>
1565
1566         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
1567         non-constant memory if it cannot be forced to constant memory.
1568         Overhaul surrounding code and factor out common condition.
1569
1570 2008-09-29  Jeff Law <law@redhat.com>
1571
1572         * reload1.c (alter_reg): Add missing curly braces.
1573
1574 2008-09-29  Michael J. Eager  <eager@eagercon.com>
1575
1576         * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
1577         are easy.
1578         * config/rs6000/rs6000.c (rs6000_override_options): Move
1579         rs6000_init_hard_regno_mode_ok after all options changed.
1580         Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
1581         (rs6000_handle_option): Process -msingle-float, -mdouble-float,
1582         -msimple-fpu flags.  Add warning messages if single FP not configured.
1583         (rs6000_file_start): Output gnu_attribute for single-float.
1584         (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
1585         (rs6000_legitimize_address): Likewise.
1586         (rs6000_legitimize_reload_address): Likewise.
1587         (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
1588         TARGET_SINGLE_FLOAT.
1589         (function_arg_advance): Likewise (partial conversion).
1590         (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
1591         (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
1592         TARGET_SINGLE_FLOAT.
1593         (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
1594         (rs6000_emit_prologue): Likewise.
1595         (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
1596         TARGET_SINGLE_FLOAT.
1597         (rs6000_libcall_value): Likewise.
1598         * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
1599         (TARGET_DOUBLE_FLOAT): New default to 1
1600         (TARGET_SIMPLE_FPU): New default to 0
1601         (TARGET_SINGLE_FPU): New default to 0
1602         (TARGET_SINGLE_FLOAT_MODE): New.
1603         (TARGET_DOUBLE_FLOAT_MODE): New.
1604         * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
1605         TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
1606         UNITS_PER_FP_WORD
1607         * config/rs6000/rs6000.md (define_mode_iterator): Condition on
1608         TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
1609         (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
1610         copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
1611         nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
1612         muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
1613         movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
1614         floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
1615         *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
1616         fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
1617         rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
1618         floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
1619         movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
1620         extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
1621         abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
1622         cmptf_internal1, *cmptf_internal2): Condition on
1623         TARGET_DOUBLE_FLOAT.
1624         (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
1625         mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
1626         *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
1627         btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
1628         floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
1629         *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
1630         TARGET_SINGLE_FLOAT.
1631         (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
1632         * config/rs6000/rs6000.opt (-msingle-float): New.
1633         (-mdouble-float): New.
1634         (-msimple-fpu): New.
1635         * doc/invoke.texi (RS/6000 and PowerPC Options): Add
1636         -msingle-float, -mdouble-float, -msimple-fpu options.
1637         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
1638         _SOFT_DOUBLE for -msingle-float.
1639         * config.gcc: New config for target=powerpc-xilinx-eabi.
1640
1641 2008-09-29  Tobias Grosser  <grosser@fim.uni-passau.de>
1642
1643         * graphite.c (dot_all_scops_1): Remove unused checks. SCoPs always
1644         have exit and entry.
1645         (new_scop): Take entry and exit edge to define new SCoP.
1646         (sd_region_p): New structure used during SCoP detection.
1647         (move_scops): Delete.
1648         (move_sd_regions): New.
1649         (scopdet_info): Change the definition from edges back to basic_blocks.
1650         (scopdet_edge_info):  Work on basic_blocks and rename to
1651         scopdet_basic_block_info.
1652         (split_difficult_bb): At the moment removed. We should later
1653         add it at another place.
1654         (build_scops_1): Work on basic_blocks.
1655         (bb_in_sd_region): New.
1656         (find_single_entry_edge): New.
1657         (find_single_exit_edge): New.
1658         (create_single_entry_edge): New.
1659         (sd_region_without_exit): New.
1660         (create_single_exit_edge): New.
1661         (unmark_exit_edges): New.
1662         (mark_exit_edges): New.
1663         (create_sese_edges): New.
1664         (build_graphite_scops): New.
1665         (build_scops): Make SCoPs SESE.
1666         (limit_scops): Use the new functions.
1667
1668 2008-09-29  Hans-Peter Nilsson  <hp@axis.com>
1669
1670         * config/cris/cris.h (IRA_COVER_CLASSES): Define.
1671
1672 2008-09-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1673
1674         PR target/37640
1675         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Force
1676         address to a register before taking the lower part.
1677
1678 2008-09-28  Kaz Kojima  <kkojima@gcc.gnu.org>
1679
1680         * config/sh/sh.h (OVERRIDE_OPTIONS): Unset flag_dwarf2_cfi_asm
1681         for SHmedia.
1682
1683 2008-09-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1684             Kaushal Kantawala  <kaushal_kantawala@playstation.sony.com>
1685
1686         PR tree-opt/36891
1687         * tree-ssa-loop-im.c (rewrite_reciprocal): Set DECL_GIMPLE_REG_P on
1688         the newly created variable.
1689         Create a VECTOR_CST of all 1s for vector types.
1690
1691 2008-09-28  Eric Botcazou  <ebotcazou@adacore.com>
1692
1693         PR middle-end/36575
1694         * fold-const.c (div_and_round_double) <ROUND_DIV_EXPR>: Fix typo.
1695
1696 2008-09-28  Eric Botcazou  <ebotcazou@adacore.com>
1697
1698         * expmed.c (store_fixed_bit_field): Always use convert_to_mode in
1699         order to convert between modes.
1700         (extract_bit_field_1): Test TRULY_NOOP_TRUNCATION on the right mode.
1701
1702 2008-09-27  Kaz Kojima  <kkojima@gcc.gnu.org>
1703
1704         * config/sh/sh.c (sh_gimplify_va_arg_expr): Use VIEW_CONVERT_EXPR
1705         if needed.
1706
1707 2008-09-26  Vladimir Makarov  <vmakarov@redhat.com>
1708
1709         Revert:
1710         2008-09-25  Vladimir Makarov  <vmakarov@redhat.com>
1711         * ira-lives.c:...
1712         * doc/rtl.texi:...
1713
1714 2008-09-26  Adam Nemet  <anemet@caviumnetworks.com>
1715
1716         * config/mips/mips.h (ISA_HAS_DMUL3, ISA_HAS_BADDU, ISA_HAS_BBIT,
1717         ISA_HAS_CINS, ISA_HAS_EXTS, ISA_HAS_SEQ_SNE, ISA_HAS_POP): Change
1718         them to yield false with MIPS16.
1719
1720 2008-09-26  Jakub Jelinek  <jakub@redhat.com>
1721
1722         PR middle-end/37275
1723         * dwarf2out.c (tls_mem_loc_descriptor): New function.
1724         (mem_loc_descriptor): Use it for MEM.  For PLUS fail if second
1725         mem_loc_descriptor failed.  Accept UNSPEC.
1726         (loc_descriptor): Use tls_mem_loc_descriptor for MEM.  For PARALLEL
1727         fail if one of the loc_descriptor calls for pieces failed.
1728         (loc_descriptor_from_tree_1): Handle even DECL_EXTERNAL __thread vars,
1729         as long as they bind locally.  For COMPONENT_REF, ARRAY_REF etc. fail
1730         if loc_descriptor_from_tree_1 on offset failed.
1731
1732         PR middle-end/37576
1733         * opts.c (common_handle_option): Don't call print_specific_help with
1734         CL_SAVE as first argument.
1735
1736 2008-09-26  Peter O'Gorman  <pogma@thewrittenword.com>
1737             Steve Ellcey  <sje@cup.hp.com>
1738
1739         * configure: Regenerate for new libtool.
1740         * aclocal.m4: Ditto.
1741
1742 2008-09-26  Pat Haugen  <pthaugen@us.ibm.com>
1743
1744         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Use correct
1745         alias set on MEM when saving stack pointer.
1746         * config/rs6000/rs6000.md (allocate_stack): Likewise
1747
1748 2008-09-26  Dorit Nuzman  <dorit@il.ibm.com>
1749
1750         PR tree-optimization/37574
1751         * tree-vectorizer.c (vect_is_simple_use): Fix indentation.
1752         * tree-vect-transform.c (vect_get_constant_vectors): Use vectype
1753         instead of vector_type for constants. Take computation out of loop.
1754         (vect_get_vec_def_for_operand): Use only vectype for constant case,
1755         and use only vector_type for invariant case.
1756         (get_initial_def_for_reduction): Use vectype instead of vector_type.
1757
1758 2008-09-25  Jakub Jelinek  <jakub@redhat.com>
1759
1760         PR c/37645
1761         * c-common.c (handle_weakref_attribute): Ignore the attribute unless
1762         the decl is a VAR_DECL or FUNCTION_DECL.
1763
1764 2008-09-25  Vladimir Makarov  <vmakarov@redhat.com>
1765
1766         PR middle-end/37535
1767         * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
1768         (mark_ref_live, mark_ref_dead): Use them.
1769         (def_conflicts_with_inputs_p): Remove.
1770         (mark_early_clobbers): New function.
1771         (process_bb_node_lives): Call preprocess_constraints and
1772         mark_early_clobbers.
1773
1774         * doc/rtl.texi (clobber): Change how RA deals with clobbers.
1775
1776 2008-09-25  Vladimir Makarov  <vmakarov@redhat.com>
1777
1778         PR middle-end/37448
1779         * ira-int.h (IRA_ALLOCNO_TEMP): Rename to ALLOCNO_TEMP.
1780         (ira_compress_allocno_live_ranges): New prototype.
1781
1782         * ira-color.c: Rename IRA_ALLOCNO_TEMP to ALLOCNO_TEMP.
1783         (coalesced_allocnos_living_at_program_points): New.
1784         (coalesced_allocnos_live_at_points_p,
1785         set_coalesced_allocnos_live_points): New functions.
1786         (coalesce_spill_slots): Rewrite.
1787         
1788         * ira-lives.c (remove_some_program_points_and_update_live_ranges,
1789         ira_compress_allocno_live_ranges): New functions.
1790
1791         * ira-build.c (ira_flattening): Call
1792         ira_compress_allocno_live_ranges.
1793         (ira_build): Ditto.
1794
1795 2008-09-25  H.J. Lu  <hongjiu.lu@intel.com>
1796
1797         * config/i386/i386.md: Check cmp/branch fuse for cmp peephole
1798         optimization.
1799
1800 2008-09-25  Richard Sandiford  <rdsandiford@googlemail.com>
1801
1802         * combine.c (make_compound_operation): Handle the 'E' format.
1803         (count_rtxs): Likewise.
1804         (update_table_tick): Likewise.
1805         (get_last_value_validate): Likewise.
1806
1807 2008-09-25  Eric Botcazou  <ebotcazou@adacore.com>
1808
1809         * dbxout.c (dbxout_parms): Fetch the inner REG inside a PARALLEL.
1810
1811 2008-09-25 Sergei Dyshel <sergeid@il.ibm.com>
1812
1813         * matrix-reorg.c (transform_allocation_sites): Initializers 
1814         added to avoid the warning.
1815
1816 2008-09-25  Martin Jambor  <mjambor@suse.cz>
1817
1818         * cgraph.c (free_nodes): New variable.
1819         (NEXT_FREE_NODE): New macro.
1820         (cgraph_create_node): Reuse nodes from the free list.  Do not
1821         update uid if doing so.
1822         (cgraph_remove_node): Add the node to the free list.
1823
1824 2008-09-25  Gerald Pfeifer  <gerald@pfeifer.com>
1825
1826         * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
1827
1828 2008-09-24  Richard Henderson  <rth@redhat.com>
1829
1830         * dwarf2.h (DW_OP_GNU_encoded_addr): New.
1831         * unwind-dw2.c (execute_stack_op): Handle it.
1832
1833 2008-09-24  David Edelsohn  <edelsohn@gnu.org>
1834
1835         Revert:
1836         2008-09-24  Michael J. Eager  <eager@eagercon.com>
1837
1838 2008-09-24  Aldy Hernandez  <aldyh@redhat.com>
1839
1840         * c-common.c (fname_decl): New location argument.
1841         * c-common.h (fname_decl): Same.
1842         * c-parser.c (c_lex_one_token): Use {warning,error}_at instead of
1843         {warning,error}.
1844         (c_parser_typeof_specifier): Same.
1845         (c_parser_parms_list_declarator): Same.
1846         (c_parser_asm_string_literal): Same.
1847         (c_parser_compound_statement_nostart): Same.
1848         (c_parser_label): Same.
1849         (c_parser_do_statement): Same.
1850         (c_parser_asm_statement): Same.
1851         (c_parser_unary_expression): Same.
1852         (c_parser_sizeof_expression): Same.
1853         (c_parser_postfix_expression): Same.
1854         (c_parser_pragma): Same.
1855         (c_parser_omp_clause_collapse): Same.
1856         (c_parser_omp_clause_num_threads): Same.
1857         (c_parser_omp_clause_schedule): Same.
1858         (c_parser_omp_all_clauses): Same.
1859         (c_parser_omp_sections_scope): Same.
1860         (c_parser_omp_for_loop): Same.  Pass condition's location to
1861         c_objc_common_truthvalue_conversion.
1862         (c_parser_enum_specifier): Remove comment.
1863
1864 2008-09-24  Michael J. Eager  <eager@eagercon.com>
1865
1866         * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
1867         are easy.
1868         * config/rs6000/rs6000.c (rs6000_override_options): Move
1869         rs6000_init_hard_regno_mode_ok after all options changed.
1870         Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
1871         (rs6000_handle_option): Process -msingle-float, -mdouble-float,
1872         -msimple-fpu flags.  Add warning messages if single FP not configured.
1873         (rs6000_file_start): Output gnu_attribute for single-float.
1874         (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
1875         (rs6000_legitimize_address): Likewise.
1876         (rs6000_legitimize_reload_address): Likewise.
1877         (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
1878         TARGET_SINGLE_FLOAT.
1879         (function_arg_advance): Likewise.
1880         (function_arg): Likewise.
1881         (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
1882         (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
1883         TARGET_SINGLE_FLOAT.
1884         (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
1885         (rs6000_emit_prologue): Likewise.
1886         (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
1887         TARGET_SINGLE_FLOAT.
1888         (rs6000_libcall_value): Likewise.
1889         * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
1890         (TARGET_DOUBLE_FLOAT): New default to 1
1891         (TARGET_SIMPLE_FPU): New default to 0
1892         (TARGET_SINGLE_FPU): New default to 0
1893         (TARGET_SINGLE_FLOAT_MODE): New.
1894         (TARGET_DOUBLE_FLOAT_MODE): New.
1895         * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
1896         TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
1897         UNITS_PER_FP_WORD
1898         * config/rs6000/rs6000.md (define_mode_iterator): Condition on
1899         TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
1900         (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
1901         copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
1902         nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
1903         muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
1904         movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
1905         floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
1906         *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
1907         fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
1908         rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
1909         floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
1910         movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
1911         extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
1912         abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
1913         cmptf_internal1, *cmptf_internal2): Condition on
1914         TARGET_DOUBLE_FLOAT.
1915         (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
1916         mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
1917         *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
1918         btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
1919         floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
1920         *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
1921         TARGET_SINGLE_FLOAT.
1922         (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
1923         * config/rs6000/rs6000.opt (-msingle-float): New.
1924         (-mdouble-float): New.
1925         (-msimple-fpu): New.
1926         * doc/invoke.texi (RS/6000 and PowerPC Options): Add
1927         -msingle-float, -mdouble-float, -msimple-fpu options.
1928         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
1929         _SOFT_DOUBLE for -msingle-float.
1930         * config.gcc: New config for target=powerpc-xilinx-eabi.
1931
1932 2008-09-23  Eric Botcazou  <ebotcazou@adacore.com>
1933
1934         * config/sparc/constraints.md: New file.
1935         * config/sparc/sparc.md: Include it.
1936         * config/sparc/sparc-protos.h (memory_ok_for_ldd): Declare.
1937         (sparc_extra_constraint_check): Delete.
1938         * config/sparc/sparc.c (register_ok_for_ldd): Minor tweaks.
1939         (memory_ok_for_ldd): New predicate.
1940         (sparc_extra_constraint_check): Delete.
1941         * config/sparc/sparc.h (REG_CLASS_FROM_LETTER): Likewise.
1942         (CONST_OK_FOR_LETTER_P): Likewise.
1943         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
1944         (EXTRA_CONSTRAINT): Likewise.
1945
1946 2008-08-23  Steve Ellcey  <sje@cup.hp.com>
1947
1948         * regrename.c (do_replace): Copy REG_POINTER value to new reg.
1949
1950 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
1951
1952         * alias.c (find_base_value): Use FIND_BASE_TERM.
1953         * doc/tm.texi (FIND_BASE_TERM): Update documentation.
1954
1955 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
1956
1957         * config/i386/i386.c: Include cselib.h.
1958         (ix86_pic_register_p): New function.
1959         (ix86_delegitimize_address): Use it to check for the PIC register.
1960
1961 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
1962
1963         * doc/tm.texi (FIND_BASE_TERM): Expand documentation.
1964         * config/i386/i386.c (ix86_find_base_term): Don't check for
1965         SYMBOL_REF and LABEL_REF.
1966
1967 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
1968
1969         * config/i386/i386.c (ix86_delegitimize_address): Wrap the
1970         constant PLUS in a CONST.
1971
1972 2008-09-23  Kai Tietz  <kai.tietz@onevision.com>
1973
1974         * config/i386/i386.c (ix86_function_ok_for_sibcall): Correct
1975         check for sibcall support for w64.
1976
1977 2008-09-23  Eric Botcazou  <ebotcazou@adacore.com>
1978
1979         * c-ppoutput.c (cb_used_define): Do nothing for a builtin node.
1980
1981 2008-09-23  Aldy Hernandez  <aldyh@redhat.com>
1982
1983         * c-tree.h: Add argument to c_objc_common_truthvalue_conversion,
1984         parser_build_binary_op.
1985         * c-decl.c (build_enumerator): Pass location to build_binary_op.
1986         * c-typeck.c (build_array_ref): Same.
1987         (parser_build_unary_op): New location argument.
1988         (pointer_diff): Pass location to build_binary_op,
1989         c_objc_common_truthvalue_conversion.
1990         (build_modify_expr): Same.
1991         (build_unary_op): New location argument.
1992         (build_binary_op): New location argument.
1993         (c_objc_common_truthvalue_conversion): Pass location to
1994         c_*common_truthvalue_conversion.
1995         * c-convert.c (convert): Same.
1996         * c-common.c (binary_op_error): New location argument.
1997         (pointer_int_sum): Pass location to build_binary_op.
1998         (c_common_truthvalue_conversion): New location argument.
1999         (warn_for_sign_compare): Same.
2000         * c-common.h: Add location argument to c_common_truthvalue_conversion,
2001         binary_op_error, build_binary_op, warn_for_sign_compare.
2002         * c-parser.c (c_parser_condition): Pass location to
2003         c_*common_truthvalue_conversion.
2004         (c_parser_conditional_expression): Save condition's location and pass
2005         it on down.
2006         (c_parser_binary_expression): Same, but for the binary operator's
2007         location.
2008         (c_parser_omp_for_loop): Pass location to
2009         c_objc_common_truthvalue_conversion.
2010
2011 2008-09-23  Martin Jambor  <mjambor@suse.cz>
2012
2013         * cgraph.c (cgraph_free_edge): Use sizeof(*e).
2014         (cgraph_node_remove_callees): New temporary f.  Hold the next item
2015         in f when looping.
2016         (cgraph_node_remove_callers): Likewise.
2017
2018         * ipa-prop.c (ipa_edge_removal_hook): Use ATTRIBUTE_UNUSED.
2019         (ipa_node_removal_hook): Likewise.
2020
2021         * doc/gimple.texi (gimple_copy_call_skip_args): Changed to
2022         gimple_call_copy_skip_args and moved to the gimple_call section.
2023         * gimple.c (gimple_copy_call_skip_args): Renamed to
2024         gimple_call_copy_skip_args.  Changed al users.
2025
2026 2008-09-22  Vladimir Makarov  <vmakarov@redhat.com>
2027
2028         * ira-color.c (start_allocno_priorities): Rename to
2029         setup_allocno_priorities.  Use costs and
2030         ALLOCNO_EXCESS_PRESSURE_POINTS_NUM instead of frequencies and
2031         range lengths.  Get rid off doubles.
2032         (ira_fast_allocations): Call start_allocno_priorities.
2033         
2034 2008-09-22  David Daney  <ddaney@avtrex.com>
2035
2036         PR target/37593
2037         * config/mips/mips.h (FUNCTION_PROFILER): Call _mcount via a
2038         register if TARGET_LONG_CALLS.
2039
2040 2008-09-22  Richard Guenther  <rguenther@suse.de>
2041
2042         PR tree-optimization/37145
2043         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Re-enable
2044         value-numbering union accesses with their offset and size only.
2045         (visit_reference_op_load): Fix simplification of inserted conversions.
2046         * tree-ssa-pre.c (find_or_generate_expression): Do not
2047         recursively generate expressions if running FRE.
2048
2049 2008-09-22  Adam Nemet  <anemet@caviumnetworks.com>
2050
2051         * config/mips/mips.h (ISA_HAS_BADDU): New macro.
2052         * config/mips/mips.md (*baddu_si_eb, *baddu_si_el, *baddu_di<mode>):
2053         New patterns.
2054
2055 2008-09-22  Richard Guenther  <rguenther@suse.de>
2056
2057         PR tree-optimization/37145
2058         * tree-ssa-pre.c (fully_constant_expression): Simplify builtin calls.
2059         (phi_translate_1): Constant fold references.
2060
2061 2008-09-22  Ira Rosen  <irar@il.ibm.com>
2062
2063         PR tree-optimization/37482
2064         * tree-vectorizer.h (struct _slp_instance): Add new field.
2065         (SLP_INSTANCE_FIRST_LOAD_STMT): New.
2066         (get_earlier_stmt): New function.
2067         * tree-vect-analyze.c (vect_find_first_load_in_slp_instance): New
2068         function.
2069         (vect_analyze_slp_instance): Set SLP_INSTANCE_FIRST_LOAD_STMT.
2070         * tree-vect-transform.c (vect_finish_stmt_generation): Remove the
2071         asserts that GSI points to the scalar statement being vectorized.
2072         Set new statement location according to GSI.
2073         (vect_schedule_slp_instance): Use GSI of
2074         SLP_INSTANCE_FIRST_LOAD_STMT when vectorizing loads.
2075
2076 2008-09-21  Jan Hubicka  <jh@suse.cz>
2077
2078         * ipa-cp.c (ipcp_estimate_growth): Check recursive calls.
2079         (ipcp_insert_stage): Update dead_nodes bitmap.
2080
2081 2008-09-22  Danny Smith  <dannysmith@users.sourceforge.net>
2082
2083         PR target/37528 
2084         * config/i386/t-cygming (SHLIB_LC): Remove.
2085         (SHLIB_LINK): Don't add static objects to SHLIB_IMPLIB
2086         * config/i386/t-cygwin (SHLIB_LC): Specify all required libraries.
2087
2088 2008-09-22  Hans-Peter Nilsson  <hp@axis.com>
2089
2090         PR middle-end/37170
2091         PR middle-end/37280
2092         * final.c (mark_symbol_ref_as_used): New helper function.
2093         (output_operand): Instead of just looking inside MEMs for
2094         SYMBOL_REFs, use new helper function and for_each_rtx.
2095         * varasm.c (assemble_external): Move #ifndef ASM_OUTPUT_EXTERNAL
2096         to after weak-handling.  Don't mark decls with TREE_STATIC as weak.
2097         Make head comment more general.
2098         * config/darwin.c (machopic_output_indirection): Handle weak
2099         references here, like in assemble_external.
2100
2101 2008-09-21  Eric Botcazou  <ebotcazou@adacore.com>
2102
2103         * config/sparc/sparc-protos.h (gen_compare_operator): Declare.
2104         (sparc_emit_float_lib_cmp): Change return type.
2105         * config/sparc/sparc.c (gen_compare_reg): Add comment about TFmode.
2106         (gen_compare_operator): New function.
2107         (sparc_emit_float_lib_cmp): Return the new operator to be used in
2108         the comparison sequence.  Minor tweaks.
2109         * config/sparc/sparc.md (seq, sne, sgt, slt, sge, sle): Assert
2110         that the final operator and the result of sparc_emit_float_lib_cmp
2111         match for software TFmode; use emit_insn in lieu of emit_jump_insn.
2112         (beq, bne, bgt, blt, bge, ble, bunordered, bordered, bungt, bunlt,
2113         buneq, bunge, bunle, bltgt): Assert that the final operator and the
2114         result of sparc_emit_float_lib_cmp match for software TFmode.
2115         (movqicc, movhicc, movsicc, movdicc): Merge into...
2116         (mov<I:mode>cc): ...this.
2117         (movsfcc, movdfcc, movtfcc): Merge into...
2118         (mov<F:mode>cc): ...this.
2119         (movqi_cc_sp64, movhi_cc_sp64, movsi_cc_sp64, movdi_cc_sp64): Merge
2120         into...
2121         (mov<I:mode>_cc_v9): ...this.
2122         (movdi_cc_sp64_trunc): Delete.
2123         (movqi_cc_reg_sp64, movhi_cc_reg_sp64, movsi_cc_reg_sp64,
2124         movdi_cc_reg_sp64): Merge into...
2125         (mov<I:mode>_cc_reg_sp64): ...this.
2126         (movsf_cc_sp64): Rename into...
2127         (movsf_cc_v9): ...this.
2128         (movdf_cc_sp64): Rename into...
2129         (movdf_cc_v9): ...this.
2130         (movtf_cc_hq_sp64): Rename into...
2131         (movtf_cc_hq_v9): ...this.
2132         (movtf_cc_sp64): Rename into...
2133         (movtf_cc_v9): ...this.  Adjust for renaming of movdf_cc_sp64.
2134
2135 2008-09-21  Diego Novillo  <dnovillo@google.com>
2136
2137         * doc/gccint.texi: Include generic.texi and gimple.texi.
2138         Re-order index.
2139         * doc/tree-ssa.texi (GENERIC): Move to generic.texi.
2140         (GIMPLE): Move to gimple.texi.
2141         (Annotations): Remove references to to stmt_ann_t and
2142         ssa_name_ann_t.
2143         (SSA Operands): Rename from 'Statement Operands'.
2144         * doc/generic.texi: New.
2145         * doc/gimple.texi: New.
2146         * Makefile.in (TEXI_GCCINT_FILES): Add generic.texi and gimple.texi.
2147         * Makefile.in (TEXI_GCCINT_FILES):
2148         * gimple.c (gimple_copy_call_skip_args): Rename from
2149         giple_copy_call_skip_args.  Update all users.
2150         * doc/gimple.texi (gimple_copy_call_skip_args): Document.
2151
2152 2008-09-21  Ira Rosen  <irar@il.ibm.com>
2153
2154         PR tree-optimization/37539
2155         * tree-vect-transform.c (vect_transform_strided_load): Save vector
2156         statement in related statement field only for the first load of the
2157         group of loads with the same data reference.
2158
2159 2008-09-20  Adam Nemet  <anemet@caviumnetworks.com>
2160
2161         * config/mips/mips.h (TUNE_OCTEON): New macro.
2162         * config/mips/mips.c (mips_issue_rate): Return 2 for Octeon.
2163         (mips_multipass_dfa_lookahead): Return 2 for Octeon.
2164         * config/mips/octeon.md: New file.
2165         * config/mips/mips.md: Include octeon.md.  Restore
2166         semi-alphabetical order of include files.
2167
2168 2008-09-20  H.J. Lu  <hongjiu.lu@intel.com>
2169
2170         PR target/37571
2171         * config/i386/i386.md (*jcc_fused_1): Removed.
2172         (*jcc_fused_2): Likewise.
2173         (*jcc_fused_3): Likewise.
2174         (*jcc_fused_4): Likewise.
2175
2176 2008-09-20  Richard Sandiford  <rdsandiford@googlemail.com>
2177
2178         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Define.
2179         (IRA_COVER_CLASSES): Refer to TARGET_IRA_COVER_CLASSES.
2180         * target.h (gcc_target): Add ira_cover_classes.
2181         * ira.c: Remove IRA_COVER_CLASSES guards.
2182         (setup_cover_and_important_classes): Use targetm.ira_cover_classes
2183         instead of IRA_COVER_CLASSES.
2184         (setup_cover_and_important_classes): Remove IRA_COVER_CLASSES guard.
2185         (setup_class_translate): Likewise.
2186         (setup_reg_class_intersect_union): Likewise.
2187         (find_reg_class_closure): Replace IRA_COVER_CLASSES guard with a
2188         test of targetm.ira_cover_classes.
2189         * opts.c (decode_options): Use targetm.ira_cover_classes instead
2190         of IRA_COVER_CLASSES.
2191         * target-def.h (TARGET_IRA_COVER_CLASSES): Define.
2192         (TARGET_INITIALIZER): Include it.
2193         * targhooks.h (default_ira_cover_classes): Declare.
2194         * targhooks.c (default_ira_cover_classes): New function.
2195
2196 2008-09-19  Bob Wilson  <bob.wilson@acm.org>
2197         
2198         * config/xtensa/xtensa.md (reload<mode>_literal): Handle MEM operands.
2199         
2200 2008-09-19  Ian Lance Taylor  <iant@google.com>
2201
2202         * varasm.c (narrowing_initializer_constant_valid_p): Return
2203         NULL_TREE if ENDTYPE is not an integer.
2204
2205 2008-09-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2206
2207         PR tree-opt/30930
2208         * tree-ssa.c (execute_update_addresses_taken): Also update
2209         DECL_GIMPLE_REG_P for vector and complex types.
2210
2211 2008-09-19  Andrew MacLeod  <amacleod@redhat.com>
2212             Jan Hubicka  <jh@suse.cz>
2213
2214         PR middle-end/37567
2215         * tree-ssa-ter.c (free_temp_expr_table): Make sure fields are actually
2216         empty before freeing them.
2217         (find_replaceable_exprs): Move asserts to free_temp_expr_table.
2218
2219 2008-09-18  Bob Wilson  <bob.wilson@acm.org>
2220
2221         * configure.ac: Add HAVE_AS_TLS check for Xtensa.
2222         * config/xtensa/predicates.md (tls_symbol_operand): New.
2223         * config/xtensa/xtensa.c (TARGET_HAVE_TLS): Define.
2224         (TARGET_CANNOT_FORCE_MEM): Define.
2225         (xtensa_tls_symbol_p): New.
2226         (xtensa_emit_move_sequence): Check for and legitimize TLS addresses.
2227         (xtensa_legitimate_address_p): Disallow constant pool TLS references.
2228         (xtensa_tls_module_base): New.
2229         (xtensa_call_tls_desc): New.
2230         (xtensa_legitimize_tls_address): New.
2231         (xtensa_legitimize_address): Handle TLS symbols.
2232         (xtensa_tls_referenced_p_1): New.
2233         (xtensa_tls_referenced_p): New.
2234         (xtensa_output_addr_const_extra): Handle UNSPEC_TPOFF and
2235         UNSPEC_DTPOFF.
2236         (XTENSA_BUILTIN_THREAD_POINTER): New.
2237         (XTENSA_BUILTIN_SET_THREAD_POINTER): New.
2238         (xtensa_init_builtins): Set NOTHROW and READONLY for umulsidi3
2239         builtin.  Add declarations for __builtin_thread_pointer and
2240         __builtin_set_thread_pointer.
2241         (xtensa_fold_builtin): Recognize new builtins.
2242         (xtensa_expand_builtin): Expand new builtins.
2243         * config/xtensa/xtensa.h (XCHAL_HAVE_THREADPTR): Define default value.
2244         (TARGET_THREADPTR): Define.
2245         (HAVE_AS_TLS): Define default value.
2246         (LEGITIMATE_CONSTANT_P): Disallow TLS references.
2247         * config/xtensa/xtensa.md (UNSPEC_TPOFF, UNSPEC_DTPOFF): New.
2248         (UNSPEC_TLS_FUNC, UNSPEC_TLS_ARG, UNSPEC_TLS_CALL, UNSPEC_TP): New.
2249         (UNSPECV_SET_TP): New.
2250         (sym_TPOFF, sym_DTPOFF): New.
2251         (load_tp, set_tp, tls_func, tls_arg, tls_call): New.
2252         * config/xtensa/xtensa-protos.h (xtensa_tls_referenced_p): Declare.
2253         * configure: Regenerated.
2254         
2255 2008-09-18  H.J. Lu  <hongjiu.lu@intel.com>
2256
2257         PR target/37394
2258         * config/ia64/ia64.c (ia64_optimization_options): Move
2259         checking and setting flag_schedule_insns_after_reload and
2260         ia64_flag_schedule_insns2 back to ...
2261         (ia64_override_options): Here.
2262
2263 2008-09-18  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2264
2265         PR rtl-opt/37451
2266         * loop-doloop.c (doloop_modify): New argument zero_extend_p and
2267         zero extend count after the correction to it is done.
2268         (doloop_optimize): Update call to doloop_modify, don't zero extend
2269         count before call.
2270
2271 2008-09-18  Martin Jambor  <mjambor@suse.cz>
2272
2273         * ipa-cp.c (ipcp_estimate_growth): Return 0 instead of false.
2274
2275         * ipa-prop.c: Correct comments.
2276         * ipa-prop.h: Likewise.
2277
2278 2008-09-18  Jan Hubicka  <jh@suse.cz>
2279
2280         PR middle-end/37448
2281         * ipa-reference.c (ipa_reference_local_vars_info_d,
2282         ipa_reference_global_vars_info_d,
2283         ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
2284         ipa_reference_vars_info_t): Move here from ipa-reference.h
2285         (node_duplication_hook_holder, node_removal_hook_holder): New.
2286         (get_reference_vars_info_from_cgraph): Rename to ...
2287         (get_reference_vars_info): ... this one, use cgraph uids.
2288         (get_local_reference_vars_info, get_global_reference_vars_info):
2289         Use cgraph instead of decl.
2290         (ipa_reference_get_read_local, ipa_reference_get_written_local):
2291         Remove.
2292         (ipa_reference_get_read_global, ipa_reference_get_not_read_global
2293         ipa_reference_get_written_global,
2294         ipa_reference_get_not_written_global): Use cgraph argument.
2295         (check_call): Simplify avail check.
2296         (scan_stmt_for_static_refs): Update.
2297         (propagate_bits): Update.
2298         (merge_callee_local_info): Remove.
2299         (init_function_info): Use cgraph nodes.
2300         (clean_function_local_data): Break out from ...
2301         (clean_function): ... here.
2302         (copy_local_bitmap, copy_global_bitmap): New functions.
2303         (duplicate_node_data, remove_node_data): New functions.
2304         (generate_summary): Register hooks; use visibility instead of
2305         master clones.
2306         (propafate): Use cgraph nodes; copy bitmap to each node in cycle.
2307         * ipa-reference.h (ipa_reference_local_vars_info_d,
2308         ipa_reference_global_vars_info_d,
2309         ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
2310         ipa_reference_vars_info_t): Move to ipa-reference.c
2311         (ipa_reference_get_read_local, ipa_reference_get_written_local):
2312         Remove.
2313         (ipa_reference_get_read_global, ipa_reference_get_written_global,
2314         ipa_reference_get_not_read_global,
2315         ipa_reference_get_not_written_global): Update prototype.
2316         * ipa-pure-const.c (funct_state_vec): Turn into VECtor.
2317         (init_state): Remove.
2318         (node_duplication_hook_holder, node_removal_hook_holder): New.
2319         (get_function_state, set_function_state): Use VECtor.
2320         (analyze_function): Check body availability.
2321         (add_new_function): Likewise.
2322         (duplicate_node_data, remove_node_data): New.
2323         (generate_summary): Register hooks; do not care about clones.
2324         (propafate): Do not care about clones; recursive functions are
2325         not looping.
2326         * ipa-utils.c (searchc, ipa_utils_reduced_inorder): Do not skip clones.
2327         * ipa-prop.c (edge_removal_hook_holder, node_removal_hook_holder,
2328         * edge_duplication_hook_holder, node_duplication_hook_holder): Make
2329         static.
2330         * tree-flow.h (function_ann_d): Remove reference_vars_info.
2331         * tree-ssa-opreands.c (add_call_clobber_ops, add_call_read_ops):
2332         Update call of ipa-reference accesors.
2333
2334 2008-09-18  Simon Baldwin  <simonb@google.com>
2335
2336         * c-opts.c (c_common_handle_option): Add handling for
2337         -Wbuiltin-macro-redefined command line option.
2338         * c.opt: Added builtin-macro-redefined option.
2339         * doc/invoke.texi (Warning Options): Add -Wbuiltin-macro-redefined
2340         documentation.
2341
2342 2008-09-18  Richard Guenther  <rguenther@suse.de>
2343
2344         PR tree-optimization/37258
2345         * tree-ssa-sccvn.c (vn_phi_compute_hash): Include the precision
2346         and signedness for integral types.
2347         (vn_phi_eq): Require compatible types.
2348
2349 2008-09-18  Jakub Jelinek  <jakub@redhat.com>
2350
2351         PR debug/34037
2352         * gimplify.c (gimplify_type_sizes): When not optimizing, ensure
2353         TYPE_MIN_VALUE and TYPE_MAX_VALUE is not is not DECL_IGNORED_P
2354         VAR_DECL.
2355         * cfgexpand.c (expand_used_vars): Keep DECL_ARTIFICIAL
2356         !DECL_IGNORED_P vars in local_decls list for instantiate_decls,
2357         ggc_free other TREE_LIST nodes from that chain.
2358         * function.c (instantiate_decls): Instantiate also DECL_RTL
2359         of vars in cfun->local_decls, free that list afterwards.
2360
2361 2008-09-18  Eric Botcazou  <ebotcazou@adacore.com>
2362
2363         * config/sparc/sol2.h (WIDEST_HARDWARE_FP_SIZE): Move to...
2364         * config/sparc/sparc.h (WIDEST_HARDWARE_FP_SIZE): ...here.
2365
2366 2008-09-18  Andrew MacLeod  <amacleod@redhat.com>
2367
2368         * tree-outof-ssa.c (eliminate_useless_phis): Fix formatting.
2369         * tree-flow-.h (struct immediate_use_iterator_d): Fix comment.
2370
2371 2008-09-18  Andrew MacLeod  <amacleod@redhat.com>
2372
2373         PR tree-optimization/37102
2374         * tree-outof-ssa.c (remove_gimple_phi_args): Remove all the PHI args
2375         from a node. Check to see if another PHI is dead.
2376         (eliminate_useless_phis): Rename from eliminate_virtual_phis and 
2377         remove real PHIs which have no uses.
2378         (rewrite_out_of_ssa): Call eliminate_useless_phis.
2379
2380 2008-09-18  Richard Guenther  <rguenther@suse.de>
2381
2382         PR middle-end/37284
2383         * tree-cfg.c (remove_useless_stmts_1): Remove
2384         GIMPLE_CHANGE_DYNAMIC_TYPE if not optimizing.
2385
2386 2008-09-18  Nick Clifton  <nickc@redhat.com>
2387
2388         * config/frv/frv.h (IRA_COVER_CLASSES): Define.
2389         (SECONDARY_INPUT_RELOAD_CLASS): Omit unused argument in call
2390         to frv_secondary_reload_class.
2391         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
2392         * config/frv/frv.c (TARGET_SECONDARY_RELOAD): Define.
2393         (frv_secondary_reload_class): Omit unused parameter.
2394         (frv_secondary_reload): New function.  Handle the case when
2395         secondary_reload_class() is called before the reload_(in|out)
2396         _optabs have been initialised.
2397         * config/frv/frv-protos.h (frv_secondary_reload_class): Omit
2398         unused parameter.
2399         * config/frv/frv.md: Define an exclusion set between fr550_m0
2400         and fr550_f0.
2401
2402 2008-09-18  Richard Guenther  <rguenther@suse.de>
2403
2404         PR tree-optimization/37456
2405         * tree-ssa-reassoc.c (build_and_add_sum): If the stmt we
2406         want to insert after ends a BB insert on the single fallthru
2407         outgoing edge.
2408
2409 2008-09-18  Andreas Krebbel  <krebbel1@de.ibm.com>
2410
2411         * doc/invoke.texi: Document -mhard-dfp, -mno-hard-dfp.
2412         Mention -march=z9-109, z9-ec and z10.
2413
2414 2008-09-18  Uros Bizjak  <ubizjak@gmail.com>
2415
2416         PR rtl-optimization/37544
2417         * regrename.c (maybe_mode_change): Exit early when copy_mode
2418         is narrower than orig_mode and narrower than new_mode.
2419
2420 2008-09-18  Alexander Monakov  <amonakov@ispras.ru>
2421
2422         PR middle-end/37499
2423         * sched-int.h (struct _haifa_insn_data): Remove unused field ref_count.
2424
2425         * sched-rgn.c (ref_counts): Remove.
2426         (insn_referenced): New static variable.
2427         (INSN_REF_COUNT): Remove.
2428         (sched_run_compute_dependencies): Use insn_referenced instead of
2429         INSN_REF_COUNT.
2430         (add_branch_dependences): Likewise.  Delete dead assignment.
2431
2432 2008-09-17  Adam Nemet  <anemet@caviumnetworks.com>
2433
2434         * haifa-sched.c (dep_cost_1): Recognize the producer even if the
2435         consumer is an asm.  Add comment why this is important.
2436         (choose_ready): Add comment to the "INSN_CODE (insn) >= 0 ||
2437         recog_memoized (insn) < 0" assert.  Put ENABLE_CHECKING around it.
2438
2439 2008-09-17  Joseph Myers  <joseph@codesourcery.com>
2440
2441         * expr.c (emit_group_store): Do not shift before moving via a
2442         stack slot.
2443
2444 2008-09-17  Eric Botcazou  <ebotcazou@adacore.com>
2445
2446         * varasm.c (initializer_constant_valid_p): Forbid view-conversions
2447         from aggregate to non-aggregate type if the bit pattern is not fully
2448         preserved afterwards.
2449
2450 2008-09-17  Richard Guenther  <rguenther@suse.de>
2451
2452         * tree-cfg.c (verify_types_in_gimple_assign): Rename to ...
2453         (verify_gimple_assign): ... this.  Split into ...
2454         (verify_gimple_assign_unary): ... this,
2455         (verify_gimple_assign_binary): ... that,
2456         (verify_gimple_assign_single): ... and this.
2457         (verify_types_in_gimple_stmt): Call verify_gimple_assign.
2458         Fix GIMPLE_CHANGE_DYNAMIC_TYPE handling.
2459         (verify_types_in_gimple_min_lval): Handle TARGET_MEM_REF.
2460         (verify_types_in_gimple_reference): Be forgiving with
2461         VIEW_CONVERT_EXPRs.
2462         (verify_gimple_phi): Deal with virtual operands.
2463
2464         * tree.def (PREDICT_EXPR): Change to tcc_expression.
2465
2466 2008-09-17  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2467
2468         * tree.c (get_callee_fndecl): Don't call the language hook.
2469         * langhooks.h (lang_hooks): Remove lang_get_callee_fndecl.
2470         * langhooks-def.h (LANG_HOOKS_GET_CALLEE_FNDECL): Kill.
2471         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_GET_CALLEE_FNDECL.
2472
2473 2008-09-17  Jakub Jelinek  <jakub@redhat.com>
2474
2475         * tree.c (protected_set_expr_location): Don't unnecessarily
2476         check for error_mark_node.
2477
2478 2008-09-17  Art Haas  <ahaas@impactweather.com>
2479
2480         * ipa-reference.c (analyze_function): Declare step only if
2481         ENABLE_CHECKING is defined.
2482
2483 2008-09-17  Jan Hubicka  <jh@suse.cz>
2484
2485         PR c++/18071
2486         * tree.h (DECL_INLINE): remove.
2487         (DECL_DECLARED_INLINE_P): Update docs.
2488         (DECL_NO_INLINE_WARNING_P): new.
2489         (tree_function_decl): Replace inline_flag by no_inline_warning_flag.
2490         * tree-inline.c (inlinable_function_p): Set DECL_NO_INLINE_WARNING_P.
2491
2492 2008-09-17  Jakub Jelinek  <jakub@redhat.com>
2493             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2494
2495         PR bootstrap/37441
2496         * dwarf2out.c (dwarf2out_do_cfi_asm) [MIPS_DEBUGGING_INFO]: Return
2497         false.
2498
2499 2008-09-17  Jan Hubicka  <jh@suse.cz>
2500
2501         * ipa-reference.c (ipa_obstack): Remove.
2502         (local_info_obstack, global_info_obstack): New.
2503         (add_static_var): We now handle variables only.
2504         (mark_address_taken, mark_load, mark_store): New functions based on ...
2505         (check_operand): ... remove.
2506         (get_asm_stmt_operands): Rename to ...
2507         (check_asm_memory_clobber): ... this. Look only for memory clobber.
2508         (scan_stmt_for_static_refs): Rewrite.
2509         (scan_op_for_static_refs): Rename to ...
2510         (scan_initializer_for_static_refs): do not look for VAR_DECL
2511         initializers; stop recursion on types and decls.
2512         (ipa_init): Use proper obstacks.
2513         (analyze_variable): Use scan_initializer_for_static_refs.
2514         (init_function_info): Use local obstack.
2515         (analyze_function): Simplify.
2516         (add_new_function): We don't need visited_nodes obstack.
2517         (generate_summary): Use proper obstacks; cleanup after propagation.
2518
2519 2008-09-17  Richard Guenther  <rguenther@suse.de>
2520
2521         PR middle-end/37385
2522         PR tree-optimization/37491
2523         * alias.c (get_alias_set): Use the canonical type.
2524         * tree-vect-transform.c (vectorizable_store): Use the type of
2525         the lhs for the vector type.  Adjust checking.
2526         (vectorizable_load): Adjust checking.
2527
2528 2008-09-16  Jakub Jelinek  <jakub@redhat.com>
2529             Adam Nemet  <anemet@caviumnetworks.com>
2530
2531         PR rtl-optimization/37483
2532         * ifcvt.c (noce_try_sign_mask): Use if_info->test_bb instead of
2533         if_info->insn_b's bb as argument to optimize_bb_for_speed_p.
2534         Rearrange code to better match the original comment.  Check
2535         t_unconditional first.  Improve comment.
2536
2537 2008-09-16  Jakub Jelinek  <jakub@redhat.com>
2538
2539         PR c/37529
2540         * gimplify.c (gimplify_expr) <case GOTO_EXPR>: If gimplification of
2541         GOTO_DESTINATION failed, don't create GIMPLE_GOTO.
2542
2543         PR c++/37530
2544         * gimplify.c (gimplify_expr) <case TRY_CATCH_EXPR>: Don't create
2545         GIMPLE_TRY if cleanup sequence is empty.
2546
2547 2008-09-16  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2548
2549         PR middle-end/37263
2550         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Prefer the
2551         eliminate IV if the cost are the same.
2552
2553 2008-09-16  Richard Guenther  <rguenther@suse.de>
2554
2555         PR middle-end/37380
2556         * tree-sra.c (sra_build_assignment): Do not call the gimplifier
2557         if not necessary.
2558
2559 2008-09-16  Richard Guenther  <rguenther@suse.de>
2560
2561         PR tree-optimization/37508
2562         * tree-vrp.c (simplify_truth_ops_using_ranges): Also allow -1.
2563
2564 2008-09-15  Kaz Kojima  <kkojima@gcc.gnu.org>
2565
2566         * config/sh/sh.md (movsf_ie): Fix length for TARGET_SH2A.
2567
2568 2008-09-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2569
2570         * config/rs6000/rs6000.md (floatsidf2): Rewrite PowerPC64 case to
2571         use gen_floatdidf2 directly.
2572         (floatunssidf2): Likewise.
2573         (floatsidf_ppc64_mfpgpr): Remove.
2574         (floatsidf_ppc64): Remove.
2575         (floatunssidf_ppc64): Remove.
2576
2577 2008-09-15  Jakub Jelinek  <jakub@redhat.com>
2578
2579         * ira-color.c (finish_cost_update): Free update_cost_queue_elems
2580         rather than update_cost_queue.
2581
2582         * tree-ssa-alias.c (init_alias_info): Call bitmap_obstack_release
2583         in every call starting with the second one, instead of only when
2584         alias_bitmap_obstack.elements != NULL.
2585
2586         * tree-predcom.c (filter_suitable_components): Free all refs in
2587         act->refs vector before calling release_component.
2588         (add_ref_to_chain): Free ref if not adding it to chain->refs.
2589
2590         * tree-data-ref.c (free_subscripts): Free all subscript objects.
2591
2592         * tree-loop-linear.c (linear_transform_loops): Initialize
2593         lambda_obstack only after calling perfect_loop_nest_depth.
2594         Goto free_and_continue instead of just continue for later failures.
2595
2596         PR middle-end/37479
2597         * doc/invoke.texi: Document -fno-dwarf2-cfi-asm.
2598
2599         PR libmudflap/36397
2600         * tree-mudflap.c (mf_xform_derefs_1): Handle VIEW_CONVERT_EXPR.
2601
2602 2008-09-14  Andreas Schwab  <schwab@suse.de>
2603
2604         * tree-call-cdce.c (check_target_format): Accept Motorola formats.
2605
2606 2008-09-14  Jan Hubicka  <jh@suse.cz>
2607
2608         * invoke.texi (-fconserve-stack): Document.
2609         * opts.c (decode_options): Handle conserve_stack.
2610         * common.opt (fconvserve_stack): New.
2611
2612 2008-09-14  David Edelsohn  <edelsohn@gnu.org>
2613
2614         * config.host: Add x-aix to host_xmake_file.
2615         * config/rs6000/t-aix52: Do not override LDFLAGS.
2616         * config/rs6000/x-aix: New file.
2617
2618 2008-09-14  Andy Hutchinson  <hutchinsonandy@aim.com>
2619
2620         PR target/19636
2621         PR target/24894
2622         PR target/31644
2623         PR target/31786
2624         * config/avr/avr.c (legitimate_address_p): Fix problem where subreg
2625         is not recognized as a valid register usage. Allow REG_X to be used
2626         as a base pointer.
2627         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Remove code that
2628         forces a reload when using a base register.
2629
2630 2008-09-14  Danny Smith  <dannysmith@users.sourceforge.net>
2631
2632         * config/i386/cygming-crtend.c (register_frame_ctor): If
2633         DEFAULT_USE_CXA_ATEXIT, register __gcc_deregister_frame
2634         directly with atexit.
2635         (deregister_frame_ctor): Rename to ...
2636         (deregister_frame_dtor): Use to call __gcc_deregister_frame
2637         if !DEFAULT_USE_CXA_ATEXIT.
2638
2639 2008-09-13  Jan Hubicka  <jh@suse.cz>
2640
2641         * cgraph.c: Include value-prof.h
2642         * Makefile.in (cgraph.o): Add value-prof.h dependency.
2643
2644 2008-09-13  Jan Hubicka  <jh@suse.cz>
2645
2646         PR middle-end/32581
2647         * tree-profile.c (add_abnormal_goto_call_edges): New function.
2648         (tree_gen_interval_profiler, tree_gen_pow2_profiler,
2649         tree_gen_one_value_profiler, tree_gen_average_profiler,
2650         tree_gen_ic_func_profiler, tree_gen_ior_profiler): Use it.
2651
2652 2008-09-13  Jan Hubicka  <jh@suse.cz>
2653
2654         * i386.c (ix86_expand_movmem, ix86_expand_movstr): Avoid processing
2655         too many bytes on misalligned blocks.
2656
2657 2008-09-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2658
2659         * doc/cfg.texi: Fix some typos.
2660         * doc/extend.texi: Likewise.
2661         * doc/install.texi: Likewise.
2662         * doc/invoke.texi: Likewise.
2663         * doc/rtl.texi: Likewise.
2664         * doc/tree-ssa.texi: Likewise.
2665
2666 2008-09-13  Richard Guenther  <rguenther@suse.de>
2667
2668         PR middle-end/30141
2669         * tree-nested.c (finalize_nesting_tree_1): Generate valid
2670         gimple stores for memory rhs.
2671
2672 2008-09-13  H.J. Lu  <hongjiu.lu@intel.com>
2673
2674         PR rtl-optimization/37489
2675         * cse.c (fold_rtx): Don't return const_true_rtx for float
2676         compare if FLOAT_STORE_FLAG_VALUE is undefined.
2677
2678 2008-09-13  Jan Hubicka  <jh@suse.cz>
2679
2680         PR tree-optimization/37392
2681         * tree-inline.c (remap_gimple_stmt): Do not remap return value.
2682
2683 2008-09-13  Martin Jambor  <mjambor@suse.cz>
2684             Jan Hubicka  <jh@suse.cz>
2685
2686         * cgraph.c (free_edges): New variable.
2687         (NEXT_FREE_EDGE): New macro.
2688         (cgraph_free_edge): New function.
2689         (cgraph_remove_edge): Call cgraph_remove_edge_1.
2690         (cgraph_node_remove_callees): Likewise.
2691         (cgraph_node_remove_callers): Likewise.
2692         (cgraph_create_edge): Reuse edges from the free list.  Do not
2693         update uid if doing so.
2694         (cgraph_remove_*_hook): Add free call.
2695
2696 2008-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
2697
2698         * ira-color.c (conflict_allocno_vec): Delete.
2699         (update_cost_queue_elem): New structure.
2700         (update_cost_queue): New variable.
2701         (update_cost_queue_tail): Likewise.
2702         (update_cost_queue_elems): Likewise.
2703         (allocno_update_cost_check): Delete.
2704         (initiate_cost_update): Allocate update_cost_queue_elems
2705         instead of allocno_update_cost_check.
2706         (finish_cost_update): Update the free()s accordingly.
2707         (start_update_cost): New function.
2708         (queue_update_cost): Likewise.
2709         (get_next_update_cost): Likewise.
2710         (update_copy_costs_1): Inline into...
2711         (update_copy_costs): ...here.  Use a queue instead of recursive calls.
2712         Use cover_class instead of ALLOCNO_COVER_CLASS (another_allocno),
2713         once we've established they are equal.  Don't allocate update
2714         costs if there is nothing to add to them.
2715         (update_conflict_hard_regno_costs): Remove ALLOCNO and
2716         DIVISOR arguments.  Use a queue instead of recursive calls;
2717         process all the allocnos in the initial queue, rather than
2718         a single allocno.
2719         (assign_hard_reg): Use queue_update_cost instead of
2720         conflict_allocno_vec.  Queue coalesced allocnos instead
2721         of calling update_conflict_hard_regno_costs for each one.
2722         Just call update_conflict_hard_regno_costs once for the
2723         entire queue.
2724         (ira_color): Remove conflict_allocno_vec handling.
2725
2726 2008-09-12  Sebastian Pop  <sebastian.pop@amd.com>
2727
2728         PR tree-optimization/37484
2729         * graphite.c (scop_record_loop): Use snprintf instead of sprintf.
2730         (save_var_name): Same.
2731         (initialize_cloog_names): Same.
2732         (initialize_cloog_names): Same.
2733
2734 2008-09-12  Sebastian Pop  <sebastian.pop@amd.com>
2735
2736         * tree-scalar-evolution.c (set_instantiated_value): Set
2737         instantiated_below.
2738
2739 2008-09-12  Vladimir Makarov  <vmakarov@redhat.com>
2740
2741         PR rtl-opt/37377
2742
2743         * ira-build.c (common_loop_tree_node_dominator): Remove.
2744         (copy_live_ranges_to_removed_store_destinations): New function.
2745         (regno_top_level_allocno_map): Move to top level from ...
2746         (ira_flattening): ... here.  Use
2747         copy_live_ranges_to_removed_store_destinations.
2748
2749         * ira-emit.c (generate_edge_moves): Fix a comment.
2750
2751 2008-09-12  Anatoly Sokolov  <aesok@post.ru>
2752
2753         PR target/37466
2754         * config/avr/avr.md (movsi_lreg_const peephole2): Add match_dup for
2755         scratch register after 'set' pattern.
2756
2757 2008-09-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2758
2759         * emit-rtl.c (set_reg_attrs_from_value): Fix invalid alignment
2760         information passed to mark_reg_pointer.
2761         * explow.c (force_reg): Likewise.
2762
2763 2008-09-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2764
2765         * config/spu/spu.c (spu_override_options): Default to -mno-safe-hints
2766         when building for the celledp architecture.
2767
2768 2008-09-12  Richard Guenther  <rguenther@suse.de>
2769
2770         * tree-vrp.c (simplify_truth_ops_using_ranges): Fix types.
2771
2772 2008-09-12  Eric Botcazou  <ebotcazou@adacore.com>
2773
2774         PR rtl-optimization/37424
2775         * ira-color.c (coalesced_pseudo_reg_slot_compare): Untie by comparing
2776         the regnos instead of the addresses.
2777
2778 2008-09-11  Janis Johnson  <janis187@us.ibm.com>
2779
2780         * ginclude/float.h (DEC_EVAL_METHOD): Correct the macro name.
2781
2782 2008-09-11  Richard Guenther  <rguenther@suse.de>
2783
2784         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Avoid
2785         entering the weaker equivalence recording.
2786
2787         * tree-ssa-phiprop.c (propagate_with_phi): Fix tuplification.
2788
2789 2008-09-11  Jeff Law <law@redhat.com>
2790
2791         * reload1.c (alter_reg): Undo the BYTE_BIG_ENDIAN correction performed
2792         by assign_stack_local on the IRA path for stack slot sharing
2793         as well as the non-IRA path.
2794
2795 2008-09-11  Uros Bizjak  <ubizjak@gmail.com>
2796
2797         * config/i386/i386.h: Fix whitespace issues.
2798
2799 2008-09-11  Martin Jambor  <mjambor@suse.cz>
2800
2801         * ipa-prop.h (struct ipa_param_flags): Removed.
2802         (struct ipa_param_descriptor): New structure.
2803         (struct ipa_node_params): ipcp_lattices, param_decls and
2804         param_flags moved to ipa_param_description.
2805         (ipa_get_ith_param): Renamed to ipa_get_param, changed to access
2806         descriptors.  Renamed all users.
2807         (ipa_is_ith_param_modified): Renamed to ipa_is_param_modified,
2808         changed to access descriptors.  Renamed all users.
2809         (ipa_is_ith_param_called): Renamed to ipa_is_param_called, changed
2810         to access descriptors. Renamed all users.
2811         * ipa-cp.c (ipcp_init_cloned_node): Call
2812         ipa_initialize_node_params instead of ipa_count_formal_params and
2813         ipa_create_param_decls_array.
2814         (ipcp_analyze_node): Likewise.
2815         (ipcp_get_ith_lattice): Renamed to ipcp_get_lattice, changed to access
2816         descriptors.  Renamed all users.
2817         (ipcp_initialize_node_lattices): Remove allocation.
2818         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
2819         ipa_initialize_node_params instead of ipa_count_formal_params and
2820         ipa_create_param_decls_array.
2821         * ipa-prop.c (ipa_create_param_decls_array): Renamed to
2822         ipa_populate_param_decls, made static, added parameter info,
2823         renamed mt to node, removed allocation, changed to use
2824         descriptors.
2825         (ipa_count_formal_params): Made static, added parameter info,
2826         renamed mt to node.
2827         (ipa_initialize_node_params): New function.
2828         (ipa_check_stmt_modifications): Changed to use descriptors.
2829         (ipa_detect_param_modifications): Removed allocation, changed to
2830         use descriptors.
2831         (ipa_note_param_call): Changed to use descriptors.
2832         (ipa_analyze_params_uses): Removed allocation.
2833         (ipa_free_node_params_substructures): Changed to use descriptors.
2834         (ipa_edge_duplication_hook): Use the unused attribute.
2835         (ipa_node_duplication_hook): Use the unused attribute, changed to
2836         use descriptors, changed to duplicate descriptors.
2837
2838         * ipa-inline.c (cgraph_mark_inline_edge): New parameter new_edges,
2839         changed all callers.  Call ipa_propagate_indirect_call_infos if doing
2840         indirect inlining.  Made static.
2841         (cgraph_decide_inlining): Freeing ipa-prop structures after inlining
2842         functions called only once.
2843         (cgraph_decide_recursive_inlining): Don't call
2844         ipa_propagate_indirect_call_infos, pass new_edges to
2845         cgraph_mark_inline_edge instead.
2846         (cgraph_decide_inlining_of_small_functions): Don't call
2847         ipa_propagate_indirect_call_infos, pass new_edges to
2848         cgraph_mark_inline_edge instead.
2849         (cgraph_decide_inlining): Don't call
2850         ipa_propagate_indirect_call_infos.
2851         * ipa-prop.c: Check that vectors are allocated.
2852
2853         * ipa-inline.c (cgraph_mark_inline_edge): Returns boolean, true
2854         iff a new cgraph edges have been created.
2855         (cgraph_decide_inlining): New variable redo_always_inline.
2856         Flattening and always_inlining loop until callgraph stabilizes.
2857         * ipa-prop.c (update_call_notes_after_inlining): Returns boolean,
2858         true iff new cgraph edges have been created.
2859         (propagate_info_to_inlined_callees): Likewise.
2860         (ipa_propagate_indirect_call_infos): Likewise.
2861
2862 2008-09-11  Richard Guenther  <rguenther@suse.de>
2863
2864         * tree-vectorizer.c (slpeel_add_loop_guard): Fix types.
2865         (set_prologue_iterations): Likewise.
2866         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref):
2867         Likewise.
2868         (vect_update_init_of_dr): Likewise.
2869         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Fix
2870         type verification.
2871         * fold-const.c (fold_unary): Do not generate calculations
2872         in sub-types.
2873
2874 2008-09-11  Paolo Bonzini  <bonzini@gnu.org>
2875
2876         * dojump.c (do_jump) [BIT_AND_EXPR]: Move below.  Fall through to
2877         TRUTH_AND_EXPR for boolean (1-bit precision) expressions.
2878         (do_jump) [BIT_IOR_EXPR]: Compile as TRUTH_OR_EXPR.
2879
2880         * tree-flow.h (simplify_stmt_using_ranges): Accept a GSI, return
2881         a bool.
2882         * tree-ssa-propagate.c (substitute_and_fold): Pass a GSI to
2883         VRP's simplify_stmt_using_ranges.  Do simplify_stmt_using_ranges
2884         before finalizing the changes.
2885         * tree-vrp.c (extract_range_from_binary_expr): Add limited support
2886         for BIT_IOR_EXPR.
2887         (simplify_truth_ops_using_ranges): New.
2888         (simplify_div_or_mod_using_ranges, simplify_abs_using_ranges,
2889         simplify_cond_using_ranges, simplify_switch_using_ranges): Return
2890         whether a simplification was made.
2891         (simplify_stmt_using_ranges): Ditto, and accept a GSI.  For GS_ASSIGN,
2892         use a switch statement and also call simplify_truth_ops_using_ranges.
2893
2894 2008-09-11  Jan Hubicka  <jh@suse.cz>
2895
2896         * ggc-common.c (loc_array): Make static.
2897         * dce.c (rest_of_handle_ud_dce): Free worklist.
2898
2899 2008-09-11  Jan Hubicka  <jh@suse.cz>
2900
2901         * cgraph.c (cgraph_release_function_body): Plug memory leak on
2902         ipa_transforms_to_apply and CFG; ggc_free gimple df and struct
2903         function so we are sure we do not dangle it forever.
2904         * function.c (outer_function_chain, find_function_data): Remove.
2905         (function_context_stack): New.
2906         (push_function_context, pop_function_context): Update.
2907         * function.h (struct function): Remove pointer outer.
2908         (outer_function_chain, find_function_data): Remove.
2909         * stmt.c (force_label_rtx): Remove dead call of find_function_data.
2910
2911 2008-09-11  Jan Hubicka  <jh@suse.cz>
2912
2913         PR middle-end/37448
2914         * cgraph.c (cgraph_create_edge): Use !cgraph_edge for sanity check.
2915
2916 2008-09-11  Jan Hubicka  <jh@suse.cz>
2917
2918         * tree-ssa-pre.c (phi_translate_1): Fix memory leak
2919
2920 2008-09-11  Jan Hubicka  <jh@suse.cz>
2921
2922         * tree-ssa.c (redirect_edge_var_map_clear): Fix formatting.
2923         (free_var_map_entry): New function.
2924         (redirect_edge_var_map_destroy): Use it.
2925
2926 2008-09-11  Jan Hubicka  <jh@suse.cz>
2927
2928         PR middle-end/37448
2929         * tree-inline.c (add_lexical_block): Replace with ...
2930         (prepend_lexical_block): ... prepend at begginig.
2931         (remap_blocks): Use it and reverse later.
2932         (expand_call_inline): Use prepend_lexical_block.
2933
2934 2008-09-11  Jan Hubicka  <jh@suse.cz>
2935
2936         * gimplify.c (pop_gimplify_context): Free bind_expr_stack.
2937
2938 2008-09-11  Jan Hubicka  <jh@suse.cz>
2939
2940         * function.c (free_after_compilation): Call insn_locators_free.
2941         * cfglayout.c (insn_locators_free): New function.
2942         * rtl.h (insn_locators_free): Declare.
2943
2944 2008-09-11  Jan Hubicka  <jh@suse.cz>
2945
2946         * ifcvt.c (check_cond_move_block): Make regs argument pointer to
2947         vector pointer.
2948         (cond_move_process_if_block): Update call.
2949
2950 2008-09-11  Jan Hubicka  <jh@suse.cz>
2951
2952         * toplev.c (dump_memory_report): Call dump_vec_loc_statistics.
2953         * vec.c: Include hashtab.h
2954         (vec_descriptor, ptr_hash_entry): New structures.
2955         (vec_desc_hash, vec_ptr_map): New static variables.
2956         (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr, vec_descriptor,
2957         register_overhead, free_overhead, vec_heap_free): New functions.
2958         (vec_gc_o_reserve_1): ggc_free when resizing to 0.
2959         (vec_heap_o_reserve_1): free when resizing to 0; add statistics.
2960         (cmp_statistic, add_statistics, dump_vec_loc_statistics):
2961         New functions.
2962
2963 2008-09-11  Ira Rosen  <irar@il.ibm.com>
2964
2965         PR tree-optimization/37474
2966         * tree-vect-analyze.c (vect_supported_load_permutation_p): Check the
2967         length of load permutation.
2968
2969 2008-09-11  Andreas Schwab  <schwab@suse.de>
2970
2971         * config/m68k/m68k.h (IRA_COVER_CLASSES): Define.
2972
2973 2008-09-11  Jakub Jelinek  <jakub@redhat.com>
2974
2975         PR target/37382
2976         * expmed.c (extract_low_bits): Avoid creating invalid subregs.
2977         * dse.c (find_shift_sequence): Use extract_low_bits instead of
2978         simplify_gen_subreg.
2979
2980 2008-09-11  Ira Rosen  <irar@il.ibm.com>
2981
2982         * tree-vect-transform.c (vectorizable_store): Use the rhs vector type
2983         for alias check.
2984
2985 2008-09-10  Jakub Jelinek  <jakub@redhat.com>
2986
2987         PR middle-end/37338
2988         * gimplify.c (gimplify_body): Call default_rtl_profile.
2989
2990         PR target/36904
2991         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Return NULL
2992         instead of tok->val.node if not expanding to something else.  Handle
2993         intervening CPP_PADDING tokens.
2994         (altivec_categorize_keyword): Remove unneeded comparisons.
2995
2996 2008-09-10  Richard Guenther  <rguenther@suse.de>
2997
2998         * tree-ssa-pre.c (phi_translate_1): Fix memory leak.
2999
3000 2008-09-10  Richard Guenther  <rguenther@suse.de>
3001
3002         PR middle-end/37432
3003         * tree-inline.c (insert_init_stmt): Make sure to not
3004         insert invalid gimple stores.
3005
3006 2008-09-10  Sebastian Pop  <sebastian.pop@amd.com>
3007
3008         PR tree-optimization/37388
3009         * toplev.c (process_options): Fail and warn when graphite
3010         flags are used, but the compiler has not been configured
3011         with graphite libraries.
3012         * graphite.c (graphite_transform_loops): Remove printfs
3013         to dump_file for the case when graphite is not available.
3014
3015 2008-09-10  H.J. Lu  <hongjiu.lu@intel.com>
3016
3017         PR target/37434:
3018         * config/i386/i386.c (ix86_expand_vector_init_interleave): Force
3019         the even element into register.
3020         (ix86_expand_vector_init_general): Don't use
3021         ix86_expand_vector_init_interleave on V16QImode and V8HImode
3022         if we can't move from GPR to SSE register directly.
3023
3024 2008-09-10  Bernd Schmidt  <bernd.schmidt@analog.com>
3025
3026         * config/bfin/bfin.c (workaround_speculation): Correct algorithm to
3027         not lose track of the number of NOPs needed.  Number of NOPs needed
3028         for sync vs. loads workaround was switched; corrected.  Run second
3029         pass for all workarounds.  No NOPs needed after call insns.  Change
3030         second pass to use find_next_insn_start and find_load helpers in order
3031         to properly detect parallel insns.
3032         * config/bfin/bfin.md (cbranch_with_nops): Increase length.
3033
3034 2008-09-10  Jan Hubicka  <jh@suse.cz>
3035
3036         * value-prof.c (gimple_ic): Fix tuplification bug.
3037         * sched-deps.c (sched_insns_conditions_mutex_p): Silence unitialized
3038         var warning.
3039
3040 2008-09-10  Jakub Jelinek  <jakub@redhat.com>
3041
3042         PR tree-optimization/37353
3043         * tree-call-cdce.c (cond_dead_built_in_calls): Remove.
3044         (shrink_wrap_conditional_dead_built_in_calls): Add calls argument, use
3045         calls instead of cond_dead_built_in_calls.
3046         (tree_call_cdce): Add cond_dead_built_in_calls automatic variable,
3047         initalize the vector only before adding first entry.  Use VEC_safe_push
3048         instead of VEC_quick_push.  Pass cond_dead_built_in_calls to
3049         shrink_wrap_conditional_dead_built_in_calls call.
3050
3051 2008-09-10  Ira Rosen  <irar@il.ibm.com>
3052
3053         PR tree-optimization/37385
3054         * tree-vect-transform.c (vect_create_data_ref_ptr): Add a new
3055         argument, and use it as a vector type if not NULL.
3056         (vectorizable_store): Call vect_create_data_ref_ptr with the type of
3057         vectorized rhs.
3058         (vect_setup_realignment): Call vect_create_data_ref_ptr with
3059         additional argument.
3060         (vectorizable_load): Likewise.
3061
3062 2008-09-10  Jakub Jelinek  <jakub@redhat.com>
3063
3064         * config/i386/i386.md (SWI32): New mode iterator.
3065         (jcc_fused_1, jcc_fused_2, jcc_fused_3, jcc_fused_4): Use it instead
3066         of SWI.
3067
3068 2008-09-09  Vladimir Makarov  <vmakarov@redhat.com>
3069
3070         PR rtl-optimization/37435
3071         * caller-save.c (insert_restore, insert_save): Check the mode by
3072         reg_save_code.
3073
3074 2008-09-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3075
3076         PR other/37265
3077         * dwarf2asm.c (dw2_force_const_mem): Use unstripped symbol name for
3078         splay tree lookup.
3079         (dw2_output_indirect_constant_1): Use unstripped name in symbol
3080         reference.
3081
3082 2008-09-09  Sandra Loosemore  <sandra@codesourcery.com>
3083
3084         * doc/invoke.texi (ARM Options): Correct errors in discussion
3085         of -mfloat-abi, -mhard-float, and -msoft-float.
3086
3087 2008-09-09  Jakub Jelinek  <jakub@redhat.com>
3088             Jan Hubicka  <jh@suse.cz>
3089
3090         PR middle-end/37356
3091         * tree-inline.c (copy_bb): Insert stmt into copy_basic_block before
3092         calling gimple_regimplify_operands on it.  Iterate over all newly
3093         added statements, not just the last one.
3094         (insert_init_stmt): Insert stmt into seq first, then call
3095         gimple_regimplify_operands on it.  Don't create new gimplification
3096         context, nor find referenced vars.
3097
3098 2008-09-09  Jakub Jelinek  <jakub@redhat.com>
3099
3100         PR other/37419
3101         * ipa-prop.h (ipa_propagate_indirect_call_infos): Change last argument
3102         to pointer to vector pointer.
3103         * ipa-prop.c (ipa_propagate_indirect_call_infos,
3104         propagate_info_to_inlined_callees): Likewise.
3105         (update_call_notes_after_inlining): Likewise.  Push new indirect edge
3106         to *new_edges instead of new_edges.  Reread IPA_EDGE_REF after
3107         ipa_check_create_edge_args.
3108         * ipa-inline.c (cgraph_decide_recursive_inlining): Change last
3109         argument to pointer to vector pointer.
3110         (cgraph_decide_inlining_of_small_function): Adjust
3111         cgraph_decide_recursive_inlining and ipa_propagate_indirect_call_infos
3112         calls.
3113
3114         PR target/37438
3115         * config/i386/i386.md (zero_extendqihi2_movzbl): Enable when
3116         optimizing for size, not speed.
3117
3118         PR rtl-optimization/37408
3119         * function.c (assign_parm_find_stack_rtl): Set correct MEM_SIZE
3120         if parm is promoted.
3121
3122 2008-09-09  Sebastian Pop  <sebastian.pop@amd.com>
3123
3124         PR tree-optimization/37375
3125         * tree-scalar-evolution.c (scev_info_str): Add field
3126         instantiated_below.
3127         (new_scev_info_str, eq_scev_info, find_var_scev_info,
3128         set_scalar_evolution, get_scalar_evolution, get_instantiated_value,
3129         set_instantiated_value): Pass instantiated_below.
3130         (analyze_scalar_evolution_1, analyze_scalar_evolution): Update calls
3131         to above functions.
3132         (instantiate_scev_1, instantiate_scev): Pass a basic block above which
3133         the definitions are not instantiated.
3134
3135         * tree-scalar-evolution.h (instantiate_scev): Update declaration.
3136         (block_before_loop): New.
3137         * tree-data-ref.c (dr_analyze_indices): Update uses of
3138         instantiate_scev.
3139         * graphite.c (block_before_scop): New.
3140         (loop_affine_expr, stmt_simple_for_scop_p, harmful_stmt_in_bb): Pass a
3141         basic block, not a loop for determining the parameters.
3142         (scopdet_edge_info, build_scops_1): Do not pass outermost loop in the
3143         scop.
3144         (idx_record_params, find_params_in_bb, find_scop_parameters,
3145         build_loop_iteration_domains, add_conditions_to_domain): Update calls
3146         to instantiate_scev.
3147
3148         * Makefile.in (cfgloopmanip.o): Add missing dependency on TREE_FLOW_H.
3149
3150 2008-09-09  Vladimir Makarov  <vmakarov@redhat.com>
3151
3152         PR rtl-opt/37333
3153
3154         * ira-build.c (ira_create_allocno): Setup frequency to 0.
3155
3156         * ira-color.c (update_conflict_hard_regno_costs): Remove assert.
3157         Check zero freq and increase if necessary.
3158
3159 2008-09-09  Vladimir Makarov  <vmakarov@redhat.com>
3160
3161         * ira-conflicts.c (process_regs_for_copy): Check that the hard
3162         regno is in the right range.  Add comments.
3163
3164 2008-09-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3165
3166         * Makefile.in (mips-tfile.o-warn): Don't error out on mips-tfile.c
3167         warnings.
3168         * mips-tfile.c (copy_object): Cast alloca result to int *.
3169         * mips-tdump.c (print_symbol): Cast xmalloc return values to
3170         proper types.
3171         Rename class to sclass.
3172         (read_tfile): Cast read_seek return values to proper types.
3173         Cast xcalloc return value to proper type.
3174
3175 2008-09-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3176
3177         * config/sol2.h (REGISTER_TARGET_PRAGMAS): Move ...
3178         * config/i386/sol2.h (REGISTER_SUBTARGET_PRAGMAS): ... here.
3179         * config/sparc/sol2.h (REGISTER_TARGET_PRAGMAS): ... and here.
3180
3181 2008-09-09  Jan Hubicka  <jh@suse.cz>
3182
3183         * profile.c (is_edge_inconsistent): Add debug output; ignore
3184         negative count on fake edges.
3185         (is_inconsistent): Add debug output.
3186
3187 2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
3188
3189         * haifa-sched.c (advance_one_cycle): Do not print '\n' before printing
3190         dump message.
3191         (choose_ready): When first insn is chosen from the ready list, also
3192         dump it.
3193
3194 2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
3195
3196         PR rtl-optimization/37360
3197         * haifa-sched.c (max_issue): Do not assert that we never issue more
3198         insns than issue_rate.  Add comment.
3199
3200 2008-09-09  Richard Guenther  <rguenther@suse.de>
3201
3202         * tree-cfg.c (verify_types_in_gimple_op): Remove.
3203         (verify_types_in_gimple_call): Rename to ...
3204         (verify_gimple_call): ... this.  Enhance.
3205         (verify_types_in_gimple_cond): Remove.
3206         (verify_gimple_comparison): New function ...
3207         (verify_types_in_gimple_assign): ... split out from here.
3208         (verify_types_in_gimple_return): Rename to ...
3209         (verify_gimple_return): ... this.  Enhance.
3210         (verify_types_in_gimple_switch): Rename to ...
3211         (verify_gimple_switch): ... this.  Enhance.
3212         (verify_gimple_goto): New function.
3213         (verify_types_in_gimple_phi): Rename to ...
3214         (verify_gimple_phi): ... this.  Enhance.
3215         (verify_types_in_gimple_stmt): Adjust calls to helper functions.
3216         Fold in single-statement cases from verify_types_in_gimple_seq_2.
3217         (verify_types_in_gimple_seq_2): Remove cases handled in
3218         verify_types_in_gimple_stmt.
3219
3220 2008-09-09  Bernd Schmidt  <bernd.schmidt@analog.com>
3221
3222         * config/bfin/bfin.c (n_regs_to_save): New static variable.
3223         (push_multiple_operation, pop_multiple_operation): Set it.
3224         (workaround_rts_anomaly): New function.
3225         (workaround_speculation): New function, broken out of bfin_reorg.
3226         (bfin_reorg): Call the new functions.
3227
3228 2008-09-09  Richard Guenther  <rguenther@suse.de>
3229
3230         PR middle-end/37354
3231         PR middle-end/30165
3232         * gimplify.c (gimplify_conversion): Change conversions of
3233         non-register type to VIEW_CONVERT_EXPRs.
3234         (gimplify_addr_expr): If we need to make the operand
3235         addressable make sure to use a properly initialized
3236         temporary for that so it gets a valid gimple store.
3237
3238 2008-09-09  Aldy Hernandez  <aldyh@redhat.com>
3239
3240         * function.h (struct function): Add function_start_locus.
3241         * cfgexpand.c (gimple_expand_cfg): Use it.
3242         * c-parser.c (c_parser_declaration_or_fndef): Set it.
3243
3244 2008-09-09  Richard Guenther  <rguenther@suse.de>
3245
3246         PR tree-optimization/37433
3247         * tree-ssa-ccp.c (ccp_fold): Properly guard folding of
3248         function calls.
3249
3250 2008-09-09  Richard Guenther  <rguenther@suse.de>
3251
3252         PR tree-optimization/37387
3253         * tree-ssa-ifcombine.c (ifcombine_iforif): Convert the name
3254         and bits to a common type.
3255
3256 2008-09-09  Nick Clifton  <nickc@redhat.com>
3257
3258         * config/v850/v850.md (return): Restore frame size restriction.
3259
3260 2008-09-09  Paolo Bonzini  <bonzini@gnu.org>
3261
3262         * c-common.c (c_expand_decl): Remove.
3263         * c-common.h (anon_aggr_type_p): Remove prototype.
3264         (DECL_ANON_UNION_ELEMS): Remove.
3265         * c-objc-common.h (LANG_HOOKS_EXPAND_DECL): Remove.
3266         * c-decl.c (anon_aggr_type_p): Remove.
3267         * langhooks-def.h (LANG_HOOKS_EXPAND_DECL): Remove.
3268         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_EXPAND_DECL.
3269         * langhooks.h (struct lang_hooks): Remove expand_decl.
3270         * langhooks.c (lhd_expand_decl): Remove.
3271         * stmt.c (expand_anon_union_decl): Remove.
3272         * tree.h (expand_anon_union_decl): Remove prototype.
3273
3274 2008-08-09  Andy Hutchinson  <hutchinsonandy@aim.com>
3275
3276         PR target/36609
3277         * config/avr/avr.c (avr_reorg): Create RTL for reversed compare with
3278         zero.
3279         * config/avr/avr.md  (QISI) : Define mode iterator.
3280         (negated_tst<mode>) : Redefine as split using mode macro.
3281         (reversed_tstqi): Define insn as reversed compare with zero.
3282         (reversed_tsthi): Ditto.
3283         (reversed_tstsi): Ditto.
3284
3285 2008-09-08  Jakub Jelinek  <jakub@redhat.com>
3286
3287         PR middle-end/37393
3288         * tree-inline.c (copy_bb): When replacing a gimple_call_va_arg_pack_p
3289         call stmt by new_call, clear gimple_bb on stmt after gsi_replace.
3290
3291         PR middle-end/37414
3292         * predict.c (optimize_function_for_size_p): Don't segfault if
3293         FUN is NULL.
3294         * fold-const.c (LOGICAL_OP_NON_SHORT_CIRCUIT, fold_truthop,
3295         tree_swap_operands_p): Don't test cfun != NULL before calling
3296         optimize_function_for_s*_p.
3297
3298 2008-09-08  Eric Botcazou  <ebotcazou@adacore.com>
3299
3300         * ira-color.c (ira_reuse_stack_slot): Set slot_num on success at the
3301         end of the search.
3302
3303 2008-09-08  M R Swami Reddy <MR.Swami.Reddy@nsc.com>
3304
3305         * crx/crx.h (IRA_COVER_CLASSES): Define.
3306
3307 2008-09-08  Jakub Jelinek  <jakub@redhat.com>
3308
3309         PR middle-end/37337
3310         * tree-ssa-dom.c (optimize_stmt): Call maybe_clean_or_replace_eh_stmt
3311         even when a stmt has been gimple_modified_p, but after fold_stmt is
3312         not any longer.  Remove unneeded may_have_exposed_new_symbols
3313         initializations.
3314
3315 2008-09-08  Richard Guenther  <rguenther@suse.de>
3316
3317         PR tree-optimization/37421
3318         * tree-ssa-sccvn.c (visit_copy): Make sure to fully
3319         valueize the RHS.
3320
3321 2008-09-08  Jakub Jelinek  <jakub@redhat.com>
3322
3323         PR middle-end/37415
3324         * opts.c (common_handle_option): Handle OPT_ftree_store_ccp.
3325
3326 2008-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3327
3328         PR driver/37409
3329         * pa-hpux.h (LINK_SPEC): Strip -fwhole-program.
3330         * pa-hpux10.h (LINK_SPEC): Likewise.
3331         * pa-hpux11.h (LINK_SPEC): Likewise.
3332
3333 2008-09-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3334
3335         * pa32-regs.h (IRA_COVER_CLASSES): Define.
3336         * pa64-regs.h (IRA_COVER_CLASSES): Define.
3337
3338 2008-09-07  Helge Deller  <deller@gmx.de>
3339
3340         * pa/linux-atomic.c: New file.
3341         * pa/t-linux (LIB2FUNCS_STATIC_EXTRA): Define.
3342         * pa/t-linux64 (LIB2FUNCS_STATIC_EXTRA): Define.
3343
3344 2008-09-07  Richard Guenther  <rguenther@suse.de>
3345             Ira Rosen  <irar@il.ibm.com>
3346
3347         PR tree-optimization/36630
3348         * tree-vect-transform.c (vect_update_ivs_after_vectorizer):
3349         Call STRIP_NOPS before calling evolution_part_in_loop_num.
3350
3351 2008-09-07  Dorit Nuzman  <dorit@il.ibm.com>
3352             Ira Rosen  <irar@il.ibm.com>
3353
3354         PR tree-optimization/35642
3355         * config/rs6000/altivec.md (mulv8hi3): Implement.
3356
3357 2008-09-06  Jeff Law <law@redhat.com>
3358
3359         * h8300/h8300.h (IRA_COVER_CLASSES): Define.
3360
3361 2008-09-06  Jan Hubicka  <jh@suse.cz>
3362
3363         PR tree-optimization/14703
3364         * tree-ssa-live.c (remove_unused_scope_block_p): Remove ignored
3365         declarations.
3366         * passes.c (init_optimization_passes): Recompute inline parameters.
3367
3368 2008-09-06  Richard Sandiford  <rdsandiford@googlemail.com>
3369
3370         * config/mips/mips.c (mips_function_ok_for_sibcall): Check for
3371         DECL being null.
3372
3373 2008-09-06  Richard Sandiford  <rdsandiford@goolemail.com>
3374             Peter Fuerst  <post@pfrst.de>
3375
3376         * doc/invoke.texi: Document -mr10k-cache-barrier=.
3377         * doc/extend.texi: Document __builtin_mips_cache.
3378         * config/mips/mips-ftypes.def: Add a (VOID, SI, CVPOINTER) entry.
3379         * config/mips/mips.opt (mr10k-cache-barrier=): New option.
3380         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
3381         __GCC_HAVE_BUILTIN_MIPS_CACHE.
3382         (TARGET_CACHE_BUILTIN, ISA_HAS_CACHE): New macros.
3383         * config/mips/mips.c (mips_r10k_cache_barrier_setting): New enum.
3384         (set_push_mips_isas): New variable.
3385         (mips_r10k_cache_barrier): New variable.
3386         (cache): New availability predicate.
3387         (mips_builtins): Add an entry for __builtin_mips_cache.
3388         (mips_build_cvpointer_type): New function.
3389         (MIPS_ATYPE_CVPOINTER): New macro.
3390         (mips_prepare_builtin_arg): Only use the insn's mode if the rtx's
3391         mode is VOIDmode.
3392         (r10k_simplified_address_p, r10k_simplify_address)
3393         (r10k_uncached_address_p, r10k_safe_address_p)
3394         (r10k_needs_protection_p_1, r10k_needs_protection_p_store)
3395         (r10k_needs_protection_p_call, r10k_needs_protection_p)
3396         (r10k_insert_cache_barriers): New functions.
3397         (mips_reorg_process_insns): Delete cache barriers after a
3398         branch-likely instruction.
3399         (mips_reorg): Call r10k_insert_cache_barriers.
3400         (mips_handle_option): Handle OPT_mr10k_cache_barrier_.
3401         * config/mips/mips.md (UNSPEC_MIPS_CACHE): New constant.
3402         (UNSPEC_R10K_CACHE_BARRIER): Likewise.
3403         (mips_cache, r10k_cache_barrier): New define_insns.
3404
3405 2008-09-06  Richard Sandiford  <rdsandiford@googlemail.com>
3406
3407         * ira-int.h (ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete.
3408         * ira-color.c (setup_allocno_left_conflicts_num): Use
3409         hard_reg_set_equal_p instead of a comparison with
3410         ira_zero_hard_reg_set.
3411         * ira.c (setup_reg_subclasses): Likewise.
3412         (setup_cover_and_important_classes): Likewise.
3413         (setup_class_translate): Likewise.
3414         (setup_reg_class_intersect_union): Likewise.
3415         (ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete.
3416         (ira_init_once): Don't initialize them.
3417
3418 2008-09-05  Vladimir Makarov  <vmakarov@redhat.com>
3419
3420         * doc/tm.texi (IRA_COVER_CLASSES): Fix a typo.
3421
3422 2008-09-05  Vladimir Makarov  <vmakarov@redhat.com>
3423
3424         * ira-color.c (ira_fast_allocation): Permit global allocno allocation.
3425
3426 2008-09-05  Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
3427
3428         Improved branch hints, safe hints, and scheduling.
3429
3430         * haifa-sched.c (sched_emit_insn) : Define.
3431         * sched-int.h (sched_emit_insn) : Add prototype.
3432         * doc/invoke.texi (-mdual-nops, -mhint-max-nops,
3433         -mhint-max-distance -msafe-hints) : Document.
3434         * config/spu/spu.c (spu_flag_var_tracking): New.
3435         (TARGET_SCHED_INIT_GLOBAL, TARGET_SCHED_INIT,
3436         TARGET_SCHED_REORDER, TARGET_SCHED_REORDER2,
3437         TARGET_ASM_FILE_START): Define.
3438         (TARGET_SCHED_ADJUST_PRIORITY): Remove.
3439         (STOP_HINT_P, HINTED_P, SCHED_ON_EVEN_P): Define.
3440         (spu_emit_branch_hint): Add blocks argument.
3441         (insert_branch_hints, insert_nops): Remove.
3442         (pad_bb, insert_hbrp_for_ilb_runout, insert_hbrp, in_spu_reorg,
3443         uses_ls_unit, spu_sched_init_global, spu_sched_init,
3444         spu_sched_reorder, asm_file_start): New functions.
3445         (clock_var, spu_sched_length, pipe0_clock,
3446         pipe1_clock, prev_clock_var, prev_priority,
3447         spu_ls_first, prev_ls_clock): New static variables.
3448         * config/spu/spu.h (TARGET_DEFAULT): Add MASK_SAFE_HINTS.
3449         * config/spu.md (iprefetch): Add operand, make it clobber MEM.
3450         (nopn_nv): Add a non-volatile version of nop.
3451         * config/spu/spu.opt (-mdual-nops, -mhint-max-nops,
3452         -mhint-max-distance, -msafe-hints): New options.
3453
3454 2008-09-05  Janis Johnson  <janis187@us.ibm.com>
3455             Samuel Tardieu  <sam@rfc1149.net>
3456
3457         * opts.c (decode_options): Combine nested if statements.
3458
3459         PR target/37283
3460         * opts.c (decode_options): Handle more relationships among
3461         unit-at-a-time, toplevel-reorder, and section-anchors.
3462
3463 2008-09-05  David Daney  <ddaney@avtrex.com>
3464
3465         * doc/install.texi (--enable-reduced-reflection): Document new option.
3466
3467 2008-09-05  Bob Wilson  <bob.wilson@acm.org>
3468
3469         * config/xtensa/predicates.md (nonimmed_operand, mem_operand): Use
3470         constantpool_mem_p.
3471         (constantpool_operand): New.
3472         (move_operand): Disallow sub-word modes for the constant pool.
3473         * config/xtensa/xtensa.c (TARGET_SECONDARY_RELOAD): Define.
3474         (xtensa_secondary_reload_class): Replace with....
3475         (xtensa_secondary_reload): this function.  Remove SIGN_EXTEND check.
3476         Set icode for sub-word reloads from the constant pool.
3477         * config/xtensa/xtensa.h (SECONDARY_INPUT_RELOAD_CLASS): Delete.
3478         (SECONDARY_OUTPUT_RELOAD_CLASS): Delete.
3479         * config/xtensa/xtensa.md (reload<mode>_literal): New.
3480         * config/xtensa/xtensa-protos.h: Update prototypes.
3481
3482 2008-09-05  Joseph Myers  <joseph@codesourcery.com>
3483
3484         * config/mips/mips.h (enum reg_class): Add FRAME_REGS.
3485         (REG_CLASS_NAMES): Update.
3486         (REG_CLASS_CONTENTS): Update.
3487         * config/mips/mips.c (mips_regno_to_class): Use FRAME_REGS instead
3488         of ALL_REGS for regs 77 and 78.
3489         * function.c (instantiate_virtual_regs_in_insn): Assert that
3490         return value of simplify_gen_subreg is not NULL.
3491
3492 2008-09-05  Paolo Bonzini  <bonzini@gnu.org>
3493
3494         * emit-rtl.c (gen_rtvec): Rewrite not using gen_rtvec_v.
3495         (gen_rtvec_v): Fix coding standards.
3496
3497 2008-09-04  Jan Hubicka  <jh@suse.cz>
3498
3499         * i386.c (decide_alg): Be more conservative about optimizing for size.
3500
3501 2008-09-04  Ian Lance Taylor  <iant@google.com>
3502
3503         * varasm.c (narrowing_initializer_constant_valid_p): New
3504         static function.
3505         (initializer_constant_valid_p): Call it.
3506
3507 2008-09-04  Jeff Law  <law@redhat.com>
3508
3509         * fold-const.c (native_encode_real): Fix computation of WORDS.
3510         (native_interpret_real): Likewise.
3511
3512 2008-09-04  Janis Johnson  <janis187@us.ibm.com>
3513
3514         * config/rs6000/t-rs6000: Remove target gt-rs6000.h.
3515
3516 2008-09-04  Vladimir Makarov  <vmakarov@redhat.com>
3517
3518         * ira-conflicts.c (process_regs_for_copy): Check insn to check
3519         that the cost is already taken into account in ira-costs.c
3520
3521         * ira-int.h (ira_debug_copy, ira_debug_copies): New.
3522
3523         * ira-build.c (print_copy, print_copies, ira_debug_copy,
3524         ira_debug_copies): New.
3525         (ira_bulid): Call print_copies.
3526
3527         * doc/tm.texi (IRA_COVER_CLASSES): Fix the description.
3528
3529 2008-09-04  Samuel Tardieu  <sam@rfc1149.net>
3530
3531         PR target/32783
3532         * config/rs6000/rs6000.c (optimization_options): Remove check of
3533         flag_toplevel_order.
3534
3535 2008-09-04  Adam Nemet  <anemet@caviumnetworks.com>
3536
3537         * config/mips/mips.h (ISA_HAS_SEQ_SNE): New macro.
3538         * config/mips/mips.c (mips_expand_scc): Also expand seq and sne if
3539         second operand is a reg_imm10_operand.
3540         * config/mips/mips.md (*seq_<GPR:mode><GPR2:mode>_seq,
3541         *sne_<GPR:mode><GPR2:mode>_sne): New patterns.
3542         (*seq_<GPR:mode><GPR2:mode>): Rename to
3543         *seq_zero_<GPR:mode><GPR2:mode>.  Don't match if
3544         ISA_HAS_SEQ_SNE.
3545         (*seq_<GPR:mode><GPR2:mode>_mips16): Rename to
3546         *seq_zero_<GPR:mode><GPR2:mode>_mip16.  Don't match if
3547         ISA_HAS_SEQ_SNE.
3548         (*sne_<GPR:mode><GPR2:mode>): Rename to
3549         *sne_zero_<GPR:mode><GPR2:mode>.  Don't match if
3550         ISA_HAS_SEQ_SNE.
3551
3552 2008-09-04  Adam Nemet  <anemet@caviumnetworks.com>
3553
3554         * config/mips/mips.h (ISA_HAS_EXTS): New macro.
3555         * config/mips/mips.md (*ashr_trunc<mode>): Name the pattern
3556         combining an arithmetic right shift by more than 31 and a
3557         trunction.  Don't match for out-of-range shift amounts.  Set
3558         attribute mode to <MODE>.
3559         (*lshr32_trunc<mode>): Name the pattern combining a logical right
3560         shift by 32 and and a truncation.  Set attribute mode to <MODE>.
3561         (*<optab>_trunc<mode>_exts): New pattern for truncated right
3562         shifts by less than 32.
3563         (extv): Change predicate on first operand to accept registers.
3564         Change predicate of the other operands from immediate_operand to
3565         const_int_operand.  Expand exts when source is a register.
3566         (extzv): Change predicate of the constant operands from
3567         immediate_operand to const_int_operand.
3568         (extzv<mode>): Change predicate of the constant operands from
3569         immediate_operand to const_int_operand and no constraint. Also
3570         remove mode.
3571         (*extzv_trunc<mode>_exts): New pattern.
3572
3573 2008-09-04  Adam Nemet  <anemet@caviumnetworks.com>
3574
3575         * config/mips/mips.h (ISA_HAS_CINS): New macro.
3576         * config/mips/mips-protos.h (mask_low_and_shift_p,
3577         mask_low_and_shift_len): Declare.
3578         * config/mips/mips.c (mask_low_and_shift_p,
3579         mask_low_and_shift_len): New functions.
3580         (mips_print_operand): Handle new operand prefix "m".
3581         * config/mips/mips.md (*cins<mode>): New pattern.
3582
3583 2008-09-04  Bernd Schmidt  <bernd.schmidt@analog.com>
3584
3585         * config/bfin/bfin.c (gen_one_bundle): Don't create new nops when
3586         optimizing for size.
3587
3588 2008-09-04  Richard Sandiford  <rdsandiford@googlemail.com>
3589
3590         * df-scan.c (df_get_entry_block_def_set): Add STACK_POINTER_REGNUM
3591         regardless of epilogue_completed.
3592
3593 2008-09-04  Vladimir Makarov  <vmakarov@redhat.com>
3594
3595         PR middle-end/37359
3596         * ira-lives.c (process_bb_node_lives): Check setjmp.
3597
3598 2008-09-04  Richard Sandiford  <rdsandiford@googlemail.com>
3599
3600         PR middle-end/37243
3601         * ira-build.c (form_loop_tree): Reverse BB walk.
3602         (create_bb_allocnos): Likewise.
3603         * ira-lives.c (make_regno_born_and_dead, regs_set): Delete.
3604         (mark_reg_store): Rename to...
3605         (mark_ref_live): ...this and take a df_ref argument instead of
3606         note_stores arguments.  Assert that we have a register.
3607         (mark_reg_clobber): Delete.
3608         (def_conflicts_with_inputs_p): New function.
3609         (mark_reg_conflicts): Delete.
3610         (mark_reg_death): Rename to...
3611         (mark_ref_dead): ...this and take a df_ref argument instead of
3612         a register.  Assert that we have a register.
3613         (process_bb_node_lives): Hoist frequency calculation out of
3614         instruction walk.  Convert from a forwards scan to a backwards scan.
3615         Use DF_REF_USES and DF_REF_DEFS instead of register notes and
3616         note_stores.  Remove EH_RETURN_DATA_REGNO and regs_set handling.
3617         (create_allocno_live_ranges): Don't create regs_set.
3618
3619 2008-09-04  Ian Lance Taylor  <iant@google.com>
3620
3621         * rtl.h (LABEL_REF_NONLOCAL_P): Don't check for REG_LABEL_OPERAND
3622         or REG_LABEL_TARGET.
3623         * calls.c (emit_library_call_value_1): Use MEM_P rather than
3624         comparing MODE with MEM.
3625         * gimple.c (gimple_build_predict): Cast END_PREDICTORS before
3626         comparing with GF_PREDICT_TAKEN.
3627         (gimple_get_lhs): Change code to enum gimple_code.
3628         (gimple_set_lhs): Likewise.
3629         * ifcvt.c (noce_process_if_block): Correct GET_MODE to GET_CODE.
3630         * omp-low.c (find_omp_clause): Change kind parameter to enum
3631         omp_clause_code.
3632         * tree-flow.h (find_omp_clause): Update declaration.
3633         * regrename.c (clear_dead_regs): Change kind parameter to enum
3634         reg_note.
3635         * reload1.c (eliminate_regs_1): Use REG_NOTE_KIND rather than
3636         GET_MODE.
3637         * see.c (see_get_extension_data): Change return type to enum
3638         entry_type.  Change UNKNOWN to NOT_RELEVANT, SIGN_EXTEND to
3639         SIGNED_EXTENDED_DEF, ZERO_EXTEND to ZERO_EXTENDED_DEF.
3640         (see_gen_normalized_extension): Change extension_code parameter to
3641         enum entry_type.
3642         (see_seek_pre_extension_expr): Change extension_code to enum
3643         entry_type.
3644         (see_merge_one_def_extension): Likewise.
3645         (see_handle_relevant_defs): Likewise.
3646         (see_handle_relevant_uses): Likewise.
3647         (see_analyze_one_def): Likewise.
3648         * tree-cfg.c (need_fake_edge_p): Compare gimple code with
3649         GIMPLE_ASM rather than ASM_EXPR.
3650         * tree-ssa-alias.c (is_escape_site): Compare gimple code with
3651         GIMPLE_RETURN rather than RETURN_EXPR.
3652         * tree-ssa-ccp.c (likely_value): Change code to enum gimple_code.
3653         (evaluate_stmt): Likewise.
3654         * tree-vect-analyze.c (vect_analyze_operations): Change relevance
3655         to enum vect_relevant.
3656         (vect_mark_stmts_to_be_vectorized): Change assertion to not
3657         compare gimple codes with tree codes.
3658
3659 2008-09-04  Paul Brook  <paul@codesourcery.com>
3660
3661         * config/arm/arm.c (arm_size_rtx_costs): Call cost function.
3662
3663 2008-09-04  Bernd Schmidt  <bernd.schmidt@analog.com>
3664
3665         * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Restore a null
3666         pointer check lost in the recent no-unit-at-a-time patch.
3667
3668 2008-09-04  Jan Hubicka  <jh@suse.cz>
3669
3670         PR middle-end/37343
3671         * tree-switch-conversion.c (check_final_bb): Accept only IP
3672         invariants.
3673
3674 2008-09-04  Jan Hubicka  <jh@suse.cz>
3675
3676         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
3677         Break out from ...
3678         (vrp_evaluate_conditional_warnv_with_ops): ... this one.  Add
3679         using_ranges argument.
3680         (vrp_evaluate_conditional): Avoid bogus warning for type range.
3681         (vrp_visit_cond_stmt): Update call of
3682         vrp_evaluate_conditional_warnv_with_ops
3683
3684 2008-09-04  Jan Hubicka  <jh@suse.cz>
3685
3686         PR tree-optimization/37345
3687         PR tree-optimization/37358
3688         PR tree-optimization/37357
3689         * tree.c (build_function_type_skip_args): Build distinct type copy;
3690         set TYPE_CONTEXT.
3691         (build_function_decl_skip_args): Set type of new decl not orig decl;
3692         clear DECL_VINDEX for methods turned into functions.
3693
3694 2008-09-04  Nick Clifton  <nickc@redhat.com>
3695
3696         * configure.ac (HAVE_GAS_LCOMM_WITH_ALIGNMENT): New assembler check.
3697         * configure: Regenerate.
3698         * config.in: Regenerate.
3699         * config/i386/bsd.h (ASM_OUTPUT_ALIGNED_LOCAL): Use .lcomm with an
3700         alignment field, if it is supported.
3701
3702 2008-09-04  Kai Tietz  <kai.tietz@onevision.com>
3703
3704         * config/i386/t-mingw32 (SHLIB_LC): Change order of import
3705         libraries.
3706
3707 2008-09-03  David Edelsohn  <edelsohn@gnu.org>
3708
3709         * config/rs6000/rs6000.c (processor_target_table): Do not
3710         enable VMX for POWER6.
3711
3712 2008-09-03  Anton Blanchard  <anton@samba.org>
3713
3714         * config/rs6000/rs6000.c (rs6000_split_lock_test_and_set): Do not
3715         emit memory barrier before operation.
3716
3717 2008-09-03  John David Anglin  <dave.anglin@nrc.cnrc.gc.ca>
3718
3719         PR testsuite/37325
3720         * config/pa/pa64-hpux.h (ASM_OUTPUT_EXTERNAL_REAL): Call
3721         default_elf_asm_output_external.
3722
3723 2008-09-03  Jeff Law  <law@redhat.com>
3724
3725         * h8300.c (expand_a_shift): Avoid invalid RTL sharing.
3726
3727 2008-09-03  Richard Henderson  <rth@redhat.com>
3728
3729         * config/alpha/alpha.c (alpha_split_lock_test_and_set): Move
3730         memory barrier to below the test-and-set.
3731         (alpha_split_lock_test_and_set_12): Likewise.
3732
3733 2008-09-03  Vladimir Makarov  <vmakarov@redhat.com>
3734
3735         PR rtl-opt/37243
3736
3737         * ira-int.h (ira_loop_tree_node): Rename mentioned_allocnos to
3738         all_allocnos.
3739
3740         * ira-color.c (print_loop_title): Use all_allocnos.
3741         (color_pass): Ditto.  Don't add border_allocnos.  Check that
3742         subloop allocno in the correspdoning bitmap all_allocnos.
3743
3744         * ira-emit.c (change_loop): Use all_allocnos.
3745
3746         * ira-build.c (create_loop_tree_nodes, finish_loop_tree_node): Ditto.
3747         (ira_create_allocno): Set up all_allocnos bit for the created allocno.
3748         (create_cap_allocno): Remove setting mentioned_allocnos.
3749         (create_insn_allocnos): Ditto.
3750         (remove_unnecessary_allocnos): Use all_allocnos.
3751         (check_allocno_creation): Check that allocnos are in the
3752         corresponding bitmap all_allocnos.
3753
3754 2008-09-03  Vladimir Makarov  <vmakarov@redhat.com>
3755
3756         PR rtl-opt/37243
3757
3758         * ira-conflicts.c (REG_SUBREG_P, go_through_subreg): New.
3759         (process_regs_for_copy): Process subregs.  Refine check when cost
3760         is taken into account in ira-costs.c.
3761         (process_reg_shuffles): Use REG_SUBREG_P.
3762         (add_insn_allocno_copies): Ditto.  Ignore modes.
3763
3764         * ira-color.c (conflict_allocno_vec): New.
3765         (COST_HOP_DIVISOR): New macro.
3766         (update_copy_costs_1): Use it.
3767         (update_conflict_hard_regno_costs): New function.
3768         (assign_hard_reg): Use it.
3769         (ira_color): Allocate and free conflict_allocno_vec.
3770
3771 2008-09-03  Vladimir Makarov  <vmakarov@redhat.com>
3772
3773         PR rtl-opt/37296
3774
3775         * ira-int.h (ira_sort_insn_chain): Remove.
3776
3777         * ira.c (basic_block_order_nums, chain_insn_order,
3778         chain_freq_compare, chain_bb_compare, ira_sort_insn_chain): Remove.
3779         (ira): Don't call ira_sort_insn_chain.
3780
3781         * reload1.c (reload): Don't call ira_sort_insn_chain.
3782
3783 2008-09-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3784
3785         PR middle-end/37293
3786         * cgraphunit.c (update_call_expr): Remove eh regions from statements
3787         which become non throw.
3788         (cgraph_function_versioning): Also clear DECL_WEAK.  Call
3789         update_call_expr after updating the flags on the decl.
3790
3791 2008-09-03  Jan Hubicka  <jh@suse.cz>
3792
3793         PR tree-optimization/37315
3794         * cgraph.c (cgraph_create_edge): Use gimple_has_body_p.
3795         * cgraphunit.c (verify_cgraph_node): drop gimple_body check.
3796         (cgraph_analyze_functions): Use node->analyzed
3797         (cgraph_mark_functions_to_output): Likewise.
3798         (cgraph_expand_function): All functions can be released after
3799         expanding.
3800         (cgraph_optimize): Use gimple_has_body_p.
3801         * ipa-inline.c (cgraph_clone_inlined_nodes): Use analyzed flag.
3802         (cgraph_decide_inlining_incrementally): Likewise.
3803         (inline_transform): Inline transform.
3804         * tree-inline.c (initialize_cfun): Do now shallow copy structure;
3805         copy fields needed.
3806         (inlinable_function_p): Drop gimple_body check.
3807         (expand_call_inline): Use gimple_has_body_p.
3808         * gimple.c (gimple_has_body_p): New.
3809         * gimple.h (gimple_has_body_p): Add prototype.
3810         * tree-cfg.c (execute_build_cfg): Remove gimple_body.
3811         (dump_function_to_file): Use gimple_has_body_p check.
3812
3813 2008-09-03  Jakub Jelinek  <jakub@redhat.com>
3814
3815         PR c++/37346
3816         * gimple.h (gimple_has_substatements): GIMPLE_OMP_CRITICAL has
3817         substatements.
3818         * tree-inline.c (remap_gimple_stmt): Handle GIMPLE_OMP_CRITICAL.
3819
3820 2008-09-03  Bernd Schmidt  <bernd.schmidt@analog.com>
3821
3822         From Michael Frysinger  <michael.frysinger@analog.com>
3823         * config/bfin/bfin.c (bfin_cpus[]): Add 0.1 for bf522, bf523, bf524,
3824         bf525, bf526, bf527, bf542, bf544, bf547, bf548, and bf549.  Add 0.2
3825         for bf538.
3826
3827 2008-09-03  Hari Sandanagobalane  <hariharan@picochip.com>
3828
3829         Add picoChip port.
3830         * doc/extend.texi: Document picoChip builtin functions.
3831         * doc/invoke.texi: Document picoChip options.
3832         * doc/contrib.texi: Add picoChip contribution.
3833         * doc/md.texi: Document picoChip constraints.
3834         * config.gcc: Add picochip-*-*.
3835         * config/picochip/: Add new port.
3836
3837 2008-09-03  Richard Guenther  <rguenther@suse.de>
3838
3839         PR tree-optimization/37328
3840         * tree-sra.c (sra_build_assignment): Gimplify properly.
3841         (generate_copy_inout): Take the correct stmt as definition,
3842         remove bogus assert.
3843
3844 2008-09-03  Bernd Schmidt  <bernd.schmidt@analog.com>
3845
3846         * config/bfin/bfin.c (bfin_expand_prologue): Honour no_stack_limit
3847         attributes.
3848
3849         From Michael Frysinger  <michael.frysinger@analog.com>
3850         * config/bfin/bfin.c (bfin_handle_option): Remove BF561 warning.
3851
3852 2008-09-03 Danny Smith  <dannysmith@usrs.sourceforge.net>
3853
3854         * gthr-win32.h (CONST_CAST2): Really make sure CONST_CAST2 is defined.
3855         (__gthread_setspecific): Revert 2008-08-31 change to
3856         __GTHREAD_HIDE_W32API case.  Apply it to !__GTHREAD_HIDE_W32API case.
3857
3858 2008-09-02  Aldy Hernandez  <aldyh@redhat.com>
3859
3860         * diagnostic.c (error_at): New.
3861         * toplev.h (error_at): New prototype.
3862         * c-typeck.c (build_array_ref): Call error_at instead of error.
3863         Pass location to pedwarn.
3864
3865 2008-09-02  Adam Nemet  <anemet@caviumnetworks.com>
3866
3867         * sel-sched.c (sel_hard_regno_rename_ok): Mark arguments unused.
3868
3869 2008-09-02  Jakub Jelinek  <jakub@redhat.com>
3870
3871         * dwarf2out.c (tree_add_const_value_attribute): Only handle
3872         VAR_DECL and CONST_DECL.
3873
3874 2008-09-02  H.J. Lu  <hongjiu.lu@intel.com>
3875             Jakub Jelinek  <jakub@redhat.com>
3876
3877         * config/i386/i386.c (X86_64_VARARGS_SIZE): Removed.
3878         (setup_incoming_varargs_64): Assume cum != NULL. Set/check
3879         ix86_varargs_gpr_size and ix86_varargs_fpr_size.  Use
3880         ix86_varargs_gpr_size instead of X86_64_REGPARM_MAX.
3881         Don't set ix86_save_varrargs_registers.
3882         (ix86_setup_incoming_varargs): Assume cum != NULL.
3883         (ix86_va_start): Check ix86_varargs_gpr_size and
3884         ix86_varargs_fpr_size instead of cfun->va_list_gpr_size and
3885         cfun->va_list_fpr_size, respectively.  Subtract 8*X86_64_REGPARM_MAX
3886         from frame pointer if ix86_varargs_gpr_size == 0.
3887         (ix86_compute_frame_layout): Updated.
3888         * config/i386/i386.h (ix86_save_varrargs_registers): Removed.
3889         (ix86_varargs_gpr_size): Define.
3890         (ix86_varargs_fpr_size): Likewise.
3891         (machine_function): Remove save_varrargs_registers.
3892         Add varargs_gpr_size and varargs_fpr_size.
3893
3894 2008-09-02  Jakub Jelinek  <jakub@redhat.com>
3895
3896         * config/alpha/alpha.c (va_list_skip_additions,
3897         alpha_stdarg_optimize_hook, alpha_gimplify_va_arg_1): Tuplify.
3898         (alpha_gimplify_va_arg): Call unshare_expr on second use of
3899         offset_field.
3900
3901         PR tree-optimization/36766
3902         * tree-cfg.c (gimple_purge_all_dead_eh_edges): Do nothing
3903         for already removed basic blocks.
3904
3905         PR target/36332
3906         * real.c (real_maxval): Clear a lower bit to make real_maxval
3907         match get_max_float for IBM long double format.
3908
3909 2008-09-02  Andreas Schwab  <schwab@suse.de>
3910
3911         * configure.ac: Use m4_quote to quote the expansion of m4_do.
3912         * configure: Regenerate.
3913
3914 2008-09-02  Richard Sandiford  <rdsandiford@googlemail.com>
3915
3916         * simplify-rtx.c (simplify_binary_operation_1): Check for CONST,
3917         SYMBOL_REF and LABEL_REF when applying plus_constant, instead of
3918         checking for a non-VOID CONSTANT_P.
3919
3920 2008-09-02  Jan Hubicka  <jh@suse.cz>
3921
3922         * predict.c (pass_strip_predict_hints): Avoid bugs dump file.
3923         * expmed.c (expand_divmod): Fix test of smod_pow2_cheap and
3924         sdiv_pow2_cheap
3925
3926 2008-09-02  H.J. Lu  <hongjiu.lu@intel.com>
3927
3928         * expr.c (emit_group_store): Don't assert stack temp mode size.
3929
3930 2008-09-02  Sebastian Pop  <sebastian.pop@amd.com>
3931             Tobias Grosser  <grosser@fim.uni-passau.de>
3932             Jan Sjodin  <jan.sjodin@amd.com>
3933             Harsha Jagasia  <harsha.jagasia@amd.com>
3934             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
3935             Konrad Trifunovic  <konrad.trifunovic@inria.fr>
3936             Adrien Eliche  <aeliche@isty.uvsq.fr>
3937
3938         Merge from graphite branch.
3939         * graphite.c: New.
3940         * graphite.h: New.
3941         * tree-loop-linear.c (perfect_loop_nest_depth): Export.
3942         * doc/invoke.texi (-floop-block, -floop-interchange,
3943         -floop-strip-mine): Document new flags.
3944         * tree-into-ssa.c (gimple_vec): Moved...
3945         * tree-loop-distribution.c (rdg_component): Moved...
3946         * cfgloopmanip.c: Include tree-flow.h.
3947         (update_dominators_in_loop): New.
3948         (create_empty_if_region_on_edge): New.
3949         (create_empty_loop_on_edge): New.
3950         (loopify): Use update_dominators_in_loop.
3951         * tree-pass.h (pass_graphite_transforms): Declared.
3952         * configure: Regenerate.
3953         * tree-phinodes.c (make_phi_node): Export.
3954         (add_phi_node_to_bb): New, split from create_phi_node.
3955         * tree-chrec.c (for_each_scev_op): New.
3956         * tree-chrec.h (for_each_scev_op): Declared.
3957         * tree-ssa-loop-ivopts.c (get_phi_with_result): New.
3958         (remove_statement): Call get_phi_with_result.
3959         * config.in (HAVE_cloog): Undef.
3960         * gdbinit.in (pgg): New.
3961         * timevar.def (TV_GRAPHITE_TRANSFORMS): New.
3962         * tree-ssa-loop.c (graphite_transforms): New.
3963         (gate_graphite_transforms): New.
3964         (pass_graphite_transforms): New.
3965         * configure.ac (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC,
3966         HAVE_cloog): Defined.
3967         * tree-vectorizer.c (rename_variables_in_bb): Export.
3968         * tree-data-ref.c (dr_may_alias_p): Export.
3969         (stmt_simple_memref_p): New.
3970         (find_data_references_in_stmt): Export.
3971         (find_data_references_in_loop): Export.
3972         (create_rdg_edge_for_ddr): Initialize RDGE_RELATION.
3973         (create_rdg_edges_for_scalar): Initialize RDGE_RELATION.
3974         (create_rdg_vertices): Export.
3975         (build_empty_rdg): New.
3976         (build_rdg): Call build_empty_rdg.  Free dependence_relations.
3977         * tree-data-ref.h (rdg_component): ... here.
3978         (scop_p): New.
3979         (struct data_reference): Add a field scop.
3980         (DR_SCOP): New.
3981         (find_data_references_in_loop): Declared.
3982         (find_data_references_in_stmt): Declared.
3983         (create_rdg_vertices): Declared.
3984         (dr_may_alias_p): Declared.
3985         (stmt_simple_memref_p): Declared.
3986         (struct rdg_edge): Add a field ddr_p relation.
3987         (build_empty_rdg): Declared.
3988         * lambda.h (lambda_matrix): Declare a VEC of.
3989         (find_induction_var_from_exit_cond): Declared.
3990         (lambda_vector_compare): New.
3991         * common.opt (fgraphite, floop-strip-mine,
3992         floop-interchange, floop-block): New flags.
3993         * lambda-code.c (find_induction_var_from_exit_cond): Export.
3994         * cfgloop.c (is_loop_exit): New.
3995         * cfgloop.h (is_loop_exit): Declared.
3996         (create_empty_if_region_on_edge): Declared.
3997         (create_empty_loop_on_edge): Declared.
3998         * tree-flow.h (add_phi_node_to_bb): Declared.
3999         (make_phi_node): Declared.
4000         (rename_variables_in_bb): Declared.
4001         (perfect_loop_nest_depth): Declared.
4002         (graphite_transform_loops): Declared.
4003         * Makefile.in (cfgloopmanip.o): Depend on TREE_FLOW_H.
4004         (graphite.o-warn): Add -Wno-error.
4005         (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC): Declared.
4006         (LIBS): Add GMPLIBS, CLOOGLIBS, PPLLIBS.
4007         (INCLUDES): Add PPLINC, CLOOGINC.
4008         (OBJS-common): Add graphite.o.
4009         (graphite.o): Add rule.
4010         * gimple.h (gimple_vec): ... here.
4011         * tree-cfg.c (print_loops): Start printing at ENTRY_BLOCK_PTR.
4012         * passes.c (init_optimization_passes): Schedule
4013         pass_graphite_transforms.