OSDN Git Service

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