OSDN Git Service

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