OSDN Git Service

* config/i386/cpuid.h (__cpuid_count): New defines.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-10-11  Uros Bizjak  <ubizjak@gmail.com>
2             Andi Kleen  <ak@linux.intel.com>
3
4         * config/i386/cpuid.h (__cpuid_count): New defines.
5         * config/i386/driver-i386.c (struct cache_desc): New structure.
6         (describe_cache): Use struct cache_desc to pass cache descriptions.
7         (detect_l2_cache): Ditto. Rename from decode_l2_cache.
8         (detect_caches_amd): Use struct cache_desc to describe caches.
9         (decode_caches_intel): Use struct cache_desc to pass cache
10         descriptions.  Update descriptions to match latest (rev -032,
11         December 2007) CPUID documentation.  Do not check valid bit here.
12         Check for Xeon MP value 0x49 problems.
13         (detect_caches_cpuid2): New function, split from detect_caches_intel.
14         Check valid bit before calling decode_caches_intel.  Detect number
15         of times to repeat CPUID instruction.
16         (detect_caches_cpuid4): New function.
17         (detect_caches_intel): Depending on max_level, call
18         detect_caches_cpuid2 or detect_caches_cpuid4.  Call detect_l2_cache
19         only when other methods fail to provide valid L2 cache description.
20
21 2008-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22
23         PR middle-end/37608
24         * pa.md (call, call_value): Generate an rtx for register r4 and pass
25         it to PIC call patterns.
26         (call_symref_pic): Revise pattern to expose PIC register save.  Remove
27         code generation and attributes from pattern.  Change peephole2 to split
28         for noreturn case.  Revise split pattern for non noreturn case.
29         (call_symref_64bit, call_reg_pic, call_reg_64bit, call_val_symref_pic,
30         call_val_symref_64bit, call_val_reg_pic, call_val_reg_64bit): Likewise.
31         * pa.c (attr_length_call): Simplify extraction of call rtx.  Add some
32         asserts.
33
34 2008-10-11  David Edelsohn  <edelsohn@gnu.org>
35
36         * config/rs6000/rs6000.md (aux_truncdfsf2): Remove TARGET_SINGLE_FLOAT.
37         (addsf3, subsf3, mulsf3 ! TARGET_POWERPC): Remove TARGET_SINGLE_FLOAT
38         and fp_type.
39         (divdf3): Reformat long line.
40
41 2008-10-11  Michael J. Eager  <eager@eagercon.com>
42
43         * config/rs6000/rs6000.c (rs6000_parse_fpu_option): Interpret
44         -mfpu options.
45         (rs6000_handle_option): Process -mfpu options.
46         * config/rs6000/rs6000.h: (TARGET_XILINX_FPU): New.
47         (enum fpu_type_t): New.
48         * config/rs6000/rs6000.md (attr fp_type): New.  Include xfpu.md.
49         (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3, trunctfdf2): Set
50         fp_type.
51         (floatsisf2): Remove TARGET_SINGLE_FPU condition.
52         (floatdidf2): Add TARGET_SINGLE_FPU condition.
53         * config/rs6000/rs6000.opt (-mfpu): New.
54         (-mxilinx-fpu): New.
55         * config/rs6000/sysv4.h: (DRIVER_SELF_SPECS): New.
56         * config/rs6000/xfpu.h: New. Define TARGET_XILINX_FPU.
57         * config/rs6000/xfpu.md: New. Define Xilinx pipeline.
58         * gcc/config.gcc: powerpc-xilinx-eabi target: New.
59         * gcc/doc/invoke.texi (RS/6000 and PowerPC Options): Add -mfpu option.
60
61 2008-10-11  Jakub Jelinek  <jakub@redhat.com>
62
63         PR target/35760
64         * config/rs6000/rs6000.c (rs6000_legitimize_address): Only create
65         LO_SUM on Darwin if mode has just one unit.
66
67 2008-10-10  H.J. Lu  <hongjiu.lu@intel.com>
68
69         PR debug/37002
70         * dwarf2out.c (mem_loc_descriptor): Use DRAP for vDRAP which
71         has been optimized out.
72
73 2008-10-10  Richard Sandiford  <rdsandiford@googlemail.com>
74
75         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Test PIC_ADDR_P
76         instead of PIC_DIRECT_ADDR_P.
77         (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
78         (IS_LITERAL_OR_SYMBOLIC_S16_P, IS_LITERAL_OR_SYMBOLIC_U16_P): Delete.
79         (IS_NON_EXPLICIT_CONSTANT_P): Don't test PIC_OFFSET_P.
80         (PIC_OFFSET_P): Rename to...
81         (PCREL_SYMOFF_P): ...this.
82         (PIC_DIRECT_ADDR_P): Delete.
83         (MOVI_SHORI_BASE_OPERAND_P): Check PCREL_SYMOFF_P instead of
84         PIC_OFFSET_P.
85         (OUTPUT_ADDR_CONST_EXTRA): Don't require unspecs to have a
86         single argument.  Handle UNSPEC_EXTRACT_S16, UNSPEC_EXTRACT_U16,
87         UNSPEC_SYMOFF and UNSPEC_PCREL_SYMOFF.
88         * config/sh/sh.c (print_operand): Remove CONST handling.
89         (unspec_caller_rtx_p): Rewrite to use split_const and check
90         the operands of UNSPEC bases.
91         (fixup_mova): Replace (unspec [(minus A B)] UNSPEC_PIC)
92         with (unspec [A B] UNSPEC_SYMOFF).
93         (nonpic_symbol_mentioned_p): Check for UNSPEC_SYMOFF and
94         UNSPEC_PCREL_SYMOFF.
95         (sh_secondary_reload): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
96         * config/sh/sh.md (UNSPEC_EXTRACT_S16): New unspec.
97         (UNSPEC_EXTRACT_U16): Likewise.
98         (UNSPEC_SYMOFF): Likewise.
99         (UNSPEC_PCREL_SYMOFF): Likewise.
100         (movsi_const): Use UNSPEC_EXTRACT_*16s to extract 16-bit portions
101         of constants.
102         (movsi_const_16bit): Likewise.
103         (movdi_const, movdi_const_32bit, movdi_const_16bit): Likewise.
104         (GOTaddr2picreg): Replace (unspec [(minus A (minus B pc))] UNSPEC_PIC)
105         with (unspec [A B] UNSPEC_PCREL_SYMOFF).
106         (sym_label2reg): Replace (minus (const (unspec [A] UNSPEC_PIC)) B)
107         with (unspec [A B] UNSPEC_SYMOFF).
108         (symPLT_label2reg): Replace (minus A (minus B pc)) with
109          (unspec [A B] PCREL_UNSPEC_SYMOFF).
110         * config/sh/constraints.md (Css): Check for an UNSPEC_EXTRACT_S16.
111         (Csu): Likewise UNSPEC_EXTRACT_U16.
112         (Csy): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
113         (Cpg): Update after changes to IS_NON_EXPLICIT_CONSTANT_P.
114
115 2008-10-10  Stepan Kasal  <skasal@redhat.com>
116
117         * gcc/doc/invoke.texi (Optimize Options): Fix typo in examples
118         for loop strip mining and loop blocking.
119
120 2008-10-10  Alexandre Oliva  <aoliva@redhat.com>
121
122         * fortran/trans-types.c (gfc_get_nodesc_array_type): Don't
123         vary types depending on debug info.
124
125 2008-10-10  Alexandre Oliva  <aoliva@redhat.com>
126
127         * c-gimplify.c (c_genericize): Don't refer to DECL_ASSEMBLER_NAME
128         before ensuring it's already computed.
129
130 2008-10-09  Jakub Jelinek  <jakub@redhat.com>
131
132         * rtl.h (locator_eq): New decl.
133         * cfglayout.c (locator_scope): New function.
134         (insn_scope): Use it.
135         (locator_eq): New function.
136         (fixup_reorder_chain): Search for last insn in src bb
137         that has locator set or first insn in dest bb.  Use
138         locator_eq instead of == to compare locators.
139         * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
140         * cfgcleanup.c (try_forward_edges): Use locator_eq instead of
141         == to compare locators.
142
143         * tree-ssa-live.c (remove_unused_locals): Mark all edge's goto_block
144         as used.
145         * gimple-low.c (lower_function_body, lower_gimple_return,
146         lower_builtin_setjmp): Set gimple_block on the newly created stmts.
147         * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Only set
148         goto_block on edges if goto_locus is known.
149
150         PR middle-end/37774
151         * tree.h (get_object_alignment): Declare.
152         * emit-rtl.c (set_mem_attributes_minus_bitpos): Call
153         get_object_alignment if needed.
154         * builtins.c (get_pointer_alignment): Move ADDR_EXPR operand handling
155         to ...
156         (get_object_alignment): ... here.  New function.  Try harder to
157         determine alignment from get_inner_reference returned offset.
158
159 2008-10-08  Jakub Jelinek  <jakub@redhat.com>
160
161         * graphite.c (gloog): Don't call find_unreachable_blocks
162         before delte_unreachable_blocks.
163
164         * cfgexpand.c (expand_gimple_cond): Convert also goto_block and
165         goto_locus of true_edge into RTL locator.
166
167 2008-10-08  Uros Bizjak  <ubizjak@gmail.com>
168
169         * config/i386/i386.md (*jcc_btdi_rex64): Clobber FLAGS_REG.
170         (*jcc_btdi_mask_rex64): Ditto.
171         (*jcc_btsi): Ditto.
172         (*jcc_btsi_mask): Ditto.
173         (*jcc_btsi_1): Ditto.
174         (*jcc_btsi_mask_1): Ditto.
175
176 2008-10-08  Paul Brook  <paul@codesourcery.com>
177
178         * config/arm/bpabi.h (ARM_FUNCTION_PROFILER): Define new EABI
179         compatible profiler (__gnu_mcount_nc).
180         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
181
182 2008-10-08  H.J. Lu  <hongjiu.lu@intel.com>
183
184         * config/i386/i386.c (initial_ix86_tune_features): Add
185         X86_TUNE_USE_VECTOR_FP_CONVERTS.
186         * config/i386/i386.h (ix86_tune_indices): Likewise.
187         (TARGET_USE_VECTOR_FP_CONVERTS): New.
188
189         * config/i386/i386.md: Check TARGET_USE_VECTOR_FP_CONVERTS
190         instead of (TARGET_USE_VECTOR_CONVERTS || TARGET_GENERIC)
191         for FP to FP splitters.
192
193 2008-10-08  H.J. Lu  <hongjiu.lu@intel.com>
194
195         * config/i386/i386.md: Add missing gen_sse2_cvtdq2p to convert
196         splitter.
197
198 2008-10-08  Jakub Jelinek  <jakub@redhat.com>
199
200         PR target/36635
201         PR target/37290
202         PR rtl-optimization/37341
203         * cse.c (cse_cc_succs): Add ORIG_BB argument, don't follow edges
204         to ORIG_BB, pass through ORIG_BB recursively.
205         (cse_condition_code_reg): Adjust caller.
206
207 2008-10-08  Kai Tietz  <kai.tietz@onevision.com>
208
209         * sdbout.c (sdbout_one_type): Treat the value type
210         CONST_DECL for enumerals.
211
212 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
213
214         * config/i386/i386.md: Remove trailing white spaces.
215
216 2008-10-07  Kenneth Zadeck <zadeck@naturalbridge.com>
217
218         PR rtl-optimization/37448
219         * alloc-pool.c (struct alloc_pool_descriptor) [elt_size]: New field.
220         (stuct alloc_pool_descriptor) [created, allocated, current, peak]:
221         Make unsigned long.
222         (struct output_info) [count]: Renamed total_created and made
223         unsigned long.
224         (struct output_info) [size]: Renamed total_allocated and made
225         unsigned long.
226         (create_alloc_pool, empty_alloc_pool, pool_alloc, pool_free):
227         Properly keep track of desc->size.
228         (print_statistics, dump_alloc_pool_statistics): Enhance the
229         printing of statistics to print the number of elements and to use
230         unsigned longs.
231         
232 2008-10-07  Jakub Jelinek  <jakub@redhat.com>
233
234         PR middle-end/37576
235         * opts.h (CL_SAVE): Move up to flags range.
236         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET,
237         CL_COMMON): Renumber.
238         (CL_MIN_OPTION_CLASS): Set to CL_PARAMS.
239         * opts.c (common_handle_option): Revert last change.
240
241 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
242
243         * config/i386/i386-protos.h (ix86_schedule): New.
244
245         * config/i386/i386.c (ix86_schedule): New.
246         (override_options): Add schedule to processor_alias_table.  Set
247         ix86_schedule from the schedule field in processor_alias_table.
248         (ix86_function_specific_save): Save ix86_schedule.
249         (ix86_function_specific_restore): Restore ix86_schedule.
250
251         * config/i386/i386.md (cpu): Map to ix86_schedule instead of
252         ix86_tune.  Add none and remove i386, i486, pentium4, nocona
253         and generic32.
254
255         * config/i386/i386.opt: Add schedule.
256
257         * config/i386/ppro.md: Remove generic32.
258
259 2008-10-07  Simon Martin  <simartin@users.sourceforge.net>
260
261         PR c/35437
262         * expr.c (count_type_elements): Handle ERROR_MARK.
263
264 2008-10-07  Jakub Jelinek  <jakub@redhat.com>
265
266         PR debug/29609
267         PR debug/36690
268         PR debug/37616
269         * basic-block.h (struct edge_def): Add goto_block field.
270         * cfglayout.c (fixup_reorder_chain): Ensure that there is at least
271         one insn with locus corresponding to edge's goto_locus if !optimize.
272         * profile.c (branch_prob): Copy edge's goto_block.
273         * cfgrtl.c (force_nonfallthru_and_redirect): Use goto_locus for
274         emitted jumps.
275         (cfg_layout_merge_blocks): Emit a nop with edge's goto_locus
276         locator in between the merged basic blocks if !optimize and needed.
277         * cfgexpand.c (expand_gimple_cond): Convert goto_block and
278         goto_locus into RTL locator.  For unconditional jump use that
279         locator for the jump insn.
280         (expand_gimple_cond): Convert goto_block and goto_locus into
281         RTL locator for all remaining edges.  For unconditional jump
282         use that locator for the jump insn.
283         * cfgcleanup.c (try_forward_edges): Avoid the optimization if
284         there is more than one edge or insn locator along the forwarding
285         edges and !optimize.  If there is just one, set e->goto_locus.
286         * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Set also
287         edge's goto_block.
288         (move_block_to_fn): Adjust edge's goto_block.
289
290 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
291
292         PR middle-end/37731
293         * expmed.c (expand_mult): Properly check DImode constant in
294         CONST_DOUBLE.
295
296 2008-10-07  Jakub Jelinek  <jakub@redhat.com>
297
298         PR debug/37738
299         * dwarf2out.c (common_block_die_table): New variable.
300         (common_block_die_table_hash, common_block_die_table_eq): New
301         functions.
302         (gen_variable_die): Look up a DW_TAG_common_block die for a particular
303         COMMON block in the current scope rather than globally.  Optimize
304         DW_OP_addr SYMBOL_REF DW_OP_plus_uconst off into
305         DW_OP_addr SYMBOL_REF+off.
306
307 2008-10-07  Eric Botcazou  <ebotcazou@adacore.com>
308
309         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p) <VIEW_CONVERT_EXPR>:
310         Return true for non-addressable GIMPLE operands.
311
312 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
313
314         PR target/24765
315         * config/i386/i386.c (initial_ix86_tune_features): Remove
316         X86_TUNE_USE_BIT_TEST.
317         * config/i386/i386.h (ix86_tune_indices): Likewise.
318         (TARGET_USE_BIT_TEST): Removed.
319
320 2008-10-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
321
322         * config.gcc (arm*-*-*): Add aapcs-linux to supported ABIs.
323
324 2008-10-06  Adam Nemet  <anemet@caviumnetworks.com>
325
326         * config/mips/mips.md (mulsi3_mul3, muldi3_mul3): Merge these ...
327         (mul<mode>3_mul3): ... into this new template.
328
329 2008-10-06  Aldy Hernandez  <aldyh@redhat.com>
330
331         * gimplify.c (gimplify_arg): Add location argument.  Use it.
332         (gimplify_call_expr): Pass location to gimplify_arg.
333         (gimplify_modify_expr_to_memcpy): Same.
334         (gimplify_modify_expr_to_memset): Same.
335
336 2008-10-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
337
338         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
339         Update calls to build_unary_op and build_indirect_ref for location
340         changes.
341
342 2008-10-06  Aldy Hernandez  <aldyh@redhat.com>
343
344         build_modify_expr.
345         * c-decl.c (finish_decl): Pass input_location to build_unary_op.
346         * c-typeck.c (array_to_pointer_conversion): Pass location to
347         build_unary_op.
348         (function_to_pointer_conversion): Use error_at and warning_at.
349         (build_indirect_ref): Same.
350         (build_array_ref): Pass location to build_binary_op.
351         (parser_build_unary_op): Do not set location after calling
352         build_unary_op.
353         (build_unary_op): Add location argument.  Use it throughout.  Set
354         EXPR_LOCATION before returning new tree.
355         (build_modify_expr): Same.
356         (build_binary_op): Use location throughout.  Set EXPR_LOCATION before
357         returning node.
358         * c-omp.c (c_finish_omp_atomic): Pass location to build_unary_op,
359         build_indirect_ref, build_modify_expr.
360         (c_finish_omp_for): Same.  Use error_at instead of error.
361         * c-common.c (c_common_truthvalue_conversion): Pass location to
362         build_unary_op.
363         (warn_for_div_by_zero): Add location argument.
364         * c-common.h: Add argument to build_modify_expr, build_indirect_ref,
365         build_unary_op, warn_for_div_by_zero.
366         * c-parser.c (c_parser_typeof_specifier): Use
367         protected_set_expr_location.
368         (c_parser_statement_after_labels): Same.
369         (c_parser_condition): Same.
370         (c_parser_expr_no_commas): Pass correct location to build_modify_expr.
371         (c_parser_conditional_expression): Use protected_set_expr_location.
372         (c_parser_unary_expression): Pass location to build_indirect_ref.
373         (c_parser_postfix_expression_after_primary): Pass location to
374         build_indirect_ref, build_unary_op.
375         (c_parser_omp_for_loop): Set the increment expression's EXPR_LOCATION.
376
377 2008-10-06  Joshua Kinard  <kumba@gentoo.org>
378
379         * doc/invoke.texi: List r1x000 family under the -march MIPS option.
380         * config/mips/mips.h (PROCESSOR_R10000): New processor_type.
381         * config/mips/mips.c (mips_cpu_info_table): Add r10000, r12000,
382         r14000 and r16000.
383         (mips_rtx_cost_data): Add a PROCESSOR_R10000 entry.
384         (mips_issue_rate): Handle PROCESSOR_R10000.
385         * config/mips/mips.md (cpu): Add r10000.
386         Include r10000.md.
387         * config/mips/10000.md: New file.
388
389 2008-10-06  Richard Sandiford  <rdsandiford@googlemail.com>
390
391         * config/rs6000/rs6000-protos.h (rs6000_find_base_term): Declare.
392         * config/rs6000/rs6000.h (FIND_BASE_TERM): New macro.
393         * config/rs6000/rs6000.c (rs6000_find_base_term): New function.
394
395 2008-10-06  Richard Sandiford  <rdsandiford@googlemail.com>
396
397         * config/darwin-protos.h (machopic_function_base_name): Delete.
398         (machopic_function_base_sym): Likewise.
399         (machopic_gen_offset): Declare.
400         * config/darwin.h (MACHOPIC_FUNCTION_BASE_NAME): New macro.
401         (ASM_OUTPUT_LABELREF): Use it instead of a hard-coded string constant.
402         * config/darwin.c (machopic_function_base_name): Delete.
403         (machopic_function_base_sym): Likewise.
404         (gen_pic_offset): Rename to...
405         (machopic_gen_offset): ...this and remove the pic_base argument.
406         Instead use MACHO_DYNAMIC_NO_PIC_P to decide whether a PIC offset
407         is needed.  Create an UNSPEC_MACHOPIC_OFFSET if so, and set
408         crtl->uses_pic_offset_table.
409         (machopic_indirect_data_reference): Use new machopic_gen_offset
410         interface.
411         (machopic_legitimize_pic_address): Likewise.
412         (machopic_operand_p): Check for UNSPEC_MACHOPIC_OFFSET.
413
414         * config/i386/darwin.h (GOT_SYMBOL_NAME): Use
415         MACHOPIC_FUNCTION_BASE_NAME instead of machopic_function_base_name.
416         * config/i386/i386.c (output_set_got): Likewise.
417         (darwin_local_data_pic): Check for an UNSPEC_MACHOPIC_OFFSET
418         instead of a MINUS.
419         (legitimate_pic_operand_p): Handle UNSPEC_MACHOPIC_OFFSET.
420         (legitimate_address_p): Likewise.
421         (output_pic_addr_const): Likewise.
422         (output_addr_const_extra): Likewise.
423         (ix86_delegitimize_address): Expect darwin_local_data_pic to
424         match an UNSPEC rather than a MINUS.
425         * config/i386/i386.md (UNSPEC_MACHOPIC_OFFSET): Define.
426         (builtin_setjmp_receiver): Use machopic_gen_offset.
427         * config/i386/predicates.md (pic_symbolic_operand): Handle
428         UNSPEC_MACHOPIC_OFFSET.
429
430         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
431         Use machopic_gen_offset and machopic_operand_p.
432         (rs6000_output_addr_const_extra): Handle UNSPEC_MACHOPIC_OFFSET.
433         (rs6000_emit_prologue): Use MACHOPIC_FUNCTION_BASE_NAME.
434         * config/rs6000/rs6000.md (UNSPEC_MACHOPIC_OFFSET): Define.
435         (builtin_setjmp_receiver): Use MACHOPIC_FUNCTION_BASE_NAME.
436         Set crtl->uses_pic_offset_table.
437
438 2008-10-06  Richard Sandiford  <rdsandiford@googlemail.com>
439
440         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
441         Declare.
442         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): New macro.
443         * config/rs6000/rs6000.md (UNSPEC_TOCREL): New constant.
444         * config/rs6000/rs6000.c (constant_pool_expr_1): Delete.
445         (constant_pool_expr_p): Use split_const and check the base.
446         (toc_relative_expr_p): Likewise, checking for an UNSPEC_TOCREL
447         instead of a MINUS.
448         (legitimate_constant_pool_address_p): Check toc_relative_p
449         instead of constant_pool_expr_p.
450         (print_operand_address): Always use output_addr_const for
451         constant pool addresses.
452         (rs6000_output_addr_const_extra): New function.
453         (create_TOC_reference): Create an UNSPEC_TOCREL instead of a MINUS.
454
455 2008-10-06  Vladimir Makarov  <vmakarov@redhat.com>
456
457         PR middle-end/37535
458
459         * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
460         (mark_ref_live, mark_ref_dead): Use them.
461         (def_conflicts_with_inputs_p): Remove.
462         (mark_early_clobbers): New function.
463         (process_bb_node_lives): Call preprocess_constraints and
464         mark_early_clobbers.
465
466         * doc/rtx.texi (clobber): Change how RA deals with clobbers.
467
468 2008-10-06  Danny Smith  <dannysmith@users.sourceforge.net>
469
470         * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Add thread cleanup
471         lib with -mthread switch.
472
473 2008-10-05  Dodji Seketeli  <dodji@redhat.com>
474
475         PR c++/37410
476         * dwarf2out.c (dwarf2out_imported_module_or_decl): Split this
477         function in two, making it call a new and reusable
478         dwarf2out_imported_module_or_decl() that takes the containing
479         BLOCK of the declaration in argument.
480         (dwarf2out_imported_module_or_decl_real): New function.
481         (decls_for_scope, gen_decl_die, dwarf2out_decl): Take
482         IMPORTED_DECL in account.
483         * tree.def: Added IMPORTED_DECL node type.
484         * tree.h: Added accessors for IMPORTED_DECL nodes.
485         * tree.c (init_ttree): Initialise IMPORTED_DECL node type.
486
487 2008-10-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
488
489         * doc/gimple.texi: Fix some typos, wrap some long lines,
490         fix some broken wraps with continuations.
491         * tree-ssa-reassoc.c: Fix comment typos.
492
493 2000-10-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
494
495         PR target/37603
496         * pa.c (legitimize_pic_address): Force function labels to memory in
497         word mode.
498
499 2008-10-04  Anton Blanchard  <anton@samba.org>
500
501         * config/rs6000/rs6000.c (rs6000_emit_sync): Use gen_lwsync().
502         (rs6000_split_atomic_op): Same.
503         (rs6000_split_compare_and_swap): Same.
504         (rs6000_split_compare_and_swapqhi): Same.
505
506 2008-10-04  Richard Guenther  <rguenther@suse.de>
507
508         * tree-ssa-sccvn.c (vn_reference_op_eq): Use types_compatible_p
509         instead of pointer equality.
510         (vn_nary_op_eq): Likewise.
511
512 2008-10-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
513
514         * config/rs6000/rs6000.md (fseldfsf4): Add TARGET_SINGLE_FLOAT 
515         condition.
516         (fselsfdf4): Make condition on "TARGET_HARD_FLOAT && TARGET_FPRS &&
517         TARGET_DOUBLE_FLOAT && TARGET_SINGLE_FLOAT".
518
519 2008-10-03  Danny Smith  <dannysmith@users.sourceforge.net>
520
521         * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
522         Revert previous change.
523
524 2008-10-03  Tom Tromey  <tromey@redhat.com>
525
526         * stringpool.c (ggc_alloc_string): Terminate string.
527
528 2008-10-03  Jakub Jelinek  <jakub@redhat.com>
529
530         * gimplify.c (gimplify_function_tree): For -finstrument-functions
531         use gimple_bind_{,set_}block instead of gimple_{,set_}block.
532         * gimple.h (gimple_bind_set_block): Allow second argument to be NULL.
533
534         PR debug/37726
535         * gimplify.c (declare_vars): Use gimple_bind_block instead of
536         gimple_block.
537
538 2008-10-03  Pascal Obry  <obry@adacore.com>
539
540         * gcov.c (create_file_names): Properly handle UNIX and DOS
541         directory separators.
542         (make_gcov_file_name): Likewise + convert the ':' DOS drive
543         separator to '~' to ensure clean filenames on Windows.
544
545 2008-10-02  Danny Smith  <dannysmith@users.sourceforge.net>
546
547         * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
548         Add a null terminator to the stripped name.
549
550 2008-10-02  David Edelsohn  <edelsohn@gnu.org>
551
552         * config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Revert
553         TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
554         (function_arg_advance): Condition on TARGET_DOUBLE_FLOAT,
555         TARGET_SINGLE_FLOAT.  Revert SCALAR_FLOAT_MODE_P condition.
556         (function_arg): Condition on TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
557         (rs6000_function_value): Revert TARGET_DOUBLE_FLOAT,
558         TARGET_SINGLE_FLOAT.
559
560 2008-10-02  Daniel Jacobowitz  <dan@codesourcery.com>
561
562         * builtins.c (fold_builtin_pow): Check for 0 ** NEGATIVE.
563
564 2008-10-02  Richard Guenther  <rguenther@suse.de>
565
566         PR middle-end/37713
567         * tree-ssa.c (useless_type_conversion_p_1): For COMPLEX_TYPE
568         and VECTOR_TYPE recurse with useless_type_conversion_p which
569         properly handles void pointer conversion.
570
571 2008-10-02  Danny Smith  <dannysmith@users.sourceforge.net>  
572
573         PR target/37528
574         * config/i386/mingw32.h (LIBGCC_SPEC) : Replace with ..
575         (REAL_LIBGCC_SPEC): New.  Always include -lgcc.
576
577 2008-10-01  Andrew Pinski  <andrew_pinski@playstation.sony.com>
578
579         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
580         Handle ALTIVEC_BUILTIN_VEC_SPLATS, ALTIVEC_BUILTIN_VEC_PROMOTE,
581         ALTIVEC_BUILTIN_VEC_EXTRACT, and ALTIVEC_BUILTIN_VEC_INSERT specially,
582         they translate to non builtins.
583         * config/rs6000/rs6000.c (altivec_init_builtins): Add new variable
584         opaque_ftype_opaque.  Define builtins __builtin_vec_splats,
585         __builtin_vec_promote, __builtin_vec_extract, and
586         __builtin_vec_insert.
587         * config/rs6000/rs6000.h (enum rs6000_builtins): Add
588         ALTIVEC_BUILTIN_VEC_EXTRACT, ALTIVEC_BUILTIN_VEC_PROMOTE,
589         ALTIVEC_BUILTIN_VEC_INSERT, and ALTIVEC_BUILTIN_VEC_SPLATS.
590         * config/rs6000/altivec.h (vec_extract): Define
591         (vec_insert): Define.
592         (vec_splats): Define.
593         (vec_promote): Define.
594
595 2008-10-01  Andrew Pinski  <andrew_pinski@playstation.sony.com>
596             Yukishige Shibata  <shibata@rd.scei.sony.co.jp>
597             Trevor Smigiel  <Trevor_Smigiel@playstation.sony.com>
598
599         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add Cell
600         Altivec intrinsics.
601         * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Delete
602         prototype.  Add new parameter, blk.
603         Use BLKmode for the MEM if blk is true.
604         (altivec_expand_builtin): Handle ALTIVEC_BUILTIN_STVLX,
605         ALTIVEC_BUILTIN_STVLXL, ALTIVEC_BUILTIN_STVRX, and
606         ALTIVEC_BUILTIN_STVRXL.
607         Update usage of altivec_expand_lv_builtin.
608         Handle ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL,
609         ALTIVEC_BUILTIN_LVRX, and ALTIVEC_BUILTIN_LVRXL.
610         (altivec_init_builtins): If compiling for the Cell, also define the
611         cell VMX builtins.
612         * config/rs6000/rs6000.h (rs6000_builtins): Define
613         ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL, ALTIVEC_BUILTIN_LVRX,
614         ALTIVEC_BUILTIN_LVRXL, ALTIVEC_BUILTIN_STVLX, ALTIVEC_BUILTIN_STVLXL,
615         ALTIVEC_BUILTIN_STVRX, ALTIVEC_BUILTIN_STVRXL,
616         ALTIVEC_BUILTIN_VEC_LVLX, ALTIVEC_BUILTIN_VEC_LVLXL,
617         ALTIVEC_BUILTIN_VEC_LVRX, ALTIVEC_BUILTIN_VEC_LVRXL,
618         ALTIVEC_BUILTIN_VEC_STVLX, ALTIVEC_BUILTIN_VEC_STVLXL,
619         ALTIVEC_BUILTIN_VEC_STVRX, and ALTIVEC_BUILTIN_VEC_STVRXL.
620         * config/rs6000/altivec.md (define_constants): Define UNSPEC_LVLX,
621         UNSPEC_LVLXL, UNSPEC_LVRX, UNSPEC_LVRXL, UNSPEC_STVLX, UNSPEC_STVLXL,
622         UNSPEC_STVRX, and UNSPEC_STVRXL.
623         (altivec_lvlx): New pattern.
624         (altivec_lvlxl): New pattern.
625         (altivec_lvrx): New pattern.
626         (altivec_lvrxl): New pattern.
627         (altivec_stvlx): New pattern.
628         (altivec_stvlxl): New pattern.
629         (altivec_stvrx): New pattern.
630         (altivec_stvrxl): New pattern.
631         * config/rs6000/altivec.h (vec_lvlx): Define if PPU is defined.
632         (vec_lvlxl): Likewise.
633         (vec_lvrx): Define if PPU is defined.
634         (vec_lvrxl): Likewise.
635         (vec_stvlx): Define if PPU is defined.
636         (vec_stvlxl): Likewise.
637         (vec_stvrx): Define if PPU is defined.
638         (vec_stvrxl): Likewise.
639
640 2008-10-01  Geert Bosch  <bosch@adacore.com>
641
642         * tree.c (contains_placeholder_p): Return 0 for a SAVE_EXPR.
643
644 2008-10-01  Richard Guenther  <rguenther@suse.de>
645
646         PR tree-optimization/37617
647         * tree-ssa-pre.c (create_expression_by_pieces): During FRE
648         do not add to the NEW_SETS.
649
650 2008-10-01  Richard Guenther  <rguenther@suse.de>
651
652         PR middle-end/37285
653         * tree-vrp.c (execute_vrp): If we optimized away the default
654         case make sure to promote the label that got in place of it
655         to a default case label.
656
657 2008-10-01  Richard Henderson  <rth@redhat.com>
658
659         PR tree-opt/35737
660         * tree-complex.c (set_component_ssa_name): Don't optimize
661         is_gimple_min_invariant values with ssa_names in abnormal phis.
662
663 2008-09-30  Paolo Bonzini  <bonzini@gnu.org>
664
665         PR tree-optimization/37662
666         * tree-ssa-ccp.c (fold_gimple_assign): Invert the operands of a
667         commutative binary operation if they are in the wrong order and
668         fold_build2 produces non-GIMPLE.
669
670 2008-09-30  Jakub Jelinek  <jakub@redhat.com>
671
672         PR tree-optimization/37662
673         PR tree-optimization/37663
674         * tree-vrp.c (simplify_truth_ops_using_ranges): Don't call
675         get_value_range with non-SSA_NAME.  Don't assert operands have been
676         folded, instead just bail out.
677
678 2008-09-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>
679
680         * config/rs6000/rs6000.md (fnmadds combiner): Revert typo.
681
682 2008-09-30  Richard Guenther  <rguenther@suse.de>
683
684         PR middle-end/37491
685         * tree-vect-transform.c (vect_create_data_ref_ptr): Properly
686         build restrict-qualified pointers.
687         (vectorizable_store): Move alias check later.
688         (vectorizable_load): Likewise.
689
690 2008-09-30  Paolo Bonzini  <bonzini@gnu.org>
691
692         * c-common.c (empty_if_body_warning): Remove.
693         * c-common.h (empty_if_body_warning): Remove.
694         * c-parser.c (c_parser_if_body, c_parser_else_body): Implement
695         here the -Wempty-body warning for `if' and `else' statements.
696         * c-typeck.c (c_finish_if_stmt): Do not call empty_body_warning.
697
698 2008-09-29  H.J. Lu  <hongjiu.lu@intel.com>
699
700         * config/i386/i386.opt: Add msse2avx.
701
702         * config/i386/linux.h (ASM_SPEC): New.  Support -msse2avx.
703         * config/i386/linux64.h (ASM_SPEC): Likewise.
704
705         * doc/invoke.texi: Document -msse2avx.
706
707 2008-09-29  Eric Botcazou  <ebotcazou@adacore.com>
708
709         * dwarf2out.c (constant_size): Use HOST_WIDE_INT in parameter type.
710
711 2008-09-29  Joseph Myers  <joseph@codesourcery.com>
712
713         * ifcvt.c (noce_emit_store_flag): If using condition from original
714         jump, reverse it if if_info->cond was reversed.
715
716 2008-09-29  Eric Botcazou  <ebotcazou@adacore.com>
717
718         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
719         non-constant memory if it cannot be forced to constant memory.
720         Overhaul surrounding code and factor out common condition.
721
722 2008-09-29  Jeff Law <law@redhat.com>
723
724         * reload1.c (alter_reg): Add missing curly braces.
725
726 2008-09-29  Michael J. Eager  <eager@eagercon.com>
727
728         * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
729         are easy.
730         * config/rs6000/rs6000.c (rs6000_override_options): Move
731         rs6000_init_hard_regno_mode_ok after all options changed.
732         Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
733         (rs6000_handle_option): Process -msingle-float, -mdouble-float,
734         -msimple-fpu flags.  Add warning messages if single FP not configured.
735         (rs6000_file_start): Output gnu_attribute for single-float.
736         (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
737         (rs6000_legitimize_address): Likewise.
738         (rs6000_legitimize_reload_address): Likewise.
739         (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
740         TARGET_SINGLE_FLOAT.
741         (function_arg_advance): Likewise (partial conversion).
742         (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
743         (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
744         TARGET_SINGLE_FLOAT.
745         (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
746         (rs6000_emit_prologue): Likewise.
747         (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
748         TARGET_SINGLE_FLOAT.
749         (rs6000_libcall_value): Likewise.
750         * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
751         (TARGET_DOUBLE_FLOAT): New default to 1
752         (TARGET_SIMPLE_FPU): New default to 0
753         (TARGET_SINGLE_FPU): New default to 0
754         (TARGET_SINGLE_FLOAT_MODE): New.
755         (TARGET_DOUBLE_FLOAT_MODE): New.
756         * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
757         TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
758         UNITS_PER_FP_WORD
759         * config/rs6000/rs6000.md (define_mode_iterator): Condition on
760         TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
761         (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
762         copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
763         nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
764         muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
765         movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
766         floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
767         *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
768         fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
769         rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
770         floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
771         movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
772         extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
773         abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
774         cmptf_internal1, *cmptf_internal2): Condition on
775         TARGET_DOUBLE_FLOAT.
776         (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
777         mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
778         *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
779         btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
780         floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
781         *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
782         TARGET_SINGLE_FLOAT.
783         (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
784         * config/rs6000/rs6000.opt (-msingle-float): New.
785         (-mdouble-float): New.
786         (-msimple-fpu): New.
787         * doc/invoke.texi (RS/6000 and PowerPC Options): Add
788         -msingle-float, -mdouble-float, -msimple-fpu options.
789         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
790         _SOFT_DOUBLE for -msingle-float.
791         * config.gcc: New config for target=powerpc-xilinx-eabi.
792
793 2008-09-29  Tobias Grosser  <grosser@fim.uni-passau.de>
794
795         * graphite.c (dot_all_scops_1): Remove unused checks. SCoPs always
796         have exit and entry.
797         (new_scop): Take entry and exit edge to define new SCoP.
798         (sd_region_p): New structure used during SCoP detection.
799         (move_scops): Delete.
800         (move_sd_regions): New.
801         (scopdet_info): Change the definition from edges back to basic_blocks.
802         (scopdet_edge_info):  Work on basic_blocks and rename to
803         scopdet_basic_block_info.
804         (split_difficult_bb): At the moment removed. We should later
805         add it at another place.
806         (build_scops_1): Work on basic_blocks.
807         (bb_in_sd_region): New.
808         (find_single_entry_edge): New.
809         (find_single_exit_edge): New.
810         (create_single_entry_edge): New.
811         (sd_region_without_exit): New.
812         (create_single_exit_edge): New.
813         (unmark_exit_edges): New.
814         (mark_exit_edges): New.
815         (create_sese_edges): New.
816         (build_graphite_scops): New.
817         (build_scops): Make SCoPs SESE.
818         (limit_scops): Use the new functions.
819
820 2008-09-29  Hans-Peter Nilsson  <hp@axis.com>
821
822         * config/cris/cris.h (IRA_COVER_CLASSES): Define.
823
824 2008-09-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
825
826         PR target/37640
827         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Force
828         address to a register before taking the lower part.
829
830 2008-09-28  Kaz Kojima  <kkojima@gcc.gnu.org>
831
832         * config/sh/sh.h (OVERRIDE_OPTIONS): Unset flag_dwarf2_cfi_asm
833         for SHmedia.
834
835 2008-09-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
836             Kaushal Kantawala  <kaushal_kantawala@playstation.sony.com>
837
838         PR tree-opt/36891
839         * tree-ssa-loop-im.c (rewrite_reciprocal): Set DECL_GIMPLE_REG_P on
840         the newly created variable.
841         Create a VECTOR_CST of all 1s for vector types.
842
843 2008-09-28  Eric Botcazou  <ebotcazou@adacore.com>
844
845         PR middle-end/36575
846         * fold-const.c (div_and_round_double) <ROUND_DIV_EXPR>: Fix typo.
847
848 2008-09-28  Eric Botcazou  <ebotcazou@adacore.com>
849
850         * expmed.c (store_fixed_bit_field): Always use convert_to_mode in
851         order to convert between modes.
852         (extract_bit_field_1): Test TRULY_NOOP_TRUNCATION on the right mode.
853
854 2008-09-27  Kaz Kojima  <kkojima@gcc.gnu.org>
855
856         * config/sh/sh.c (sh_gimplify_va_arg_expr): Use VIEW_CONVERT_EXPR
857         if needed.
858
859 2008-09-26  Vladimir Makarov  <vmakarov@redhat.com>
860
861         Revert:
862         2008-09-25  Vladimir Makarov  <vmakarov@redhat.com>
863         * ira-lives.c:...
864         * doc/rtl.texi:...
865
866 2008-09-26  Adam Nemet  <anemet@caviumnetworks.com>
867
868         * config/mips/mips.h (ISA_HAS_DMUL3, ISA_HAS_BADDU, ISA_HAS_BBIT,
869         ISA_HAS_CINS, ISA_HAS_EXTS, ISA_HAS_SEQ_SNE, ISA_HAS_POP): Change
870         them to yield false with MIPS16.
871
872 2008-09-26  Jakub Jelinek  <jakub@redhat.com>
873
874         PR middle-end/37275
875         * dwarf2out.c (tls_mem_loc_descriptor): New function.
876         (mem_loc_descriptor): Use it for MEM.  For PLUS fail if second
877         mem_loc_descriptor failed.  Accept UNSPEC.
878         (loc_descriptor): Use tls_mem_loc_descriptor for MEM.  For PARALLEL
879         fail if one of the loc_descriptor calls for pieces failed.
880         (loc_descriptor_from_tree_1): Handle even DECL_EXTERNAL __thread vars,
881         as long as they bind locally.  For COMPONENT_REF, ARRAY_REF etc. fail
882         if loc_descriptor_from_tree_1 on offset failed.
883
884         PR middle-end/37576
885         * opts.c (common_handle_option): Don't call print_specific_help with
886         CL_SAVE as first argument.
887
888 2008-09-26  Peter O'Gorman  <pogma@thewrittenword.com>
889             Steve Ellcey  <sje@cup.hp.com>
890
891         * configure: Regenerate for new libtool.
892         * aclocal.m4: Ditto.
893
894 2008-09-26  Pat Haugen  <pthaugen@us.ibm.com>
895
896         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Use correct
897         alias set on MEM when saving stack pointer.
898         * config/rs6000/rs6000.md (allocate_stack): Likewise
899
900 2008-09-26  Dorit Nuzman  <dorit@il.ibm.com>
901
902         PR tree-optimization/37574
903         * tree-vectorizer.c (vect_is_simple_use): Fix indentation.
904         * tree-vect-transform.c (vect_get_constant_vectors): Use vectype
905         instead of vector_type for constants. Take computation out of loop.
906         (vect_get_vec_def_for_operand): Use only vectype for constant case,
907         and use only vector_type for invariant case.
908         (get_initial_def_for_reduction): Use vectype instead of vector_type.
909
910 2008-09-25  Jakub Jelinek  <jakub@redhat.com>
911
912         PR c/37645
913         * c-common.c (handle_weakref_attribute): Ignore the attribute unless
914         the decl is a VAR_DECL or FUNCTION_DECL.
915
916 2008-09-25  Vladimir Makarov  <vmakarov@redhat.com>
917
918         PR middle-end/37535
919         * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
920         (mark_ref_live, mark_ref_dead): Use them.
921         (def_conflicts_with_inputs_p): Remove.
922         (mark_early_clobbers): New function.
923         (process_bb_node_lives): Call preprocess_constraints and
924         mark_early_clobbers.
925
926         * doc/rtl.texi (clobber): Change how RA deals with clobbers.
927
928 2008-09-25  Vladimir Makarov  <vmakarov@redhat.com>
929
930         PR middle-end/37448
931         * ira-int.h (IRA_ALLOCNO_TEMP): Rename to ALLOCNO_TEMP.
932         (ira_compress_allocno_live_ranges): New prototype.
933
934         * ira-color.c: Rename IRA_ALLOCNO_TEMP to ALLOCNO_TEMP.
935         (coalesced_allocnos_living_at_program_points): New.
936         (coalesced_allocnos_live_at_points_p,
937         set_coalesced_allocnos_live_points): New functions.
938         (coalesce_spill_slots): Rewrite.
939         
940         * ira-lives.c (remove_some_program_points_and_update_live_ranges,
941         ira_compress_allocno_live_ranges): New functions.
942
943         * ira-build.c (ira_flattening): Call
944         ira_compress_allocno_live_ranges.
945         (ira_build): Ditto.
946
947 2008-09-25  H.J. Lu  <hongjiu.lu@intel.com>
948
949         * config/i386/i386.md: Check cmp/branch fuse for cmp peephole
950         optimization.
951
952 2008-09-25  Richard Sandiford  <rdsandiford@googlemail.com>
953
954         * combine.c (make_compound_operation): Handle the 'E' format.
955         (count_rtxs): Likewise.
956         (update_table_tick): Likewise.
957         (get_last_value_validate): Likewise.
958
959 2008-09-25  Eric Botcazou  <ebotcazou@adacore.com>
960
961         * dbxout.c (dbxout_parms): Fetch the inner REG inside a PARALLEL.
962
963 2008-09-25 Sergei Dyshel <sergeid@il.ibm.com>
964
965         * matrix-reorg.c (transform_allocation_sites): Initializers 
966         added to avoid the warning.
967
968 2008-09-25  Martin Jambor  <mjambor@suse.cz>
969
970         * cgraph.c (free_nodes): New variable.
971         (NEXT_FREE_NODE): New macro.
972         (cgraph_create_node): Reuse nodes from the free list.  Do not
973         update uid if doing so.
974         (cgraph_remove_node): Add the node to the free list.
975
976 2008-09-25  Gerald Pfeifer  <gerald@pfeifer.com>
977
978         * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
979
980 2008-09-24  Richard Henderson  <rth@redhat.com>
981
982         * dwarf2.h (DW_OP_GNU_encoded_addr): New.
983         * unwind-dw2.c (execute_stack_op): Handle it.
984
985 2008-09-24  David Edelsohn  <edelsohn@gnu.org>
986
987         Revert:
988         2008-09-24  Michael J. Eager  <eager@eagercon.com>
989
990 2008-09-24  Aldy Hernandez  <aldyh@redhat.com>
991
992         * c-common.c (fname_decl): New location argument.
993         * c-common.h (fname_decl): Same.
994         * c-parser.c (c_lex_one_token): Use {warning,error}_at instead of
995         {warning,error}.
996         (c_parser_typeof_specifier): Same.
997         (c_parser_parms_list_declarator): Same.
998         (c_parser_asm_string_literal): Same.
999         (c_parser_compound_statement_nostart): Same.
1000         (c_parser_label): Same.
1001         (c_parser_do_statement): Same.
1002         (c_parser_asm_statement): Same.
1003         (c_parser_unary_expression): Same.
1004         (c_parser_sizeof_expression): Same.
1005         (c_parser_postfix_expression): Same.
1006         (c_parser_pragma): Same.
1007         (c_parser_omp_clause_collapse): Same.
1008         (c_parser_omp_clause_num_threads): Same.
1009         (c_parser_omp_clause_schedule): Same.
1010         (c_parser_omp_all_clauses): Same.
1011         (c_parser_omp_sections_scope): Same.
1012         (c_parser_omp_for_loop): Same.  Pass condition's location to
1013         c_objc_common_truthvalue_conversion.
1014         (c_parser_enum_specifier): Remove comment.
1015
1016 2008-09-24  Michael J. Eager  <eager@eagercon.com>
1017
1018         * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
1019         are easy.
1020         * config/rs6000/rs6000.c (rs6000_override_options): Move
1021         rs6000_init_hard_regno_mode_ok after all options changed.
1022         Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
1023         (rs6000_handle_option): Process -msingle-float, -mdouble-float,
1024         -msimple-fpu flags.  Add warning messages if single FP not configured.
1025         (rs6000_file_start): Output gnu_attribute for single-float.
1026         (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
1027         (rs6000_legitimize_address): Likewise.
1028         (rs6000_legitimize_reload_address): Likewise.
1029         (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
1030         TARGET_SINGLE_FLOAT.
1031         (function_arg_advance): Likewise.
1032         (function_arg): Likewise.
1033         (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
1034         (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
1035         TARGET_SINGLE_FLOAT.
1036         (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
1037         (rs6000_emit_prologue): Likewise.
1038         (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
1039         TARGET_SINGLE_FLOAT.
1040         (rs6000_libcall_value): Likewise.
1041         * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
1042         (TARGET_DOUBLE_FLOAT): New default to 1
1043         (TARGET_SIMPLE_FPU): New default to 0
1044         (TARGET_SINGLE_FPU): New default to 0
1045         (TARGET_SINGLE_FLOAT_MODE): New.
1046         (TARGET_DOUBLE_FLOAT_MODE): New.
1047         * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
1048         TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
1049         UNITS_PER_FP_WORD
1050         * config/rs6000/rs6000.md (define_mode_iterator): Condition on
1051         TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
1052         (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
1053         copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
1054         nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
1055         muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
1056         movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
1057         floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
1058         *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
1059         fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
1060         rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
1061         floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
1062         movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
1063         extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
1064         abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
1065         cmptf_internal1, *cmptf_internal2): Condition on
1066         TARGET_DOUBLE_FLOAT.
1067         (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
1068         mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
1069         *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
1070         btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
1071         floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
1072         *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
1073         TARGET_SINGLE_FLOAT.
1074         (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
1075         * config/rs6000/rs6000.opt (-msingle-float): New.
1076         (-mdouble-float): New.
1077         (-msimple-fpu): New.
1078         * doc/invoke.texi (RS/6000 and PowerPC Options): Add
1079         -msingle-float, -mdouble-float, -msimple-fpu options.
1080         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
1081         _SOFT_DOUBLE for -msingle-float.
1082         * config.gcc: New config for target=powerpc-xilinx-eabi.
1083
1084 2008-09-23  Eric Botcazou  <ebotcazou@adacore.com>
1085
1086         * config/sparc/constraints.md: New file.
1087         * config/sparc/sparc.md: Include it.
1088         * config/sparc/sparc-protos.h (memory_ok_for_ldd): Declare.
1089         (sparc_extra_constraint_check): Delete.
1090         * config/sparc/sparc.c (register_ok_for_ldd): Minor tweaks.
1091         (memory_ok_for_ldd): New predicate.
1092         (sparc_extra_constraint_check): Delete.
1093         * config/sparc/sparc.h (REG_CLASS_FROM_LETTER): Likewise.
1094         (CONST_OK_FOR_LETTER_P): Likewise.
1095         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
1096         (EXTRA_CONSTRAINT): Likewise.
1097
1098 2008-08-23  Steve Ellcey  <sje@cup.hp.com>
1099
1100         * regrename.c (do_replace): Copy REG_POINTER value to new reg.
1101
1102 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
1103
1104         * alias.c (find_base_value): Use FIND_BASE_TERM.
1105         * doc/tm.texi (FIND_BASE_TERM): Update documentation.
1106
1107 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
1108
1109         * config/i386/i386.c: Include cselib.h.
1110         (ix86_pic_register_p): New function.
1111         (ix86_delegitimize_address): Use it to check for the PIC register.
1112
1113 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
1114
1115         * doc/tm.texi (FIND_BASE_TERM): Expand documentation.
1116         * config/i386/i386.c (ix86_find_base_term): Don't check for
1117         SYMBOL_REF and LABEL_REF.
1118
1119 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
1120
1121         * config/i386/i386.c (ix86_delegitimize_address): Wrap the
1122         constant PLUS in a CONST.
1123
1124 2008-09-23  Kai Tietz  <kai.tietz@onevision.com>
1125
1126         * config/i386/i386.c (ix86_function_ok_for_sibcall): Correct
1127         check for sibcall support for w64.
1128
1129 2008-09-23  Eric Botcazou  <ebotcazou@adacore.com>
1130
1131         * c-ppoutput.c (cb_used_define): Do nothing for a builtin node.
1132
1133 2008-09-23  Aldy Hernandez  <aldyh@redhat.com>
1134
1135         * c-tree.h: Add argument to c_objc_common_truthvalue_conversion,
1136         parser_build_binary_op.
1137         * c-decl.c (build_enumerator): Pass location to build_binary_op.
1138         * c-typeck.c (build_array_ref): Same.
1139         (parser_build_unary_op): New location argument.
1140         (pointer_diff): Pass location to build_binary_op,
1141         c_objc_common_truthvalue_conversion.
1142         (build_modify_expr): Same.
1143         (build_unary_op): New location argument.
1144         (build_binary_op): New location argument.
1145         (c_objc_common_truthvalue_conversion): Pass location to
1146         c_*common_truthvalue_conversion.
1147         * c-convert.c (convert): Same.
1148         * c-common.c (binary_op_error): New location argument.
1149         (pointer_int_sum): Pass location to build_binary_op.
1150         (c_common_truthvalue_conversion): New location argument.
1151         (warn_for_sign_compare): Same.
1152         * c-common.h: Add location argument to c_common_truthvalue_conversion,
1153         binary_op_error, build_binary_op, warn_for_sign_compare.
1154         * c-parser.c (c_parser_condition): Pass location to
1155         c_*common_truthvalue_conversion.
1156         (c_parser_conditional_expression): Save condition's location and pass
1157         it on down.
1158         (c_parser_binary_expression): Same, but for the binary operator's
1159         location.
1160         (c_parser_omp_for_loop): Pass location to
1161         c_objc_common_truthvalue_conversion.
1162
1163 2008-09-23  Martin Jambor  <mjambor@suse.cz>
1164
1165         * cgraph.c (cgraph_free_edge): Use sizeof(*e).
1166         (cgraph_node_remove_callees): New temporary f.  Hold the next item
1167         in f when looping.
1168         (cgraph_node_remove_callers): Likewise.
1169
1170         * ipa-prop.c (ipa_edge_removal_hook): Use ATTRIBUTE_UNUSED.
1171         (ipa_node_removal_hook): Likewise.
1172
1173         * doc/gimple.texi (gimple_copy_call_skip_args): Changed to
1174         gimple_call_copy_skip_args and moved to the gimple_call section.
1175         * gimple.c (gimple_copy_call_skip_args): Renamed to
1176         gimple_call_copy_skip_args.  Changed al users.
1177
1178 2008-09-22  Vladimir Makarov  <vmakarov@redhat.com>
1179
1180         * ira-color.c (start_allocno_priorities): Rename to
1181         setup_allocno_priorities.  Use costs and
1182         ALLOCNO_EXCESS_PRESSURE_POINTS_NUM instead of frequencies and
1183         range lengths.  Get rid off doubles.
1184         (ira_fast_allocations): Call start_allocno_priorities.
1185         
1186 2008-09-22  David Daney  <ddaney@avtrex.com>
1187
1188         PR target/37593
1189         * config/mips/mips.h (FUNCTION_PROFILER): Call _mcount via a
1190         register if TARGET_LONG_CALLS.
1191
1192 2008-09-22  Richard Guenther  <rguenther@suse.de>
1193
1194         PR tree-optimization/37145
1195         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Re-enable
1196         value-numbering union accesses with their offset and size only.
1197         (visit_reference_op_load): Fix simplification of inserted conversions.
1198         * tree-ssa-pre.c (find_or_generate_expression): Do not
1199         recursively generate expressions if running FRE.
1200
1201 2008-09-22  Adam Nemet  <anemet@caviumnetworks.com>
1202
1203         * config/mips/mips.h (ISA_HAS_BADDU): New macro.
1204         * config/mips/mips.md (*baddu_si_eb, *baddu_si_el, *baddu_di<mode>):
1205         New patterns.
1206
1207 2008-09-22  Richard Guenther  <rguenther@suse.de>
1208
1209         PR tree-optimization/37145
1210         * tree-ssa-pre.c (fully_constant_expression): Simplify builtin calls.
1211         (phi_translate_1): Constant fold references.
1212
1213 2008-09-22  Ira Rosen  <irar@il.ibm.com>
1214
1215         PR tree-optimization/37482
1216         * tree-vectorizer.h (struct _slp_instance): Add new field.
1217         (SLP_INSTANCE_FIRST_LOAD_STMT): New.
1218         (get_earlier_stmt): New function.
1219         * tree-vect-analyze.c (vect_find_first_load_in_slp_instance): New
1220         function.
1221         (vect_analyze_slp_instance): Set SLP_INSTANCE_FIRST_LOAD_STMT.
1222         * tree-vect-transform.c (vect_finish_stmt_generation): Remove the
1223         asserts that GSI points to the scalar statement being vectorized.
1224         Set new statement location according to GSI.
1225         (vect_schedule_slp_instance): Use GSI of
1226         SLP_INSTANCE_FIRST_LOAD_STMT when vectorizing loads.
1227
1228 2008-09-21  Jan Hubicka  <jh@suse.cz>
1229
1230         * ipa-cp.c (ipcp_estimate_growth): Check recursive calls.
1231         (ipcp_insert_stage): Update dead_nodes bitmap.
1232
1233 2008-09-22  Danny Smith  <dannysmith@users.sourceforge.net>
1234
1235         PR target/37528 
1236         * config/i386/t-cygming (SHLIB_LC): Remove.
1237         (SHLIB_LINK): Don't add static objects to SHLIB_IMPLIB
1238         * config/i386/t-cygwin (SHLIB_LC): Specify all required libraries.
1239
1240 2008-09-22  Hans-Peter Nilsson  <hp@axis.com>
1241
1242         PR middle-end/37170
1243         PR middle-end/37280
1244         * final.c (mark_symbol_ref_as_used): New helper function.
1245         (output_operand): Instead of just looking inside MEMs for
1246         SYMBOL_REFs, use new helper function and for_each_rtx.
1247         * varasm.c (assemble_external): Move #ifndef ASM_OUTPUT_EXTERNAL
1248         to after weak-handling.  Don't mark decls with TREE_STATIC as weak.
1249         Make head comment more general.
1250         * config/darwin.c (machopic_output_indirection): Handle weak
1251         references here, like in assemble_external.
1252
1253 2008-09-21  Eric Botcazou  <ebotcazou@adacore.com>
1254
1255         * config/sparc/sparc-protos.h (gen_compare_operator): Declare.
1256         (sparc_emit_float_lib_cmp): Change return type.
1257         * config/sparc/sparc.c (gen_compare_reg): Add comment about TFmode.
1258         (gen_compare_operator): New function.
1259         (sparc_emit_float_lib_cmp): Return the new operator to be used in
1260         the comparison sequence.  Minor tweaks.
1261         * config/sparc/sparc.md (seq, sne, sgt, slt, sge, sle): Assert
1262         that the final operator and the result of sparc_emit_float_lib_cmp
1263         match for software TFmode; use emit_insn in lieu of emit_jump_insn.
1264         (beq, bne, bgt, blt, bge, ble, bunordered, bordered, bungt, bunlt,
1265         buneq, bunge, bunle, bltgt): Assert that the final operator and the
1266         result of sparc_emit_float_lib_cmp match for software TFmode.
1267         (movqicc, movhicc, movsicc, movdicc): Merge into...
1268         (mov<I:mode>cc): ...this.
1269         (movsfcc, movdfcc, movtfcc): Merge into...
1270         (mov<F:mode>cc): ...this.
1271         (movqi_cc_sp64, movhi_cc_sp64, movsi_cc_sp64, movdi_cc_sp64): Merge
1272         into...
1273         (mov<I:mode>_cc_v9): ...this.
1274         (movdi_cc_sp64_trunc): Delete.
1275         (movqi_cc_reg_sp64, movhi_cc_reg_sp64, movsi_cc_reg_sp64,
1276         movdi_cc_reg_sp64): Merge into...
1277         (mov<I:mode>_cc_reg_sp64): ...this.
1278         (movsf_cc_sp64): Rename into...
1279         (movsf_cc_v9): ...this.
1280         (movdf_cc_sp64): Rename into...
1281         (movdf_cc_v9): ...this.
1282         (movtf_cc_hq_sp64): Rename into...
1283         (movtf_cc_hq_v9): ...this.
1284         (movtf_cc_sp64): Rename into...
1285         (movtf_cc_v9): ...this.  Adjust for renaming of movdf_cc_sp64.
1286
1287 2008-09-21  Diego Novillo  <dnovillo@google.com>
1288
1289         * doc/gccint.texi: Include generic.texi and gimple.texi.
1290         Re-order index.
1291         * doc/tree-ssa.texi (GENERIC): Move to generic.texi.
1292         (GIMPLE): Move to gimple.texi.
1293         (Annotations): Remove references to to stmt_ann_t and
1294         ssa_name_ann_t.
1295         (SSA Operands): Rename from 'Statement Operands'.
1296         * doc/generic.texi: New.
1297         * doc/gimple.texi: New.
1298         * Makefile.in (TEXI_GCCINT_FILES): Add generic.texi and gimple.texi.
1299         * Makefile.in (TEXI_GCCINT_FILES):
1300         * gimple.c (gimple_copy_call_skip_args): Rename from
1301         giple_copy_call_skip_args.  Update all users.
1302         * doc/gimple.texi (gimple_copy_call_skip_args): Document.
1303
1304 2008-09-21  Ira Rosen  <irar@il.ibm.com>
1305
1306         PR tree-optimization/37539
1307         * tree-vect-transform.c (vect_transform_strided_load): Save vector
1308         statement in related statement field only for the first load of the
1309         group of loads with the same data reference.
1310
1311 2008-09-20  Adam Nemet  <anemet@caviumnetworks.com>
1312
1313         * config/mips/mips.h (TUNE_OCTEON): New macro.
1314         * config/mips/mips.c (mips_issue_rate): Return 2 for Octeon.
1315         (mips_multipass_dfa_lookahead): Return 2 for Octeon.
1316         * config/mips/octeon.md: New file.
1317         * config/mips/mips.md: Include octeon.md.  Restore
1318         semi-alphabetical order of include files.
1319
1320 2008-09-20  H.J. Lu  <hongjiu.lu@intel.com>
1321
1322         PR target/37571
1323         * config/i386/i386.md (*jcc_fused_1): Removed.
1324         (*jcc_fused_2): Likewise.
1325         (*jcc_fused_3): Likewise.
1326         (*jcc_fused_4): Likewise.
1327
1328 2008-09-20  Richard Sandiford  <rdsandiford@googlemail.com>
1329
1330         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Define.
1331         (IRA_COVER_CLASSES): Refer to TARGET_IRA_COVER_CLASSES.
1332         * target.h (gcc_target): Add ira_cover_classes.
1333         * ira.c: Remove IRA_COVER_CLASSES guards.
1334         (setup_cover_and_important_classes): Use targetm.ira_cover_classes
1335         instead of IRA_COVER_CLASSES.
1336         (setup_cover_and_important_classes): Remove IRA_COVER_CLASSES guard.
1337         (setup_class_translate): Likewise.
1338         (setup_reg_class_intersect_union): Likewise.
1339         (find_reg_class_closure): Replace IRA_COVER_CLASSES guard with a
1340         test of targetm.ira_cover_classes.
1341         * opts.c (decode_options): Use targetm.ira_cover_classes instead
1342         of IRA_COVER_CLASSES.
1343         * target-def.h (TARGET_IRA_COVER_CLASSES): Define.
1344         (TARGET_INITIALIZER): Include it.
1345         * targhooks.h (default_ira_cover_classes): Declare.
1346         * targhooks.c (default_ira_cover_classes): New function.
1347
1348 2008-09-19  Bob Wilson  <bob.wilson@acm.org>
1349         
1350         * config/xtensa/xtensa.md (reload<mode>_literal): Handle MEM operands.
1351         
1352 2008-09-19  Ian Lance Taylor  <iant@google.com>
1353
1354         * varasm.c (narrowing_initializer_constant_valid_p): Return
1355         NULL_TREE if ENDTYPE is not an integer.
1356
1357 2008-09-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1358
1359         PR tree-opt/30930
1360         * tree-ssa.c (execute_update_addresses_taken): Also update
1361         DECL_GIMPLE_REG_P for vector and complex types.
1362
1363 2008-09-19  Andrew MacLeod  <amacleod@redhat.com>
1364             Jan Hubicka  <jh@suse.cz>
1365
1366         PR middle-end/37567
1367         * tree-ssa-ter.c (free_temp_expr_table): Make sure fields are actually
1368         empty before freeing them.
1369         (find_replaceable_exprs): Move asserts to free_temp_expr_table.
1370
1371 2008-09-18  Bob Wilson  <bob.wilson@acm.org>
1372
1373         * configure.ac: Add HAVE_AS_TLS check for Xtensa.
1374         * config/xtensa/predicates.md (tls_symbol_operand): New.
1375         * config/xtensa/xtensa.c (TARGET_HAVE_TLS): Define.
1376         (TARGET_CANNOT_FORCE_MEM): Define.
1377         (xtensa_tls_symbol_p): New.
1378         (xtensa_emit_move_sequence): Check for and legitimize TLS addresses.
1379         (xtensa_legitimate_address_p): Disallow constant pool TLS references.
1380         (xtensa_tls_module_base): New.
1381         (xtensa_call_tls_desc): New.
1382         (xtensa_legitimize_tls_address): New.
1383         (xtensa_legitimize_address): Handle TLS symbols.
1384         (xtensa_tls_referenced_p_1): New.
1385         (xtensa_tls_referenced_p): New.
1386         (xtensa_output_addr_const_extra): Handle UNSPEC_TPOFF and
1387         UNSPEC_DTPOFF.
1388         (XTENSA_BUILTIN_THREAD_POINTER): New.
1389         (XTENSA_BUILTIN_SET_THREAD_POINTER): New.
1390         (xtensa_init_builtins): Set NOTHROW and READONLY for umulsidi3
1391         builtin.  Add declarations for __builtin_thread_pointer and
1392         __builtin_set_thread_pointer.
1393         (xtensa_fold_builtin): Recognize new builtins.
1394         (xtensa_expand_builtin): Expand new builtins.
1395         * config/xtensa/xtensa.h (XCHAL_HAVE_THREADPTR): Define default value.
1396         (TARGET_THREADPTR): Define.
1397         (HAVE_AS_TLS): Define default value.
1398         (LEGITIMATE_CONSTANT_P): Disallow TLS references.
1399         * config/xtensa/xtensa.md (UNSPEC_TPOFF, UNSPEC_DTPOFF): New.
1400         (UNSPEC_TLS_FUNC, UNSPEC_TLS_ARG, UNSPEC_TLS_CALL, UNSPEC_TP): New.
1401         (UNSPECV_SET_TP): New.
1402         (sym_TPOFF, sym_DTPOFF): New.
1403         (load_tp, set_tp, tls_func, tls_arg, tls_call): New.
1404         * config/xtensa/xtensa-protos.h (xtensa_tls_referenced_p): Declare.
1405         * configure: Regenerated.
1406         
1407 2008-09-18  H.J. Lu  <hongjiu.lu@intel.com>
1408
1409         PR target/37394
1410         * config/ia64/ia64.c (ia64_optimization_options): Move
1411         checking and setting flag_schedule_insns_after_reload and
1412         ia64_flag_schedule_insns2 back to ...
1413         (ia64_override_options): Here.
1414
1415 2008-09-18  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1416
1417         PR rtl-opt/37451
1418         * loop-doloop.c (doloop_modify): New argument zero_extend_p and
1419         zero extend count after the correction to it is done.
1420         (doloop_optimize): Update call to doloop_modify, don't zero extend
1421         count before call.
1422
1423 2008-09-18  Martin Jambor  <mjambor@suse.cz>
1424
1425         * ipa-cp.c (ipcp_estimate_growth): Return 0 instead of false.
1426
1427         * ipa-prop.c: Correct comments.
1428         * ipa-prop.h: Likewise.
1429
1430 2008-09-18  Jan Hubicka  <jh@suse.cz>
1431
1432         PR middle-end/37448
1433         * ipa-reference.c (ipa_reference_local_vars_info_d,
1434         ipa_reference_global_vars_info_d,
1435         ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
1436         ipa_reference_vars_info_t): Move here from ipa-reference.h
1437         (node_duplication_hook_holder, node_removal_hook_holder): New.
1438         (get_reference_vars_info_from_cgraph): Rename to ...
1439         (get_reference_vars_info): ... this one, use cgraph uids.
1440         (get_local_reference_vars_info, get_global_reference_vars_info):
1441         Use cgraph instead of decl.
1442         (ipa_reference_get_read_local, ipa_reference_get_written_local):
1443         Remove.
1444         (ipa_reference_get_read_global, ipa_reference_get_not_read_global
1445         ipa_reference_get_written_global,
1446         ipa_reference_get_not_written_global): Use cgraph argument.
1447         (check_call): Simplify avail check.
1448         (scan_stmt_for_static_refs): Update.
1449         (propagate_bits): Update.
1450         (merge_callee_local_info): Remove.
1451         (init_function_info): Use cgraph nodes.
1452         (clean_function_local_data): Break out from ...
1453         (clean_function): ... here.
1454         (copy_local_bitmap, copy_global_bitmap): New functions.
1455         (duplicate_node_data, remove_node_data): New functions.
1456         (generate_summary): Register hooks; use visibility instead of
1457         master clones.
1458         (propafate): Use cgraph nodes; copy bitmap to each node in cycle.
1459         * ipa-reference.h (ipa_reference_local_vars_info_d,
1460         ipa_reference_global_vars_info_d,
1461         ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
1462         ipa_reference_vars_info_t): Move to ipa-reference.c
1463         (ipa_reference_get_read_local, ipa_reference_get_written_local):
1464         Remove.
1465         (ipa_reference_get_read_global, ipa_reference_get_written_global,
1466         ipa_reference_get_not_read_global,
1467         ipa_reference_get_not_written_global): Update prototype.
1468         * ipa-pure-const.c (funct_state_vec): Turn into VECtor.
1469         (init_state): Remove.
1470         (node_duplication_hook_holder, node_removal_hook_holder): New.
1471         (get_function_state, set_function_state): Use VECtor.
1472         (analyze_function): Check body availability.
1473         (add_new_function): Likewise.
1474         (duplicate_node_data, remove_node_data): New.
1475         (generate_summary): Register hooks; do not care about clones.
1476         (propafate): Do not care about clones; recursive functions are
1477         not looping.
1478         * ipa-utils.c (searchc, ipa_utils_reduced_inorder): Do not skip clones.
1479         * ipa-prop.c (edge_removal_hook_holder, node_removal_hook_holder,
1480         * edge_duplication_hook_holder, node_duplication_hook_holder): Make
1481         static.
1482         * tree-flow.h (function_ann_d): Remove reference_vars_info.
1483         * tree-ssa-opreands.c (add_call_clobber_ops, add_call_read_ops):
1484         Update call of ipa-reference accesors.
1485
1486 2008-09-18  Simon Baldwin  <simonb@google.com>
1487
1488         * c-opts.c (c_common_handle_option): Add handling for
1489         -Wbuiltin-macro-redefined command line option.
1490         * c.opt: Added builtin-macro-redefined option.
1491         * doc/invoke.texi (Warning Options): Add -Wbuiltin-macro-redefined
1492         documentation.
1493
1494 2008-09-18  Richard Guenther  <rguenther@suse.de>
1495
1496         PR tree-optimization/37258
1497         * tree-ssa-sccvn.c (vn_phi_compute_hash): Include the precision
1498         and signedness for integral types.
1499         (vn_phi_eq): Require compatible types.
1500
1501 2008-09-18  Jakub Jelinek  <jakub@redhat.com>
1502
1503         PR debug/34037
1504         * gimplify.c (gimplify_type_sizes): When not optimizing, ensure
1505         TYPE_MIN_VALUE and TYPE_MAX_VALUE is not is not DECL_IGNORED_P
1506         VAR_DECL.
1507         * cfgexpand.c (expand_used_vars): Keep DECL_ARTIFICIAL
1508         !DECL_IGNORED_P vars in local_decls list for instantiate_decls,
1509         ggc_free other TREE_LIST nodes from that chain.
1510         * function.c (instantiate_decls): Instantiate also DECL_RTL
1511         of vars in cfun->local_decls, free that list afterwards.
1512
1513 2008-09-18  Eric Botcazou  <ebotcazou@adacore.com>
1514
1515         * config/sparc/sol2.h (WIDEST_HARDWARE_FP_SIZE): Move to...
1516         * config/sparc/sparc.h (WIDEST_HARDWARE_FP_SIZE): ...here.
1517
1518 2008-09-18  Andrew MacLeod  <amacleod@redhat.com>
1519
1520         * tree-outof-ssa.c (eliminate_useless_phis): Fix formatting.
1521         * tree-flow-.h (struct immediate_use_iterator_d): Fix comment.
1522
1523 2008-09-18  Andrew MacLeod  <amacleod@redhat.com>
1524
1525         PR tree-optimization/37102
1526         * tree-outof-ssa.c (remove_gimple_phi_args): Remove all the PHI args
1527         from a node. Check to see if another PHI is dead.
1528         (eliminate_useless_phis): Rename from eliminate_virtual_phis and 
1529         remove real PHIs which have no uses.
1530         (rewrite_out_of_ssa): Call eliminate_useless_phis.
1531
1532 2008-09-18  Richard Guenther  <rguenther@suse.de>
1533
1534         PR middle-end/37284
1535         * tree-cfg.c (remove_useless_stmts_1): Remove
1536         GIMPLE_CHANGE_DYNAMIC_TYPE if not optimizing.
1537
1538 2008-09-18  Nick Clifton  <nickc@redhat.com>
1539
1540         * config/frv/frv.h (IRA_COVER_CLASSES): Define.
1541         (SECONDARY_INPUT_RELOAD_CLASS): Omit unused argument in call
1542         to frv_secondary_reload_class.
1543         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
1544         * config/frv/frv.c (TARGET_SECONDARY_RELOAD): Define.
1545         (frv_secondary_reload_class): Omit unused parameter.
1546         (frv_secondary_reload): New function.  Handle the case when
1547         secondary_reload_class() is called before the reload_(in|out)
1548         _optabs have been initialised.
1549         * config/frv/frv-protos.h (frv_secondary_reload_class): Omit
1550         unused parameter.
1551         * config/frv/frv.md: Define an exclusion set between fr550_m0
1552         and fr550_f0.
1553
1554 2008-09-18  Richard Guenther  <rguenther@suse.de>
1555
1556         PR tree-optimization/37456
1557         * tree-ssa-reassoc.c (build_and_add_sum): If the stmt we
1558         want to insert after ends a BB insert on the single fallthru
1559         outgoing edge.
1560
1561 2008-09-18  Andreas Krebbel  <krebbel1@de.ibm.com>
1562
1563         * doc/invoke.texi: Document -mhard-dfp, -mno-hard-dfp.
1564         Mention -march=z9-109, z9-ec and z10.
1565
1566 2008-09-18  Uros Bizjak  <ubizjak@gmail.com>
1567
1568         PR rtl-optimization/37544
1569         * regrename.c (maybe_mode_change): Exit early when copy_mode
1570         is narrower than orig_mode and narrower than new_mode.
1571
1572 2008-09-18  Alexander Monakov  <amonakov@ispras.ru>
1573
1574         PR middle-end/37499
1575         * sched-int.h (struct _haifa_insn_data): Remove unused field ref_count.
1576
1577         * sched-rgn.c (ref_counts): Remove.
1578         (insn_referenced): New static variable.
1579         (INSN_REF_COUNT): Remove.
1580         (sched_run_compute_dependencies): Use insn_referenced instead of
1581         INSN_REF_COUNT.
1582         (add_branch_dependences): Likewise.  Delete dead assignment.
1583
1584 2008-09-17  Adam Nemet  <anemet@caviumnetworks.com>
1585
1586         * haifa-sched.c (dep_cost_1): Recognize the producer even if the
1587         consumer is an asm.  Add comment why this is important.
1588         (choose_ready): Add comment to the "INSN_CODE (insn) >= 0 ||
1589         recog_memoized (insn) < 0" assert.  Put ENABLE_CHECKING around it.
1590
1591 2008-09-17  Joseph Myers  <joseph@codesourcery.com>
1592
1593         * expr.c (emit_group_store): Do not shift before moving via a
1594         stack slot.
1595
1596 2008-09-17  Eric Botcazou  <ebotcazou@adacore.com>
1597
1598         * varasm.c (initializer_constant_valid_p): Forbid view-conversions
1599         from aggregate to non-aggregate type if the bit pattern is not fully
1600         preserved afterwards.
1601
1602 2008-09-17  Richard Guenther  <rguenther@suse.de>
1603
1604         * tree-cfg.c (verify_types_in_gimple_assign): Rename to ...
1605         (verify_gimple_assign): ... this.  Split into ...
1606         (verify_gimple_assign_unary): ... this,
1607         (verify_gimple_assign_binary): ... that,
1608         (verify_gimple_assign_single): ... and this.
1609         (verify_types_in_gimple_stmt): Call verify_gimple_assign.
1610         Fix GIMPLE_CHANGE_DYNAMIC_TYPE handling.
1611         (verify_types_in_gimple_min_lval): Handle TARGET_MEM_REF.
1612         (verify_types_in_gimple_reference): Be forgiving with
1613         VIEW_CONVERT_EXPRs.
1614         (verify_gimple_phi): Deal with virtual operands.
1615
1616         * tree.def (PREDICT_EXPR): Change to tcc_expression.
1617
1618 2008-09-17  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1619
1620         * tree.c (get_callee_fndecl): Don't call the language hook.
1621         * langhooks.h (lang_hooks): Remove lang_get_callee_fndecl.
1622         * langhooks-def.h (LANG_HOOKS_GET_CALLEE_FNDECL): Kill.
1623         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_GET_CALLEE_FNDECL.
1624
1625 2008-09-17  Jakub Jelinek  <jakub@redhat.com>
1626
1627         * tree.c (protected_set_expr_location): Don't unnecessarily
1628         check for error_mark_node.
1629
1630 2008-09-17  Art Haas  <ahaas@impactweather.com>
1631
1632         * ipa-reference.c (analyze_function): Declare step only if
1633         ENABLE_CHECKING is defined.
1634
1635 2008-09-17  Jan Hubicka  <jh@suse.cz>
1636
1637         PR c++/18071
1638         * tree.h (DECL_INLINE): remove.
1639         (DECL_DECLARED_INLINE_P): Update docs.
1640         (DECL_NO_INLINE_WARNING_P): new.
1641         (tree_function_decl): Replace inline_flag by no_inline_warning_flag.
1642         * tree-inline.c (inlinable_function_p): Set DECL_NO_INLINE_WARNING_P.
1643
1644 2008-09-17  Jakub Jelinek  <jakub@redhat.com>
1645             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1646
1647         PR bootstrap/37441
1648         * dwarf2out.c (dwarf2out_do_cfi_asm) [MIPS_DEBUGGING_INFO]: Return
1649         false.
1650
1651 2008-09-17  Jan Hubicka  <jh@suse.cz>
1652
1653         * ipa-reference.c (ipa_obstack): Remove.
1654         (local_info_obstack, global_info_obstack): New.
1655         (add_static_var): We now handle variables only.
1656         (mark_address_taken, mark_load, mark_store): New functions based on ...
1657         (check_operand): ... remove.
1658         (get_asm_stmt_operands): Rename to ...
1659         (check_asm_memory_clobber): ... this. Look only for memory clobber.
1660         (scan_stmt_for_static_refs): Rewrite.
1661         (scan_op_for_static_refs): Rename to ...
1662         (scan_initializer_for_static_refs): do not look for VAR_DECL
1663         initializers; stop recursion on types and decls.
1664         (ipa_init): Use proper obstacks.
1665         (analyze_variable): Use scan_initializer_for_static_refs.
1666         (init_function_info): Use local obstack.
1667         (analyze_function): Simplify.
1668         (add_new_function): We don't need visited_nodes obstack.
1669         (generate_summary): Use proper obstacks; cleanup after propagation.
1670
1671 2008-09-17  Richard Guenther  <rguenther@suse.de>
1672
1673         PR middle-end/37385
1674         PR tree-optimization/37491
1675         * alias.c (get_alias_set): Use the canonical type.
1676         * tree-vect-transform.c (vectorizable_store): Use the type of
1677         the lhs for the vector type.  Adjust checking.
1678         (vectorizable_load): Adjust checking.
1679
1680 2008-09-16  Jakub Jelinek  <jakub@redhat.com>
1681             Adam Nemet  <anemet@caviumnetworks.com>
1682
1683         PR rtl-optimization/37483
1684         * ifcvt.c (noce_try_sign_mask): Use if_info->test_bb instead of
1685         if_info->insn_b's bb as argument to optimize_bb_for_speed_p.
1686         Rearrange code to better match the original comment.  Check
1687         t_unconditional first.  Improve comment.
1688
1689 2008-09-16  Jakub Jelinek  <jakub@redhat.com>
1690
1691         PR c/37529
1692         * gimplify.c (gimplify_expr) <case GOTO_EXPR>: If gimplification of
1693         GOTO_DESTINATION failed, don't create GIMPLE_GOTO.
1694
1695         PR c++/37530
1696         * gimplify.c (gimplify_expr) <case TRY_CATCH_EXPR>: Don't create
1697         GIMPLE_TRY if cleanup sequence is empty.
1698
1699 2008-09-16  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1700
1701         PR middle-end/37263
1702         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Prefer the
1703         eliminate IV if the cost are the same.
1704
1705 2008-09-16  Richard Guenther  <rguenther@suse.de>
1706
1707         PR middle-end/37380
1708         * tree-sra.c (sra_build_assignment): Do not call the gimplifier
1709         if not necessary.
1710
1711 2008-09-16  Richard Guenther  <rguenther@suse.de>
1712
1713         PR tree-optimization/37508
1714         * tree-vrp.c (simplify_truth_ops_using_ranges): Also allow -1.
1715
1716 2008-09-15  Kaz Kojima  <kkojima@gcc.gnu.org>
1717
1718         * config/sh/sh.md (movsf_ie): Fix length for TARGET_SH2A.
1719
1720 2008-09-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1721
1722         * config/rs6000/rs6000.md (floatsidf2): Rewrite PowerPC64 case to
1723         use gen_floatdidf2 directly.
1724         (floatunssidf2): Likewise.
1725         (floatsidf_ppc64_mfpgpr): Remove.
1726         (floatsidf_ppc64): Remove.
1727         (floatunssidf_ppc64): Remove.
1728
1729 2008-09-15  Jakub Jelinek  <jakub@redhat.com>
1730
1731         * ira-color.c (finish_cost_update): Free update_cost_queue_elems
1732         rather than update_cost_queue.
1733
1734         * tree-ssa-alias.c (init_alias_info): Call bitmap_obstack_release
1735         in every call starting with the second one, instead of only when
1736         alias_bitmap_obstack.elements != NULL.
1737
1738         * tree-predcom.c (filter_suitable_components): Free all refs in
1739         act->refs vector before calling release_component.
1740         (add_ref_to_chain): Free ref if not adding it to chain->refs.
1741
1742         * tree-data-ref.c (free_subscripts): Free all subscript objects.
1743
1744         * tree-loop-linear.c (linear_transform_loops): Initialize
1745         lambda_obstack only after calling perfect_loop_nest_depth.
1746         Goto free_and_continue instead of just continue for later failures.
1747
1748         PR middle-end/37479
1749         * doc/invoke.texi: Document -fno-dwarf2-cfi-asm.
1750
1751         PR libmudflap/36397
1752         * tree-mudflap.c (mf_xform_derefs_1): Handle VIEW_CONVERT_EXPR.
1753
1754 2008-09-14  Andreas Schwab  <schwab@suse.de>
1755
1756         * tree-call-cdce.c (check_target_format): Accept Motorola formats.
1757
1758 2008-09-14  Jan Hubicka  <jh@suse.cz>
1759
1760         * invoke.texi (-fconserve-stack): Document.
1761         * opts.c (decode_options): Handle conserve_stack.
1762         * common.opt (fconvserve_stack): New.
1763
1764 2008-09-14  David Edelsohn  <edelsohn@gnu.org>
1765
1766         * config.host: Add x-aix to host_xmake_file.
1767         * config/rs6000/t-aix52: Do not override LDFLAGS.
1768         * config/rs6000/x-aix: New file.
1769
1770 2008-09-14  Andy Hutchinson  <hutchinsonandy@aim.com>
1771
1772         PR target/19636
1773         PR target/24894
1774         PR target/31644
1775         PR target/31786
1776         * config/avr/avr.c (legitimate_address_p): Fix problem where subreg
1777         is not recognized as a valid register usage. Allow REG_X to be used
1778         as a base pointer.
1779         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Remove code that
1780         forces a reload when using a base register.
1781
1782 2008-09-14  Danny Smith  <dannysmith@users.sourceforge.net>
1783
1784         * config/i386/cygming-crtend.c (register_frame_ctor): If
1785         DEFAULT_USE_CXA_ATEXIT, register __gcc_deregister_frame
1786         directly with atexit.
1787         (deregister_frame_ctor): Rename to ...
1788         (deregister_frame_dtor): Use to call __gcc_deregister_frame
1789         if !DEFAULT_USE_CXA_ATEXIT.
1790
1791 2008-09-13  Jan Hubicka  <jh@suse.cz>
1792
1793         * cgraph.c: Include value-prof.h
1794         * Makefile.in (cgraph.o): Add value-prof.h dependency.
1795
1796 2008-09-13  Jan Hubicka  <jh@suse.cz>
1797
1798         PR middle-end/32581
1799         * tree-profile.c (add_abnormal_goto_call_edges): New function.
1800         (tree_gen_interval_profiler, tree_gen_pow2_profiler,
1801         tree_gen_one_value_profiler, tree_gen_average_profiler,
1802         tree_gen_ic_func_profiler, tree_gen_ior_profiler): Use it.
1803
1804 2008-09-13  Jan Hubicka  <jh@suse.cz>
1805
1806         * i386.c (ix86_expand_movmem, ix86_expand_movstr): Avoid processing
1807         too many bytes on misalligned blocks.
1808
1809 2008-09-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1810
1811         * doc/cfg.texi: Fix some typos.
1812         * doc/extend.texi: Likewise.
1813         * doc/install.texi: Likewise.
1814         * doc/invoke.texi: Likewise.
1815         * doc/rtl.texi: Likewise.
1816         * doc/tree-ssa.texi: Likewise.
1817
1818 2008-09-13  Richard Guenther  <rguenther@suse.de>
1819
1820         PR middle-end/30141
1821         * tree-nested.c (finalize_nesting_tree_1): Generate valid
1822         gimple stores for memory rhs.
1823
1824 2008-09-13  H.J. Lu  <hongjiu.lu@intel.com>
1825
1826         PR rtl-optimization/37489
1827         * cse.c (fold_rtx): Don't return const_true_rtx for float
1828         compare if FLOAT_STORE_FLAG_VALUE is undefined.
1829
1830 2008-09-13  Jan Hubicka  <jh@suse.cz>
1831
1832         PR tree-optimization/37392
1833         * tree-inline.c (remap_gimple_stmt): Do not remap return value.
1834
1835 2008-09-13  Martin Jambor  <mjambor@suse.cz>
1836             Jan Hubicka  <jh@suse.cz>
1837
1838         * cgraph.c (free_edges): New variable.
1839         (NEXT_FREE_EDGE): New macro.
1840         (cgraph_free_edge): New function.
1841         (cgraph_remove_edge): Call cgraph_remove_edge_1.
1842         (cgraph_node_remove_callees): Likewise.
1843         (cgraph_node_remove_callers): Likewise.
1844         (cgraph_create_edge): Reuse edges from the free list.  Do not
1845         update uid if doing so.
1846         (cgraph_remove_*_hook): Add free call.
1847
1848 2008-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
1849
1850         * ira-color.c (conflict_allocno_vec): Delete.
1851         (update_cost_queue_elem): New structure.
1852         (update_cost_queue): New variable.
1853         (update_cost_queue_tail): Likewise.
1854         (update_cost_queue_elems): Likewise.
1855         (allocno_update_cost_check): Delete.
1856         (initiate_cost_update): Allocate update_cost_queue_elems
1857         instead of allocno_update_cost_check.
1858         (finish_cost_update): Update the free()s accordingly.
1859         (start_update_cost): New function.
1860         (queue_update_cost): Likewise.
1861         (get_next_update_cost): Likewise.
1862         (update_copy_costs_1): Inline into...
1863         (update_copy_costs): ...here.  Use a queue instead of recursive calls.
1864         Use cover_class instead of ALLOCNO_COVER_CLASS (another_allocno),
1865         once we've established they are equal.  Don't allocate update
1866         costs if there is nothing to add to them.
1867         (update_conflict_hard_regno_costs): Remove ALLOCNO and
1868         DIVISOR arguments.  Use a queue instead of recursive calls;
1869         process all the allocnos in the initial queue, rather than
1870         a single allocno.
1871         (assign_hard_reg): Use queue_update_cost instead of
1872         conflict_allocno_vec.  Queue coalesced allocnos instead
1873         of calling update_conflict_hard_regno_costs for each one.
1874         Just call update_conflict_hard_regno_costs once for the
1875         entire queue.
1876         (ira_color): Remove conflict_allocno_vec handling.
1877
1878 2008-09-12  Sebastian Pop  <sebastian.pop@amd.com>
1879
1880         PR tree-optimization/37484
1881         * graphite.c (scop_record_loop): Use snprintf instead of sprintf.
1882         (save_var_name): Same.
1883         (initialize_cloog_names): Same.
1884         (initialize_cloog_names): Same.
1885
1886 2008-09-12  Sebastian Pop  <sebastian.pop@amd.com>
1887
1888         * tree-scalar-evolution.c (set_instantiated_value): Set
1889         instantiated_below.
1890
1891 2008-09-12  Vladimir Makarov  <vmakarov@redhat.com>
1892
1893         PR rtl-opt/37377
1894
1895         * ira-build.c (common_loop_tree_node_dominator): Remove.
1896         (copy_live_ranges_to_removed_store_destinations): New function.
1897         (regno_top_level_allocno_map): Move to top level from ...
1898         (ira_flattening): ... here.  Use
1899         copy_live_ranges_to_removed_store_destinations.
1900
1901         * ira-emit.c (generate_edge_moves): Fix a comment.
1902
1903 2008-09-12  Anatoly Sokolov  <aesok@post.ru>
1904
1905         PR target/37466
1906         * config/avr/avr.md (movsi_lreg_const peephole2): Add match_dup for
1907         scratch register after 'set' pattern.
1908
1909 2008-09-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1910
1911         * emit-rtl.c (set_reg_attrs_from_value): Fix invalid alignment
1912         information passed to mark_reg_pointer.
1913         * explow.c (force_reg): Likewise.
1914
1915 2008-09-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1916
1917         * config/spu/spu.c (spu_override_options): Default to -mno-safe-hints
1918         when building for the celledp architecture.
1919
1920 2008-09-12  Richard Guenther  <rguenther@suse.de>
1921
1922         * tree-vrp.c (simplify_truth_ops_using_ranges): Fix types.
1923
1924 2008-09-12  Eric Botcazou  <ebotcazou@adacore.com>
1925
1926         PR rtl-optimization/37424
1927         * ira-color.c (coalesced_pseudo_reg_slot_compare): Untie by comparing
1928         the regnos instead of the addresses.
1929
1930 2008-09-11  Janis Johnson  <janis187@us.ibm.com>
1931
1932         * ginclude/float.h (DEC_EVAL_METHOD): Correct the macro name.
1933
1934 2008-09-11  Richard Guenther  <rguenther@suse.de>
1935
1936         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Avoid
1937         entering the weaker equivalence recording.
1938
1939         * tree-ssa-phiprop.c (propagate_with_phi): Fix tuplification.
1940
1941 2008-09-11  Jeff Law <law@redhat.com>
1942
1943         * reload1.c (alter_reg): Undo the BYTE_BIG_ENDIAN correction performed
1944         by assign_stack_local on the IRA path for stack slot sharing
1945         as well as the non-IRA path.
1946
1947 2008-09-11  Uros Bizjak  <ubizjak@gmail.com>
1948
1949         * config/i386/i386.h: Fix whitespace issues.
1950
1951 2008-09-11  Martin Jambor  <mjambor@suse.cz>
1952
1953         * ipa-prop.h (struct ipa_param_flags): Removed.
1954         (struct ipa_param_descriptor): New structure.
1955         (struct ipa_node_params): ipcp_lattices, param_decls and
1956         param_flags moved to ipa_param_description.
1957         (ipa_get_ith_param): Renamed to ipa_get_param, changed to access
1958         descriptors.  Renamed all users.
1959         (ipa_is_ith_param_modified): Renamed to ipa_is_param_modified,
1960         changed to access descriptors.  Renamed all users.
1961         (ipa_is_ith_param_called): Renamed to ipa_is_param_called, changed
1962         to access descriptors. Renamed all users.
1963         * ipa-cp.c (ipcp_init_cloned_node): Call
1964         ipa_initialize_node_params instead of ipa_count_formal_params and
1965         ipa_create_param_decls_array.
1966         (ipcp_analyze_node): Likewise.
1967         (ipcp_get_ith_lattice): Renamed to ipcp_get_lattice, changed to access
1968         descriptors.  Renamed all users.
1969         (ipcp_initialize_node_lattices): Remove allocation.
1970         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
1971         ipa_initialize_node_params instead of ipa_count_formal_params and
1972         ipa_create_param_decls_array.
1973         * ipa-prop.c (ipa_create_param_decls_array): Renamed to
1974         ipa_populate_param_decls, made static, added parameter info,
1975         renamed mt to node, removed allocation, changed to use
1976         descriptors.
1977         (ipa_count_formal_params): Made static, added parameter info,
1978         renamed mt to node.
1979         (ipa_initialize_node_params): New function.
1980         (ipa_check_stmt_modifications): Changed to use descriptors.
1981         (ipa_detect_param_modifications): Removed allocation, changed to
1982         use descriptors.
1983         (ipa_note_param_call): Changed to use descriptors.
1984         (ipa_analyze_params_uses): Removed allocation.
1985         (ipa_free_node_params_substructures): Changed to use descriptors.
1986         (ipa_edge_duplication_hook): Use the unused attribute.
1987         (ipa_node_duplication_hook): Use the unused attribute, changed to
1988         use descriptors, changed to duplicate descriptors.
1989
1990         * ipa-inline.c (cgraph_mark_inline_edge): New parameter new_edges,
1991         changed all callers.  Call ipa_propagate_indirect_call_infos if doing
1992         indirect inlining.  Made static.
1993         (cgraph_decide_inlining): Freeing ipa-prop structures after inlining
1994         functions called only once.
1995         (cgraph_decide_recursive_inlining): Don't call
1996         ipa_propagate_indirect_call_infos, pass new_edges to
1997         cgraph_mark_inline_edge instead.
1998         (cgraph_decide_inlining_of_small_functions): Don't call
1999         ipa_propagate_indirect_call_infos, pass new_edges to
2000         cgraph_mark_inline_edge instead.
2001         (cgraph_decide_inlining): Don't call
2002         ipa_propagate_indirect_call_infos.
2003         * ipa-prop.c: Check that vectors are allocated.
2004
2005         * ipa-inline.c (cgraph_mark_inline_edge): Returns boolean, true
2006         iff a new cgraph edges have been created.
2007         (cgraph_decide_inlining): New variable redo_always_inline.
2008         Flattening and always_inlining loop until callgraph stabilizes.
2009         * ipa-prop.c (update_call_notes_after_inlining): Returns boolean,
2010         true iff new cgraph edges have been created.
2011         (propagate_info_to_inlined_callees): Likewise.
2012         (ipa_propagate_indirect_call_infos): Likewise.
2013
2014 2008-09-11  Richard Guenther  <rguenther@suse.de>
2015
2016         * tree-vectorizer.c (slpeel_add_loop_guard): Fix types.
2017         (set_prologue_iterations): Likewise.
2018         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref):
2019         Likewise.
2020         (vect_update_init_of_dr): Likewise.
2021         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Fix
2022         type verification.
2023         * fold-const.c (fold_unary): Do not generate calculations
2024         in sub-types.
2025
2026 2008-09-11  Paolo Bonzini  <bonzini@gnu.org>
2027
2028         * dojump.c (do_jump) [BIT_AND_EXPR]: Move below.  Fall through to
2029         TRUTH_AND_EXPR for boolean (1-bit precision) expressions.
2030         (do_jump) [BIT_IOR_EXPR]: Compile as TRUTH_OR_EXPR.
2031
2032         * tree-flow.h (simplify_stmt_using_ranges): Accept a GSI, return
2033         a bool.
2034         * tree-ssa-propagate.c (substitute_and_fold): Pass a GSI to
2035         VRP's simplify_stmt_using_ranges.  Do simplify_stmt_using_ranges
2036         before finalizing the changes.
2037         * tree-vrp.c (extract_range_from_binary_expr): Add limited support
2038         for BIT_IOR_EXPR.
2039         (simplify_truth_ops_using_ranges): New.
2040         (simplify_div_or_mod_using_ranges, simplify_abs_using_ranges,
2041         simplify_cond_using_ranges, simplify_switch_using_ranges): Return
2042         whether a simplification was made.
2043         (simplify_stmt_using_ranges): Ditto, and accept a GSI.  For GS_ASSIGN,
2044         use a switch statement and also call simplify_truth_ops_using_ranges.
2045
2046 2008-09-11  Jan Hubicka  <jh@suse.cz>
2047
2048         * ggc-common.c (loc_array): Make static.
2049         * dce.c (rest_of_handle_ud_dce): Free worklist.
2050
2051 2008-09-11  Jan Hubicka  <jh@suse.cz>
2052
2053         * cgraph.c (cgraph_release_function_body): Plug memory leak on
2054         ipa_transforms_to_apply and CFG; ggc_free gimple df and struct
2055         function so we are sure we do not dangle it forever.
2056         * function.c (outer_function_chain, find_function_data): Remove.
2057         (function_context_stack): New.
2058         (push_function_context, pop_function_context): Update.
2059         * function.h (struct function): Remove pointer outer.
2060         (outer_function_chain, find_function_data): Remove.
2061         * stmt.c (force_label_rtx): Remove dead call of find_function_data.
2062
2063 2008-09-11  Jan Hubicka  <jh@suse.cz>
2064
2065         PR middle-end/37448
2066         * cgraph.c (cgraph_create_edge): Use !cgraph_edge for sanity check.
2067
2068 2008-09-11  Jan Hubicka  <jh@suse.cz>
2069
2070         * tree-ssa-pre.c (phi_translate_1): Fix memory leak
2071
2072 2008-09-11  Jan Hubicka  <jh@suse.cz>
2073
2074         * tree-ssa.c (redirect_edge_var_map_clear): Fix formatting.
2075         (free_var_map_entry): New function.
2076         (redirect_edge_var_map_destroy): Use it.
2077
2078 2008-09-11  Jan Hubicka  <jh@suse.cz>
2079
2080         PR middle-end/37448
2081         * tree-inline.c (add_lexical_block): Replace with ...
2082         (prepend_lexical_block): ... prepend at begginig.
2083         (remap_blocks): Use it and reverse later.
2084         (expand_call_inline): Use prepend_lexical_block.
2085
2086 2008-09-11  Jan Hubicka  <jh@suse.cz>
2087
2088         * gimplify.c (pop_gimplify_context): Free bind_expr_stack.
2089
2090 2008-09-11  Jan Hubicka  <jh@suse.cz>
2091
2092         * function.c (free_after_compilation): Call insn_locators_free.
2093         * cfglayout.c (insn_locators_free): New function.
2094         * rtl.h (insn_locators_free): Declare.
2095
2096 2008-09-11  Jan Hubicka  <jh@suse.cz>
2097
2098         * ifcvt.c (check_cond_move_block): Make regs argument pointer to
2099         vector pointer.
2100         (cond_move_process_if_block): Update call.
2101
2102 2008-09-11  Jan Hubicka  <jh@suse.cz>
2103
2104         * toplev.c (dump_memory_report): Call dump_vec_loc_statistics.
2105         * vec.c: Include hashtab.h
2106         (vec_descriptor, ptr_hash_entry): New structures.
2107         (vec_desc_hash, vec_ptr_map): New static variables.
2108         (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr, vec_descriptor,
2109         register_overhead, free_overhead, vec_heap_free): New functions.
2110         (vec_gc_o_reserve_1): ggc_free when resizing to 0.
2111         (vec_heap_o_reserve_1): free when resizing to 0; add statistics.
2112         (cmp_statistic, add_statistics, dump_vec_loc_statistics):
2113         New functions.
2114
2115 2008-09-11  Ira Rosen  <irar@il.ibm.com>
2116
2117         PR tree-optimization/37474
2118         * tree-vect-analyze.c (vect_supported_load_permutation_p): Check the
2119         length of load permutation.
2120
2121 2008-09-11  Andreas Schwab  <schwab@suse.de>
2122
2123         * config/m68k/m68k.h (IRA_COVER_CLASSES): Define.
2124
2125 2008-09-11  Jakub Jelinek  <jakub@redhat.com>
2126
2127         PR target/37382
2128         * expmed.c (extract_low_bits): Avoid creating invalid subregs.
2129         * dse.c (find_shift_sequence): Use extract_low_bits instead of
2130         simplify_gen_subreg.
2131
2132 2008-09-11  Ira Rosen  <irar@il.ibm.com>
2133
2134         * tree-vect-transform.c (vectorizable_store): Use the rhs vector type
2135         for alias check.
2136
2137 2008-09-10  Jakub Jelinek  <jakub@redhat.com>
2138
2139         PR middle-end/37338
2140         * gimplify.c (gimplify_body): Call default_rtl_profile.
2141
2142         PR target/36904
2143         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Return NULL
2144         instead of tok->val.node if not expanding to something else.  Handle
2145         intervening CPP_PADDING tokens.
2146         (altivec_categorize_keyword): Remove unneeded comparisons.
2147
2148 2008-09-10  Richard Guenther  <rguenther@suse.de>
2149
2150         * tree-ssa-pre.c (phi_translate_1): Fix memory leak.
2151
2152 2008-09-10  Richard Guenther  <rguenther@suse.de>
2153
2154         PR middle-end/37432
2155         * tree-inline.c (insert_init_stmt): Make sure to not
2156         insert invalid gimple stores.
2157
2158 2008-09-10  Sebastian Pop  <sebastian.pop@amd.com>
2159
2160         PR tree-optimization/37388
2161         * toplev.c (process_options): Fail and warn when graphite
2162         flags are used, but the compiler has not been configured
2163         with graphite libraries.
2164         * graphite.c (graphite_transform_loops): Remove printfs
2165         to dump_file for the case when graphite is not available.
2166
2167 2008-09-10  H.J. Lu  <hongjiu.lu@intel.com>
2168
2169         PR target/37434:
2170         * config/i386/i386.c (ix86_expand_vector_init_interleave): Force
2171         the even element into register.
2172         (ix86_expand_vector_init_general): Don't use
2173         ix86_expand_vector_init_interleave on V16QImode and V8HImode
2174         if we can't move from GPR to SSE register directly.
2175
2176 2008-09-10  Bernd Schmidt  <bernd.schmidt@analog.com>
2177
2178         * config/bfin/bfin.c (workaround_speculation): Correct algorithm to
2179         not lose track of the number of NOPs needed.  Number of NOPs needed
2180         for sync vs. loads workaround was switched; corrected.  Run second
2181         pass for all workarounds.  No NOPs needed after call insns.  Change
2182         second pass to use find_next_insn_start and find_load helpers in order
2183         to properly detect parallel insns.
2184         * config/bfin/bfin.md (cbranch_with_nops): Increase length.
2185
2186 2008-09-10  Jan Hubicka  <jh@suse.cz>
2187
2188         * value-prof.c (gimple_ic): Fix tuplification bug.
2189         * sched-deps.c (sched_insns_conditions_mutex_p): Silence unitialized
2190         var warning.
2191
2192 2008-09-10  Jakub Jelinek  <jakub@redhat.com>
2193
2194         PR tree-optimization/37353
2195         * tree-call-cdce.c (cond_dead_built_in_calls): Remove.
2196         (shrink_wrap_conditional_dead_built_in_calls): Add calls argument, use
2197         calls instead of cond_dead_built_in_calls.
2198         (tree_call_cdce): Add cond_dead_built_in_calls automatic variable,
2199         initalize the vector only before adding first entry.  Use VEC_safe_push
2200         instead of VEC_quick_push.  Pass cond_dead_built_in_calls to
2201         shrink_wrap_conditional_dead_built_in_calls call.
2202
2203 2008-09-10  Ira Rosen  <irar@il.ibm.com>
2204
2205         PR tree-optimization/37385
2206         * tree-vect-transform.c (vect_create_data_ref_ptr): Add a new
2207         argument, and use it as a vector type if not NULL.
2208         (vectorizable_store): Call vect_create_data_ref_ptr with the type of
2209         vectorized rhs.
2210         (vect_setup_realignment): Call vect_create_data_ref_ptr with
2211         additional argument.
2212         (vectorizable_load): Likewise.
2213
2214 2008-09-10  Jakub Jelinek  <jakub@redhat.com>
2215
2216         * config/i386/i386.md (SWI32): New mode iterator.
2217         (jcc_fused_1, jcc_fused_2, jcc_fused_3, jcc_fused_4): Use it instead
2218         of SWI.
2219
2220 2008-09-09  Vladimir Makarov  <vmakarov@redhat.com>
2221
2222         PR rtl-optimization/37435
2223         * caller-save.c (insert_restore, insert_save): Check the mode by
2224         reg_save_code.
2225
2226 2008-09-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2227
2228         PR other/37265
2229         * dwarf2asm.c (dw2_force_const_mem): Use unstripped symbol name for
2230         splay tree lookup.
2231         (dw2_output_indirect_constant_1): Use unstripped name in symbol
2232         reference.
2233
2234 2008-09-09  Sandra Loosemore  <sandra@codesourcery.com>
2235
2236         * doc/invoke.texi (ARM Options): Correct errors in discussion
2237         of -mfloat-abi, -mhard-float, and -msoft-float.
2238
2239 2008-09-09  Jakub Jelinek  <jakub@redhat.com>
2240             Jan Hubicka  <jh@suse.cz>
2241
2242         PR middle-end/37356
2243         * tree-inline.c (copy_bb): Insert stmt into copy_basic_block before
2244         calling gimple_regimplify_operands on it.  Iterate over all newly
2245         added statements, not just the last one.
2246         (insert_init_stmt): Insert stmt into seq first, then call
2247         gimple_regimplify_operands on it.  Don't create new gimplification
2248         context, nor find referenced vars.
2249
2250 2008-09-09  Jakub Jelinek  <jakub@redhat.com>
2251
2252         PR other/37419
2253         * ipa-prop.h (ipa_propagate_indirect_call_infos): Change last argument
2254         to pointer to vector pointer.
2255         * ipa-prop.c (ipa_propagate_indirect_call_infos,
2256         propagate_info_to_inlined_callees): Likewise.
2257         (update_call_notes_after_inlining): Likewise.  Push new indirect edge
2258         to *new_edges instead of new_edges.  Reread IPA_EDGE_REF after
2259         ipa_check_create_edge_args.
2260         * ipa-inline.c (cgraph_decide_recursive_inlining): Change last
2261         argument to pointer to vector pointer.
2262         (cgraph_decide_inlining_of_small_function): Adjust
2263         cgraph_decide_recursive_inlining and ipa_propagate_indirect_call_infos
2264         calls.
2265
2266         PR target/37438
2267         * config/i386/i386.md (zero_extendqihi2_movzbl): Enable when
2268         optimizing for size, not speed.
2269
2270         PR rtl-optimization/37408
2271         * function.c (assign_parm_find_stack_rtl): Set correct MEM_SIZE
2272         if parm is promoted.
2273
2274 2008-09-09  Sebastian Pop  <sebastian.pop@amd.com>
2275
2276         PR tree-optimization/37375
2277         * tree-scalar-evolution.c (scev_info_str): Add field
2278         instantiated_below.
2279         (new_scev_info_str, eq_scev_info, find_var_scev_info,
2280         set_scalar_evolution, get_scalar_evolution, get_instantiated_value,
2281         set_instantiated_value): Pass instantiated_below.
2282         (analyze_scalar_evolution_1, analyze_scalar_evolution): Update calls
2283         to above functions.
2284         (instantiate_scev_1, instantiate_scev): Pass a basic block above which
2285         the definitions are not instantiated.
2286
2287         * tree-scalar-evolution.h (instantiate_scev): Update declaration.
2288         (block_before_loop): New.
2289         * tree-data-ref.c (dr_analyze_indices): Update uses of
2290         instantiate_scev.
2291         * graphite.c (block_before_scop): New.
2292         (loop_affine_expr, stmt_simple_for_scop_p, harmful_stmt_in_bb): Pass a
2293         basic block, not a loop for determining the parameters.
2294         (scopdet_edge_info, build_scops_1): Do not pass outermost loop in the
2295         scop.
2296         (idx_record_params, find_params_in_bb, find_scop_parameters,
2297         build_loop_iteration_domains, add_conditions_to_domain): Update calls
2298         to instantiate_scev.
2299
2300         * Makefile.in (cfgloopmanip.o): Add missing dependency on TREE_FLOW_H.
2301
2302 2008-09-09  Vladimir Makarov  <vmakarov@redhat.com>
2303
2304         PR rtl-opt/37333
2305
2306         * ira-build.c (ira_create_allocno): Setup frequency to 0.
2307
2308         * ira-color.c (update_conflict_hard_regno_costs): Remove assert.
2309         Check zero freq and increase if necessary.
2310
2311 2008-09-09  Vladimir Makarov  <vmakarov@redhat.com>
2312
2313         * ira-conflicts.c (process_regs_for_copy): Check that the hard
2314         regno is in the right range.  Add comments.
2315
2316 2008-09-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2317
2318         * Makefile.in (mips-tfile.o-warn): Don't error out on mips-tfile.c
2319         warnings.
2320         * mips-tfile.c (copy_object): Cast alloca result to int *.
2321         * mips-tdump.c (print_symbol): Cast xmalloc return values to
2322         proper types.
2323         Rename class to sclass.
2324         (read_tfile): Cast read_seek return values to proper types.
2325         Cast xcalloc return value to proper type.
2326
2327 2008-09-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2328
2329         * config/sol2.h (REGISTER_TARGET_PRAGMAS): Move ...
2330         * config/i386/sol2.h (REGISTER_SUBTARGET_PRAGMAS): ... here.
2331         * config/sparc/sol2.h (REGISTER_TARGET_PRAGMAS): ... and here.
2332
2333 2008-09-09  Jan Hubicka  <jh@suse.cz>
2334
2335         * profile.c (is_edge_inconsistent): Add debug output; ignore
2336         negative count on fake edges.
2337         (is_inconsistent): Add debug output.
2338
2339 2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
2340
2341         * haifa-sched.c (advance_one_cycle): Do not print '\n' before printing
2342         dump message.
2343         (choose_ready): When first insn is chosen from the ready list, also
2344         dump it.
2345
2346 2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
2347
2348         PR rtl-optimization/37360
2349         * haifa-sched.c (max_issue): Do not assert that we never issue more
2350         insns than issue_rate.  Add comment.
2351
2352 2008-09-09  Richard Guenther  <rguenther@suse.de>
2353
2354         * tree-cfg.c (verify_types_in_gimple_op): Remove.
2355         (verify_types_in_gimple_call): Rename to ...
2356         (verify_gimple_call): ... this.  Enhance.
2357         (verify_types_in_gimple_cond): Remove.
2358         (verify_gimple_comparison): New function ...
2359         (verify_types_in_gimple_assign): ... split out from here.
2360         (verify_types_in_gimple_return): Rename to ...
2361         (verify_gimple_return): ... this.  Enhance.
2362         (verify_types_in_gimple_switch): Rename to ...
2363         (verify_gimple_switch): ... this.  Enhance.
2364         (verify_gimple_goto): New function.
2365         (verify_types_in_gimple_phi): Rename to ...
2366         (verify_gimple_phi): ... this.  Enhance.
2367         (verify_types_in_gimple_stmt): Adjust calls to helper functions.
2368         Fold in single-statement cases from verify_types_in_gimple_seq_2.
2369         (verify_types_in_gimple_seq_2): Remove cases handled in
2370         verify_types_in_gimple_stmt.
2371
2372 2008-09-09  Bernd Schmidt  <bernd.schmidt@analog.com>
2373
2374         * config/bfin/bfin.c (n_regs_to_save): New static variable.
2375         (push_multiple_operation, pop_multiple_operation): Set it.
2376         (workaround_rts_anomaly): New function.
2377         (workaround_speculation): New function, broken out of bfin_reorg.
2378         (bfin_reorg): Call the new functions.
2379
2380 2008-09-09  Richard Guenther  <rguenther@suse.de>
2381
2382         PR middle-end/37354
2383         PR middle-end/30165
2384         * gimplify.c (gimplify_conversion): Change conversions of
2385         non-register type to VIEW_CONVERT_EXPRs.
2386         (gimplify_addr_expr): If we need to make the operand
2387         addressable make sure to use a properly initialized
2388         temporary for that so it gets a valid gimple store.
2389
2390 2008-09-09  Aldy Hernandez  <aldyh@redhat.com>
2391
2392         * function.h (struct function): Add function_start_locus.
2393         * cfgexpand.c (gimple_expand_cfg): Use it.
2394         * c-parser.c (c_parser_declaration_or_fndef): Set it.
2395
2396 2008-09-09  Richard Guenther  <rguenther@suse.de>
2397
2398         PR tree-optimization/37433
2399         * tree-ssa-ccp.c (ccp_fold): Properly guard folding of
2400         function calls.
2401
2402 2008-09-09  Richard Guenther  <rguenther@suse.de>
2403
2404         PR tree-optimization/37387
2405         * tree-ssa-ifcombine.c (ifcombine_iforif): Convert the name
2406         and bits to a common type.
2407
2408 2008-09-09  Nick Clifton  <nickc@redhat.com>
2409
2410         * config/v850/v850.md (return): Restore frame size restriction.
2411
2412 2008-09-09  Paolo Bonzini  <bonzini@gnu.org>
2413
2414         * c-common.c (c_expand_decl): Remove.
2415         * c-common.h (anon_aggr_type_p): Remove prototype.
2416         (DECL_ANON_UNION_ELEMS): Remove.
2417         * c-objc-common.h (LANG_HOOKS_EXPAND_DECL): Remove.
2418         * c-decl.c (anon_aggr_type_p): Remove.
2419         * langhooks-def.h (LANG_HOOKS_EXPAND_DECL): Remove.
2420         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_EXPAND_DECL.
2421         * langhooks.h (struct lang_hooks): Remove expand_decl.
2422         * langhooks.c (lhd_expand_decl): Remove.
2423         * stmt.c (expand_anon_union_decl): Remove.
2424         * tree.h (expand_anon_union_decl): Remove prototype.
2425
2426 2008-08-09  Andy Hutchinson  <hutchinsonandy@aim.com>
2427
2428         PR target/36609
2429         * config/avr/avr.c (avr_reorg): Create RTL for reversed compare with
2430         zero.
2431         * config/avr/avr.md  (QISI) : Define mode iterator.
2432         (negated_tst<mode>) : Redefine as split using mode macro.
2433         (reversed_tstqi): Define insn as reversed compare with zero.
2434         (reversed_tsthi): Ditto.
2435         (reversed_tstsi): Ditto.
2436
2437 2008-09-08  Jakub Jelinek  <jakub@redhat.com>
2438
2439         PR middle-end/37393
2440         * tree-inline.c (copy_bb): When replacing a gimple_call_va_arg_pack_p
2441         call stmt by new_call, clear gimple_bb on stmt after gsi_replace.
2442
2443         PR middle-end/37414
2444         * predict.c (optimize_function_for_size_p): Don't segfault if
2445         FUN is NULL.
2446         * fold-const.c (LOGICAL_OP_NON_SHORT_CIRCUIT, fold_truthop,
2447         tree_swap_operands_p): Don't test cfun != NULL before calling
2448         optimize_function_for_s*_p.
2449
2450 2008-09-08  Eric Botcazou  <ebotcazou@adacore.com>
2451
2452         * ira-color.c (ira_reuse_stack_slot): Set slot_num on success at the
2453         end of the search.
2454
2455 2008-09-08  M R Swami Reddy <MR.Swami.Reddy@nsc.com>
2456
2457         * crx/crx.h (IRA_COVER_CLASSES): Define.
2458
2459 2008-09-08  Jakub Jelinek  <jakub@redhat.com>
2460
2461         PR middle-end/37337
2462         * tree-ssa-dom.c (optimize_stmt): Call maybe_clean_or_replace_eh_stmt
2463         even when a stmt has been gimple_modified_p, but after fold_stmt is
2464         not any longer.  Remove unneeded may_have_exposed_new_symbols
2465         initializations.
2466
2467 2008-09-08  Richard Guenther  <rguenther@suse.de>
2468
2469         PR tree-optimization/37421
2470         * tree-ssa-sccvn.c (visit_copy): Make sure to fully
2471         valueize the RHS.
2472
2473 2008-09-08  Jakub Jelinek  <jakub@redhat.com>
2474
2475         PR middle-end/37415
2476         * opts.c (common_handle_option): Handle OPT_ftree_store_ccp.
2477
2478 2008-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2479
2480         PR driver/37409
2481         * pa-hpux.h (LINK_SPEC): Strip -fwhole-program.
2482         * pa-hpux10.h (LINK_SPEC): Likewise.
2483         * pa-hpux11.h (LINK_SPEC): Likewise.
2484
2485 2008-09-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2486
2487         * pa32-regs.h (IRA_COVER_CLASSES): Define.
2488         * pa64-regs.h (IRA_COVER_CLASSES): Define.
2489
2490 2008-09-07  Helge Deller  <deller@gmx.de>
2491
2492         * pa/linux-atomic.c: New file.
2493         * pa/t-linux (LIB2FUNCS_STATIC_EXTRA): Define.
2494         * pa/t-linux64 (LIB2FUNCS_STATIC_EXTRA): Define.
2495
2496 2008-09-07  Richard Guenther  <rguenther@suse.de>
2497             Ira Rosen  <irar@il.ibm.com>
2498
2499         PR tree-optimization/36630
2500         * tree-vect-transform.c (vect_update_ivs_after_vectorizer):
2501         Call STRIP_NOPS before calling evolution_part_in_loop_num.
2502
2503 2008-09-07  Dorit Nuzman  <dorit@il.ibm.com>
2504             Ira Rosen  <irar@il.ibm.com>
2505
2506         PR tree-optimization/35642
2507         * config/rs6000/altivec.md (mulv8hi3): Implement.
2508
2509 2008-09-06  Jeff Law <law@redhat.com>
2510
2511         * h8300/h8300.h (IRA_COVER_CLASSES): Define.
2512
2513 2008-09-06  Jan Hubicka  <jh@suse.cz>
2514
2515         PR tree-optimization/14703
2516         * tree-ssa-live.c (remove_unused_scope_block_p): Remove ignored
2517         declarations.
2518         * passes.c (init_optimization_passes): Recompute inline parameters.
2519
2520 2008-09-06  Richard Sandiford  <rdsandiford@googlemail.com>
2521
2522         * config/mips/mips.c (mips_function_ok_for_sibcall): Check for
2523         DECL being null.
2524
2525 2008-09-06  Richard Sandiford  <rdsandiford@goolemail.com>
2526             Peter Fuerst  <post@pfrst.de>
2527
2528         * doc/invoke.texi: Document -mr10k-cache-barrier=.
2529         * doc/extend.texi: Document __builtin_mips_cache.
2530         * config/mips/mips-ftypes.def: Add a (VOID, SI, CVPOINTER) entry.
2531         * config/mips/mips.opt (mr10k-cache-barrier=): New option.
2532         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
2533         __GCC_HAVE_BUILTIN_MIPS_CACHE.
2534         (TARGET_CACHE_BUILTIN, ISA_HAS_CACHE): New macros.
2535         * config/mips/mips.c (mips_r10k_cache_barrier_setting): New enum.
2536         (set_push_mips_isas): New variable.
2537         (mips_r10k_cache_barrier): New variable.
2538         (cache): New availability predicate.
2539         (mips_builtins): Add an entry for __builtin_mips_cache.
2540         (mips_build_cvpointer_type): New function.
2541         (MIPS_ATYPE_CVPOINTER): New macro.
2542         (mips_prepare_builtin_arg): Only use the insn's mode if the rtx's
2543         mode is VOIDmode.
2544         (r10k_simplified_address_p, r10k_simplify_address)
2545         (r10k_uncached_address_p, r10k_safe_address_p)
2546         (r10k_needs_protection_p_1, r10k_needs_protection_p_store)
2547         (r10k_needs_protection_p_call, r10k_needs_protection_p)
2548         (r10k_insert_cache_barriers): New functions.
2549         (mips_reorg_process_insns): Delete cache barriers after a
2550         branch-likely instruction.
2551         (mips_reorg): Call r10k_insert_cache_barriers.
2552         (mips_handle_option): Handle OPT_mr10k_cache_barrier_.
2553         * config/mips/mips.md (UNSPEC_MIPS_CACHE): New constant.
2554         (UNSPEC_R10K_CACHE_BARRIER): Likewise.
2555         (mips_cache, r10k_cache_barrier): New define_insns.
2556
2557 2008-09-06  Richard Sandiford  <rdsandiford@googlemail.com>
2558
2559         * ira-int.h (ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete.
2560         * ira-color.c (setup_allocno_left_conflicts_num): Use
2561         hard_reg_set_equal_p instead of a comparison with
2562         ira_zero_hard_reg_set.
2563         * ira.c (setup_reg_subclasses): Likewise.
2564         (setup_cover_and_important_classes): Likewise.
2565         (setup_class_translate): Likewise.
2566         (setup_reg_class_intersect_union): Likewise.
2567         (ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete.
2568         (ira_init_once): Don't initialize them.
2569
2570 2008-09-05  Vladimir Makarov  <vmakarov@redhat.com>
2571
2572         * doc/tm.texi (IRA_COVER_CLASSES): Fix a typo.
2573
2574 2008-09-05  Vladimir Makarov  <vmakarov@redhat.com>
2575
2576         * ira-color.c (ira_fast_allocation): Permit global allocno allocation.
2577
2578 2008-09-05  Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
2579
2580         Improved branch hints, safe hints, and scheduling.
2581
2582         * haifa-sched.c (sched_emit_insn) : Define.
2583         * sched-int.h (sched_emit_insn) : Add prototype.
2584         * doc/invoke.texi (-mdual-nops, -mhint-max-nops,
2585         -mhint-max-distance -msafe-hints) : Document.
2586         * config/spu/spu.c (spu_flag_var_tracking): New.
2587         (TARGET_SCHED_INIT_GLOBAL, TARGET_SCHED_INIT,
2588         TARGET_SCHED_REORDER, TARGET_SCHED_REORDER2,
2589         TARGET_ASM_FILE_START): Define.
2590         (TARGET_SCHED_ADJUST_PRIORITY): Remove.
2591         (STOP_HINT_P, HINTED_P, SCHED_ON_EVEN_P): Define.
2592         (spu_emit_branch_hint): Add blocks argument.
2593         (insert_branch_hints, insert_nops): Remove.
2594         (pad_bb, insert_hbrp_for_ilb_runout, insert_hbrp, in_spu_reorg,
2595         uses_ls_unit, spu_sched_init_global, spu_sched_init,
2596         spu_sched_reorder, asm_file_start): New functions.
2597         (clock_var, spu_sched_length, pipe0_clock,
2598         pipe1_clock, prev_clock_var, prev_priority,
2599         spu_ls_first, prev_ls_clock): New static variables.
2600         * config/spu/spu.h (TARGET_DEFAULT): Add MASK_SAFE_HINTS.
2601         * config/spu.md (iprefetch): Add operand, make it clobber MEM.
2602         (nopn_nv): Add a non-volatile version of nop.
2603         * config/spu/spu.opt (-mdual-nops, -mhint-max-nops,
2604         -mhint-max-distance, -msafe-hints): New options.
2605
2606 2008-09-05  Janis Johnson  <janis187@us.ibm.com>
2607             Samuel Tardieu  <sam@rfc1149.net>
2608
2609         * opts.c (decode_options): Combine nested if statements.
2610
2611         PR target/37283
2612         * opts.c (decode_options): Handle more relationships among
2613         unit-at-a-time, toplevel-reorder, and section-anchors.
2614
2615 2008-09-05  David Daney  <ddaney@avtrex.com>
2616
2617         * doc/install.texi (--enable-reduced-reflection): Document new option.
2618
2619 2008-09-05  Bob Wilson  <bob.wilson@acm.org>
2620
2621         * config/xtensa/predicates.md (nonimmed_operand, mem_operand): Use
2622         constantpool_mem_p.
2623         (constantpool_operand): New.
2624         (move_operand): Disallow sub-word modes for the constant pool.
2625         * config/xtensa/xtensa.c (TARGET_SECONDARY_RELOAD): Define.
2626         (xtensa_secondary_reload_class): Replace with....
2627         (xtensa_secondary_reload): this function.  Remove SIGN_EXTEND check.
2628         Set icode for sub-word reloads from the constant pool.
2629         * config/xtensa/xtensa.h (SECONDARY_INPUT_RELOAD_CLASS): Delete.
2630         (SECONDARY_OUTPUT_RELOAD_CLASS): Delete.
2631         * config/xtensa/xtensa.md (reload<mode>_literal): New.
2632         * config/xtensa/xtensa-protos.h: Update prototypes.
2633
2634 2008-09-05  Joseph Myers  <joseph@codesourcery.com>
2635
2636         * config/mips/mips.h (enum reg_class): Add FRAME_REGS.
2637         (REG_CLASS_NAMES): Update.
2638         (REG_CLASS_CONTENTS): Update.
2639         * config/mips/mips.c (mips_regno_to_class): Use FRAME_REGS instead
2640         of ALL_REGS for regs 77 and 78.
2641         * function.c (instantiate_virtual_regs_in_insn): Assert that
2642         return value of simplify_gen_subreg is not NULL.
2643
2644 2008-09-05  Paolo Bonzini  <bonzini@gnu.org>
2645
2646         * emit-rtl.c (gen_rtvec): Rewrite not using gen_rtvec_v.
2647         (gen_rtvec_v): Fix coding standards.
2648
2649 2008-09-04  Jan Hubicka  <jh@suse.cz>
2650
2651         * i386.c (decide_alg): Be more conservative about optimizing for size.
2652
2653 2008-09-04  Ian Lance Taylor  <iant@google.com>
2654
2655         * varasm.c (narrowing_initializer_constant_valid_p): New
2656         static function.
2657         (initializer_constant_valid_p): Call it.
2658
2659 2008-09-04  Jeff Law  <law@redhat.com>
2660
2661         * fold-const.c (native_encode_real): Fix computation of WORDS.
2662         (native_interpret_real): Likewise.
2663
2664 2008-09-04  Janis Johnson  <janis187@us.ibm.com>
2665
2666         * config/rs6000/t-rs6000: Remove target gt-rs6000.h.
2667
2668 2008-09-04  Vladimir Makarov  <vmakarov@redhat.com>
2669
2670         * ira-conflicts.c (process_regs_for_copy): Check insn to check
2671         that the cost is already taken into account in ira-costs.c
2672
2673         * ira-int.h (ira_debug_copy, ira_debug_copies): New.
2674
2675         * ira-build.c (print_copy, print_copies, ira_debug_copy,
2676         ira_debug_copies): New.
2677         (ira_bulid): Call print_copies.
2678
2679         * doc/tm.texi (IRA_COVER_CLASSES): Fix the description.
2680
2681 2008-09-04  Samuel Tardieu  <sam@rfc1149.net>
2682
2683         PR target/32783
2684         * config/rs6000/rs6000.c (optimization_options): Remove check of
2685         flag_toplevel_order.
2686
2687 2008-09-04  Adam Nemet  <anemet@caviumnetworks.com>
2688
2689         * config/mips/mips.h (ISA_HAS_SEQ_SNE): New macro.
2690         * config/mips/mips.c (mips_expand_scc): Also expand seq and sne if
2691         second operand is a reg_imm10_operand.
2692         * config/mips/mips.md (*seq_<GPR:mode><GPR2:mode>_seq,
2693         *sne_<GPR:mode><GPR2:mode>_sne): New patterns.
2694         (*seq_<GPR:mode><GPR2:mode>): Rename to
2695         *seq_zero_<GPR:mode><GPR2:mode>.  Don't match if
2696         ISA_HAS_SEQ_SNE.
2697         (*seq_<GPR:mode><GPR2:mode>_mips16): Rename to
2698         *seq_zero_<GPR:mode><GPR2:mode>_mip16.  Don't match if
2699         ISA_HAS_SEQ_SNE.
2700         (*sne_<GPR:mode><GPR2:mode>): Rename to
2701         *sne_zero_<GPR:mode><GPR2:mode>.  Don't match if
2702         ISA_HAS_SEQ_SNE.
2703
2704 2008-09-04  Adam Nemet  <anemet@caviumnetworks.com>
2705
2706         * config/mips/mips.h (ISA_HAS_EXTS): New macro.
2707         * config/mips/mips.md (*ashr_trunc<mode>): Name the pattern
2708         combining an arithmetic right shift by more than 31 and a
2709         trunction.  Don't match for out-of-range shift amounts.  Set
2710         attribute mode to <MODE>.
2711         (*lshr32_trunc<mode>): Name the pattern combining a logical right
2712         shift by 32 and and a truncation.  Set attribute mode to <MODE>.
2713         (*<optab>_trunc<mode>_exts): New pattern for truncated right
2714         shifts by less than 32.
2715         (extv): Change predicate on first operand to accept registers.
2716         Change predicate of the other operands from immediate_operand to
2717         const_int_operand.  Expand exts when source is a register.
2718         (extzv): Change predicate of the constant operands from
2719         immediate_operand to const_int_operand.
2720         (extzv<mode>): Change predicate of the constant operands from
2721         immediate_operand to const_int_operand and no constraint. Also
2722         remove mode.
2723         (*extzv_trunc<mode>_exts): New pattern.
2724
2725 2008-09-04  Adam Nemet  <anemet@caviumnetworks.com>
2726
2727         * config/mips/mips.h (ISA_HAS_CINS): New macro.
2728         * config/mips/mips-protos.h (mask_low_and_shift_p,
2729         mask_low_and_shift_len): Declare.
2730         * config/mips/mips.c (mask_low_and_shift_p,
2731         mask_low_and_shift_len): New functions.
2732         (mips_print_operand): Handle new operand prefix "m".
2733         * config/mips/mips.md (*cins<mode>): New pattern.
2734
2735 2008-09-04  Bernd Schmidt  <bernd.schmidt@analog.com>
2736
2737         * config/bfin/bfin.c (gen_one_bundle): Don't create new nops when
2738         optimizing for size.
2739
2740 2008-09-04  Richard Sandiford  <rdsandiford@googlemail.com>
2741
2742         * df-scan.c (df_get_entry_block_def_set): Add STACK_POINTER_REGNUM
2743         regardless of epilogue_completed.
2744
2745 2008-09-04  Vladimir Makarov  <vmakarov@redhat.com>
2746
2747         PR middle-end/37359
2748         * ira-lives.c (process_bb_node_lives): Check setjmp.
2749
2750 2008-09-04  Richard Sandiford  <rdsandiford@googlemail.com>
2751
2752         PR middle-end/37243
2753         * ira-build.c (form_loop_tree): Reverse BB walk.
2754         (create_bb_allocnos): Likewise.
2755         * ira-lives.c (make_regno_born_and_dead, regs_set): Delete.
2756         (mark_reg_store): Rename to...
2757         (mark_ref_live): ...this and take a df_ref argument instead of
2758         note_stores arguments.  Assert that we have a register.
2759         (mark_reg_clobber): Delete.
2760         (def_conflicts_with_inputs_p): New function.
2761         (mark_reg_conflicts): Delete.
2762         (mark_reg_death): Rename to...
2763         (mark_ref_dead): ...this and take a df_ref argument instead of
2764         a register.  Assert that we have a register.
2765         (process_bb_node_lives): Hoist frequency calculation out of
2766         instruction walk.  Convert from a forwards scan to a backwards scan.
2767         Use DF_REF_USES and DF_REF_DEFS instead of register notes and
2768         note_stores.  Remove EH_RETURN_DATA_REGNO and regs_set handling.
2769         (create_allocno_live_ranges): Don't create regs_set.
2770
2771 2008-09-04  Ian Lance Taylor  <iant@google.com>
2772
2773         * rtl.h (LABEL_REF_NONLOCAL_P): Don't check for REG_LABEL_OPERAND
2774         or REG_LABEL_TARGET.
2775         * calls.c (emit_library_call_value_1): Use MEM_P rather than
2776         comparing MODE with MEM.
2777         * gimple.c (gimple_build_predict): Cast END_PREDICTORS before
2778         comparing with GF_PREDICT_TAKEN.
2779         (gimple_get_lhs): Change code to enum gimple_code.
2780         (gimple_set_lhs): Likewise.
2781         * ifcvt.c (noce_process_if_block): Correct GET_MODE to GET_CODE.
2782         * omp-low.c (find_omp_clause): Change kind parameter to enum
2783         omp_clause_code.
2784         * tree-flow.h (find_omp_clause): Update declaration.
2785         * regrename.c (clear_dead_regs): Change kind parameter to enum
2786         reg_note.
2787         * reload1.c (eliminate_regs_1): Use REG_NOTE_KIND rather than
2788         GET_MODE.
2789         * see.c (see_get_extension_data): Change return type to enum
2790         entry_type.  Change UNKNOWN to NOT_RELEVANT, SIGN_EXTEND to
2791         SIGNED_EXTENDED_DEF, ZERO_EXTEND to ZERO_EXTENDED_DEF.
2792         (see_gen_normalized_extension): Change extension_code parameter to
2793         enum entry_type.
2794         (see_seek_pre_extension_expr): Change extension_code to enum
2795         entry_type.
2796         (see_merge_one_def_extension): Likewise.
2797         (see_handle_relevant_defs): Likewise.
2798         (see_handle_relevant_uses): Likewise.
2799         (see_analyze_one_def): Likewise.
2800         * tree-cfg.c (need_fake_edge_p): Compare gimple code with
2801         GIMPLE_ASM rather than ASM_EXPR.
2802         * tree-ssa-alias.c (is_escape_site): Compare gimple code with
2803         GIMPLE_RETURN rather than RETURN_EXPR.
2804         * tree-ssa-ccp.c (likely_value): Change code to enum gimple_code.
2805         (evaluate_stmt): Likewise.
2806         * tree-vect-analyze.c (vect_analyze_operations): Change relevance
2807         to enum vect_relevant.
2808         (vect_mark_stmts_to_be_vectorized): Change assertion to not
2809         compare gimple codes with tree codes.
2810
2811 2008-09-04  Paul Brook  <paul@codesourcery.com>
2812
2813         * config/arm/arm.c (arm_size_rtx_costs): Call cost function.
2814
2815 2008-09-04  Bernd Schmidt  <bernd.schmidt@analog.com>
2816
2817         * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Restore a null
2818         pointer check lost in the recent no-unit-at-a-time patch.
2819
2820 2008-09-04  Jan Hubicka  <jh@suse.cz>
2821
2822         PR middle-end/37343
2823         * tree-switch-conversion.c (check_final_bb): Accept only IP
2824         invariants.
2825
2826 2008-09-04  Jan Hubicka  <jh@suse.cz>
2827
2828         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
2829         Break out from ...
2830         (vrp_evaluate_conditional_warnv_with_ops): ... this one.  Add
2831         using_ranges argument.
2832         (vrp_evaluate_conditional): Avoid bogus warning for type range.
2833         (vrp_visit_cond_stmt): Update call of
2834         vrp_evaluate_conditional_warnv_with_ops
2835
2836 2008-09-04  Jan Hubicka  <jh@suse.cz>
2837
2838         PR tree-optimization/37345
2839         PR tree-optimization/37358
2840         PR tree-optimization/37357
2841         * tree.c (build_function_type_skip_args): Build distinct type copy;
2842         set TYPE_CONTEXT.
2843         (build_function_decl_skip_args): Set type of new decl not orig decl;
2844         clear DECL_VINDEX for methods turned into functions.
2845
2846 2008-09-04  Nick Clifton  <nickc@redhat.com>
2847
2848         * configure.ac (HAVE_GAS_LCOMM_WITH_ALIGNMENT): New assembler check.
2849         * configure: Regenerate.
2850         * config.in: Regenerate.
2851         * config/i386/bsd.h (ASM_OUTPUT_ALIGNED_LOCAL): Use .lcomm with an
2852         alignment field, if it is supported.
2853
2854 2008-09-04  Kai Tietz  <kai.tietz@onevision.com>
2855
2856         * config/i386/t-mingw32 (SHLIB_LC): Change order of import
2857         libraries.
2858
2859 2008-09-03  David Edelsohn  <edelsohn@gnu.org>
2860
2861         * config/rs6000/rs6000.c (processor_target_table): Do not
2862         enable VMX for POWER6.
2863
2864 2008-09-03  Anton Blanchard  <anton@samba.org>
2865
2866         * config/rs6000/rs6000.c (rs6000_split_lock_test_and_set): Do not
2867         emit memory barrier before operation.
2868
2869 2008-09-03  John David Anglin  <dave.anglin@nrc.cnrc.gc.ca>
2870
2871         PR testsuite/37325
2872         * config/pa/pa64-hpux.h (ASM_OUTPUT_EXTERNAL_REAL): Call
2873         default_elf_asm_output_external.
2874
2875 2008-09-03  Jeff Law  <law@redhat.com>
2876
2877         * h8300.c (expand_a_shift): Avoid invalid RTL sharing.
2878
2879 2008-09-03  Richard Henderson  <rth@redhat.com>
2880
2881         * config/alpha/alpha.c (alpha_split_lock_test_and_set): Move
2882         memory barrier to below the test-and-set.
2883         (alpha_split_lock_test_and_set_12): Likewise.
2884
2885 2008-09-03  Vladimir Makarov  <vmakarov@redhat.com>
2886
2887         PR rtl-opt/37243
2888
2889         * ira-int.h (ira_loop_tree_node): Rename mentioned_allocnos to
2890         all_allocnos.
2891
2892         * ira-color.c (print_loop_title): Use all_allocnos.
2893         (color_pass): Ditto.  Don't add border_allocnos.  Check that
2894         subloop allocno in the correspdoning bitmap all_allocnos.
2895
2896         * ira-emit.c (change_loop): Use all_allocnos.
2897
2898         * ira-build.c (create_loop_tree_nodes, finish_loop_tree_node): Ditto.
2899         (ira_create_allocno): Set up all_allocnos bit for the created allocno.
2900         (create_cap_allocno): Remove setting mentioned_allocnos.
2901         (create_insn_allocnos): Ditto.
2902         (remove_unnecessary_allocnos): Use all_allocnos.
2903         (check_allocno_creation): Check that allocnos are in the
2904         corresponding bitmap all_allocnos.
2905
2906 2008-09-03  Vladimir Makarov  <vmakarov@redhat.com>
2907
2908         PR rtl-opt/37243
2909
2910         * ira-conflicts.c (REG_SUBREG_P, go_through_subreg): New.
2911         (process_regs_for_copy): Process subregs.  Refine check when cost
2912         is taken into account in ira-costs.c.
2913         (process_reg_shuffles): Use REG_SUBREG_P.
2914         (add_insn_allocno_copies): Ditto.  Ignore modes.
2915
2916         * ira-color.c (conflict_allocno_vec): New.
2917         (COST_HOP_DIVISOR): New macro.
2918         (update_copy_costs_1): Use it.
2919         (update_conflict_hard_regno_costs): New function.
2920         (assign_hard_reg): Use it.
2921         (ira_color): Allocate and free conflict_allocno_vec.
2922
2923 2008-09-03  Vladimir Makarov  <vmakarov@redhat.com>
2924
2925         PR rtl-opt/37296
2926
2927         * ira-int.h (ira_sort_insn_chain): Remove.
2928
2929         * ira.c (basic_block_order_nums, chain_insn_order,
2930         chain_freq_compare, chain_bb_compare, ira_sort_insn_chain): Remove.
2931         (ira): Don't call ira_sort_insn_chain.
2932
2933         * reload1.c (reload): Don't call ira_sort_insn_chain.
2934
2935 2008-09-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2936
2937         PR middle-end/37293
2938         * cgraphunit.c (update_call_expr): Remove eh regions from statements
2939         which become non throw.
2940         (cgraph_function_versioning): Also clear DECL_WEAK.  Call
2941         update_call_expr after updating the flags on the decl.
2942
2943 2008-09-03  Jan Hubicka  <jh@suse.cz>
2944
2945         PR tree-optimization/37315
2946         * cgraph.c (cgraph_create_edge): Use gimple_has_body_p.
2947         * cgraphunit.c (verify_cgraph_node): drop gimple_body check.
2948         (cgraph_analyze_functions): Use node->analyzed
2949         (cgraph_mark_functions_to_output): Likewise.
2950         (cgraph_expand_function): All functions can be released after
2951         expanding.
2952         (cgraph_optimize): Use gimple_has_body_p.
2953         * ipa-inline.c (cgraph_clone_inlined_nodes): Use analyzed flag.
2954         (cgraph_decide_inlining_incrementally): Likewise.
2955         (inline_transform): Inline transform.
2956         * tree-inline.c (initialize_cfun): Do now shallow copy structure;
2957         copy fields needed.
2958         (inlinable_function_p): Drop gimple_body check.
2959         (expand_call_inline): Use gimple_has_body_p.
2960         * gimple.c (gimple_has_body_p): New.
2961         * gimple.h (gimple_has_body_p): Add prototype.
2962         * tree-cfg.c (execute_build_cfg): Remove gimple_body.
2963         (dump_function_to_file): Use gimple_has_body_p check.
2964
2965 2008-09-03  Jakub Jelinek  <jakub@redhat.com>
2966
2967         PR c++/37346
2968         * gimple.h (gimple_has_substatements): GIMPLE_OMP_CRITICAL has
2969         substatements.
2970         * tree-inline.c (remap_gimple_stmt): Handle GIMPLE_OMP_CRITICAL.
2971
2972 2008-09-03  Bernd Schmidt  <bernd.schmidt@analog.com>
2973
2974         From Michael Frysinger  <michael.frysinger@analog.com>
2975         * config/bfin/bfin.c (bfin_cpus[]): Add 0.1 for bf522, bf523, bf524,
2976         bf525, bf526, bf527, bf542, bf544, bf547, bf548, and bf549.  Add 0.2
2977         for bf538.
2978
2979 2008-09-03  Hari Sandanagobalane  <hariharan@picochip.com>
2980
2981         Add picoChip port.
2982         * doc/extend.texi: Document picoChip builtin functions.
2983         * doc/invoke.texi: Document picoChip options.
2984         * doc/contrib.texi: Add picoChip contribution.
2985         * doc/md.texi: Document picoChip constraints.
2986         * config.gcc: Add picochip-*-*.
2987         * config/picochip/: Add new port.
2988
2989 2008-09-03  Richard Guenther  <rguenther@suse.de>
2990
2991         PR tree-optimization/37328
2992         * tree-sra.c (sra_build_assignment): Gimplify properly.
2993         (generate_copy_inout): Take the correct stmt as definition,
2994         remove bogus assert.
2995
2996 2008-09-03  Bernd Schmidt  <bernd.schmidt@analog.com>
2997
2998         * config/bfin/bfin.c (bfin_expand_prologue): Honour no_stack_limit
2999         attributes.
3000
3001         From Michael Frysinger  <michael.frysinger@analog.com>
3002         * config/bfin/bfin.c (bfin_handle_option): Remove BF561 warning.
3003
3004 2008-09-03 Danny Smith  <dannysmith@usrs.sourceforge.net>
3005
3006         * gthr-win32.h (CONST_CAST2): Really make sure CONST_CAST2 is defined.
3007         (__gthread_setspecific): Revert 2008-08-31 change to
3008         __GTHREAD_HIDE_W32API case.  Apply it to !__GTHREAD_HIDE_W32API case.
3009
3010 2008-09-02  Aldy Hernandez  <aldyh@redhat.com>
3011
3012         * diagnostic.c (error_at): New.
3013         * toplev.h (error_at): New prototype.
3014         * c-typeck.c (build_array_ref): Call error_at instead of error.
3015         Pass location to pedwarn.
3016
3017 2008-09-02  Adam Nemet  <anemet@caviumnetworks.com>
3018
3019         * sel-sched.c (sel_hard_regno_rename_ok): Mark arguments unused.
3020
3021 2008-09-02  Jakub Jelinek  <jakub@redhat.com>
3022
3023         * dwarf2out.c (tree_add_const_value_attribute): Only handle
3024         VAR_DECL and CONST_DECL.
3025
3026 2008-09-02  H.J. Lu  <hongjiu.lu@intel.com>
3027             Jakub Jelinek  <jakub@redhat.com>
3028
3029         * config/i386/i386.c (X86_64_VARARGS_SIZE): Removed.
3030         (setup_incoming_varargs_64): Assume cum != NULL. Set/check
3031         ix86_varargs_gpr_size and ix86_varargs_fpr_size.  Use
3032         ix86_varargs_gpr_size instead of X86_64_REGPARM_MAX.
3033         Don't set ix86_save_varrargs_registers.
3034         (ix86_setup_incoming_varargs): Assume cum != NULL.
3035         (ix86_va_start): Check ix86_varargs_gpr_size and
3036         ix86_varargs_fpr_size instead of cfun->va_list_gpr_size and
3037         cfun->va_list_fpr_size, respectively.  Subtract 8*X86_64_REGPARM_MAX
3038         from frame pointer if ix86_varargs_gpr_size == 0.
3039         (ix86_compute_frame_layout): Updated.
3040         * config/i386/i386.h (ix86_save_varrargs_registers): Removed.
3041         (ix86_varargs_gpr_size): Define.
3042         (ix86_varargs_fpr_size): Likewise.
3043         (machine_function): Remove save_varrargs_registers.
3044         Add varargs_gpr_size and varargs_fpr_size.
3045
3046 2008-09-02  Jakub Jelinek  <jakub@redhat.com>
3047
3048         * config/alpha/alpha.c (va_list_skip_additions,
3049         alpha_stdarg_optimize_hook, alpha_gimplify_va_arg_1): Tuplify.
3050         (alpha_gimplify_va_arg): Call unshare_expr on second use of
3051         offset_field.
3052
3053         PR tree-optimization/36766
3054         * tree-cfg.c (gimple_purge_all_dead_eh_edges): Do nothing
3055         for already removed basic blocks.
3056
3057         PR target/36332
3058         * real.c (real_maxval): Clear a lower bit to make real_maxval
3059         match get_max_float for IBM long double format.
3060
3061 2008-09-02  Andreas Schwab  <schwab@suse.de>
3062
3063         * configure.ac: Use m4_quote to quote the expansion of m4_do.
3064         * configure: Regenerate.
3065
3066 2008-09-02  Richard Sandiford  <rdsandiford@googlemail.com>
3067
3068         * simplify-rtx.c (simplify_binary_operation_1): Check for CONST,
3069         SYMBOL_REF and LABEL_REF when applying plus_constant, instead of
3070         checking for a non-VOID CONSTANT_P.
3071
3072 2008-09-02  Jan Hubicka  <jh@suse.cz>
3073
3074         * predict.c (pass_strip_predict_hints): Avoid bugs dump file.
3075         * expmed.c (expand_divmod): Fix test of smod_pow2_cheap and
3076         sdiv_pow2_cheap
3077
3078 2008-09-02  H.J. Lu  <hongjiu.lu@intel.com>
3079
3080         * expr.c (emit_group_store): Don't assert stack temp mode size.
3081
3082 2008-09-02  Sebastian Pop  <sebastian.pop@amd.com>
3083             Tobias Grosser  <grosser@fim.uni-passau.de>
3084             Jan Sjodin  <jan.sjodin@amd.com>
3085             Harsha Jagasia  <harsha.jagasia@amd.com>
3086             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
3087             Konrad Trifunovic  <konrad.trifunovic@inria.fr>
3088             Adrien Eliche  <aeliche@isty.uvsq.fr>
3089
3090         Merge from graphite branch.
3091         * graphite.c: New.
3092         * graphite.h: New.
3093         * tree-loop-linear.c (perfect_loop_nest_depth): Export.
3094         * doc/invoke.texi (-floop-block, -floop-interchange,
3095         -floop-strip-mine): Document new flags.
3096         * tree-into-ssa.c (gimple_vec): Moved...
3097         * tree-loop-distribution.c (rdg_component): Moved...
3098         * cfgloopmanip.c: Include tree-flow.h.
3099         (update_dominators_in_loop): New.
3100         (create_empty_if_region_on_edge): New.
3101         (create_empty_loop_on_edge): New.
3102         (loopify): Use update_dominators_in_loop.
3103         * tree-pass.h (pass_graphite_transforms): Declared.
3104         * configure: Regenerate.
3105         * tree-phinodes.c (make_phi_node): Export.
3106         (add_phi_node_to_bb): New, split from create_phi_node.
3107         * tree-chrec.c (for_each_scev_op): New.
3108         * tree-chrec.h (for_each_scev_op): Declared.
3109         * tree-ssa-loop-ivopts.c (get_phi_with_result): New.
3110         (remove_statement): Call get_phi_with_result.
3111         * config.in (HAVE_cloog): Undef.
3112         * gdbinit.in (pgg): New.
3113         * timevar.def (TV_GRAPHITE_TRANSFORMS): New.
3114         * tree-ssa-loop.c (graphite_transforms): New.
3115         (gate_graphite_transforms): New.
3116         (pass_graphite_transforms): New.
3117         * configure.ac (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC,
3118         HAVE_cloog): Defined.
3119         * tree-vectorizer.c (rename_variables_in_bb): Export.
3120         * tree-data-ref.c (dr_may_alias_p): Export.
3121         (stmt_simple_memref_p): New.
3122         (find_data_references_in_stmt): Export.
3123         (find_data_references_in_loop): Export.
3124         (create_rdg_edge_for_ddr): Initialize RDGE_RELATION.
3125         (create_rdg_edges_for_scalar): Initialize RDGE_RELATION.
3126         (create_rdg_vertices): Export.
3127         (build_empty_rdg): New.
3128         (build_rdg): Call build_empty_rdg.  Free dependence_relations.
3129         * tree-data-ref.h (rdg_component): ... here.
3130         (scop_p): New.
3131         (struct data_reference): Add a field scop.
3132         (DR_SCOP): New.
3133         (find_data_references_in_loop): Declared.
3134         (find_data_references_in_stmt): Declared.
3135         (create_rdg_vertices): Declared.
3136         (dr_may_alias_p): Declared.
3137         (stmt_simple_memref_p): Declared.
3138         (struct rdg_edge): Add a field ddr_p relation.
3139         (build_empty_rdg): Declared.
3140         * lambda.h (lambda_matrix): Declare a VEC of.
3141         (find_induction_var_from_exit_cond): Declared.
3142         (lambda_vector_compare): New.
3143         * common.opt (fgraphite, floop-strip-mine,
3144         floop-interchange, floop-block): New flags.
3145         * lambda-code.c (find_induction_var_from_exit_cond): Export.
3146         * cfgloop.c (is_loop_exit): New.
3147         * cfgloop.h (is_loop_exit): Declared.
3148         (create_empty_if_region_on_edge): Declared.
3149         (create_empty_loop_on_edge): Declared.
3150         * tree-flow.h (add_phi_node_to_bb): Declared.
3151         (make_phi_node): Declared.
3152         (rename_variables_in_bb): Declared.
3153         (perfect_loop_nest_depth): Declared.
3154         (graphite_transform_loops): Declared.
3155         * Makefile.in (cfgloopmanip.o): Depend on TREE_FLOW_H.
3156         (graphite.o-warn): Add -Wno-error.
3157         (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC): Declared.
3158         (LIBS): Add GMPLIBS, CLOOGLIBS, PPLLIBS.
3159         (INCLUDES): Add PPLINC, CLOOGINC.
3160         (OBJS-common): Add graphite.o.
3161         (graphite.o): Add rule.
3162         * gimple.h (gimple_vec): ... here.
3163         * tree-cfg.c (print_loops): Start printing at ENTRY_BLOCK_PTR.
3164         * passes.c (init_optimization_passes): Schedule
3165         pass_graphite_transforms.
3166
3167 2008-09-02  Samuel Tardieu  <sam@rfc1149.net>
3168
3169         PR target/37283
3170         * opts.c (decode_options): Move processing of -fno-unit-at-a-time
3171         and -fno-toplevel-reorder after handle_options.
3172
3173 2008-09-02  Paul Brook  <paul@codesourcery.com>
3174
3175         * config/arm/arm.c (arm_tune_cortex_a9): Define.
3176         (arm_override_options): Set arm_tune_cortex_a9.
3177         (arm_rtx_costs_1): Make register shifts more expensive on Cortex-A9.
3178         (arm_issue_rate): Handle cortexa9.
3179         * config/arm/arm.h (arm_tune_cortex_a9): Declare.
3180         * config/arm/arm-cores.def: Add cortex-a9.
3181         * config/arm/arm-tune.md: Regenerate.
3182         * config/arm/arm.md: Include cortex-a9.md.
3183         (generic_sched, generic_vfp): Add cortexa9.
3184         * config/arm/cortex-a9.md: New file.
3185
3186 2008-09-02  Richard Guenther  <rguenther@suse.de>
3187
3188         PR tree-optimization/37327
3189         * tree-vrp.c (register_new_assert_for): Make sure to not have
3190         TREE_OVERFLOW set on the bound.
3191
3192 2008-09-02  Alexander Monakov  <amonakov@ispras.ru>
3193
3194         Fixed typo in date of the 2008-09-01 MOVE_RATIO commit.
3195
3196         * config/ia64/ia64.opt (msched-ar-data-spec): Default to 1.
3197         * config/ia64/ia64.c (ia64_set_sched_flags): Always initialize
3198         spec_info->mask.
3199
3200 2008-09-02  Victor Kaplansky  <victork@il.ibm.com>
3201
3202         * gcc/config/spu/spu.md (divdf3): Removed.
3203
3204 2008-09-02  Jakub Jelinek  <jakub@redhat.com>
3205
3206         PR tree-optimization/37095
3207         * cgraph.c (cgraph_node): When creating new cgraph node after
3208         assembler_name_hash has been populated, record it in the hash
3209         table.
3210
3211 2008-09-01  Paul Brook  <paul@codesourcery.com>
3212
3213         * doc/invoke.texi: Document -mword-relocations.
3214         * config/arm/uclinux-elf.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
3215         * config/arm/symbian.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
3216         * config/arm/vxworks.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
3217         * config/arm/arm.c (arm_split_constant): Use arm_emit_movpair.
3218         (arm_rtx_costs_1, arm_size_rtx_costs): Handle HIGH and LO_SUM.
3219         (arm_emit_movpair): New function.
3220         (arm_print_operand <c>): Handle sybolic addresses.
3221         * config/arm/arm.h (TARGET_USE_MOVT): Define.
3222         (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
3223         * config/arm/arm-protos.h (arm_emit_movpair): Add prototype.
3224         * config/arm/arm.opt: Add -mword-relocations.
3225         * config/arm/arm.md (movsi): Use arm_emit_movpair.
3226         (arm_movt, arm_movw): New.
3227
3228 2008-09-01  Paul Brook  <paul@codesourcery.com>
3229
3230         * config/arm/arm.c (arm_override_options): Set arm_abi earlier.
3231         Allow Interworking on ARMv4 EABI based targets.
3232         * config/arm/bpabi.h (TARGET_FIX_V4BX_SPEC): Define.
3233         (SUBTARGET_EXTRA_ASM_SPEC, LINK_SPEC): Add TARGET_FIX_V4BX_SPEC.
3234
3235 2008-09-01  Paul Brook  <paul@codesourcery.com>
3236
3237         * config/arm/thumb2.md (thumb2_negscc): Match the correct operand for
3238         optimized LT0 test.  Remove optimization for GT.
3239
3240 2008-09-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3241
3242         * pa64-hpux.h (LIB_SPEC): Link against librt when building static
3243         openmp applications.
3244         * pa-hpux11.h (LIB_SPEC): Likewise.
3245
3246         * ira.c (setup_eliminable_regset): Only declare i if ELIMINABLE_REGS
3247         is defined.
3248
3249 2008-09-01  Jan Hubicka  <jh@suse.cz>
3250
3251         * predict.c (maybe_hot_count_p, maybe_hot_edge_p): When profile is
3252         present, use only counts; when guessed use only frequencies.
3253         (estimate_bb_frequencies): Use function_frequency.
3254         * profile.c (compute_branch_probabilities): Exit early when
3255         profile reading failed. Set profile_status.
3256         (branch_prob): Do not set profile_status.
3257
3258 2008-09-01  Aldy Hernandez  <aldyh@redhat.com>
3259
3260         * tree.c (protected_set_expr_location): New.
3261         * tree.h (protected_set_expr_location): New prototype.
3262         * c-tree.h (build_array_ref): Add argument.
3263         (parser_build_unary_op): Same.
3264         * c-typeck.c (build_indirect_ref): Handle new location argument.
3265         (build_array_ref): Same.
3266         (parser_build_unary_op): Same.
3267         * gimplify.c (gimplify_asm_expr): Set input_location before calling
3268         error.
3269         * c-omp.c (c_finish_omp_atomic): Pass location when calling
3270         build_indirect_ref.
3271         * c-common.c (finish_label_address_expr): Handle new location argument.
3272         * c-common.h (build_indirect_ref): Add argument.
3273         (finish_label_address_expr): Same.
3274         * c-parser.c (c_parser_unary_expression): Pass location to build
3275         functions.
3276         (c_parser_postfix_expression): Same.
3277
3278 2008-09-01  Paul Brook  <paul@codesourcery.com>
3279
3280         * config/arm/arm.md: Include cortex-r4f.md.
3281         (attr fpu): Update type list.
3282         (attr type): Add fcpys, ffariths, ffarithd, fadds, faddd, fconsts,
3283         fconstd, fcmps and fcmpd.
3284         (attr tune_cortexr4): Define.
3285         (attr generic_sched, attr generic_vfp): Use tune_cortexr4.
3286         * config/arm/vfp.md: Document fcpys, ffariths, ffarithd, fadds, faddd,
3287         fconsts, fconstd, fcmps and fcmpd.  Use them in insn patterns.
3288         * config/arm/arm.c (arm_issue_rate): Add cortexr4f.
3289         * config/arm/arm1020e.md (v10_ffarith, v10_farith): Use new insn types.
3290         * config/arm/cortex-a8-neon.md (cortex_a8_vfp_add_sub,
3291         cortex_a8_vfp_farith: Ditto.
3292         * config/arm/vfp11.md (vfp_ffarith, vfp_farith): Ditto.
3293         * config/arm/cortex-r4.md: Use tune_cortexr4.
3294         * config/arm/cortex-r4f.md: New file.
3295
3296 2008-09-01  Richard Guenther  <rguenther@suse.de>
3297
3298         PR tree-optimization/37305
3299         * tree-ssa-ccp.c (ccp_fold): Do not set TREE_OVERFLOW on
3300         the result of constant conversions.
3301         (fold_gimple_assign): Likewise.
3302
3303 2008-09-01  Andrey Belevantsev  <abel@ispras.ru>
3304
3305         * sel-sched-ir.c (cmp_v_in_regset_pool): Surround with
3306         #ifdef ENABLE_CHECKING.
3307
3308 2008-09-01  Andrey Belevantsev  <abel@ispras.ru>
3309
3310         * sel-sched-dump.c: Surround with #ifdef INSN_SCHEDULING.
3311         * sched-int.h (print_insn, print_pattern, print_value): Declare also
3312         when !INSN_SCHEDULING.
3313
3314 2008-09-01  Andreas Schwab  <schwab@suse.de>
3315
3316         * config/ia64/ia64.c (TARGET_ADDRESS_COST): Update.
3317
3318 2008-09-01  Paul Brook  <paul@codesourcery.com>
3319
3320         * config/arm/arm.c (arm_no_early_mul_dep): Handle multiply-subtract.
3321
3322 2008-09-01  Jan Hubicka  <jh@suse.cz>
3323
3324         * config/spu/spu.c (spu_expand_block_move) Update call of MOVE_RATIO.
3325
3326         * expr.c (MOVE_BY_PIECES_P, CLEAR_BY_PIECES_P, SET_BY_PIECES_P):
3327         Pass speed operand.
3328         * expr.h (MOVE_RATIO, CLEAR_RATIO, SET_RATIO): Update.
3329         * gimplify.c (gimplify_init_constructor): Add speed operand.
3330         * tree-sra.c (decide_block_copy): Likewise.
3331         * tree-inline.c (estimate_move_cost): Likewise.
3332         * config/alpha/alpha.h (MOVE_RATIO): Update.
3333         * config/frv/frv.c (MOVE_RATIO): Update.
3334         * config/spu/spu.h (MOVE_RATIO): Update.
3335         * config/sparc/sparc.h (MOVE_RATIO): Update.
3336         * config/i386/i386.h (MOVE_RATIO, CLEAR_RATIO): Update.
3337         * config/m68hc11/m68hc11.h (MOVE_RATIO): Update.
3338         * config/cris/cris.h (MOVE_RATIO): Update.
3339         * config/mn10300/mn10300.h (MOVE_RATIO): Update.
3340         * config/arm/arm.h (MOVE_RATIO): Update.
3341         * config/pa/pa.md: Update uses of MOVE_RATIO
3342         * config/pa/pa.h (MOVE_RATIO): Update.
3343         * config/mips/mips.h (MOVE_RATIO, MOVE_BY_PIECES,
3344         CLEAR_RATIO, SET_RATIO): Update.
3345         * config/h8300/h8300.h (MOVE_RATIO): Update.
3346         * config/v850/v850.h (MOVE_RATIO): Update.
3347         * config/bfin/bfin.h (MOVE_RATIO): Update.
3348
3349 2008-08-31  Andrey Belevantsev  <abel@ispras.ru>
3350             Dmitry Melnik  <dm@ispras.ru>
3351             Dmitry Zhurikhin  <zhur@ispras.ru>
3352             Alexander Monakov  <amonakov@ispras.ru>
3353             Maxim Kuvyrkov  <maxim@codesourcery.com>
3354
3355         * sel-sched.h, sel-sched-dump.h, sel-sched-ir.h, sel-sched.c,
3356         sel-sched-dump.c, sel-sched-ir.c: New files.
3357         * Makefile.in (OBJS-common): Add selective scheduling object files.
3358         (sel-sched.o, sel-sched-dump.o, sel-sched-ir.o): New entries.
3359         (SEL_SCHED_IR_H, SEL_SCHED_DUMP_H): New entries.
3360         (sched-vis.o): Add dependency on $(INSN_ATTR_H).
3361         * cfghooks.h (get_cfg_hooks, set_cfg_hooks): New prototypes.
3362         * cfghooks.c (get_cfg_hooks, set_cfg_hooks): New functions.
3363         (make_forwarder_block): Update loop latch if we have redirected
3364         the loop latch edge.
3365         * cfgloop.c (get_loop_body_in_custom_order): New function.
3366         * cfgloop.h (LOOPS_HAVE_FALLTHRU_PREHEADERS): New enum field.
3367         (CP_FALLTHRU_PREHEADERS): Likewise.
3368         (get_loop_body_in_custom_order): Declare.
3369         * cfgloopmanip.c (has_preds_from_loop): New.
3370         (create_preheader): Honor CP_FALLTHRU_PREHEADERS.
3371         Assert that the preheader edge will be fall thru when it is set.
3372         * common.opt (fsel-sched-bookkeeping, fsel-sched-pipelining,
3373         fsel-sched-pipelining-outer-loops, fsel-sched-renaming,
3374         fsel-sched-substitution, fselective-scheduling): New flags.
3375         * cse.c (hash_rtx_cb): New.
3376         (hash_rtx): Use it.
3377         * dbgcnt.def (sel_sched_cnt, sel_sched_region_cnt,
3378         sel_sched_insn_cnt): New counters.
3379         * final.c (compute_alignments): Export.  Free dominance
3380         info after loop_optimizer_finalize.
3381         * genattr.c (main): Output maximal_insn_latency prototype.
3382         * genautomata.c (output_default_latencies): New.
3383         Factor its code from ...
3384         (output_internal_insn_latency_func): ... here.
3385         (output_internal_maximal_insn_latency_func): New.
3386         (output_maximal_insn_latency_func): New.
3387         * hard-reg-set.h (UHOST_BITS_PER_WIDE_INT): Define unconditionally.
3388         (struct hard_reg_set_iterator): New.
3389         (hard_reg_set_iter_init, hard_reg_set_iter_set,
3390         hard_reg_set_iter_next): New functions.
3391         (EXECUTE_IF_SET_IN_HARD_REG_SET): New macro.
3392         * lists.c (remove_free_INSN_LIST_node,
3393         remove_free_EXPR_LIST_node): New functions.
3394         * loop-init.c (loop_optimizer_init): When
3395         LOOPS_HAVE_FALLTHRU_PREHEADERS, set CP_FALLTHRU_PREHEADERS when
3396         calling create_preheaders.
3397         (loop_optimizer_finalize): Do not verify flow info after reload.
3398         * recog.c (validate_replace_rtx_1): New parameter simplify.
3399         Default it to true.  Update all uses.  Factor out simplifying
3400         code to ...
3401         (simplify_while_replacing): ... this new function.
3402         (validate_replace_rtx_part,
3403         validate_replace_rtx_part_nosimplify): New.
3404         * recog.h (validate_replace_rtx_part,
3405         validate_replace_rtx_part_nosimplify): Declare.
3406         * rtl.c (rtx_equal_p_cb): New.
3407         (rtx_equal_p): Use it.
3408         * rtl.h (rtx_equal_p_cb, hash_rtx_cb): Declare.
3409         (remove_free_INSN_LIST_NODE, remove_free_EXPR_LIST_node,
3410         debug_bb_n_slim, debug_bb_slim,    print_rtl_slim): Likewise.
3411         * vecprim.h: Add a vector type for unsigned int.
3412         * haifa-sched.c: Include vecprim.h and cfgloop.h.
3413         (issue_rate, sched_verbose_param, note_list, dfa_state_size,
3414         ready_try, cycle_issued_insns, spec_info): Make global.
3415         (readyp): Initialize.
3416         (dfa_lookahead): New global variable.
3417         (old_max_uid, old_last_basic_block): Remove.
3418         (h_i_d): Make it a vector.
3419         (INSN_TICK, INTER_TICK, QUEUE_INDEX, INSN_COST): Make them work
3420         through HID macro.
3421         (after_recovery, adding_bb_to_current_region_p):
3422         New variables to handle correct insertion of the recovery code.
3423         (struct ready_list): Move declaration to sched-int.h.
3424         (rgn_n_insns): Removed.
3425         (rtx_vec_t): Move to sched-int.h.
3426         (find_insn_reg_weight): Remove.
3427         (find_insn_reg_weight1): Rename to find_insn_reg_weight.
3428         (haifa_init_h_i_d, haifa_finish_h_i_d):
3429         New functions to initialize / finalize haifa instruction data.
3430         (extend_h_i_d, init_h_i_d): Rewrite.
3431         (unlink_other_notes): Move logic to add_to_note_list.  Handle
3432         selective scheduler.
3433         (ready_lastpos, ready_element, ready_sort, reemit_notes,
3434         find_fallthru_edge): Make global, remove static prototypes.
3435         (max_issue): Make global.  Add privileged_n and state parameters.  Use
3436         them.
3437         (extend_global, extend_all): Removed.
3438         (init_before_recovery): Add new param.  Fix the handling of the case
3439         when we insert a recovery code before the EXIT which has a predecessor
3440         with a fallthrough edge to it.
3441         (create_recovery_block): Make global.  Rename to
3442         sched_create_recovery_block.  Update.
3443         (change_pattern): Rename to sched_change_pattern.  Make global.
3444         (speculate_insn): Rename to sched_speculate_insn.  Make global.
3445         Split haifa-specific functionality into ...
3446         (haifa_change_pattern): New static function.
3447         (sched_extend_bb): New static function.
3448         (sched_init_bbs): New function.
3449         (current_sched_info): Change type to struct haifa_sched_info.
3450         (insn_cost): Adjust for selective scheduling.
3451         (dep_cost_1): New function.  Move logic from ...
3452         (dep_cost): ... here.
3453         (dep_cost): Use dep_cost_1.
3454         (contributes_to_priority_p): Use sched_deps_info instead of
3455         current_sched_info.
3456         (priority): Adjust to work with selective scheduling.  Process the
3457         corner case when all dependencies don't contribute to priority.
3458         (rank_for_schedule): Use ds_weak instead of dep_weak.
3459         (advance_state): New function.  Move logic from ...
3460         (advance_one_cycle): ... here.
3461         (add_to_note_list, concat_note_lists): New functions.
3462         (rm_other_notes): Make static.  Adjust for selective scheduling.
3463         (remove_notes, restore_other_notes): New functions.
3464         (move_insn): Add two arguments.  Update assert.  Don't call
3465         reemit_notes.
3466         (choose_ready): Remove lookahead variable, use dfa_lookahead.
3467         Remove more_issue, max_points.  Move the code to initialize
3468         max_lookahead_tries to max_issue.
3469         (schedule_block): Remove rgn_n_insns1 parameter.  Don't allocate
3470         ready.  Adjust use of move_insn.  Call restore_other_notes.
3471         (luid): Remove.
3472         (sched_init, sched_finish): Move Haifa-specific initialization/
3473         finalization to ...
3474         (haifa_sched_init, haifa_sched_finish): ... respectively.
3475         New functions.
3476         (setup_sched_dump): New function.
3477         (haifa_init_only_bb): New static function.
3478         (haifa_speculate_insn): New static function.
3479         (try_ready): Use haifa_* instead of speculate_insn and change_pattern.
3480         (extend_ready, extend_all): Remove.
3481         (sched_extend_ready_list, sched_finish_ready_list): New functions.
3482         (create_check_block_twin, add_to_speculative_block): Use
3483         haifa_insns_init instead of extend_global.  Update to use new
3484         initialization functions.  Change parameter.  Factor out code from
3485         create_check_block_twin to ...
3486         (sched_create_recovery_edges) ... this new function.
3487         (add_block): Remove.
3488         (sched_scan_info): New.
3489         (extend_bb): Use sched_scan_info.
3490         (init_bb, extend_insn, init_insn, init_insns_in_bb, sched_scan): New
3491         static functions for walking through scheduling region.
3492         (sched_luids): New vector variable to replace uid_to_luid.
3493         (luids_extend_insn): New function.
3494         (sched_max_luid): New variable.
3495         (luids_init_insn): New function.
3496         (sched_init_luids, sched_finish_luids): New functions.
3497         (insn_luid): New debug function.
3498         (sched_extend_target): New function.
3499         (haifa_init_insn): New static function.
3500         (sched_init_only_bb): New hook.
3501         (sched_split_block): New hook.
3502         (sched_split_block_1): New function.
3503         (sched_create_empty_bb): New hook.
3504         (sched_create_empty_bb_1): New function.
3505         (common_sched_info, ready): New global variables.
3506         (current_sched_info_var): Remove.
3507         (move_block_after_check): Use common_sched_info.
3508         (haifa_luid_for_non_insn): New static function.
3509         (init_before_recovery): Use haifa_init_only_bb instead of add_block.
3510         (increase_insn_priority): New.
3511         * modulo-sched.c: (issue_rate): Remove static declaration.
3512         (sms_sched_info): Change type to haifa_sched_info.
3513         (sms_sched_deps_info, sms_common_sched_info): New variables.
3514         (setup_sched_infos): New.
3515         (sms_schedule): Initialize them.  Call haifa_sched_init/finish.
3516         Do not call regstat_free_calls_crossed.
3517         (sms_print_insn): Use const_rtx.
3518         * params.def (PARAM_MAX_PIPELINE_REGION_BLOCKS,
3519         PARAM_MAX_PIPELINE_REGION_INSNS, PARAM_SELSCHED_MAX_LOOKAHEAD,
3520         PARAM_SELSCHED_MAX_SCHED_TIMES, PARAM_SELSCHED_INSNS_TO_RENAME,
3521         PARAM_SCHED_MEM_TRUE_DEP_COST): New.
3522         * sched-deps.c (sched_deps_info): New.  Update all relevant uses of
3523         current_sched_info to use it.
3524         (enum reg_pending_barrier_mode): Move to sched-int.h.
3525         (h_d_i_d): New variable. Initialize to NULL.
3526         ({true, output, anti, spec, forward}_dependency_cache): Initialize
3527         to NULL.
3528         (estimate_dep_weak): Remove static declaration.
3529         (sched_has_condition_p): New function.  Adjust users of
3530         sched_get_condition to use it instead.
3531         (conditions_mutex_p): Add arguments indicating which conditions are
3532         reversed.  Use them.
3533         (sched_get_condition_with_rev): Rename from sched_get_condition.  Add
3534         argument to indicate whether returned condition is reversed.  Do not
3535         generate new rtx when condition should be reversed; indicate it by
3536         setting new argument instead.
3537         (add_dependence_list_and_free): Add deps parameter.
3538         Update all users.  Do not free dependence list when
3539         deps context is readonly.
3540         (add_insn_mem_dependence, flush_pending_lists): Adjust for readonly
3541         contexts.
3542         (remove_from_dependence_list, remove_from_both_dependence_lists): New.
3543         (remove_from_deps): New. Use the above functions.
3544         (cur_insn, can_start_lhs_rhs_p): New static variables.
3545         (add_or_update_back_dep_1): Initialize present_dep_type.
3546         (haifa_start_insn, haifa_finish_insn, haifa_note_reg_set,
3547         haifa_note_reg_clobber, haifa_note_reg_use, haifa_note_mem_dep,
3548         haifa_note_dep): New functions implementing dependence hooks for
3549         the Haifa scheduler.
3550         (note_reg_use, note_reg_set, note_reg_clobber, note_mem_dep,
3551         note_dep): New functions.
3552         (ds_to_dt, extend_deps_reg_info, maybe_extend_reg_info_p): New
3553         functions.
3554         (init_deps): Initialize last_reg_pending_barrier and deps->readonly.
3555         (free_deps): Initialize deps->reg_last.
3556         (sched_analyze_reg, sched_analyze_1, sched_analyze_2,
3557         sched_analyze_insn): Update to use dependency hooks infrastructure
3558         and readonly contexts.
3559         (deps_analyze_insn): New function.  Move part of logic from ...
3560         (sched_analyze): ... here.  Also move some logic to ...
3561         (deps_start_bb): ... here.  New function.
3562         (add_forw_dep, delete_forw_dep): Guard use of INSN_DEP_COUNT with
3563         sel_sched_p.
3564         (sched_deps_init): New function.  Move code from ...
3565         (init_dependency_caches): ... here.  Remove.
3566         (init_deps_data_vector): New.
3567         (sched_deps_finish): New function.  Move code from ...
3568         (free_dependency_caches): ... here.  Remove.
3569         (init_deps_global, finish_deps_global): Adjust for use with
3570         selective scheduling.
3571         (get_dep_weak): Move logic to ...
3572         (get_dep_weak_1): New function.
3573         (ds_merge): Move logic to ...
3574         (ds_merge_1): New static function.
3575         (ds_full_merge, ds_max_merge, ds_get_speculation_types): New functions.
3576         (ds_get_max_dep_weak): New function.
3577         * sched-ebb.c (sched_n_insns): Rename to sched_rgn_n_insns.
3578         (n_insns): Rename to rgn_n_insns.
3579         (debug_ebb_dependencies): New function.
3580         (init_ready_list): Use it.
3581         (begin_schedule_ready): Use sched_init_only_bb.
3582         (ebb_print_insn): Indicate when an insn starts a new cycle.
3583         (contributes_to_priority, compute_jump_reg_dependencies,
3584         add_remove_insn, fix_recovery_cfg): Add ebb_ prefix to function names.
3585         (add_block1): Remove to ebb_add_block.
3586         (ebb_sched_deps_info, ebb_common_sched_info): New variables.
3587         (schedule_ebb): Initialize them.  Use remove_notes instead of
3588         rm_other_notes.  Use haifa_local_init/finish.
3589         (schedule_ebbs): Use haifa_sched_init/finish.
3590         * sched-int.h: Include vecprim.h, remove rtl.h.
3591         (struct ready_list): Delete declaration.
3592         (sched_verbose_param, enum sched_pass_id_t,
3593         bb_vec_t, insn_vec_t, rtx_vec_t): New.
3594         (struct sched_scan_info_def): New structure.
3595         (sched_scan_info, sched_scan, sched_init_bbs,
3596         sched_init_luids, sched_finish_luids, sched_extend_target,
3597         haifa_init_h_i_d, haifa_finish_h_i_d): Declare.
3598         (struct common_sched_info_def): New.
3599         (common_sched_info, haifa_common_sched_info,
3600         sched_emulate_haifa_p): Declare.
3601         (sel_sched_p): New.
3602         (sched_luids): Declare.
3603         (INSN_LUID, LUID_BY_UID, SET_INSN_LUID): Declare.
3604         (sched_max_luid, insn_luid): Declare.
3605         (note_list, remove_notes, restore_other_notes, bb_note): Declare.
3606         (sched_insns_init, sched_insns_finish, xrecalloc, reemit_notes,
3607         print_insn, print_pattern, print_value, haifa_classify_insn,
3608         sel_find_rgns, sel_mark_hard_insn, dfa_state_size, advance_state,
3609         setup_sched_dump, sched_init, sched_finish,
3610         sel_insn_is_speculation_check): Export.
3611         (struct ready_list): Move from haifa-sched.c.
3612         (ready_try, ready, max_issue): Export.
3613         (ebb_compute_jump_reg_dependencies, find_fallthru_edge,
3614         sched_init_only_bb, sched_split_block, sched_split_block_1,
3615         sched_create_empty_bb, sched_create_empty_bb_1,
3616         sched_create_recovery_block, sched_create_recovery_edges): Export.
3617         (enum reg_pending_barrier_mode): Export.
3618         (struct deps): New fields `last_reg_pending_barrier' and `readonly'.
3619         (deps_t): New.
3620         (struct sched_info): Rename to haifa_sched_info.  Use const_rtx for
3621         print_insn field.  Move add_block and fix_recovery_cfg to
3622         common_sched_info_def.  Move compute_jump_reg_dependencies,
3623         use_cselib  ...
3624         (struct sched_deps_info_def): ... this new structure.
3625         (sched_deps_info): Declare.
3626         (struct spec_info_def): Remove weakness_cutoff, add
3627         data_weakness_cutoff and control_weakness_cutoff.
3628         (spec_info): Declare.
3629         (struct _haifa_deps_insn_data): Split from haifa_insn_data.  Add
3630         dep_count field.
3631         (struct haifa_insn_data): Rename to struct _haifa_insn_data.
3632         (haifa_insn_data_def, haifa_insn_data_t): New typedefs.
3633         (current_sched_info): Change type to struct haifa_sched_info.
3634         (haifa_deps_insn_data_def, haifa_deps_insn_data_t): New typedefs.
3635         (h_d_i_d): New variable.
3636         (HDID): New accessor macro.
3637         (h_i_d): Change type to VEC (haifa_insn_data_def, heap) *.
3638         (HID): New accessor macro.  Rewrite h_i_d accessor macros through HID
3639         and HDID.
3640         (IS_SPECULATION_CHECK_P): Update for selective scheduler.
3641         (enum SCHED_FLAGS): Update for selective scheduler.
3642         (enum SPEC_SCHED_FLAGS): New flag SEL_SCHED_SPEC_DONT_CHECK_CONTROL.
3643         (init_dependency_caches, free_dependency_caches): Delete declarations.
3644         (deps_analyze_insn, remove_from_deps, get_dep_weak_1,
3645         estimate_dep_weak, ds_full_merge, ds_max_merge, ds_weak,
3646         ds_get_speculation_types, ds_get_max_dep_weak, sched_deps_init,
3647         sched_deps_finish, haifa_note_reg_set, haifa_note_reg_use,
3648         haifa_note_reg_clobber, maybe_extend_reg_info_p, deps_start_bb,
3649         ds_to_dt): Export.
3650         (rm_other_notes): Delete declaration.
3651         (schedule_block): Remove one argument.
3652         (cycle_issued_insns, issue_rate, dfa_lookahead, ready_sort,
3653         ready_element, ready_lastpos, sched_extend_ready_list,
3654         sched_finish_ready_list, sched_change_pattern, sched_speculate_insn,
3655         concat_note_lists): Export.
3656         (struct region): Move from sched-rgn.h.
3657         (nr_regions, rgn_table, rgn_bb_table, block_to_bb, containing_rgn,
3658         RGN_NR_BLOCKS, RGN_BLOCKS, RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB,
3659         BLOCK_TO_BB, CONTAINING_RGN): Export.
3660         (ebb_head, BB_TO_BLOCK, EBB_FIRST_BB, EBB_LAST_BB, INSN_BB): Likewise.
3661         (current_nr_blocks, current_blocks, target_bb): Likewise.
3662         (dep_cost_1, sched_is_disabled_for_current_region_p, sched_rgn_init,
3663         sched_rgn_finish, rgn_setup_region, sched_rgn_compute_dependencies,
3664         sched_rgn_local_init, extend_regions,
3665         rgn_make_new_region_out_of_new_block, compute_priorities,
3666         debug_rgn_dependencies, free_rgn_deps, contributes_to_priority,
3667         extend_rgns, deps_join rgn_setup_common_sched_info,
3668         rgn_setup_sched_infos, debug_regions, debug_region, dump_region_dot,
3669         dump_region_dot_file, haifa_sched_init, haifa_sched_finish): Export.
3670         (get_rgn_sched_max_insns_priority, sel_add_to_insn_priority,
3671         increase_insn_priority): Likewise.
3672         * sched-rgn.c: Include sel-sched.h.
3673         (ref_counts): New static variable.  Use it ...
3674         (INSN_REF_COUNT): ... here.  Rewrite and move closer to uses.
3675         (FED_BY_SPEC_LOAD, IS_LOAD_INSN): Rewrite to use HID accessor macro.
3676         (sched_is_disabled_for_current_region_p): Delete static declaration.
3677         (struct region): Move to sched-int.h.
3678         (nr_regions, rgn_table, rgn_bb_table, block_to_bb, containing_rgn,
3679         ebb_head): Define and initialize.
3680         (RGN_NR_BLOCKS, RGN_BLOCKS, RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB,
3681         BLOCK_TO_BB, CONTAINING_RGN, debug_regions, extend_regions,
3682         BB_TO_BLOCK, EBB_FIRST_BB, EBB_LAST_BB): Move to
3683         sched-int.h.
3684         (find_single_block_region): Add new argument to indicate that EBB
3685         regions should be constructed.
3686         (debug_live): Delete declaration.
3687         (current_nr_blocks, current_blocks, target_bb):
3688         Remove static qualifiers.
3689         (compute_dom_prob_ps, check_live, update_live, set_spec_fed): Delete
3690         declaration.
3691         (init_regions): Delete declaration.
3692         (debug_region, bb_in_region_p, dump_region_dot_file, dump_region_dot,
3693         rgn_estimate_number_of_insns): New.
3694         (too_large): Use estimate_number_of_insns.
3695         (haifa_find_rgns): New. Move the code from ...
3696         (find_rgns): ... here.  Call either sel_find_rgns or haifa_find_rgns.
3697         (free_trg_info): New.
3698         (compute_trg_info): Allocate candidate tables here instead of ...
3699         (init_ready_list): ... here.
3700         (rgn_print_insn): Use const_rtx.
3701         (contributes_to_priority, extend_regions): Delete static declaration.
3702         (add_remove_insn, fix_recovery_cfg): Add rgn_ to function names.
3703         (add_block1): Rename to rgn_add_block.
3704         (debug_rgn_dependencies): Delete static qualifier.
3705         (new_ready): Use sched_deps_info.  Simplify.
3706         (rgn_common_sched_info, rgn_const_sched_deps_info,
3707         rgn_const_sel_sched_deps_info, rgn_sched_deps_info, rgn_sched_info):
3708         New.
3709         (region_sched_info): Rename to rgn_const_sched_info.
3710         (deps_join): New, extracted from ...
3711         (propagate_deps): ... here.
3712         (compute_block_dependences, debug_dependencies): Update for selective
3713         scheduling.
3714         (free_rgn_deps, compute_priorities): New functions.
3715         (sched_rgn_init, sched_rgn_finish, rgn_setup_region,
3716         sched_rgn_compute_dependencies): New functions.
3717         (schedule_region): Use them.
3718         (sched_rgn_local_init, sched_rgn_local_free, sched_rgn_local_finish,
3719         rgn_setup_common_sched_info, rgn_setup_sched_infos):
3720         New functions.
3721         (schedule_insns): Call new functions that were split out.
3722         (rgn_make_new_region_out_of_new_block): New.
3723         (get_rgn_sched_max_insns_priority): New.
3724         (rest_of_handle_sched, rest_of_handle_sched2): Call selective
3725         scheduling when appropriate.
3726         * sched-vis.c: Include insn-attr.h.
3727         (print_value, print_pattern): Make global.
3728         (print_rtl_slim, debug_bb_slim, debug_bb_n_slim): New functions.
3729         * target-def.h (TARGET_SCHED_ADJUST_COST_2,
3730         TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
3731         TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
3732         TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_CHECKED_DS,
3733         TARGET_SCHED_GET_INSN_SPEC_DS, TARGET_SCHED_SKIP_RTX_P): New target
3734         hooks.  Initialize them to 0.
3735         (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
3736         * target.h (struct gcc_target): Add them.  Rename gen_check field to
3737         gen_spec_check.
3738         * flags.h (sel_sched_switch_set): Declare.
3739         * opts.c (sel_sched_switch_set): New variable.
3740         (decode_options): Unset flag_sel_sched_pipelining_outer_loops if
3741         pipelining is disabled from command line.
3742         (common_handle_option): Record whether selective scheduling is
3743         requested from command line.
3744         * doc/invoke.texi: Document new flags and parameters.
3745         * doc/tm.texi: Document new target hooks.
3746         * config/ia64/ia64.c (TARGET_SCHED_GEN_SPEC_CHECK): Define to
3747         ia64_gen_check.
3748         (dfa_state_size): Do not declare locally.
3749         * config/ia64/ia64.opt (msched-ar-data-spec): Default to 0.
3750         * config/rs6000/rs6000.c (rs6000_init_sched_context,
3751         rs6000_alloc_sched_context, rs6000_set_sched_context,
3752         rs6000_free_sched_context): New functions.
3753         (struct _rs6000_sched_context): New.
3754         (rs6000_sched_reorder2): Do not modify INSN_PRIORITY for selective
3755         scheduling.
3756         (rs6000_sched_finish): Do not run for selective scheduling.
3757
3758 2008-08-31  Jan Hubicka  <jh@suse.cz>
3759
3760         * frv.c (frv_rtx_costs): Update forward declaration.
3761         * spu.c (spu_rtx_costs): Likewise.
3762         * pdp11.c: Include df.h
3763         (pdp11_output_function_epilogue): Use df_set_regs_ever_live.
3764         * m68hc11.c (m68hc11_gen_highpart): Fix call of gen_rtx_SUBREG.
3765         (m68hc11_rtx_costs_1): Fix call of rtx_cost.
3766         * iq2000.c (iq2000_address_cost): Add speed argument.
3767         (iq2000_rtx_costs): Likewise.
3768         * mn10300.c (mn10300_address_cost_1): Remove speed argument;
3769         update call of mn10300_address_cost.
3770         * mcore.c: Include df.h
3771         (mcore_rtx_costs): Update prototype.
3772         * score3.c: Include df.h
3773         (score3_rtx_costs): Remove speed argument.
3774         * score7.c: Include df.h
3775         (score7_address_cost): Remove speed argument.
3776         * score-protos.h (score_address_cost): Update prototype.
3777         * score.c: Include df.h
3778         (score_rtx_costs): Update call of costs functions.
3779         * v850.c (v850_rtx_costs): Add bool argument.
3780
3781 2008-08-31  Hans-Peter Nilsson  <hp@axis.com>
3782
3783         * config/cris/cris.c (cris_rtx_costs): Correct call to rtx_costs.
3784
3785 2008-08-31  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
3786
3787         * gthr-win32.h (__gthread_setspecific): Use CONST_CAST2.
3788         * config/i386/gthr-win32.c (__gthread_setspecific): Same.
3789
3790 2008-08-31  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
3791
3792         * mkmap-flat.awk: Add option pe_dll.
3793         * config/i386/t-cygming (SHLIB_LINK): Support building libgcc_s.
3794         * config/i386/t-cygwin (SHLIB_LC): Add.
3795         * config/i386/t-mingw32 (SHLIB_LC): Add.
3796         * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): New.
3797         (SUBTARGET_EXTRA_SPECS): Use SHARED_LIBGCC_UNDEFS_SPEC.
3798         (LINK_SPEC): Support libgcc_s.
3799         (LIBGCC_SPEC): Support libgcc_s.
3800         (LIBGCC_SONAME): New.
3801
3802 2008-08-31  Jan Hubicka  <jh@suse.cz>
3803
3804         * predict.c (maybe_hot_bb_p, maybe_hot_edge_p): Previous commit
3805         mistakely had old version of patch.
3806
3807         * ipa-cp.c (ipcp_need_original_clone_p): Remove.
3808         (ipcp_estimate_growth): New.
3809         (ipcp_insert_stage): Use ipcp_estimate_growth.
3810         * profile.c (branch_prob): When reading failed, do not consider
3811         profile as read.
3812
3813 2008-08-31  Jan Hubicka  <jh@suse.cz>
3814
3815         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Check that
3816         loop is optimized for speed.
3817
3818 2008-08-31  Richard Guenther  <rguenther@suse.de>
3819
3820         PR middle-end/37289
3821         * fold-const.c (fold_binary): Retain conversions in folding
3822         ~A + 1 to -A.
3823
3824 2008-08-31  Jan Hubicka  <jh@suse.cz>
3825
3826         * postreload-gcse.c (eliminate_partially_redundant_loads):
3827         Use optimize_bb_for_size_p.
3828         * predict.c (maybe_hot_frequency_p): Make inline.
3829         (maybe_hot_count_p): Break out from ...
3830         (maybe_hot_bb_p): ... this one.
3831         (maybe_hot_edge_p): Simplify.
3832         * basic-block.h (probably_cold_bb_p): Remove.
3833
3834 2008-08-31  Jakub Jelinek  <jakub@redhat.com>
3835
3836         PR target/37168
3837         * config/rs6000/rs6000-protos.h (const_vector_elt_as_int): Add
3838         prototype.
3839         * config/rs6000/rs6000.c (const_vector_elt_as_int): No longer static.
3840         * config/rs6000/altivec.md (easy_vector_constant_add_self splitter):
3841         Also split V4SFmode.
3842         * config/rs6000/predicates.md (easy_vector_constant_add_self): Handle
3843         vector float modes.
3844
3845 2008-08-31  Jan Hubicka  <jh@suse.cz>
3846
3847         * predict.c (PROB_VERY_LIKELY): Make small enough so things
3848         become cold.
3849         * predict.def (PRED_NORETURN_CALL, PRED_COLD_CALL): Use it.
3850
3851 2008-08-31  Jakub Jelinek  <jakub@redhat.com>
3852
3853         PR debug/37287
3854         * dwarf2out.c (gen_namespace_die): For DECL_EXTERNAL modules don't
3855         add source coords.
3856
3857         * dwarf2out.c (native_encode_initializer): Subtract min_index for
3858         non-range array index.  Handle VIEW_CONVERT_EXPR and NON_LVALUE_EXPR.
3859
3860 2008-08-31  Jan Hubicka  <jh@suse.cz>
3861
3862         * sparc.h (BRANCH_COST): Fix macro definition.
3863         * avr.c (avr_operand_rtx_cost): Add speed argument.
3864         (avr_rtx_costs): Update calls of avr_operand_rtx_cost.
3865
3866 2008-08-31  Richard Guenther  <rguenther@suse.de>
3867
3868         * tree-cfg.c (verify_types_in_gimple_assign): Dump mismatched
3869         types instead of operands.  Re-instantiate verifying of
3870         binary expression operands.
3871
3872 2008-08-30  Jan Hubicka  <jh@suse.cz>
3873
3874         * fwprop.c (should_replace_address): Add speed attribute.
3875         (PR_OPTIMIZE_FOR_SPEED): New flag.
3876         (propagate_rtx_1): Use it.
3877         (propagate_rtx): Set it.
3878         (try_fwprop_subst): Update call of rtx_costs.
3879         (forward_propagate_and_simplify): LIkewise.
3880         * hooks.c (hook_int_rtx_bool_0): New
3881         (hook_bool_rtx_int_int_intp_false): Replace by ...
3882         (hook_bool_rtx_int_int_intp_bool_false): .. thisone.
3883         * hooks.h (hook_int_rtx_bool_0): New
3884         (hook_bool_rtx_int_int_intp_false): Replace by ...
3885         (hook_bool_rtx_int_int_intp_bool_false): .. thisone.
3886         * optabs.c (avoid_expensive_constant): UPdate call of rtx_cost.
3887         (prepare_cmp_insn): UPdate call of rtx_cost.
3888         * postreload.c (reload_cse_simplify_set): Update call of rtx_cost.
3889         (reload_cse_simplify_operands): Update call of rtx_cost.
3890         (reload_cse_move2add): call of rtx_cost.
3891         * target.h (struct gcc_target): Update rtx_costs and address_costs.
3892         * rtlanal.c (rtx_cost): Add speed argument.
3893         (address_cost): Add speed argument
3894         (default_address_cost): Likewise.
3895         (insn_rtx_cost): Likewise.
3896         * cfgloopanal.c (seq_cost): Add speed argument.
3897         (target_reg_cost, target_spill_cost): Turn to array.
3898         (init_set_costs): Update for speed.
3899         (estimate_reg_pressure_cost): Add speed argument.
3900         * auto-inc-dec.c (attempt_change): Update call of rtx_cost.
3901         * dojump.c (prefer_and_bit_test): UPdate call of rtx_cost.
3902         * tree-ssa-loop-ivopts.c (struct ivopts_data): New field speed.
3903         (seq_cost): Add speed argument.
3904         (computation_cost): Add speed arugment.
3905         (add_cost, multiply_by_const, get_address_cost): add speed argument.
3906         (force_expr_to_var_cost): Update for profile info.
3907         (force_var_cost): Likewise.
3908         (split_address_cost): Likewise.
3909         (ptr_difference_cost): Likewise.
3910         (difference_cost): Likewise.
3911         (get_computation_cost_at): Likewise.
3912         (determine_iv_cost): Likewise.
3913         (ivopts_global_cost_for_size): Likewise.
3914         (rewrite_use_address): Likewise.
3915         (tree_ssa_iv_optimize_loop): Initialize speed field.
3916         * cse.c (optimize_this_for_speed_p): New static var.
3917         (notreg_cost): Update call of rtx_cost.
3918         (cse_extended_basic_block): set optimize_this_for_speed_p.
3919         * ifcvt.c (cheap_bb_rtx_cost_p): Update call of rtx_cost.
3920         (noce_try_cmove_arith): Likewise.
3921         (noce_try_sign_mask): LIkewise.
3922         * expr.c (compress_float_constant): Update rtx_cost calls.
3923         * tree-ssa-address.c (most_expensive_mult_to_index): Add speed
3924         argument.
3925         (addr_to_parts): Likewise.
3926         (create_mem_ref): Likewise.
3927         * dse.c (find_shift_sequence): Add speed argument.
3928         (replace_read): Update call.
3929         * calls.c (precompute_register_parameters): Update call of rtx_cost.
3930         * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost,
3931         * neg_cost, shift_cost, shiftadd_cost,
3932         shiftsub_cost, mul_cost, sdiv_cost, udiv_cost ,mul_widen_cost,
3933         mul_highpart_cost): Increase dimension.
3934         (init_expmed): Initialize for both size and speed.
3935         (expand_shift): Use profile.
3936         (synth_mult): Use profile.
3937         (choose_mult_variant): Use profile.
3938         (expand_mult): Use profile.
3939         (expand_mult_highpart_optab): Use profile.
3940         (expand_mult_highpart): Use profile.
3941         (expand_smod_pow2): Use profile.
3942         (expand_divmod): Use profile.
3943         * simplify-rtx.c (simplify_binary_operation_1): Update call of
3944         rtx_cost.
3945         * loop-invariant.c (create_new_invariant): Use profile.
3946         (gain_for_invariant): Add speed parameter.
3947         (best_gain_for_invariant): Likewise.
3948         (find_invariants_to_move): Likewise.
3949         (move_single_loop_invariants): Set it.
3950         * target-def.h (TARGET_RTX_COSTS): Use hook.
3951         * rtl.h (rtx_cost, address_cost, insn_rtx_cost): Update prototpe.
3952         (optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
3953         * output.h (default_address_cost): Update prototype.
3954         * combine.c (optimize_this_for_speed_p): New static var.
3955         (combine_validate_cost): Update call of rtx_cost.
3956         (combine_instructions): Set optimize_this_for_speed_p.
3957         (expand_compound_operation): Update call of rtx_cost.
3958         (make_extraction):Update call of rtx_cost.
3959         (force_to_mode):Update call of rtx_cost.
3960         (distribute_and_simplify_rtx):Update call of rtx_cost.
3961         * cfgloop.h (target_reg_cost, target_spill_cost): Turn to array.
3962         (estimate_reg_pressure_cost): Update prototype.
3963         * tree-flow.h (multiply_by_cost, create_mem_ref): Update prototype.
3964         * basic-block.h (optimize_insn_for_size_p, optimize_insn_for_speed_p):
3965         Remove.
3966         * config/alpha/alpha.c (alpha_rtx_costs): Update.
3967         (alpha_rtx_costs): Update.
3968         * config/frv/frv.c (frv_rtx_costs): Update.
3969         * config/s390/s390.c (s390_rtx_costs): Update.
3970         * config/m32c/m32c.c (m32c_memory_move_cost): Update.
3971         (m32c_rtx_costs): Update.
3972         * config/spu/spu.c (TARGET_ADDRESS_COST): Upate.
3973         (spu_rtx_costs): Update.
3974         * config/sparc/sparc.c (sparc_rtx_costs): Update.
3975         * config/m32r/m32r.c (m32r_rtx_costs): Update.
3976         * config/i386/i386.c (:ix86_address_cost): Update.
3977         (ix86_rtx_costs): Update.
3978         * config/sh/sh.c (sh_rtx_costs, sh_address_cost): Update.
3979         * config/pdp11/pdp11.c (pdp11_rtx_costs): Update.
3980         * config/avr/avr.c (avr_rtx_costs, avr_address_cost): Update.
3981         * config/crx/crx.c (crx_address_cost): Update.
3982         * config/xtensa/xtensa.c (xtensa_rtx_costs): Update.
3983         * config/stormy16/stormy16.c
3984         (xstormy16_address_cost, xstormy16_rtx_costs): Update.
3985         * config/m68hc11/m68hc11.c
3986         (m68hc11_address_cost, m68hc11_rtx_costs): Update.
3987         * config/cris/cris.c (cris_rtx_costs, cris_address_cost): Update.
3988         * config/iq2000/iq2000.c (iq2000_rtx_costs, iq2000_address_cost):
3989         Update.
3990         * config/mn10300/mn10300.c (mn10300_address_cost, mn10300_rtx_costs):
3991         Update
3992         * config/ia64/ia64.c (ia64_rtx_costs): Update.
3993         * config/m68k/m68k.c (m68k_rtx_costs): Update.
3994         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update.
3995         * config/arc/arc.c (arc_rtx_costs, arc_address_cost): Update.
3996         * config/mcore/mcore.c (TARGET_ADDRESS_COST): Update.
3997         (mcore_rtx_costs): update.
3998         * config/score/score3.c (score3_rtx_costs): Update.
3999         * config/score/score7.c (score7_rtx_costs): Update.
4000         * config/score/score3.h (score3_rtx_costs):Update.
4001         * config/score/score7.h (score7_rtx_costs): Update.
4002         * config/score/score.c (score_rtx_costs): Update.
4003         * config/arm/arm.c (arm_address_cost): Update.
4004         (arm_rtx_costs_1): Update.
4005         (arm_rtx_costs_1): Update.
4006         (arm_size_rtx_costs): Update.
4007         (arm_size_rtx_costs): Update.
4008         (arm_size_rtx_costs): Update.
4009         (arm_xscale_rtx_costs): Update.
4010         (arm_thumb_address_cost): Update.
4011         * config/pa/pa.c (hppa_address_cost): Update.
4012         * config/mips/mips.c (mips_rtx_costs): Update.
4013         * config/vax/vax.c (vax_address_cost): Update.
4014         * config/h8300/h8300.c (h8300_shift_costs): Update.
4015         (h8300_rtx_costs): Update.
4016         * config/v850/v850.c (TARGET_ADDRESS_COST): Update.
4017         (v850_rtx_costs): Update.
4018         * config/mmix/mmix.c (mmix_rtx_costs, mmix_rtx_costs): Update.
4019         * config/bfin/bfin.c
4020         (bfin_address_cost): Update.
4021         (bfin_rtx_costs): Update.
4022         * stmt.c (lshift_cheap_p): Update.
4023
4024 2008-08-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4025
4026         PR middle-end/36444
4027         * expmed.c (extract_bit_field_1): Check the mode size to make
4028         sure the vector modes have the same size.
4029
4030 2008-08-29  Michael Meissner  <gnu@the-meissners.org>
4031
4032         * dojump.c (top level): Include basic-block.h to declare
4033         optimize_insn_for_speed_p
4034
4035         * Makefile.in (dodump.h): Add $(BASIC_BLOCK_H) dependency.
4036
4037         * opts.h (CL_SAVE): New option class for marking options that are
4038         target specific options usable in the target attribute.
4039         (CL_MIN_OPTION_CLASS): CL_SAVE is now the minimum option.
4040
4041         * opt-functions.awk (switch_flags): Add CL_SAVE flag so backends
4042         can easily find the target specific options that are safe to use
4043         in the attribute or pragma.
4044
4045         * attribs.c (decl_attributes): Change #pragma GCC option to
4046         #pragma GCC target, and attribute((option(...))) to
4047         attribute((target(...))).
4048
4049         * doc/extend.texi (target attribute): Change from option
4050         attribute.  Delete push/pop/reset.
4051         (#pragma GCC target): Change from #pragma GCC option.  Delete
4052         push/pop/reset.
4053         (#pragma GCC push_options): Document new pragma.
4054         (#pragma GCC pop_options): Document new pragma.
4055         (#pragma GCC reset_options): Document new pragma.
4056
4057         * targhooks.c (default_target_option_valid_attribute_p): Add
4058         warning about port not supporting target attributes.
4059         (default_target_option_pragma_parse): New function, warn about
4060         #pragma GCC target not being supported.
4061
4062         * targhooks.h (default_target_option_pragma_parse): Add
4063         declaration.
4064
4065         * tree.h (TI_CURRENT_TARGET_PRAGMA): Rename from
4066         TI_CURRENT_OPTION_PRAGMA.
4067         (current_target_pragma): Rename from current_option_pragma.
4068
4069         * target.h: (struct target_option): Delete booleans for changing
4070         the optimization level on hot/cold functions.  Change signature of
4071         pragma_parse hook to take a second tree.
4072
4073         * c-tree.h (c_builtin_function_ext_scope): Add declaration.
4074
4075         * c-decl.c (c_builtin_function_ext_scope): New function, guarantee
4076         that the declaration is done at global scope.
4077
4078         * langhooks.c (add_builtin_function_common): Move most of the code
4079         from add_builtin_function here, calling the hook passed in.
4080         (add_builtin_function): Call add_builtin_function_common with
4081         standard builtin hook.
4082         (add_builtin_function_ext_scope): New function to add builtins to
4083         global scope.
4084
4085         * langhooks.h (struct lang_hooks): Add builtin_function_ext_scope
4086         hook.
4087         (add_builtin_function_ext_scope): Add declaration.
4088
4089         * c-pragma.c (handle_pragma_target): Rename from
4090         handle_pragma_option, #pragma GCC option is now #pragma GCC
4091         target.  Move warning about port not supporting target options to
4092         default pragma parse hook.  Remove push/pop/reset from this
4093         pragma.
4094         (handle_pragma_optimize): Remove push/pop/reset from this pragma.
4095         (option_stack): Delete static variable.
4096         (optimize_stack): Ditto.
4097         (optons_stack): New stack of saved target and optimization
4098         options.
4099         (handle_pragma_push_options): New function to handle pushing both
4100         target and optimization options.
4101         (handle_pragma_pop_options): New function to handle popping both
4102         target and optimization options.
4103         (handle_pragma_reset_options): New function to handle resetting
4104         both target and optimization options to their initial state.
4105         (init_pragma): Rename handle_pragma_option to
4106         handle_pragma_target.  Add support for push_options, pop_options,
4107         and reset_options pragmas.
4108
4109         * target-def.h (TARGET_OPTION_PRAGMA_PARSE): Change default to
4110         default_target_option_pragma_parse.
4111         (TARGET_OPTION_VALID_ATTRIBUTE_P): Change default to
4112         default_target_option_valid_attribute_p.
4113         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
4114         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
4115         (TARGET_OPTION_HOOKS): Delete the fields for whether to change
4116         optimization level on hot/cold functions.
4117
4118         * tree-inline.c (tree_can_inline_p): Disable suppressing inlining
4119         if the caller and callee have different optimization levels.
4120
4121         * c-common.c (handle_target_attribute): Rename from
4122         handle_option_attribute, attribute((option(...))) is now
4123         attribute((target(...))).  Move warning if the port does not
4124         support target attributes to the default hook.
4125         (handle_hot_attribute): Delete code to change the optimization
4126         level of hot functions.
4127         (handle_cold_attribute): Ditto.
4128
4129         * config/i386/i386-c.c (ix86_pragma_target_parse): Take a second
4130         argument that is the binary tree options to use if there are no
4131         arguments.  Call ix86_valid_target_attribute_tree instead of
4132         ix86_valid_option_attribute_tree.
4133         (ix86_pragma_target_parse): Rename from ix86_pragma_option_parse.
4134         (ix86_register_pragmas): Use ix86_pragma_target_parse instead of
4135         ix86_pragma_option_parse.
4136
4137         * config/i386/i386-protos.h (ix86_valid_target_attribute_tree):
4138         Rename from ix86_valid_option_attribute_tree.
4139
4140         * config/i386/i386.c (ix86_add_new_builtins): New function to add
4141         new builtins when the ISA changes.
4142         (ix86_valid_target_attribute_tree): Rename from
4143         ix86_valid_option_attribute_tree.  Change callers.  If the
4144         function specified optimization options, use those as the starting
4145         point before setting up the target attributes.  If the
4146         optimization options were changed in the course of setting the
4147         target attributes, record the new optimization options.
4148         (ix86_valid_target_attribute_tree_inner_p): Rename from
4149         ix86_valid_option_attribute_tree_inner_p.  Change callers.  Call
4150         ix86_add_new_builtins if the ISA changed.
4151         (ix86_valid_target_attribute_p): Rename from
4152         ix86_valid_option_attribute_p.  Change callers.
4153         (enum ix86_builtins): Add IX86_BUILTIN_PCMOV to allow both
4154         __builtin_ia32_pcmov and __builtin_ia32_pcmov_v2di to be declared
4155         as delayed builtin functions.
4156         (struct builtin_isa): New structure to record builtin functions
4157         that should be delayed until the ISA for that function is used.
4158         (ix86_builtins_isa): Change from int to struct to track builtin
4159         functions we want to declare at some point.
4160         (def_builtin): If the front end can delay defining the builtin
4161         functions, don't create builtins for ISAs not part of the default
4162         options.
4163         (def_builtin_const): Ditto.
4164         (bdesc_multi_arg): Declare __builtin_ia32_pcmov and
4165         __builtin_ia32_pcmov_v2di to be different builtin functions.
4166         (ix86_expand_builtin): Changes due to ix86_builtins_isa now being
4167         a structure instead of an int.
4168         (TARGET_OPTION_VALID_ATTRIBUTE_P): Use
4169         ix86_valid_target_attribute_p, not ix86_valid_option_attribute_p.
4170         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
4171         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
4172
4173         * config/ia64/ia64.h
4174         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
4175         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
4176
4177         * langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE): New
4178         hook, default to being the same as LANG_HOOKS_BUILTIN_FUNCTION.
4179         (LANG_HOOKS_INITIALIZER): Add
4180         LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE hook.
4181
4182 2008-08-30  Kaz Kojima  <kkojima@gcc.gnu.org>
4183
4184         PR target/37270
4185         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Generate
4186         the reload address with the index register for SFmode
4187         access with a displacement.
4188
4189 2008-08-30  Jan Hubicka  <jh@suse.cz>
4190
4191         * optabs.c (expand_abs_nojump): Update BRANCH_COST call.
4192         * fold-cost.c (LOGICAL_OP_NON_SHORT_CIRCUIT, fold_truthop): Likewise.
4193         * dojump.c (do_jump): Likewise.
4194         * ifcvt.c (MAX_CONDITIONAL_EXECUTE): Likewise.
4195         (note-if_info): Add BRANCH_COST.
4196         (noce_try_store_flag_constants, noce_try_addcc,
4197         noce_try_store_flag_mask, noce_try_cmove_arith, noce_try_cmove_arith,
4198         noce_try_cmove_arith, noce_find_if_block, find_if_case_1,
4199         find_if_case_2): Use computed branch cost.
4200         * expr.h (BRANCH_COST): Update default.
4201         * predict.c (predictable_edge_p): New function.
4202         * expmed.c (expand_smod_pow2, expand_sdiv_pow2, emit_store_flag):
4203         Update BRANCH_COST call.
4204         * basic-block.h (predictable_edge_p): Declare.
4205         * config/alpha/alpha.h (BRANCH_COST): Update.
4206         * config/frv/frv.h (BRANCH_COST): Update.
4207         * config/s390/s390.h (BRANCH_COST): Update.
4208         * config/spu/spu.h (BRANCH_COST): Update.
4209         * config/sparc/sparc.h (BRANCH_COST): Update.
4210         * config/m32r/m32r.h (BRANCH_COST): Update.
4211         * config/i386/i386.h (BRANCH_COST): Update.
4212         * config/i386/i386.c (ix86_expand_int_movcc): Update use of
4213         BRANCH_COST.
4214         * config/sh/sh.h (BRANCH_COST): Update.
4215         * config/pdp11/pdp11.h (BRANCH_COST): Update.
4216         * config/avr/avr.h (BRANCH_COST): Update.
4217         * config/crx/crx.h (BRANCH_COST): Update.
4218         * config/xtensa/xtensa.h (BRANCH_COST): Update.
4219         * config/stormy16/stormy16.h (BRANCH_COST): Update.
4220         * config/m68hc11/m68hc11.h (BRANCH_COST): Update.
4221         * config/iq2000/iq2000.h (BRANCH_COST): Update.
4222         * config/ia64/ia64.h (BRANCH_COST): Update.
4223         * config/rs6000/rs6000.h (BRANCH_COST): Update.
4224         * config/arc/arc.h (BRANCH_COST): Update.
4225         * config/score/score.h (BRANCH_COST): Update.
4226         * config/arm/arm.h (BRANCH_COST): Update.
4227         * config/pa/pa.h (BRANCH_COST): Update.
4228         * config/mips/mips.h (BRANCH_COST): Update.
4229         * config/vax/vax.h (BRANCH_COST): Update.
4230         * config/h8300/h8300.h (BRANCH_COST): Update.
4231         * params.def (PARAM_PREDICTABLE_BRANCH_OUTCOME): New.
4232         * doc/invoke.texi (predictable-branch-cost-outcome): Document.
4233         * doc/tm.texi (BRANCH_COST): Update.
4234
4235 2008-08-30  Samuel Tardieu  <sam@rfc1149.net>
4236
4237         PR target/37283
4238         * config/arm/arm.c (arm_optimization_options): Set
4239         flag_section_anchors to 2 instead of 1 to distinguish it from
4240         -fsection-anchors given explicitely on the command line.
4241
4242 2008-08-30  Richard Sandiford  <rdsandiford@googlemail.com>
4243
4244         * recog.c (split_insn): Consider attaching a REG_EQUAL note to the
4245         final insn of a split.
4246
4247 2008-08-30  Jan Hubicka  <jh@suse.cz>
4248
4249         * postreload-gcse.c (gate_handle_gcse2): Disable for functions
4250         optimized for speed.
4251         * final.c (compute_alignments): Use optimize_bb_for_size_p.
4252         * tree-call-cdce.c (gate_call_cdce): Use optimize_function_for_speed_p.
4253         * opts.c (flag_predictive_commoning_set, flag_unswitch_loops_set,
4254         flag_gcse_after_reload_set): New static vars.
4255         (common_handle_option): Enable those flags for profile-use.
4256         (decode_options): Remove optimize_size flags that are handled
4257         on higher granuality.
4258         * tree-vectorizer.c (vectorize_loops): Use
4259         optimize_loop_nest_for_speed_p.
4260         * tree-ssa-pre.c (do_pre): Use optimize_function_for_speed_p.
4261         * tree-predcom.c (tree_predictive_commoning): Use
4262         optimize_loop_for_speed_p.
4263         * varasm.c (assemble_start_function): Use
4264         optimize_function_for_speed_p.
4265         * bb-reorder.c (rest_of_handle_reorder_blocks): Likewise.
4266         * predict.c (optimize_loop_for_speed_p): Fix walk.
4267
4268 2008-08-30  Jan Hubicka  <jh@suse.cz>
4269
4270         * ipa-inline.c (cgraph_estimate_growth): Discover self recursive
4271         functions.
4272         (cgraph_decide_inlining_of_small_function): Use edge->count to detect
4273         profile presence locally.
4274
4275 2008-08-29  Joseph Myers  <joseph@codesourcery.com>
4276
4277         PR bootstrap/37086
4278         * tree-vrp.c (find_switch_asserts): Make idx volatile for GCC
4279         versions before 4.0.
4280
4281 2008-08-29  Jan Hubicka  <jh@suse.cz>
4282
4283         * tree-inline.c (insert_init_stmt): Insert sequence even when
4284         not in SSA form.
4285
4286 2008-08-29  Jeff Law  <law@redhat.com>
4287
4288         * mn10300.c (mn10300_secondary_reload_class): We need secondary
4289         reloads for AM33-2 if IN is a pseudo with an equivalent memory
4290         location and class is an FP register.
4291
4292 2008-08-29  Jan Hubicka  <jh@suse.cz>
4293
4294         * see.c (see_merge_one_def_extension): Silence used uninitialized
4295         warning.
4296         * matrix-reorg.c (check_allocation_function): Likewise.
4297         * config/i386/driver-i386.c (detect_caches_amd): Likewise.
4298
4299 2008-08-29  Jakub Jelinek  <jakub@redhat.com>
4300
4301         PR c/37261
4302         * fold-const.c (fold_binary): In (X | C1) & C2 canonicalization
4303         compute new & and | in type rather than TREE_TYPE (arg0).
4304
4305         * dwarf2out.c (fortran_common): Update comment.
4306         (gen_variable_die): Swap com_die and var_die variables in Fortran
4307         COMMON block handling code.
4308
4309         * dwarf2out.c (descr_info_loc): Handle VAR_DECL.
4310
4311         * dwarf2out.c (gen_const_die): New function.
4312         (size_of_die, value_format, output_die): Output larger
4313         dw_val_class_vec using DW_FORM_block2 or DW_FORM_block4.
4314         (native_encode_initializer): New function.
4315         (tree_add_const_value_attribute): Call it.
4316         (gen_decl_die, dwarf2out_decl): Handle CONST_DECLs if is_fortran ().
4317
4318         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): For
4319         DECL_BY_REFERENCE decls don't pass TREE_READONLY and
4320         TREE_THIS_VOLATILE to add_type_attribute.
4321
4322         * dwarf2out.c (add_subscript_info): Stop on Fortran TYPE_STRING_FLAG
4323         types.
4324         (gen_array_type_die): Emit DW_TAG_string_type for Fortran character
4325         types.
4326
4327         * dwarf2out.c (loc_by_reference): New function.
4328         (add_location_or_const_value_attribute): Use it.
4329
4330         PR fortran/23057
4331         * dwarf2out.c (gen_variable_die): Represent Fortran COMMON vars
4332         as DW_TAG_variable children of DW_TAG_common_block rather than
4333         DW_TAG_member children.  Put DW_AT_external to individual
4334         DW_TAG_variable DIEs, not to DW_TAG_common_block.
4335
4336         * dwarf2out.c (add_bound_info): If lookup_decl_die failed, try
4337         loc_descriptor_from_tree_1.
4338
4339         PR fortran/29635
4340         PR fortran/23057
4341         * debug.h (struct gcc_debug_hooks): Add NAME and CHILD
4342         arguments to imported_module_or_decl.
4343         (debug_nothing_tree_tree): Removed.
4344         (debug_nothing_tree_tree_tree_bool): New prototype.
4345         * debug.c (do_nothing_debug_hooks): Adjust.
4346         (debug_nothing_tree_tree): Removed.
4347         (debug_nothing_tree_tree_tree_bool): New function.
4348         * dwarf2out.c (is_symbol_die): Handle DW_TAG_module.
4349         (gen_variable_die): Put all common vars for the
4350         same COMMON block under one DW_TAG_common_block.
4351         (declare_in_namespace): Return new context_die, for Fortran
4352         return the module DIE instead of adding extra declarations into
4353         the namespace.
4354         (gen_type_die_with_usage): Adjust declare_in_namespace caller.
4355         (gen_namespace_die): If is_fortran (), generate DW_TAG_module
4356         instead of DW_TAG_namespace.  If DECL_EXTERNAL is set, add
4357         DW_AT_declaration.
4358         (dwarf2out_global_decl): Don't skip Fortran global vars.
4359         (gen_decl_die): Likewise.  Adjust declare_in_namespace callers.
4360         (dwarf2out_imported_module_or_decl): Add NAME and CHILD arguments.
4361         If NAME is non-NULL, add DW_AT_name.  If CHILD is non-NULL, put
4362         DW_TAG_imported_declaration as child of previous
4363         DW_TAG_imported_module.
4364         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Adjust.
4365         * sdbout.c (sdb_debug_hooks): Likewise.
4366         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
4367
4368 2008-08-29  Jan Hubicka  <jh@suse.cz>
4369
4370         * cgraph.c (cgraph_remove_node): Do not remove nested nodes.
4371
4372         * cgraph.h (cgraph_maybe_hot_edge_p): Declare.
4373         * ipa-cp.c (n_cloning_candidates): New static variable.
4374         (ipcp_print_profile_data, ipcp_function_scale_print): Forward declare.
4375         (ipcp_print_all_lattices): Improve debug output.
4376         (ipcp_cloning_candidate_p): New function.
4377         (ipcp_initialize_node_lattices): Use it.
4378         (ipcp_init_stage): Do only analyzis here; prettier debug output.
4379         (ipcp_propagate_stage): Prettier debug output.
4380         (ipcp_iterate_stage): Initialize latices here; prettier debug output.
4381         (ipcp_print_all_structures): Remove.
4382         (ipcp_need_redirect_p): Test !n_cloning_candidates.
4383         (ipcp_insert_stage): Prettier debug output; call
4384         cgraph_remove_unreachable_nodes before propagating.
4385         (pass_ipa_cp): Schedule function removal pass.
4386         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Better
4387         debug output.
4388         (cgraph_maybe_hot_edge_p): Move to ...
4389         * predict.c (cgraph_maybe_hot_edge_p) ... here.
4390         * opts.c (flag_ipa_cp_set, flag_ipa_cp_clone_set): New.
4391         (common_handle_option): Set them; enable ipa-cp when profiling.
4392         * ipa-prop.c (ipa_print_node_jump_functions): Prettier output.
4393         (ipa_print_all_jump_functions): Likewise.
4394         (ipa_print_all_tree_maps, ipa_print_node_param_flags): Remove.
4395         (ipa_print_node_params, ipa_print_all_params): New.
4396         * ipa-prop.h (ipa_print_all_tree_maps, ipa_print_node_param_flags,
4397         ipa_print_all_param_flags): Remove.
4398         (ipa_print_node_params, ipa_print_all_params): New.
4399
4400 2008-08-29  Bob Wilson  <bob.wilson@acm.org>
4401
4402         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Revert
4403         change from 2008-04-03.
4404         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Define.
4405
4406 2008-08-29  Vladimir Makarov  <vmakarov@redhat.com>
4407
4408         PR rtl-opt/37251
4409         * ira-color.c (push_allocnos_to_stack): Truncate
4410         removed_splay_allocno_vec.
4411
4412 2008-08-29  Vladimir Makarov  <vmakarov@redhat.com>
4413
4414         PR rtl-opt/37243
4415         * ira-color (ira_fast_allocation): Don't assign hard registers to
4416         global allocnos.
4417
4418 2008-08-29  Jan Hubicka  <jh@suse.cz>
4419
4420         PR middle-end/37278
4421         * predict.c (optimize_loop_nest_for_speed_p): Do not ICE
4422         for cold internal loops.
4423
4424 2008-08-29  Richard Guenther  <rguenther@suse.de>
4425
4426         * tree-ssa-structalias.c (create_variable_info_for): Do not
4427         create fields for heap vars or vars with a noalias state.
4428         For NO_ALIAS_ANYTHING variables add a self-constraint, not one
4429         from ESCAPED.
4430
4431 2008-08-29  Richard Guenther  <rguenther@suse.de>
4432
4433         * common.opt (ftree-store-ccp): Mark as preserved for
4434         backward compatibility.
4435         * doc/invoke.texi (-ftree-store-ccp): Remove documentation.
4436         * tree-pass.h (pass_store_ccp): Remove.
4437         * tree-ssa-propagate.h (struct prop_value_d): Remove mem_ref field.
4438         (first_vdef): Remove declaration.
4439         (get_value_loaded_by): Likewise.
4440         * tree-ssa-ccp.c (do_store_ccp): Remove.
4441         (get_default_value): Simplify as do_store_ccp is always false
4442         now.  Do not initialize mem_ref.
4443         (set_value_varying): Likewise.
4444         (canonicalize_float_value): Likewise.
4445         (set_lattice_value): Likewise.
4446         (likely_value): Likewise.
4447         (surely_varying_stmt_p): Likewise.
4448         (ccp_initialize): Likewise.
4449         (ccp_lattice_meet): Likewise.
4450         (ccp_visit_phi_node): Likewise.
4451         (ccp_fold): Likewise.
4452         (evaluate_stmt): Likewise.
4453         (visit_assignment): Likewise.
4454         (ccp_visit_stmt): Likewise.
4455         (execute_ssa_ccp): Fold into ...
4456         (do_ssa_ccp): ... this.
4457         (do_ssa_store_ccp): Remove.
4458         (gate_store_ccp): Likewise.
4459         (pass_store_ccp): Likewise.
4460         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not
4461         initialize mem_ref.
4462         * tree-ssa-propagate.c (first_vdef): Remove.
4463         (get_value_loaded_by): Likewise.
4464         (replace_vuses_in): Likewise.
4465         (substitute_and_fold): Do not call replace_vuses_in.
4466         * opts.c (decode_options): Do not set flag_tree_store_ccp.
4467
4468 2008-08-29  Richard Guenther  <rguenther@suse.de>
4469
4470         PR middle-end/37236
4471         * tree-ssa-structalias.c (intra_create_variable_infos): Mark
4472         PARAM_NOALIAS tags with is_heapvar.
4473         * tree-ssa-operands.c (access_can_touch_variable): Offset
4474         based tests do not apply for heapvars.  Fix offset test.
4475
4476 2008-08-29  Jan Hubicka  <jh@suse.cz>
4477
4478         * doc/invoke.texi (-fipa-cp): Enabled by default at -O2/-Os/-O3
4479         (-fipa-cp-clone): Enabled by default at -O3.
4480         * opts.c (decode_options): Enable ipa-cp at -O2, ipa-cp-clone at -O3;
4481         make ipa-cp-clone to imply ipa-cp; disable cloning at -Os.
4482
4483 2008-08-29  Jan Hubicka  <jh@suse.cz>
4484
4485         * tree.c (build_function_type_skip_args,
4486         build_function_decl_skip_args): New functions.
4487         * tree.h (build_function_type_skip_args,
4488         build_function_decl_skip_args): Declare.
4489         * gimple.c (giple_copy_call_skip_args): New function.
4490         (giple_copy_call_skip_args): Declare.
4491
4492         * cgraph.h (cgraph_function_versioning): Add skip_args arugmnet
4493         * ipa-cp.c (ipcp_node_not_modifiable_p): Rename to ...
4494         (ipcp_node_modifiable_p): ... this one; use
4495         tree_versionable_function_p.
4496         (ipcp_create_replace_map): Improve debug output.
4497         (ipcp_need_redirect_p): Return false when not clonning.
4498         (ipcp_update_callgraph): Skip args.
4499         (ipcp_insert_stage): UPdate call of !ipcp_node_modifiable_p;
4500         skip args.
4501         * cgraphunit.c (cgraph_function_versioning): Add skip_args argument.
4502         (save_inline_function_body): Update call of tree_function_versioning.
4503         * ipa-prop.c (ipa_edge_removal_hook): Do not ICE on unanalyzed nodes.
4504         * tree-inline.c (copy_arguments_for_versioning): Add skip_args
4505         argument.
4506         (tree_function_versioning): Likewise.
4507         * tree-inline.h (tree_function_versioning): Update prototype.
4508
4509 2008-08-29  Jan Hubicka  <jh@suse.cz>
4510
4511         * loop-unswitch.c (unswitch_single_loop): Use
4512         optimize_loop_for_speed_p.
4513         * tree-ssa-threadupdate.c (mark_threaded_blocks):
4514         Use optimize_function_for_size_p.
4515         * tracer.c (ignore_bb_p): Use optimize_bb_for_size_p.
4516         * postreload-gcse.c (eliminate_partially_redundant_load):
4517         Use optimize_bb_for_size_p.
4518         * value-prof.c (gimple_divmod_fixed_value_transform,
4519         gimple_mod_pow2_value_transform, gimple_mod_subtract_transform,
4520         gimple_stringops_transform): Use optimize_bb_for_size_p.
4521         * ipa-cp.c (ipcp_insert_stage): Use optimize_function_for_size_p.
4522         * final.c (compute_alignments): Use optimize_function_for_size_p.
4523         * builtins.c (fold_builtin_cabs): Use optimize_function_for_speed_p.
4524         (fold_builtin_strcpy, fold_builtin_fputs): Use
4525         optimize_function_for_size_p.
4526         * fold-const.c (tree_swap_operands_p): Use
4527         optimize_function_for_size_p.
4528         * recog.c (relax_delay_slots): Likewise.
4529         * tree-ssa-math-opts.c (replace_reciprocal):
4530         Use optimize_bb_for_speed_p.
4531         (execute_cse_reciprocals): Use optimize_bb_for_size_p.
4532         * ipa-inline.c (cgraph_decide_recursive_inlining): Use
4533         optimize_function_for_size_p.
4534         (cgraph_decide_inlining_of_small_function): Use
4535         optimize_function_for_size_p.
4536         * global.c (find_reg): Use optimize_function_for_size_p.
4537         * opts.c (decode_options): Do not clear flag_tree_ch,
4538         flag_inline_functions, flag_unswitch_loops, flag_unroll_loops,
4539         flag_unroll_all_loops and flag_prefetch_loop_arrays. Those can
4540         work it out from profile.
4541         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Use
4542         optimize_loop_for_speed_p.
4543         * predict.c (optimize_bb_for_size_p, optimize_bb_for_speed_p):
4544         Constify argument.
4545         (optimize_loop_nest_for_size_p, optimize_loop_nest_for_speed_p): New.
4546         * tree-parloops.c (parallelize_loops): Use optimize_loop_for_size_p.
4547         * tree-eh.c (decide_copy_try_finally): Use
4548         optimize_function_for_size_p.
4549         * local-alloc.c (block_alloc): Pass BB pointer.
4550         (find_free_reg): Add BB pointer, use optimize_bb_for_size_p.
4551         * gcse.c (gcse_main): Use optimize_function_for_size_p.
4552         * loop-unroll.c (decide_unrolling_and_peeling):
4553         Use optimize_loop_for_size_p.
4554         (decide_peel_completely): Likewise.
4555         * tree-vect-analyze.c (vect_mark_for_runtime_alias_test): Use
4556         optimize_loop_for_size_p.
4557         (vect_enhance_data_refs_alignment): Likewise.
4558         * tree-ssa-coalesce.c (coalesce_cost): Add optimize_for_size argument.
4559         (coalesce_cost_bb, coalesce_cost_edge, create_outofssa_var_map):
4560         Update call.
4561         * cfgcleanup.c (outgoing_edges_match): Use optimize_bb_for_speed_p.
4562         (try_crossjump_bb): Use optimize_bb_for_size_p.
4563         * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
4564         optimize_loop_for_speed_p.
4565         * bb-reorder.c (find_traces_1_round): Likewise.
4566         (copy_bb): Use optimize_bb_for_speed_p.
4567         (duplicate_computed_gotos): Likewise.
4568         * basic-block.h (optimize_loop_nest_for_size_p,
4569         optimize_loop_nest_for_speed_p): New.
4570         * stmt.c (expand_case): Use optimize_insn_for_size_p.
4571
4572 2008-08-29  Tristan Gingold  <gingold@adacore.com>
4573
4574         * gcov.c (main): Call expandargv.
4575
4576 2008-08-29  Jan Hubicka  <jh@suse.cz>
4577
4578         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Check that loop
4579         is not cold.
4580         * predict.c (optimize_bb_for_size_p, optimize_bb_for_speed_p):
4581         Constify arguments.
4582         (optimize_loop_for_size_p, optimize_loop_for_speed_p): New functions.
4583         * basic-block.h (optimize_bb_for_size_p, optimize_bb_for_speed_p):
4584         Constify.
4585         (optimize_loop_for_size_p, optimize_loop_for_speed_p): Declare.
4586
4587 2008-08-29  Jan Hubicka  <jh@suse.cz>
4588
4589         * tree-pass.h (pass_strip_predict_hints): Declare.
4590         * predict.c (strip_builtin_expect): Rename to ...
4591         (strip_predict_hints): ... this one; strip also GIMPLE_PREDICT.
4592         (tree_bb_level_predictions): Do not remove GIMPLE_PREDICT.
4593         (tree_estimate_probability): Do not strip builtin_expect.
4594         (pass_strip_predict_hints): New pass.
4595         * tree-inline.c (expand_call_inline): When inlining cold function,
4596         predict it as unlikely.
4597         * passes.c (init_optimization_passes): Add pass_strip_predict_hints.
4598
4599 2008-08-29  Richard Guenther  <rguenther@suse.de>
4600
4601         PR tree-optimization/37207
4602         * tree-vrp.c (extract_range_from_binary_expr): Also try
4603         to constant fold if only one of the operands is a constant.
4604
4605 2008-08-29  Nick Clifton  <nickc@redhat.com>
4606
4607         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Treat LABEL_REFs in
4608         the same way as SYMBOL_REFs.
4609
4610 2008-08-28  Bob Wilson  <bob.wilson@acm.org>
4611
4612         * config/xtensa/xtensa.md (<u>mulsidi3): Use a temporary register.
4613
4614 2008-08-28  Adam Nemet  <anemet@caviumnetworks.com>
4615
4616         * config/mips/mips.h (ISA_HAS_BBIT): New macro.
4617         * config/mips/mips.md (branch_likely): Remove const.  Fix
4618         comment formatting.
4619         (define_delay for type "branch"): Change to only apply for branch
4620         with likely variant.
4621         (define_delay for type "branch" and "branch_likely" no).  New delay
4622         definition.
4623         (equality_op): New code iterator.
4624         (bbv, bbinv): New code attributes.
4625         (*branch_bit<bbv><mode>, *branch_bit<bbv><mode>_inverted): New
4626         patterns.
4627
4628 2008-08-28  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4629             Andrew Pinski  <pinskia@gcc.gnu.org>
4630
4631         PR 18050
4632         * c-common.c (verify_tree): Fix handling of ADDR_EXPR.
4633
4634 2008-08-28  Paolo Carlini  <paolo.carlini@oracle.com>
4635
4636         * gtrh-posix.h: Fix uses of _POSIX_TIMEOUTS per the normal Posix
4637         rule that a symbolic constant must be defined and >= 0 for the
4638         corresponding facility to be present at compile-time.
4639         * gthr-posix.c: Likewise.
4640
4641 2008-08-28  Adam Nemet  <anemet@caviumnetworks.com>
4642
4643         * config/mips/mips.h (ISA_HAS_DMUL3): New macro.
4644         * config/mips/mips.md (D): New mode attribute.
4645         (mulsi3, muldi3): Merge it into ...
4646         (mul<mode>3): ... new template.  Use _mul3 ending for 3-op patterns.
4647         (muldi3_mul3): New pattern.
4648         (mulsi3_mult3): Rename to mulsi3_mul3.
4649
4650 2008-08-28  Jan Hubicka  <jh@suse.cz>
4651
4652         * expmed.c (store_bit_field_1): Be prepared for movstrict expander
4653         to fail.
4654         * predict.c (always_optimize_for_size_p): Rename to ...
4655         (optimize_function_for_size): ... this one; make extern.
4656         (optimize_function_for_speed_p): New.
4657         (optimize_bb_for_size_p, optimize_bb_for_size_p,
4658         optimize_edge_for_size_p,optimize_edge_for_size_p,
4659         optimize_insn_for_size_p, optimize_insn_for_size_p): Update.
4660         * basic-block.h (optimize_function_for_size_p,
4661         optimize_function_for_speed_p): Declare.
4662         * i386.md (optimize_size checks): Replace them by appropriate
4663         predicate.
4664         (standard_80387_constant_p, ix86_compute_frame_layout,
4665         ix86_expand_epilogue, ix86_decompose_address,
4666         print_operand, emit_i387_cw_initialization,
4667         inline_memory_move_cost, ix86_pad_returns,
4668         ix86_reorg): Replace optimize_size checks.
4669
4670 2008-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4671
4672         * rtl.h (simplify_subreg_regno): Declare.
4673         * rtlanal.c (simplify_subreg_regno): New function, split out from...
4674         * simplify-rtx.c (simplify_subreg): ...here.
4675         * reload.c (find_reloads): Use simplify_subreg_regno instead of
4676         subreg_offset_representable_p.
4677
4678 2008-08-28  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4679
4680         PR c/30949
4681         * c-typeck.c (convert_for_assignment): Give a note describing what
4682         was passed and what was expected.
4683
4684 2008-08-28  Joey Ye  <joey.ye@intel.com>
4685
4686         * doc/extend.texi: Document AVX built-in functions.
4687         * doc/invoke.texi: Document -mavx.
4688
4689 2008-08-28  H.J. Lu  <hongjiu.lu@intel.com>
4690             Joey Ye  <joey.ye@intel.com>
4691             Xuepeng Guo  <xuepeng.guo@intel.com>
4692
4693         * config.gcc (extra_headers): Add gmmintrin.h for x86 and x86-64.
4694
4695         * config/i386/cpuid.h (bit_FMA): New.
4696         (bit_XSAVE): Likewise.
4697         (bit_OSXSAVE): Likewise.
4698         (bit_AVX): Likewise.
4699
4700         * config/i386/gas.h (ASM_OUTPUT_OPCODE): Undefine before
4701         define.  Use ASM_OUTPUT_AVX_PREFIX.
4702
4703         * config/i386/gmmintrin.h: New.
4704
4705         * config/i386/i386.c (x86_64_reg_class): Add X86_64_AVX_CLASS.
4706         (OPTION_MASK_ISA_AVX_SET): New.
4707         (OPTION_MASK_ISA_FMA_SET): Likewise.
4708         (OPTION_MASK_ISA_AVX_UNSET): Likewise.
4709         (OPTION_MASK_ISA_FMA_SET): Likewise.
4710         (OPTION_MASK_ISA_SSE4_2_UNSET): Updated.
4711         (ix86_handle_option): Handle OPT_mavx and OPT_mfma.
4712         (pta_flags): Add PTA_AVX and PTA_FMA.
4713         (override_options): Handle PTA_AVX and PTA_FMA.
4714         (init_cumulative_args): Handle warn_avx.
4715         (classify_argument): Return 0 for COImode and OImode.  Return
4716         1 and X86_64_AVX_CLASS for 256bit vector types.
4717         (examine_argument): Handle X86_64_AVX_CLASS.
4718         (construct_container): Likewise.
4719         (function_arg_advance_32): Pass OImode and 256bit vector types
4720         in AVX register.
4721         (function_arg_advance_64): Take a new argument to indicate if a
4722         parameter is named.  Handle 256bit vector types.  Return
4723         immediately for unnamed 256bit vector mode parameters.
4724         (function_arg_advance): Updated.
4725         (function_arg_32): Add comments for TImode.  Handle OImode
4726         and 256bit vector types.
4727         (function_arg_64): Take a new argument to indicate if a
4728         parameter is named.  Handle 256bit vector types.  Return NULL
4729         for unnamed 256bit vector mode parameters.
4730         (function_arg): Updated.
4731         (setup_incoming_varargs_64): Support
4732         AVX encoding for *sse_prologue_save_insn.
4733         (ix86_gimplify_va_arg): Handle 256bit vector mode parameters.
4734         (standard_sse_constant_p): Return -2 for all 1s if SSE2 isn't
4735         enabled.  For all 1s in 256bit vector modes, return 3 if AVX is
4736         enabled, otherwise return -3.
4737         (standard_sse_constant_opcode): Handle AVX and 256bit vector
4738         modes.
4739         (print_reg): Support AVX registers.  Handle 'x' and 't'.
4740         Handle 'd' to duplicate the operand.
4741         (print_operand): Likewise.  Also support AVX vector compare
4742         instructions.
4743         (output_387_binary_op): Support AVX.
4744         (output_fp_compare): Likewise.
4745         (ix86_expand_vector_move_misalign): Likewise.
4746         (ix86_attr_length_vex_default): New.
4747         (ix86_builtins): Add IX86_BUILTIN_ADDPD256,
4748         IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256,
4749         IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256,
4750         IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256,
4751         IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_BLENDPD256,
4752         IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256,
4753         IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DIVPD256,
4754         IX86_BUILTIN_DIVPS256, IX86_BUILTIN_DPPS256,
4755         IX86_BUILTIN_HADDPD256, IX86_BUILTIN_HADDPS256,
4756         IX86_BUILTIN_HSUBPD256, IX86_BUILTIN_HSUBPS256,
4757         IX86_BUILTIN_MAXPD256, IX86_BUILTIN_MAXPS256,
4758         IX86_BUILTIN_MINPD256, IX86_BUILTIN_MINPS256,
4759         IX86_BUILTIN_MULPD256, IX86_BUILTIN_MULPS256,
4760         IX86_BUILTIN_ORPD256, IX86_BUILTIN_ORPS256,
4761         IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256,
4762         IX86_BUILTIN_SUBPD256, IX86_BUILTIN_SUBPS256,
4763         IX86_BUILTIN_XORPD256, IX86_BUILTIN_XORPS256,
4764         IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD,
4765         IX86_BUILTIN_CMPPS, IX86_BUILTIN_CMPPD256,
4766         IX86_BUILTIN_CMPPS256, IX86_BUILTIN_CVTDQ2PD256,
4767         IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256,
4768         IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256,
4769         IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256,
4770         IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_EXTRACTF128PD256,
4771         IX86_BUILTIN_EXTRACTF128PS256, IX86_BUILTIN_EXTRACTF128SI256,
4772         IX86_BUILTIN_VZEROALL, IX86_BUILTIN_VZEROUPPER,
4773         IX86_BUILTIN_VZEROUPPER_REX64, IX86_BUILTIN_VPERMILVARPD,
4774         IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256,
4775         IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_VPERMILPD,
4776         IX86_BUILTIN_VPERMILPS, IX86_BUILTIN_VPERMILPD256,
4777         IX86_BUILTIN_VPERMILPS256, IX86_BUILTIN_VPERMIL2PD,
4778         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256,
4779         IX86_BUILTIN_VPERMIL2PS256, IX86_BUILTIN_VPERM2F128PD256,
4780         IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256,
4781         IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256,
4782         IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256,
4783         IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_VINSERTF128PD256,
4784         IX86_BUILTIN_VINSERTF128PS256, IX86_BUILTIN_VINSERTF128SI256,
4785         IX86_BUILTIN_LOADUPD256, IX86_BUILTIN_LOADUPS256,
4786         IX86_BUILTIN_STOREUPD256, IX86_BUILTIN_STOREUPS256,
4787         IX86_BUILTIN_LDDQU256, IX86_BUILTIN_LOADDQU256,
4788         IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_MASKLOADPD,
4789         IX86_BUILTIN_MASKLOADPS, IX86_BUILTIN_MASKSTOREPD,
4790         IX86_BUILTIN_MASKSTOREPS, IX86_BUILTIN_MASKLOADPD256,
4791         IX86_BUILTIN_MASKLOADPS256, IX86_BUILTIN_MASKSTOREPD256,
4792         IX86_BUILTIN_MASKSTOREPS256, IX86_BUILTIN_MOVSHDUP256,
4793         IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256,
4794         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256,
4795         IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256,
4796         IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256,
4797         IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256,
4798         IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256,
4799         IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256,
4800         IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS,
4801         IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256,
4802         IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256,
4803         IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD,
4804         IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS,
4805         IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS,
4806         IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256,
4807         IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256,
4808         IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256,
4809         IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256,
4810         IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256
4811         and IX86_BUILTIN_MOVMSKPS256,
4812         (ix86_special_builtin_type): Add V32QI_FTYPE_PCCHAR,
4813         V8SF_FTYPE_PCV4SF, V8SF_FTYPE_PCFLOAT, V4DF_FTYPE_PCV2DF,
4814         V4DF_FTYPE_PCDOUBLE, V8SF_FTYPE_PCV8SF_V8SF,
4815         V4DF_FTYPE_PCV4DF_V4DF, V4SF_FTYPE_PCV4SF_V4SF,
4816         V2DF_FTYPE_PCV2DF_V2DF, VOID_FTYPE_PCHAR_V32QI,
4817         VOID_FTYPE_PFLOAT_V8SF, VOID_FTYPE_PDOUBLE_V4DF,
4818         VOID_FTYPE_PV8SF_V8SF_V8SF, VOID_FTYPE_PV4DF_V4DF_V4DF,
4819         VOID_FTYPE_PV4SF_V4SF_V4SF and VOID_FTYPE_PV2DF_V2DF_V2DF,
4820         (ix86_builtin_type): Add INT_FTYPE_V8SF_V8SF_PTEST,
4821         INT_FTYPE_V4DI_V4DI_PTEST, INT_FTYPE_V4DF_V4DF_PTEST,
4822         INT_FTYPE_V4SF_V4SF_PTEST, INT_FTYPE_V2DF_V2DF_PTEST,
4823         INT_FTYPE_V8SF, INT_FTYPE_V4DF, V8SI_FTYPE_V8SF, V8SI_FTYPE_V4SI,
4824         V8SF_FTYPE_V8SF, V8SF_FTYPE_V8SI, V8SF_FTYPE_V4SF,
4825         V4SI_FTYPE_V8SI, V4SI_FTYPE_V4DF, V4DF_FTYPE_V4DF,
4826         V4DF_FTYPE_V4SI, V4DF_FTYPE_V4SF, V4DF_FTYPE_V2DF,
4827         V4SF_FTYPE_V4DF, V4SF_FTYPE_V8SF, V2DF_FTYPE_V4DF,
4828         V8SF_FTYPE_V8SF_V8SF, V8SF_FTYPE_V8SF_V8SI,
4829         V4DF_FTYPE_V4DF_V4DF, V4DF_FTYPE_V4DF_V4DI,
4830         V4SF_FTYPE_V4SF_V4SI, V2DF_FTYPE_V2DF_V2DI,
4831         V8SF_FTYPE_V8SF_INT, V4SI_FTYPE_V8SI_INT, V4SF_FTYPE_V8SF_INT,
4832         V2DF_FTYPE_V4DF_INT, V4DF_FTYPE_V4DF_INT,
4833         V8SF_FTYPE_V8SF_V8SF_V8SF, V4DF_FTYPE_V4DF_V4DF_V4DF,
4834         V8SI_FTYPE_V8SI_V8SI_INT, V8SF_FTYPE_V8SF_V8SF_INT,
4835         V4DF_FTYPE_V4DF_V4DF_INT, V4DF_FTYPE_V4DF_V2DF_INT,
4836         V8SF_FTYPE_V8SF_V8SF_V8SI_INT, V4DF_FTYPE_V4DF_V4DF_V4DI_INT,
4837         V4SF_FTYPE_V4SF_V4SF_V4SI_INT and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
4838         (bdesc_special_args): Add IX86_BUILTIN_VZEROALL,
4839         IX86_BUILTIN_VZEROUPPER. IX86_BUILTIN_VZEROUPPER_REX64,
4840         IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256,
4841         IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256,
4842         IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_LOADUPD256,
4843         IX86_BUILTIN_LOADUPS256, IX86_BUILTIN_STOREUPD256,
4844         IX86_BUILTIN_STOREUPS256, IX86_BUILTIN_LOADDQU256,
4845         IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_LDDQU256,
4846         IX86_BUILTIN_MASKLOADPD, IX86_BUILTIN_MASKLOADPS,
4847         IX86_BUILTIN_MASKLOADPD256, IX86_BUILTIN_MASKLOADPS256,
4848         IX86_BUILTIN_MASKSTOREPD, IX86_BUILTIN_MASKSTOREPS,
4849         IX86_BUILTIN_MASKSTOREPD256 and IX86_BUILTIN_MASKSTOREPS256.
4850         (ix86_builtins): Add IX86_BUILTIN_ADDPD256,
4851         IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256,
4852         IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256,
4853         IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256,
4854         IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_DIVPD256,
4855         IX86_BUILTIN_DIVPS256, IX86_BUILTIN_HADDPD256,
4856         IX86_BUILTIN_HSUBPS256, IX86_BUILTIN_HSUBPD256,
4857         IX86_BUILTIN_HADDPS256, IX86_BUILTIN_MAXPD256,
4858         IX86_BUILTIN_MAXPS256, IX86_BUILTIN_MINPD256,
4859         IX86_BUILTIN_MINPS256, IX86_BUILTIN_MULPD256,
4860         IX86_BUILTIN_MULPS256, IX86_BUILTIN_ORPD256,
4861         IX86_BUILTIN_ORPS256, IX86_BUILTIN_SUBPD256,
4862         IX86_BUILTIN_SUBPS256, IX86_BUILTIN_XORPD256,
4863         IX86_BUILTIN_XORPS256, IX86_BUILTIN_VPERMILVARPD,
4864         IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256,
4865         IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_BLENDPD256,
4866         IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256,
4867         IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DPPS256,
4868         IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256,
4869         IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD,
4870         IX86_BUILTIN_CMPPS,
4871         IX86_BUILTIN_CMPPD256,IX86_BUILTIN_CMPPS256,
4872         IX86_BUILTIN_EXTRACTF128PD256, IX86_BUILTIN_EXTRACTF128PS256,
4873         IX86_BUILTIN_EXTRACTF128SI256, IX86_BUILTIN_CVTDQ2PD256,
4874         IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256,
4875         IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256,
4876         IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256,
4877         IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_VPERM2F128PD256,
4878         IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256,
4879         IX86_BUILTIN_VPERMILPD, IX86_BUILTIN_VPERMILPS,
4880         IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256,
4881         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMILPS,
4882         IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256,
4883         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
4884         IX86_BUILTIN_VPERMIL2PD256, IX86_BUILTIN_VPERMIL2PS256,
4885         IX86_BUILTIN_VINSERTF128PD256, IX86_BUILTIN_VINSERTF128PS256,
4886         IX86_BUILTIN_VINSERTF128SI256, IX86_BUILTIN_MOVSHDUP256,
4887         IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256,
4888         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256,
4889         IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256,
4890         IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256,
4891         IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256,
4892         IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256,
4893         IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256,
4894         IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS,
4895         IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256,
4896         IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256,
4897         IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD,
4898         IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS,
4899         IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS,
4900         IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256,
4901         IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256,
4902         IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256,
4903         IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256,
4904         IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256 and
4905         IX86_BUILTIN_MOVMSKPS256.
4906         (ix86_init_mmx_sse_builtins): Support AVX builtins.
4907         (ix86_expand_args_builtin): Likewise.
4908         (ix86_expand_special_args_builtin): Likewise.
4909         (ix86_hard_regno_mode_ok): Handle AVX modes.
4910         (ix86_expand_vector_init_duplicate): Likewise.
4911         (ix86_expand_vector_init_one_nonzero): Likewise.
4912         (ix86_expand_vector_init_one_var): Likewise.
4913         (ix86_expand_vector_init_concat): Likewise.
4914         (ix86_expand_vector_init_general): Likewise.
4915         (ix86_expand_vector_set): Likewise.
4916         (ix86_vector_mode_supported_p): Likewise.
4917         (x86_extended_reg_mentioned_p): Check INSN_P before using
4918         PATTERN.
4919
4920         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
4921         OPTION_MASK_ISA_AVX and OPTION_MASK_ISA_FMA.
4922
4923         * config/i386/i386.h (TARGET_AVX): New.
4924         (TARGET_FMA): Likewise.
4925         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AVX and TARGET_FMA.
4926         (BIGGEST_ALIGNMENT): Set to 256 for TARGET_AVX.
4927         (VALID_AVX256_REG_MODE): New.
4928         (AVX256_VEC_FLOAT_MODE_P): Likewise.
4929         (AVX_FLOAT_MODE_P): Likewise.
4930         (AVX128_VEC_FLOAT_MODE_P): Likewise.
4931         (AVX256_VEC_FLOAT_MODE_P): Likewise.
4932         (AVX_VEC_FLOAT_MODE_P): Likewise.
4933         (ASM_OUTPUT_AVX_PREFIX): Likewise.
4934         (ASM_OUTPUT_OPCODE): Likewise.
4935         (UNITS_PER_SIMD_WORD): Add a FIXME for 32byte vectorizer
4936         support.
4937         (SSE_REG_MODE_P): Allow 256bit vector modes.
4938         (ix86_args): Add a warn_avx field.
4939
4940         * config/i386/i386.md (UNSPEC_PCMP): New.
4941         (UNSPEC_VPERMIL): Likewise.
4942         (UNSPEC_VPERMIL2): Likewise.
4943         (UNSPEC_VPERMIL2F128): Likewise.
4944         (UNSPEC_MASKLOAD): Likewise.
4945         (UNSPEC_MASKSTORE): Likewise.
4946         (UNSPEC_CAST): Likewise.
4947         (UNSPEC_VTESTP): Likewise.
4948         (UNSPECV_VZEROALL): Likewise.
4949         (UNSPECV_VZEROUPPER): Likewise.
4950         (XMM0_REG): Likewise.
4951         (XMM1_REG): Likewise.
4952         (XMM2_REG): Likewise.
4953         (XMM3_REG): Likewise.
4954         (XMM4_REG): Likewise.
4955         (XMM5_REG): Likewise.
4956         (XMM6_REG): Likewise.
4957         (XMM8_REG): Likewise.
4958         (XMM9_REG): Likewise.
4959         (XMM10_REG): Likewise.
4960         (XMM11_REG): Likewise.
4961         (XMM12_REG): Likewise.
4962         (XMM13_REG): Likewise.
4963         (XMM14_REG): Likewise.
4964         (XMM15_REG): Likewise.
4965         (prefix): Likewise.
4966         (prefix_vex_imm8): Likewise.
4967         (prefix_vex_w): Likewise.
4968         (length_vex): Likewise.
4969         (maxmin): Likewise.
4970         (movoi): Likewise.
4971         (*avx_ashlti3): Likewise.
4972         (*avx_lshrti3): Likewise.
4973         (*avx_setcc<mode>): Likewise.
4974         (*fop_<mode>_comm_mixed_avx): Likewise.
4975         (*fop_<mode>_comm_avx): Likewise.
4976         (*fop_<mode>_1_mixed_avx): Likewise.
4977         (*fop_<mode>_1_avx): Likewise.
4978         (*avx_<code><mode>3): Likewise.
4979         (*avx_ieee_smin<mode>3): Likewise.
4980         (*avx_ieee_smax<mode>3): Likewise.
4981         (mode): Add OI, V8SF and V4DF.
4982         (length): Support VEX prefix.
4983         (*cmpfp_i_mixed): Set prefix attribute.
4984         (*cmpfp_i_sse): Likewise.
4985         (*cmpfp_iu_mixed): Likewise.
4986         (*cmpfp_iu_sse): Likewise.
4987         (*movsi_1): Support AVX.
4988         (*movdi_2): Likewise.
4989         (*movdi_1_rex64): Likewise.
4990         (*movti_internal): Likewise.
4991         (*movti_rex64): Likewise.
4992         (*movsf_1): Likewise.
4993         (*movdf_nointeger): Likewise.
4994         (*movdf_integer_rex64): Likewise.
4995         (*movtf_internal): Likewise.
4996         (zero_extendsidi2_32): Likewise.
4997         (zero_extendsidi2_rex64): Likewise.
4998         (*extendsfdf2_mixed): Likewise.
4999         (*extendsfdf2_sse): Likewise.
5000         (*truncdfsf_fast_mixed): Likewise.
5001         (*truncdfsf_fast_sse): Likewise.
5002         (*truncdfsf_mixed): Likewise.
5003         (fix_trunc<mode>di_sse): Likewise.
5004         (fix_trunc<mode>si_sse): Likewise.
5005         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
5006         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
5007         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
5008         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
5009         (*rcpsf2_sse): Likewise.
5010         (*rsqrtsf2_sse): Likewise.
5011         (*sqrt<mode>2_sse): Likewise.
5012         (sse4_1_round<mode>2): Likewise.
5013         (*sse_prologue_save_insn): Disallow REX prefix for AVX.
5014         Support AVX.  Set length attribute properly for AVX.
5015
5016         * config/i386/i386-modes.def (VECTOR_MODES (INT, 32)): New.
5017         (VECTOR_MODES (FLOAT, 32)): Likewise.
5018         (VECTOR_MODE (INT, DI, 8)): Likewise.
5019         (VECTOR_MODE (INT, HI, 32)): Likewise.
5020         (VECTOR_MODE (INT, QI, 64)): Likewise.
5021         (VECTOR_MODE (FLOAT, DF, 8)): Likewise.
5022         (VECTOR_MODE (FLOAT, SF, 16)): Likewise.
5023         (VECTOR_MODE (INT, DI, 4)): Removed.
5024         (VECTOR_MODE (INT, SI, 8)): Likewise.
5025         (VECTOR_MODE (INT, HI, 16)): Likewise.
5026         (VECTOR_MODE (INT, QI, 32)): Likewise.
5027         (VECTOR_MODE (FLOAT, SF, 8)): Likewise.
5028         (INT_MODE (OI, 32)): Likewise.
5029
5030         * config/i386/i386.opt (mavx): New.
5031         (mfma): Likewise.
5032
5033         * config/i386/i386-protos.h (ix86_attr_length_vex_default): New.
5034
5035         * config/i386/mmx.md (*mov<mode>_internal_rex64): Support AVX.
5036         (*mov<mode>_internal_avx): New.
5037         (*movv2sf_internal_rex64_avx): Likewise.
5038         (*movv2sf_internal_avx): Likewise.
5039
5040         * config/i386/predicates.md (const_4_to_5_operand): New.
5041         (const_6_to_7_operand): Likewise.
5042         (const_8_to_11_operand): Likewise.
5043         (const_12_to_15_operand): Likewise.
5044         (avx_comparison_float_operator): Likewise.
5045
5046         * config/i386/sse.md (AVX256MODEI): New.
5047         (AVX256MODE): Likewise.
5048         (AVXMODEQI): Likewise.
5049         (AVXMODE): Likewise.
5050         (AVX256MODEF2P): Likewise.
5051         (AVX256MODE2P): Likewise.
5052         (AVX256MODE4P): Likewise.
5053         (AVX256MODE8P): Likewise.
5054         (AVXMODEF2P): Likewise.
5055         (AVXMODEF4P): Likewise.
5056         (AVXMODEDCVTDQ2PS): Likewise.
5057         (AVXMODEDCVTPS2DQ): Likewise.
5058         (avxvecmode): Likewise.
5059         (avxvecpsmode): Likewise.
5060         (avxhalfvecmode): Likewise.
5061         (avxscalarmode): Likewise.
5062         (avxcvtvecmode): Likewise.
5063         (avxpermvecmode): Likewise.
5064         (avxmodesuffixf2c): Likewise.
5065         (avxmodesuffixp): Likewise.
5066         (avxmodesuffixs): Likewise.
5067         (avxmodesuffix): Likewise.
5068         (vpermilbits): Likewise.
5069         (pinsrbits): Likewise.
5070         (mov<mode>): Likewise.
5071         (*mov<mode>_internal): Likewise.
5072         (push<mode>1): Likewise.
5073         (movmisalign<mode>): Likewise.
5074         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Likewise.
5075         (avx_movdqu<avxmodesuffix>): Likewise.
5076         (avx_lddqu<avxmodesuffix>): Likewise.
5077         (<plusminus_insn><mode>3): Likewise.
5078         (*avx_<plusminus_insn><mode>3): Likewise.
5079         (*avx_vm<plusminus_insn><mode>3): Likewise.
5080         (mul<mode>3): Likewise.
5081         (*avx_mul<mode>3): Likewise.
5082         (*avx_vmmul<mode>3): Likewise.
5083         (divv8sf3): Likewise.
5084         (divv4df3): Likewise.
5085         (avx_div<mode>3): Likewise.
5086         (*avx_div<mode>3): Likewise.
5087         (*avx_vmdiv<mode>3): Likewise.
5088         (avx_rcpv8sf2): Likewise.
5089         (*avx_vmrcpv4sf2): Likewise.
5090         (sqrtv8sf2): Likewise.
5091         (avx_sqrtv8sf2): Likewise.
5092         (*avx_vmsqrt<mode>2): Likewise.
5093         (rsqrtv8sf2): Likewise.
5094         (avx_rsqrtv8sf2): Likewise.
5095         (*avx_vmrsqrtv4sf2): Likewise.
5096         (<code><mode>3): Likewise.
5097         (*avx_<code><mode>3_finite): Likewise.
5098         (*avx_<code><mode>3): Likewise.
5099         (*avx_vm<code><mode>3): Likewise.
5100         (*avx_ieee_smin<mode>3): Likewise.
5101         (*avx_ieee_smax<mode>3): Likewise.
5102         (avx_addsubv8sf3): Likewise.
5103         (avx_addsubv4df3): Likewise.
5104         (*avx_addsubv4sf3): Likewise.
5105         (*avx_addsubv2df3): Likewise.
5106         (avx_h<plusminus_insn>v4df3): Likewise.
5107         (avx_h<plusminus_insn>v8sf3): Likewise.
5108         (*avx_h<plusminus_insn>v4sf3): Likewise.
5109         (*avx_h<plusminus_insn>v2df3): Likewise.
5110         (avx_cmpp<avxmodesuffixf2c><mode>3): Likewise.
5111         (avx_cmps<ssemodesuffixf2c><mode>3): Likewise.
5112         (*avx_maskcmp<mode>3): Likewise.
5113         (avx_nand<mode>3): Likewise.
5114         (*avx_<code><mode>3): Likewise.
5115         (*avx_nand<mode>3): Likewise.
5116         (*avx_<code><mode>3): Likewise.
5117         (*avx_cvtsi2ss): Likewise.
5118         (*avx_cvtsi2ssq): Likewise.
5119         (*avx_cvtsi2sd): Likewise.
5120         (*avx_cvtsi2sdq): Likewise.
5121         (*avx_cvtsd2ss): Likewise.
5122         (avx_cvtss2sd): Likewise.
5123         (avx_cvtdq2ps<avxmodesuffix>): Likewise.
5124         (avx_cvtps2dq<avxmodesuffix>): Likewise.
5125         (avx_cvttps2dq<avxmodesuffix>): Likewise.
5126         (*avx_cvtsi2sd): Likewise.
5127         (*avx_cvtsi2sdq): Likewise.
5128         (avx_cvtdq2pd256): Likewise.
5129         (avx_cvtpd2dq256): Likewise.
5130         (avx_cvttpd2dq256): Likewise.
5131         (*avx_cvtsd2ss): Likewise.
5132         (*avx_cvtss2sd): Likewise.
5133         (avx_cvtpd2ps256): Likewise.
5134         (avx_cvtps2pd256): Likewise.
5135         (*avx_movhlps): Likewise.
5136         (*avx_movlhps): Likewise.
5137         (avx_unpckhps256): Likewise.
5138         (*avx_unpckhps): Likewise.
5139         (avx_unpcklps256): Likewise.
5140         (*avx_unpcklps): Likewise.
5141         (avx_movshdup256): Likewise.
5142         (avx_movsldup256): Likewise.
5143         (avx_shufps256): Likewise.
5144         (avx_shufps256_1): Likewise.
5145         (*avx_shufps_<mode>): Likewise.
5146         (*avx_loadhps): Likewise.
5147         (*avx_storelps): Likewise.
5148         (*avx_loadlps): Likewise.
5149         (*avx_movss): Likewise.
5150         (*vec_dupv4sf_avx): Likewise.
5151         (*vec_concatv2sf_avx): Likewise.
5152         (*vec_concatv4sf_avx): Likewise.
5153         (*vec_setv4sf_0_avx): Likewise.
5154         (*vec_setv4sf_avx): Likewise.
5155         (*avx_insertps): Likewise.
5156         (avx_vextractf128<mode>): Likewise.
5157         (vec_extract_lo_<mode>): Likewise.
5158         (vec_extract_hi_<mode>): Likewise.
5159         (vec_extract_lo_<mode>): Likewise.
5160         (vec_extract_hi_<mode>): Likewise.
5161         (vec_extract_lo_v16hi): Likewise.
5162         (vec_extract_hi_v16hi): Likewise.
5163         (vec_extract_lo_v32qi): Likewise.
5164         (vec_extract_hi_v32qi): Likewise.
5165         (avx_unpckhpd256): Likewise.
5166         (*avx_unpckhpd): Likewise.
5167         (avx_movddup256): Likewise.
5168         (*avx_movddup): Likewise.
5169         (avx_unpcklpd256): Likewise.
5170         (*avx_unpcklpd): Likewise.
5171         (avx_shufpd256): Likewise.
5172         (avx_shufpd256_1): Likewise.
5173         (*avx_punpckhqdq): Likewise.
5174         (*avx_punpcklqdq): Likewise.
5175         (*avx_shufpd_<mode>): Likewise.
5176         (*avx_storehpd): Likewise.
5177         (*avx_loadhpd): Likewise.
5178         (*avx_loadlpd): Likewise.
5179         (*avx_movsd): Likewise.
5180         (*vec_concatv2df_avx): Likewise.
5181         (*avx_<plusminus_insn><mode>3): Likewise.
5182         (*avx_<plusminus_insn><mode>3): Likewise.
5183         (*avx_mulv8hi3): Likewise.
5184         (*avxv8hi3_highpart): Likewise.
5185         (*avx_umulv8hi3_highpart): Likewise.
5186         (*avx_umulv2siv2di3): Likewise.
5187         (*avx_mulv2siv2di3): Likewise.
5188         (*avx_pmaddwd): Likewise.
5189         (*avx_mulv4si3): Likewise.
5190         (*avx_ashr<mode>3): Likewise.
5191         (*avx_lshr<mode>3): Likewise.
5192         (*avx_ashl<mode>3): Likewise.
5193         (*avx_<code><mode>3): Likewise.
5194         (*avx_eq<mode>3): Likewise.
5195         (*avx_gt<mode>3): Likewise.
5196         (*avx_nand<mode>3): Likewise.
5197         (*avx_nand<mode>3): Likewise.
5198         (*avx_<code><mode>3): Likewise.
5199         (*avx_<code><mode>3): Likewise.
5200         (*avx_packsswb): Likewise.
5201         (*avx_packssdw): Likewise.
5202         (*avx_packuswb): Likewise.
5203         (*avx_punpckhbw): Likewise.
5204         (*avx_punpcklbw): Likewise.
5205         (*avx_punpckhwd): Likewise.
5206         (*avx_punpcklwd): Likewise.
5207         (*avx_punpckhdq): Likewise.
5208         (*avx_punpckldq): Likewise.
5209         (*avx_pinsr<avxmodesuffixs>): Likewise.
5210         (*avx_pinsrq): Likewise.
5211         (*avx_loadld): Likewise.
5212         (*vec_extractv2di_1_rex64_avx): Likewise.
5213         (*vec_extractv2di_1_avx): Likewise.
5214         (*vec_dupv2di_avx): Likewise.
5215         (*vec_concatv2si_avx): Likewise.
5216         (*vec_concatv4si_1_avx): Likewise.
5217         (*vec_concatv2di_avx): Likewise.
5218         (*vec_concatv2di_rex64_avx): Likewise.
5219         (*avx_uavgv16qi3): Likewise.
5220         (*avx_uavgv8hi3): Likewise.
5221         (*avx_psadbw): Likewise.
5222         (avx_movmskp<avxmodesuffixf2c>256): Likewise.
5223         (*avx_phaddwv8hi3): Likewise.
5224         (*avx_phadddv4si3): Likewise.
5225         (*avx_phaddswv8hi3): Likewise.
5226         (*avx_phsubwv8hi3): Likewise.
5227         (*avx_phsubdv4si3): Likewise.
5228         (*avx_phsubswv8hi3): Likewise.
5229         (*avx_pmaddubsw128): Likewise.
5230         (*avx_pmulhrswv8hi3): Likewise.
5231         (*avx_pshufbv16qi3): Likewise.
5232         (*avx_psign<mode>3): Likewise.
5233         (*avx_palignrti): Likewise.
5234         (avx_blendp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
5235         (avx_blendvp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
5236         (avx_dpp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
5237         (*avx_mpsadbw): Likewise.
5238         (*avx_packusdw): Likewise.
5239         (*avx_pblendvb): Likewise.
5240         (*avx_pblendw): Likewise.
5241         (avx_vtestp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
5242         (avx_ptest256): Likewise.
5243         (avx_roundp<avxmodesuffixf2c>256): Likewise.
5244         (*avx_rounds<ssemodesuffixf2c>): Likewise.
5245         (*avx_aesenc): Likewise.
5246         (*avx_aesenclast): Likewise.
5247         (*avx_aesdec): Likewise.
5248         (*avx_aesdeclast): Likewise.
5249         (avx_vzeroupper): Likewise.
5250         (avx_vzeroupper_rex64): Likewise.
5251         (avx_vpermil<mode>): Likewise.
5252         (avx_vpermilvar<mode>3): Likewise.
5253         (avx_vpermil2<mode>3): Likewise.
5254         (avx_vperm2f128<mode>3): Likewise.
5255         (avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>): Likewise.
5256         (avx_vbroadcastss256): Likewise.
5257         (avx_vbroadcastf128_p<avxmodesuffixf2c>256): Likewise.
5258         (avx_vinsertf128<mode>): Likewise.
5259         (vec_set_lo_<mode>): Likewise.
5260         (vec_set_hi_<mode>): Likewise.
5261         (vec_set_lo_<mode>): Likewise.
5262         (vec_set_hi_<mode>): Likewise.
5263         (vec_set_lo_v16hi): Likewise.
5264         (vec_set_hi_v16hi): Likewise.
5265         (vec_set_lo_v32qi): Likewise.
5266         (vec_set_hi_v32qi): Likewise.
5267         (avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
5268         (avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>): Likewise.
5269         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
5270         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Likewise.
5271         (vec_init<mode>): Likewise.
5272         (*vec_concat<mode>_avx): Likewise.
5273         (blendbits): Support V8SF and V4DF.
5274         (sse2_movq128): Support AVX.
5275         (<sse>_movnt<mode>): Likewise.
5276         (sse2_movntv2di): Likewise.
5277         (sse_rcpv4sf2): Likewise.
5278         (sse_sqrtv4sf2): Likewise.
5279         (sse_rsqrtv4sf2): Likewise.
5280         (<sse>_comi): Likewise.
5281         (<sse>_ucomi): Likewise.
5282         (sse_cvtss2si): Likewise.
5283         (sse_cvtss2si_2): Likewise.
5284         (sse_cvtss2siq): Likewise.
5285         (sse_cvtss2siq_2): Likewise.
5286         (sse_cvttss2si): Likewise.
5287         (sse_cvttss2siq): Likewise.
5288         (sse2_cvtsd2si): Likewise.
5289         (sse2_cvtsd2si_2): Likewise.
5290         (sse2_cvtsd2siq): Likewise.
5291         (sse2_cvtsd2siq_2): Likewise.
5292         (sse2_cvttsd2si): Likewise.
5293         (sse2_cvttsd2siq): Likewise.
5294         (sse2_cvtdq2pd): Likewise.
5295         (*sse2_cvtpd2dq): Likewise.
5296         (*sse2_cvttpd2dq): Likewise.
5297         (*sse2_cvtpd2ps): Likewise.
5298         (sse2_cvtps2pd): Likewise.
5299         (sse3_movshdup): Likewise.
5300         (sse3_movsldup): Likewise.
5301         (sse_storehps): Likewise.
5302         (*sse4_1_extractps): Likewise.
5303         (sse2_storelpd): Likewise.
5304         (vec_dupv2df_sse3): Likewise.
5305         (*vec_concatv2df_sse3): Likewise.
5306         (*sse4_1_pextrb): Likewise.
5307         (*sse4_1_pextrb_memory): Likewise.
5308         (*sse2_pextrw): Likewise.
5309         (*sse4_1_pextrw_memory): Likewise.
5310         (*sse4_1_pextrd): Likewise.
5311         (*sse4_1_pextrq): Likewise.
5312         (sse2_pshufd_1): Likewise.
5313         (sse2_pshuflw_1): Likewise.
5314         (sse2_pshufhw_1): Likewise.
5315         (*sse2_storeq_rex64): Likewise.
5316         (*vec_dupv4si): Likewise.
5317         (<sse>_movmskp<ssemodesuffixf2c>): Likewise.
5318         (sse2_pmovmskb): Likewise.
5319         (*sse2_maskmovdqu): Likewise.
5320         (*sse2_maskmovdqu_rex64): Likewise.
5321         (sse_ldmxcsr): Likewise.
5322         (sse_stmxcsr): Likewise.
5323         (abs<mode>2): Likewise.
5324         (sse4_1_movntdqa): Likewise.
5325         (sse4_1_phminposuw): Likewise.
5326         (sse4_1_extendv8qiv8hi2): Likewise.
5327         (*sse4_1_extendv8qiv8hi2): Likewise.
5328         (sse4_1_extendv4qiv4si2): Likewise.
5329         (*sse4_1_extendv4qiv4si2): Likewise.
5330         (sse4_1_extendv2qiv2di2): Likewise.
5331         (*sse4_1_extendv2qiv2di2): Likewise.
5332         (sse4_1_extendv4hiv4si2): Likewise.
5333         (*sse4_1_extendv4hiv4si2): Likewise.
5334         (sse4_1_extendv2hiv2di2): Likewise.
5335         (*sse4_1_extendv2hiv2di2): Likewise.
5336         (sse4_1_extendv2siv2di2): Likewise.
5337         (*sse4_1_extendv2siv2di2): Likewise.
5338         (sse4_1_zero_extendv8qiv8hi2): Likewise.
5339         (*sse4_1_zero_extendv8qiv8hi2): Likewise.
5340         (sse4_1_zero_extendv4qiv4si2): Likewise.
5341         (*sse4_1_zero_extendv4qiv4si2): Likewise.
5342         (sse4_1_zero_extendv2qiv2di2): Likewise.
5343         (*sse4_1_zero_extendv2qiv2di2): Likewise.
5344         (sse4_1_zero_extendv4hiv4si2): Likewise.
5345         (*sse4_1_zero_extendv4hiv4si2): Likewise.
5346         (sse4_1_zero_extendv2hiv2di2): Likewise.
5347         (*sse4_1_zero_extendv2hiv2di2): Likewise.
5348         (sse4_1_zero_extendv2siv2di2): Likewise.
5349         (*sse4_1_zero_extendv2siv2di2): Likewise.
5350         (sse4_1_ptest): Likewise.
5351         (sse4_1_roundp<ssemodesuffixf2c>): Likewise.
5352         (sse4_2_pcmpestri): Likewise.
5353         (sse4_2_pcmpestrm): Likewise.
5354         (sse4_2_pcmpistri): Likewise.
5355         (sse4_2_pcmpistrm): Likewise.
5356         (aesimc): Likewise.
5357         (aeskeygenassist): Likewise.
5358
5359 2008-08-28  Uros Bizjak  <ubizjak@gmail.com>
5360
5361         * config/i386/predicates.md (vzeroall_operation): New.
5362
5363         * config/i386/sse.md (avx_vzeroall): New.
5364         (*avx_vzeroall): Likewise.
5365
5366 2008-08-28  Paul Brook  <paul@codesourcery.com>
5367             Mark Shinwell  <shinwell@codesourcery.com>
5368             Richard Earnshaw  <richard.earnshaw@arm.com>
5369
5370         * config/arm/arm.c (TARGET_MAX_ANCHOR_OFFSET): New.
5371         (TARGET_MIN_ANCHOR_OFFSET): New.
5372         (arm_override_options): Set correct anchor ranges for Thumb-1
5373         and Thumb-2 if required.
5374         (legitimize_pic_address): Handle case involving a TLS symbol
5375         reference with an addend.
5376         (arm_optimization_options): Enable section anchors at -O1 and
5377         above.
5378         * config/arm/arm.h (OPTIMIZATION_OPTIONS): New.
5379         * config/arm/arm-protos.h (arm_optimization_options): New.
5380
5381 2008-08-28  Nick Clifton  <nickc@redhat.com>
5382
5383         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Define.
5384         * config/stormy16/stormy16.md (zero_extendqihi2): Fix length
5385         attribute.
5386
5387         * config/v850/v850.h (IRA_COVER_CLASSES): Define.
5388         * config/v850/v850.md (return): Remove frame size restriction.
5389
5390         * config/mcore/mcore.h (IRA_COVER_CLASSES): Define.
5391
5392         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Define.
5393
5394         * config/fr30/fr30.h (IRA_COVER_CLASSES): Define.
5395
5396         * config/m32r/m32r.h (IRA_COVER_CLASSES): Define.
5397
5398 2008-08-28  Paul Brook  <paul@codesourcery.com>
5399
5400         * config/arm/vfp11.md: Update license notice.
5401         * config/arm/cortex-r4.md: Ditto.
5402
5403 2008-08-28  Richard Guenther  <rguenther@suse.de>
5404
5405         PR tree-optimization/37207
5406         * tree-ssa-ifcombine.c (recognize_single_bit_test): Fix
5407         tuplification bug.
5408
5409 2008-08-28  Dodji Seketeli  <dodji@redhat.com>
5410
5411         PR c++/36741
5412         * tree.c (int_fits_type_p): Don't forget unsigned integers
5413           of type sizetype which higher end word equals -1.
5414
5415 2008-08-28  Ira Rosen  <irar@il.ibm.com>
5416
5417         * target.h (struct vectorize): Add new target builtin.
5418         * tree-vectorizer.c (destroy_loop_vec_info): Call
5419         vect_free_slp_instance instead of vect_free_slp_node.
5420         * tree-vectorizer.h (enum slp_load_perm_type): New.
5421         (struct _slp_instance): Add new fields.
5422         (SLP_INSTANCE_LOAD_PERMUTATION): New.
5423         (SLP_INSTANCE_LOADS): New.
5424         (vect_free_slp_tree): Remove.
5425         (vect_free_slp_instance): Declare.
5426         (SLP_TREE_LOADS_PERM_TYPE, TARG_VEC_PERMUTE_COST): New.
5427         (vectorizable_load): Add argument.
5428         (vect_transform_slp_perm_load): New.
5429         * tree-vect-analyze.c (vect_analyze_operations): Add an argument to
5430         vectorizable_load.
5431         (vect_get_place_in_interleaving_chain): New function.
5432         (vect_free_slp_tree): Make static.
5433         (vect_free_slp_instance): New function.
5434         (vect_build_slp_tree): Add new arguments. Allow load permutations and
5435         collect the load location in the interleaving chain.
5436         (vect_supported_slp_permutation_p): New function.
5437         (vect_supported_load_permutation_p): Likewise.
5438         (vect_analyze_slp_instance): In case of loads permutation, call
5439         vect_supported_load_permutation_p to check that the permutation is
5440         supported.
5441         * target-def.h (TARGET_VECTORIZE_BUILTIN_VEC_PERM): New.
5442         * tree-vect-transform.c (vect_transform_stmt): Add new argument.
5443         (vect_create_mask_and_perm): New function.
5444         (vect_get_mask_element, vect_transform_slp_perm_load): Likewise.
5445         (vectorizable_load): Add an argument. Don't keep the created vectors
5446         statements in the node if permutation is required. Call
5447         vect_transform_slp_perm_load to generate the permutation.
5448         (vect_transform_stmt): Add new argument. Call vectorizable_load with
5449         additional argument.
5450         (vect_schedule_slp_instance): In case of loads permutation, allocate
5451         vectorized statements structure for all the related SLP nodes. Call
5452         vect_transform_stmt with addditional argument.
5453         (vect_transform_loop): Call vect_transform_stmt with correct arguments.
5454         * config/spu/spu.c (spu_builtin_vec_perm): New.
5455         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine.
5456         * config/spu/spu.h (TARG_VEC_PERMUTE_COS): Define.
5457         * config/rs6000/rs6000.c (rs6000_builtin_vec_perm): New.
5458         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine.
5459
5460 2008-08-28  Chris Fairles  <chris.fairles@gmail.com>
5461
5462         * gthr-posix.h (__gthread_create,  __gthread_join, __gthread_detach,
5463         __gthread_mutex_timed_lock, __gthread_recursive_mutex_timed_lock,
5464         __gthread_cond_signal, __gthread_cond_timedwait,
5465         __gthread_cond_timedwait_recursive): New functions.
5466         * gthr-posix.c (pthread_mutex_timedlock, pthread_cond_timedwait):
5467         Likewise.
5468         * gthr.h: Comment on defining __GTHREADS_CXX0X macro in conforming
5469         thread interfaces.
5470
5471 2008-08-28  Richard Guenther  <rguenther@suse.de>
5472
5473         PR middle-end/37005
5474         * fold-const.c (maybe_canonicalize_comparison_1): Require
5475         undefined overflow only for canonicalizing A +- CST cmp CST.
5476         Make sure to not generate new constants that are not inside
5477         their TYPE_MIN/MAX_VALUE range.
5478         (maybe_canonicalize_comparison): Remove undefined overflow
5479         checking from here.
5480         (fold_binary): Remove now duplicate folding.
5481
5482 2008-08-27  Paolo Carlini  <paolo.carlini@oracle.com>
5483
5484         * c-typeck.c (convert_for_assignment): Adjust WARN_FOR_ASSIGNMENT
5485         use not updated in the last change.
5486
5487 2008-08-27  Kaz Kojima  <kkojima@gcc.gnu.org>
5488
5489         * config/sh/sh.h (REG_CLASS_CONTENTS): Drop fr32 from FPUL_REGS.
5490         (IRA_COVER_CLASSES): Add FPUL_REGS.
5491
5492 2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5493
5494         PR 37217
5495         * c-common.c (conversion_warning): Check for null operands.
5496
5497 2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5498
5499         PR c/31673
5500         * c-decl.c (check_for_loop_decls): Improve error message. Give
5501         hint.
5502
5503 2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5504
5505         PR c/37186
5506         * c-typeck.c (WARN_FOR_ASSIGNMENT): Add OPT parameter.
5507         (convert_for_assignment): Pass corrent OPT_W* parameter to
5508         WARN_FOR_ASSIGNMENT.
5509
5510 2008-08-27  Paolo Carlini  <paolo.carlini@oracle.com>
5511
5512         PR c++/35321
5513         * c-common.c (fold_offsetof_1): Handle TARGET_EXPR like CALL_EXPR.
5514
5515 2008-08-27  Paul Brook  <paul@codesourcery.com>
5516
5517         * config.gcc: Loosen checks for arm uclinux eabi targets.
5518
5519 2008-08-27  Paul Brook  <paul@codesourcery.com>
5520
5521         * config/arm/t-arm-coff (LIB1ASMFUNCS): Add missing undescrore on
5522         _clzsi2.
5523         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
5524
5525 2008-08-26  Douglas Gregor  <doug.gregor@gmail.com>
5526
5527         * c-common.c (do_switch_warnings): Look through the CONST_DECLs in
5528         the enumerators of an ENUMERAL_TYPE.
5529         * dbxout.c (dbxout_type): Ditto.
5530
5531 2008-08-26  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5532
5533         PR rtl-opt/37219
5534         * fwprop.c (fwprop): Check that the loop_father is the outer loop.
5535         (fwprop_addr): Check that the loop_father is not the outer loop.
5536
5537 2008-08-26  Paul Brook  <paul@codesourcery.com>
5538
5539         * config/arm/vfp.md: Document fmul{s,d} and fmac{s,d} types.
5540         Remove documentation entry for fmul type.
5541         Use fmuls to annotate single-precision multiplication patterns,
5542         fmuld to annotate double-precision multiplication patterns,
5543         fmacs to annotate single-precision multiply-accumulate patterns
5544         and fmacd to annotate double-precision multiply-accumulate patterns.
5545         * config/arm/vfp11.md: Update reservations accordingly.
5546         * config/arm/arm.md: Note that certain values of the "type"
5547         attribute are documented in vfp.md.
5548         * config/arm/arm1020e.md: Remove out of date duplicate comment.
5549         (v10_cvt): Use new fmul types.
5550
5551 2008-08-26  Paul Brook  <paul@codesourcery.com>
5552
5553         * config/arm/vfp.md: Move pipeline description for VFP11 to...
5554         * config/arm/vfp11.md: ...here.  New.
5555         * config/arm/arm.md: Include vfp11.md.
5556
5557 2008-08-26  Hans-Peter Nilsson  <hp@axis.com>
5558
5559         * opts.c (decode_options) [!IRA_COVER_CLASSES]: Add missing
5560         parameter to inform call.
5561
5562 2008-08-26  Jeff Law  <law@redhat.com>
5563
5564         * mn10300.md (movqi, movhi): Split i->d*a case into two cases to
5565         avoid the possibility of getting DATA_OR_ADDRESS_REGS as the
5566         preferred class when copying a constant into a partial word register.
5567
5568 2008-08-26  Ben Elliston  <bje@au.ibm.com>
5569
5570         * rtlanal.c: Fix uses of "it's" with "its" where appropriate.
5571         * cp/typeck.c: Likewise.
5572         * cp/tree.c: Likewise.
5573         * gimple-low.c: Likewise.
5574         * jump.c: Likewise.
5575
5576 2008-08-26  Vladimir Makarov  <vmakarov@redhat.com>
5577
5578         * ira-build.c, ira-color.c, ira-costs.c, ira.h, ira-lives.c,
5579         ira.c, ira-conflicts.c, ira-emit.c, ira-int.h: New files.
5580
5581         * doc/passes.texi: Describe IRA.
5582
5583         * doc/tm.texi (IRA_COVER_CLASSES,
5584         IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Describe the new macros.
5585
5586         * doc/invoke.texi (ira-max-loops-num): Describe the new parameter.
5587         (-fira, -fira-algorithm, -fira-coalesce, -fno-ira-move-spills,
5588         -fira-propagate-cost, -fno-ira-share-save-slots,
5589         -fno-ira-share-spill-slots, -fira-verbose): Describe new options.
5590
5591         * flags.h (ira_algorithm): New enumeration.
5592         (flag_ira_algorithm, flag_ira_verbose): New external variable
5593         declarations.
5594
5595         * postreload.c (gate_handle_postreload): Don't do post reload
5596         optimizations unless the reload is completed.
5597
5598         * reload.c (push_reload, find_dummy_reload): Use DF_LR_OUT for
5599         IRA.
5600
5601         * tree-pass.h (pass_ira): New external variable declaration.
5602
5603         * reload.h: Add 2008 to the Copyright.
5604
5605         * cfgloopanal.c: Include params.h.
5606         (estimate_reg_pressure_cost): Decrease cost for IRA optimization
5607         mode.
5608
5609         * params.h (IRA_MAX_LOOPS_NUM): New macro.
5610
5611         * toplev.c (ira.h): New include.
5612         (flag_ira_algorithm, flag_ira_verbose): New external variables.
5613         (backend_init_target): Call ira_init.
5614         (backend_init): Call ira_init_once.
5615         (finalize): Call finish_ira_once.
5616
5617         * toplev.h (flag_ira, flag_ira_coalesce, flag_ira_move_spills,
5618         flag_ira_share_save_slots, flag_ira_share_spill_slots): New
5619         external variables.
5620
5621         * regs.h (contains_reg_of_mode, move_cost, may_move_in_cost,
5622         may_move_out_cost): New external variable declarations.
5623         (move_table): New typedef.
5624
5625         * caller-save.c: Include headers output.h and ira.h.
5626         (no_caller_save_reg_set): New global variable.
5627         (save_slots_num, save_slots): New variables.
5628         (reg_save_code, reg_restore_code, add_stored_regs): Add
5629         prototypes.
5630         (init_caller_save): Set up no_caller_save_reg_set.
5631         (init_save_areas): Reset save_slots_num.
5632         (saved_hard_reg): New structure.
5633         (hard_reg_map, saved_regs_num, all_saved_regs): New variables.
5634         (initiate_saved_hard_regs, new_saved_hard_reg,
5635         finish_saved_hard_regs, saved_hard_reg_compare_func): New
5636         functions.
5637         (setup_save_areas): Add code for sharing stack slots.
5638         (all_blocks): New variable.
5639         (save_call_clobbered_regs): Process pseudo-register too.
5640         (mark_set_regs): Process pseudo-register too.
5641         (insert_one_insn): Put the insn after bb note in a empty basic
5642         block.  Add insn check.
5643
5644         * global.c (eliminable_regset): Make it external.
5645         (mark_elimination): Use DF_LR_IN for IRA.
5646         (pseudo_for_reload_consideration_p): New.
5647         (build_insn_chain): Make it external.  Don't ignore spilled
5648         pseudos for IRA.  Use pseudo_for_reload_consideration_p.
5649         (gate_handle_global_alloc): New function.
5650         (pass_global_alloc): Add the gate function.
5651
5652         * opts.c (decode_options): Set up flag_ira.  Print the warning for
5653         -fira.
5654         (common_handle_option): Process -fira-algorithm and -fira-verbose.
5655
5656         * timevar.def (TV_IRA, TV_RELOAD): New passes.
5657
5658         * regmove.c (regmove_optimize): Don't do replacement of output for
5659         IRA.
5660
5661         * hard-reg-set.h (no_caller_save_reg_set, reg_class_subclasses):
5662         New external variable declarations.
5663
5664         * local-alloc.c (update_equiv_regs): Make it external.  Return
5665         true if jump label rebuilding should be done.  Rescan new_insn for
5666         notes.
5667         (gate_handle_local_alloc): New function.
5668         (pass_local_alloc): Add the gate function.
5669
5670         * alias.c (value_addr_p, stack_addr_p): New functions.
5671         (nonoverlapping_memrefs_p): Use them for IRA.
5672
5673         * common.opt (fira, fira-algorithm, fira-coalesce,
5674         fira-move-spills, fira-share-save-slots, fira-share-spill-slots,
5675         fira-verbose): New options.
5676
5677         * regclass.c (reg_class_subclasses, contains_reg_of_mode,
5678         move_cost, may_move_in_cost, may_move_out_cost): Make the
5679         variables external.
5680         (move_table): Remove typedef.
5681         (init_move_cost): Make it external.
5682         (allocate_reg_info, resize_reg_info, setup_reg_classes): New
5683         functions.
5684
5685         * rtl.h (init_move_cost, allocate_reg_info, resize_reg_info,
5686         setup_reg_classes): New function prototypes.
5687         (eliminable_regset): New external variable declaration.
5688         (build_insn_chain, update_equiv_regs): New function prototypes.
5689
5690         * Makefile.in (IRA_INT_H): New definition.
5691         (OBJS-common): Add ira.o, ira-build.o, ira-costs.o,
5692         ira-conflicts.o, ira-color.o, ira-emit.o, and ira-lives.o.
5693         (reload1.o, toplev.o): Add dependence on ira.h.
5694         (cfgloopanal.o): Add PARAMS_H.
5695         (caller-save.o): Add dependence on output.h and ira.h.
5696         (ira.o, ira-build.o, ira-costs.o, ira-conflicts.o, ira-color.o,
5697         ira-emit.o, ira-lives.o): New entries.
5698
5699         * passes.c (pass_ira): New pass.
5700
5701         * params.def (PARAM_IRA_MAX_LOOPS_NUM): New parameter.
5702
5703         * reload1.c (ira.h): Include the header.
5704         (changed_allocation_pseudos): New bitmap.
5705         (init_reload): Initiate the bitmap.
5706         (compute_use_by_pseudos): Permits spilled registers in FROM.
5707         (temp_pseudo_reg_arr): New variable.
5708         (reload): Allocate and free temp_pseudo_reg_arr.  Sort pseudos for
5709         IRA.  Call alter_reg with the additional parameter.  Don't clear
5710         spilled_pseudos for IRA.  Restore original insn chain for IRA.
5711         Clear changed_allocation_pseudos at the end of reload.
5712         (calculate_needs_all_insns): Call IRA's mark_memory_move_deletion.
5713         (hard_regno_to_pseudo_regno): New variable.
5714         (count_pseudo): Check spilled pseudos.  Set up
5715         hard_regno_to_pseudo_regno.
5716         (count_spilled_pseudo): Check spilled pseudos. Update
5717         hard_regno_to_pseudo_regno.
5718         (find_reg): Use better_spill_reload_regno_p.  Check
5719         hard_regno_to_pseudo_regno.
5720         (alter_reg): Set up spilled_pseudos.  Add a new parameter.  Add
5721         code for IRA.
5722         (eliminate_regs_1): Use additional parameter for alter_reg.
5723         (finish_spills): Set up pseudo_previous_regs only for spilled
5724         pseudos.  Call reassign_pseudos once for all spilled pseudos, pass
5725         more arguments.  Don't clear live_throughout and dead_or_set for
5726         spilled pseudos.  Use additional parameter for alter_reg.  Call
5727         mark_allocation_change.  Set up changed_allocation_pseudos.
5728         Remove sanity check.
5729         (emit_input_reload_insns, delete_output_reload): Use additional
5730         parameter for alter_reg.  Call mark_allocation_change.
5731         (substitute, gen_reload_chain_without_interm_reg_p): New
5732         functions.
5733         (reloads_conflict): Use gen_reload_chain_without_interm_reg_p.
5734
5735         * testsuite/gcc.dg/20080410-1.c: New file.
5736
5737         * config/s390/s390.h (IRA_COVER_CLASSES,
5738         IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Define.
5739
5740         * config/sparc/sparc.h (IRA_COVER_CLASSES): New macro.
5741
5742         * config/i386/i386.h (IRA_COVER_CLASSES): Ditto.
5743
5744         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
5745
5746         * config/rs6000/rs6000.h (IRA_COVER_CLASSES): Ditto.
5747
5748         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
5749
5750         * config/alpha/alpha.h (IRA_COVER_CLASSES): Ditto.
5751
5752         2008-08-24  Jeff Law  <law@redhat.com>
5753         * ira.c (setup_reg_class_intersect_union): Prefer smallest class
5754         when ignoring unavailable registers.
5755
5756         2008-08-24  Jeff Law  <law@redhat.com>
5757         * ira-color.c (coalesced_pseudo_reg_slot_compare): Check
5758         FRAME_GROWS_DOWNWARD and STACK_GROWS_DOWNWARD.
5759         * ira.c (setup_eliminable_regset): Check stack_realign_needed.
5760         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): New macro.
5761
5762         2008-06-03 Steve Chamberlain <steve.chamberlain@gmail.com>
5763         * ira-build.c (allocno_range_compare_func): Stabilize sort.
5764
5765         2008-05-29 Andy Hutchinson <hutchinsonandy@aim.com>
5766         * config/avr/avr.h (IRA_COVER_CLASSES): New macro.
5767         * reload1.c (find_reg): Process registers in register allocation order.
5768
5769         2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
5770         * toplev.c (backend_init_target): Move ira_init call from
5771         here...
5772         (lang_dependent_init_target): ...to here.
5773
5774         2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
5775         * ira.c (setup_class_subset_and_memory_move_costs): Don't
5776         calculate memory move costs for NO_REGS.
5777
5778         2008-05-05 Kaz Kojima <kkojima@gcc.gnu.org>
5779         * ira-color.c (ira_fast_allocation): Use no_stack_reg_p only if
5780         STACK_REGS is defined.
5781
5782         2008-04-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
5783         * config/spu/spu.h (IRA_COVER_CLASSES): New macro.
5784
5785         2008-04-04 Bernd Schmidt <bernd.schmidt@analog.com>
5786         * config/bfin/bfin.h (IRA_COVER_CLASSES): New macro.
5787
5788         2008-04-04 Kaz Kojima <kkojima@gcc.gnu.org>
5789         * config/sh/sh.h (IRA_COVER_CLASSES): Define.
5790         * config/sh/sh.md (movsicc_true+3): Check if emit returns a
5791         barrier.
5792
5793 2008-08-26  Victor Kaplansky  <victork@il.ibm.com>
5794             Dorit Nuzman  <dorit@il.ibm.com>
5795
5796         * gcc/config/spu/spu.md (vec_extract_evenv4si,
5797         vec_extract_evenv4sf, vec_extract_evenv8hi,
5798         vec_extract_evenv16qi, vec_extract_oddv4si,
5799         vec_extract_oddv4sf, vec_extract_oddv8hi, vec_extract_oddv16qi,
5800         vec_interleave_highv4sf, vec_interleave_lowv4sf,
5801         vec_interleave_highv4si, vec_interleave_lowv4si,
5802         vec_interleave_highv8hi, vec_interleave_lowv8hi,
5803         vec_interleave_highv16qi, vec_interleave_lowv16qi,
5804         vec_pack_trunc_v8hi, vec_pack_trunc_v4si): Implement.S
5805
5806 2008-08-25  Janis Johnson  <janis187@us.ibm.com>
5807
5808         PR target/36756
5809         * config/rs6000/rs6000.c (optimization_options): Don't default to
5810         section anchors without toplevel reorder.
5811
5812 2008-08-25  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5813
5814         * config/spu/spu_mfcio.h (mfc_begin_critical_section): New function.
5815         (mfc_end_critical_section): Likewise.
5816
5817 2008-08-25  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5818
5819         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Propagate
5820         all type qualifiers from element type to vector type.
5821
5822 2008-08-25  David Daney  <ddaney@avtrex.com>
5823
5824         * config/mips/mips.md (immediate_insn): Move up in file, fix
5825         comment typo, reformat.
5826         (fetchop_bit, atomic_hiqi_op memory_barrier,
5827         sync_compare_and_swap<mode>, compare_and_swap_12, sync_add<mode>,
5828         sync_<optab><mode>, sync_<optab>_12, sync_old_<optab><mode>,
5829         sync_old_<optab>_12, sync_new_<optab><mode>, sync_new_<optab>_12,
5830         sync_nand<mode>, sync_nand_12, sync_old_nand<mode>,
5831         sync_old_nand_12, sync_new_nand<mode>, sync_new_nand_12,
5832         sync_sub<mode>, sync_old_add<mode>, sync_old_sub<mode>,
5833         sync_new_add<mode>, sync_new_sub<mode>, sync_<optab><mode>,
5834         sync_old_<optab><mode>, sync_new_<optab><mode>, sync_nand<mode>,
5835         sync_old_nand<mode>, sync_new_nand<mode>,
5836         sync_lock_test_and_set<mode>, sync_lock_test_and_set<mode>,
5837         test_and_set_12): Moved to sync.md.
5838         (sync.md): Include.
5839         * config/mips/sync.md: New file.
5840
5841 2008-08-25  Richard Henderson  <rth@redhat.com>
5842
5843         * dwarf2out.c (def_cfa_1): Don't scale by DWARF_CIE_DATA_ALIGNMENT.
5844         (regsave): Likewise.
5845         (lookup_cfa_1): Don't rescale by DWARF_CIE_DATA_ALIGNMENT.
5846         (output_cfi_directive): Likewise.
5847         (div_data_align): New.
5848         (output_cfi): Use it.
5849
5850 2008-08-24  Adam Nemet  <anemet@caviumnetworks.com>
5851
5852         * config.gcc (mips64*-*-linux*): Handle mips64octeon*-*-linux*.
5853         * config/mips/mips.h (enum processor_type): Add PROCESSOR_OCTEON.
5854         (TARGET_OCTEON): New macro.
5855         (TARGET_CPU_CPP_BUILTINS): Define __OCTEON__ for Octeon.
5856         (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC): Handle -march=octeon.
5857         (ISA_HAS_POP): New macro.
5858         * config/mips/driver-native.c (host_detect_local_cpu): Handle
5859         Octeon.
5860         * config/mips/mips.c (mips_cpu_info_table, mips_rtx_cost_data):
5861         Handle Octeon.
5862         * config/mips/mips.md (cpu): Add octeon.
5863         (type): Add pop attribute value.
5864         (popcount<mode>2): New pattern.
5865         * doc/invoke.texi (-march=@var{arch}): Add octeon.
5866
5867 2008-08-24  Jan Hubicka  <jh@suse.cz>
5868
5869         * doc/invoke.texi (-fipa-cp-clone): New option.
5870         (-fipa-cp): Update docs.
5871         (--param ipcp-unit-growth):New.
5872         * ipa-cp.c: Include fibheap.h, params.h
5873         (ipcp_initialize_node_lattices): When not cloning, all externally
5874         visible functions are bottom.
5875         (ipcp_need_redirect_p): Accept clones.
5876         (ipcp_insert_stage): Use cost driven heuristics.
5877         (max_count, dead_nodes): New static vars.
5878         (ipcp_need_original_clone_p, ipcp_estimate_cloning_cost,
5879         ipcp_const_param_count): New functions.
5880         * common.opt (ipa-cp-clone): New command line option.
5881         * params.def (ipcp-unit-growth): New.
5882
5883 2008-08-24  Jan Hubicka  <jh@suse.cz>
5884
5885         * tree-inline.c (tree_function_versioning): Look harder
5886         for referenced vars.
5887
5888 2008-08-24  Razya Ladelsky  <razya@il.ibm.com>
5889
5890         PR tree-optimization/37185
5891         * matrix-reorg.c (transform_access_sites): Update changed stmt.
5892
5893 2008-08-23  Jan Hubicka  <jh@suse.cz>
5894
5895         * ipa-cp.c (ipcp_analyze_node): New function.
5896         (ipcp_update_cloned_node): Use it.
5897         (ipcp_init_stage): Likewise.
5898         * ipa-inline.c (function_insertion_hook_holder): New static var.
5899         (analyze_function): Break out from ....
5900         (inline_generate_summary): Here; register insertion hook.
5901         (cgraph_decide_inlining): Remove hook.
5902         (add_new_function): New function.
5903
5904 2008-08-23  Jan Hubicka  <jh@suse.cz>
5905
5906         * opts.c (decode_options): Revert accidental change enabling ipa-cp.
5907
5908 2008-08-23  Jan Hubicka  <jh@suse.cz>
5909
5910         * ipa-cp.c (constant_val_insert): Remove.
5911         (ipcp_propagate_one_const): Remove.
5912         (ipcp_create_replace_map): Always insert replacements to the map.
5913         (ipcp_insert_stage): Do not try to insert statements by hand.
5914         * tree-inline.c (insert_init_stmt): Break out from ...
5915         (setup_one_parameter): ... here; allow NULL BB pointer.
5916         (tree_function_versioning): Use setup_one_parameter to process
5917         replacement map.
5918
5919 2008-08-23  Jan Hubicka  <jh@suse.cz>
5920
5921         * tree.c (decl_address_ip_invariant_p): New function.
5922         * tree.h (decl_address_ip_invariant_p): Declare.
5923         * gimple.c (strip_invariant_refs): Break out from ...
5924         (is_gimple_invariant_address): ... here
5925         (is_gimple_ip_invariant_address): New function.
5926         (is_gimple_ip_invariant): New function.
5927         * gimple.h (is_gimple_ip_invariant_address, is_gimple_ip_invariant):
5928         Declare.
5929
5930         * ipa-cp.c (ipcp_lat_is_const): Remove handling of IPA_CONST_VALUE_REF.
5931         (ipcp_lat_is_insertable): All constants are insertable.
5932         (ipcp_lattice_from_jfunc, ipcp_print_all_lattices): Remove handling of
5933         IPA_CONST_VALUE_REF.
5934         (ipcp_initialize_node_lattices): Propagate all types of operands.
5935         (build_const_val): Do not handle IPA_CONST_VALUE_REF.
5936         (ipcp_create_replace_map): Reformat.
5937         (ipcp_need_redirect_p): Simplify.
5938         (ipcp_insert_stage): Check that argument is used before clonning.
5939         * ipa-prop.c (ipa_print_node_jump_functions): Do not handle
5940         IPA_CONST_REF.
5941         (compute_scalar_jump_functions): Simplify using is_gimple_ip_invariat.
5942         (determine_cst_member_ptr): Keep wrapping ADDR_EXPR of members.
5943         (update_call_notes_after_inlining): Expect ADDR_EXPR in operand.
5944         * ipa-prop.h (jump_func_type): Remove IPA_CONST_REF.
5945         (jump_func_type): Remove IPA_CONST_VALUE_REF.
5946         * tree-inline.c (tree_function_versioning): Add variables referenced
5947         by replacing trees.
5948
5949 2008-08-23  Jan Hubicka  <jh@suse.cz>
5950
5951         PR target/37094
5952         * i386.c (standard_80387_constant_p): Use optimize_size.
5953
5954 2008-08-23  Ira Rosen  <irar@il.ibm.com>
5955
5956         PR tree-optimization/37161
5957         * tree-vectorizer.h (vect_get_smallest_scalar_type): Declare.
5958         * tree-vect-analyze.c (vect_get_smallest_scalar_type): New function.
5959         (vect_determine_vectorization_factor): Move the scalar type
5960         retrieval to vect_get_smallest_scalar_type.
5961         (vect_build_slp_tree): Call vect_get_smallest_scalar_type to get
5962         scalar type. Remove redundant computation.
5963         * tree-vect-transform.c (vect_get_constant_vectors): Add argument.
5964         (vect_get_slp_defs): Take the type of RHS into account if
5965         necessary by calling vect_get_smallest_scalar_type. Call
5966         vect_get_constant_vectors with additional argument.
5967
5968 2008-08-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5969
5970         PR 35648
5971         * doc/invoke.texi (Wwrite-strings): Clarify description.
5972
5973 2008-08-23  Ira Rosen  <irar@il.ibm.com>
5974
5975         PR tree-optimization/37174
5976         * tree-vect-analyze.c (vect_get_and_check_slp_defs): Check that the
5977         def stmt is a part of the loop before accessing its stmt_vec_info.
5978
5979 2008-08-22  Anatoly Sokolov  <aesok@post.ru>
5980
5981         PR target/11259
5982         * config/avr/avr.md (UNSPEC_SWAP): New constants.
5983         (*swap): New insn pattern.
5984         (*ashlqi3): Rename from ashlqi3 insn pattern.
5985         (ashlqi3): New expanders.
5986         (*lshrqi3): Rename from lshrqi3 insn pattern.
5987         (lshrqi3): New expanders.
5988         (ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, lshrqi3_const4,
5989         lshrqi3_const5, lshrqi3_const6): New splitters.
5990         (andi, ashlqi3_l_const4, ashlqi3_l_const5, ashlqi3_l_const6,
5991         lshrqi3_l_const4, lshrqi3_l_const5, lshrqi3_l_const6): Define
5992         peephole2 patterns.
5993
5994 2008-08-22  Richard Guenther  <rguenther@suse.de>
5995
5996         PR tree-optimization/37078
5997         * tree-vrp.c (extract_range_from_unary_expr): Avoid generating
5998         [+INF, +INF] ranges.
5999
6000 2008-08-22  Richard Guenther  <rguenther@suse.de>
6001
6002         PR tree-optimization/37143
6003         * tree-vect-transform.c (vect_create_cond_for_align_checks): Build
6004         a conversion statement instead of a copy.
6005
6006 2008-08-22  Uros Bizjak  <ubizjak@gmail.com>
6007
6008         PR target/37184
6009         * config/i386/i386.c (ix86_match_ccmode): Handle CCAmode,
6010         CCCmode, CCOmode and CCSmode destination modes.
6011
6012         PR target/37191
6013         * config/i386/mmx.md (*vec_extractv2sf_0): Avoid combining registers
6014         from different units in a single alternative.
6015         (*vec_extractv2sf_1): Ditto.
6016         (*vec_extractv2si_0): Ditto.
6017         (*vec_extractv2si_1): Ditto.
6018         * config/i386/sse.md (sse2_storehpd): Ditto.
6019         (sse2_storelpd): Ditto.
6020         (sse2_loadhpd): Ditto.
6021         (sse2_loadlpd): Ditto.
6022
6023         PR target/37197
6024         * config/i386/i386.md (clzsi2_abm): Fix operand 1 constraints.
6025         (popcountsi2): Ditto.
6026         (clzdi2_abm): Ditto.
6027         (popcountdi2): Ditto.
6028         (clzhi2_abm): Ditto.
6029         (popcounthi2): Ditto.
6030
6031 2008-08-22  Richard Guenther  <rguenther@suse.de>
6032
6033         PR middle-end/36548
6034         PR middle-end/37125
6035         * fold-const.c (extract_muldiv_1): Optimize (X * C1) % C2 only
6036         if the multiplication does not overflow.
6037
6038 2008-08-21  Nathan Sidwell  <nathan@codesourcery.com>
6039
6040         * c-ppoutput.c (init_pp_output): Initialize src_line to 1.
6041
6042 2008-08-21  Richard Henderson  <rth@redhat.com>
6043
6044         * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Remove
6045         spurrious comma from test.
6046         * configure: Rebuild.
6047
6048 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6049
6050         PR 30457
6051         * builtins.c (fold_builtin_next_arg): Add warning about undefined
6052         behaviour.
6053
6054 2008-08-21  Aldy Hernandez  <aldyh@redhat.com>
6055
6056         * c-tree.h (grokfield): New argument.
6057         * c-decl.c (grokfield): Handle new location argument.
6058         * c-parser.c (c_parser_struct_declaration): Pass location to grokfield.
6059
6060 2008-08-21  Richard Guenther  <rguenther@suse.de>
6061
6062         * tree-ssa-ccp.c (ccp_fold): Fold VIEW_CONVERT_EXPRs of constants.
6063
6064 2008-08-21  Jan Hubicka  <jh@suse.cz>
6065
6066         * cgraph.c (first_cgraph_function_insertion_hook): New variable.
6067         (cgraph_add_function_insertion_hook,
6068         cgraph_remove_function_insertion_hook,
6069         cgraph_call_function_insertion_hooks): New functions.
6070         * cgraph.h (cgraph_add_function_insertion_hook,
6071         cgraph_remove_function_insertion_hook,
6072         cgraph_call_function_insertion_hooks): Declare.
6073         * ipa-reference.c (function_insertion_hook_holder): New variable.
6074         (check_operand, look_for_address_of): When checking late, do not care
6075         about module bitmaps.
6076         (add_new_function): New function.
6077         (generate_summary): Register hooks; zero module bitmaps.
6078         (propagate): Unregister hooks.
6079         * ipa-pure-const.c (function_insertion_hook_holder): New variable.
6080         (add_new_function): New function.
6081         (generate_summary): Register hook.
6082         (propagate): Remove hook.
6083
6084         * ipa-cp.c (ipcp_need_redirect_p): Fix to not be constant 0.
6085
6086         * tree-pass.h (pass_ipa_cp): Make ipa_opt_pass.
6087         * ipa-cp.c (ipcp_update_cloned_node): New function.
6088         (build_const_val): Handle functions correctly; bring type logic
6089         into sync with tree-inline.c
6090         (ipcp_init_stage):  Take care of computing stuff needed by
6091         indirect inlining; update clones.
6092         (ipcp_generate_summary): Break out of ipcp_driver.
6093         (ipcp_driver): Do only execution and transformation.
6094         (pass_ipa_cp): Make IPA_PASS.
6095         * tree-ssa-ccp.c (fold_stmt_r): Check type before trying to fold
6096         offset to address.
6097         * ipa-inline.c (inline_indirect_intraprocedural_analysis): When doing
6098         ipcp, some info is already available.
6099         * ipa-prop.c (ipa_count_arguments): Grow edge lists as needed.
6100         * tree-inline.c (remap_ssa_name): Unshare expression.
6101
6102 2008-08-21  Richard Guenther  <rguenther@suse.de>
6103
6104         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
6105         a PHI ask VN if it is already available.
6106         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
6107         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
6108
6109 2008-08-21  Richard Guenther  <rguenther@suse.de>
6110
6111         PR middle-end/36817
6112         * tree-chrec.c (chrec_apply): Always call chrec_fold_plus which
6113         makes sure to produce a result of the correct type.
6114
6115 2008-08-21  Jan Hubicka  <jh@suse.cz>
6116         Backport from LTO branch:
6117
6118         2008-05-05  Kenneth Zadeck <zadeck@naturalbridge.com>
6119                     Jan Hubicka  <jh@suse.cz>
6120
6121         * ipa-pure-const.c
6122         (init_state, finish_state, set_function_state, generate_summary):
6123         New functions.
6124         (scan_stmt): Renamed from scan_function.  Changed to keep state in
6125         local static vars rather than cgraph aux field.
6126         (propagate): Renamed from static_execute. Changed to keep state in
6127         local static vars rather than cgraph aux field.
6128         (pass_ipa_pure_const): Changed from SIMPLE_IPA_PASS to IPA_PASS.
6129         * tree-pass.h (pass_ipa_pure_const): Turn into IPA_PASS.
6130
6131         2008-07-15  Kenneth Zadeck <zadeck@naturalbridge.com>
6132
6133         * tree-pass.h (pass_ipa_reference): Make into ipa_opt_pass.
6134         * ipa-reference.c (init_function_info, generate_summary,
6135         propagate): New functions.
6136         (analyze_function):  Call init_function_info.
6137         (static_execute): Stripped into generate_summary and propagate.
6138         (pass_ipa_reference): Made into ipa_opt_pass.
6139
6140 2008-08-21  Richard Guenther  <rguenther@suse.de>
6141
6142         PR tree-optimization/37181
6143         * tree-vrp.c (extract_range_from_binary_expr): Check for NULL
6144         folding result.
6145         (extract_range_from_unary_expr): Likewise.
6146
6147 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6148
6149         * diagnostic.c (pedwarn_at): Rename as pedwarn.
6150         (pedwarn): Delete.
6151         * toplev.h (pedwarn_at): Likewise.
6152         * builtins.c: Update all calls to pedwarn.
6153         * c-lex.c: Likewise.
6154         * toplev.c: Likewise.
6155         * c-tree.h: Likewise.
6156         * c-decl.c: Likewise.
6157         * c-errors.c: Likewise.
6158         * c-typeck.c: Likewise.
6159         * c-common.c: Likewise.
6160         * c-parser.c: Likewise.
6161
6162 2008-08-20  Joseph Myers  <joseph@codesourcery.com>
6163
6164         PR target/31070
6165         * config/sparc/sparc.c (function_arg_slotno): Handle structure
6166         with MODE_VECTOR_INT mode.
6167
6168 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6169
6170         PR middle-end/179
6171         * tree-ssa.c (warn_uninit): Do not warn for variables that can be
6172         initialized outside the current module.
6173         (warn_uninitialized_var): Ignore left-hand side when walking the
6174         trees. Ignore address expressions. Examine VUSE operands in gimple
6175         statements with a variable declaration on the right-hand side.
6176
6177 2008-08-20  Richard Sandiford  <rdsandiford@googlemail.com>
6178
6179         PR bootstrap/37155
6180         * rtlanal.c (subreg_offset_representable_p): Revert last change.
6181
6182 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6183
6184         PR 35701
6185         * c-common.c (conversion_warning): Do not warn if applying bit-and
6186         operator to unsigned constant that fits in the target type.
6187
6188 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6189
6190         PR c++/35602
6191         * c-common.c (conversion_warning): Do not warn for artificial
6192         expressions.
6193
6194 2008-08-20  Richard Guenther  <rguenther@suse.de>
6195
6196         * tree-vrp.c (op_with_constant_singleton_value_range): New function.
6197         (extract_range_from_binary_expr): Fall back to constant propagation.
6198         (extract_range_from_unary_expr): Likewise.
6199
6200 2008-08-20  Richard Guenther  <rguenther@suse.de>
6201
6202         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Do not mess
6203         with TREE_THIS_VOLATILE on shared nodes.
6204         (fold_stmt_r): Likewise.
6205
6206 2008-08-20  Jakub Jelinek  <jakub@redhat.com>
6207
6208         PR c/37171
6209         * c-parser.c (c_parser_attributes): For keywords use canonical
6210         spelling for attr_name.
6211
6212 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6213
6214         * value-prof.c (check_counter): Revert wrong call to error.
6215
6216 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6217
6218         * profile.c: Update calls to inform.
6219         * value-prof.c: Update calls to inform.
6220
6221 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6222
6223         * diagnostic.c (inform): Add an explicit location_t parameter.
6224         * toplev.h (inform): Update declaration.
6225         * builtins.c: Update all calls to inform.
6226         * c-common.c: Likewise.
6227         * c-decl.c: Likewise.
6228         * c-opts.c: Likewise.
6229         * c-pch.c: Likewise.
6230         * c-pragma.c: Likewise.
6231         * c-typeck.c: Likewise.
6232         * coverage.c: Likewise.
6233         * opts.c: Likewise.
6234         * toplev.c: Likewise.
6235         * tree-cfg.c: Likewise.
6236         * tree-ssa.c: Likewise.
6237
6238 2008-08-20  H.J. Lu  <hongjiu.lu@intel.com>
6239
6240         PR target/37169
6241         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): In
6242         V2DI mode, for SSE4.1, use movq instead of vector set if the
6243         second element is zero and inter-unit moves are OK.
6244
6245 2008-08-20  Richard Guenther  <rguenther@suse.de>
6246
6247         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): More
6248         properly handle conversion/copy chains after tuplification.
6249
6250 2008-08-20  Richard Guenther  <rguenther@suse.de>
6251
6252         * passes.c (init_optimization_passes): Move the second
6253         forwprop pass before alias computation.  Remove the second
6254         DCE pass.  Remove the first dominator and phi copy/const
6255         prop passes.
6256
6257 2008-08-20  Nick Clifton  <nickc@redhat.com>
6258
6259         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Always test for assembler
6260         support of this feature.  Do not assume that a sufficiently new
6261         assembler will support the feature regardless of the target type.
6262         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
6263         * configure: Regenerate.
6264
6265 2008-08-20  Richard Guenther  <rguenther@suse.de>
6266
6267         * tree-vrp.c (found_in_subgraph): Remove.
6268         (live): New global static.
6269         (live_on_edge): New function.
6270         (blocks_visited): Remove.
6271         (register_edge_assert_for_2): Use live_on_edge.
6272         (find_conditional_asserts): Remove code dealing with
6273         found_in_subgraph.  Do not walk the CFG.
6274         (find_switch_asserts): Likewise.
6275         (find_assert_locations_1): Renamed from find_assert_locations.
6276         Move finding assert locations for conditional and switch
6277         statements first.  Update live bitmap.  Do not walk the CFG.
6278         (find_assert_locations): New function.
6279         (insert_range_assertions): Remove entry of CFG walk.
6280         Adjust call to find_assert_locations.
6281         * tree-ssa-pre.c (do_regular_insertion): Ignore critical edges
6282         that only can appear because of fake exit edges but assert we
6283         never try to insert on those.
6284         (fini_pre): Do not remove fake exit edges here...
6285         (execute_pre): ...but here, before committing edge inserts.
6286
6287 2008-08-19  Richard Guenther  <rguenther@suse.de>
6288
6289         * passes.c (init_optimization_passes): Exchange store-ccp
6290         with a ccp pass.
6291
6292 2008-08-19  Rafael Espíndola  <espindola@google.com>
6293
6294         * varasm.c (weak_decls): Move earlier in the file.
6295         (assemble_external): Add weak decls to the weak_decls list.
6296         (declare_weak): Don't add decls to the weak_decls list.
6297
6298 2008-08-19  H.J. Lu  <hongjiu.lu@intel.com>
6299
6300         PR target/37157
6301         * config/i386/sse.md (sse2_punpckhqdq, sse2_punpcklqdq): Moved
6302         before (sse2_shufpd_<mode>).
6303
6304 2008-08-19  Jakub Jelinek  <jakub@redhat.com>
6305
6306         PR debug/37156
6307         * pretty-print.c (pp_base_format): Deal with recursive BLOCK trees.
6308         * tree.c (block_nonartificial_location): Likewise.
6309
6310 2008-08-19  Richard Guenther  <rguenther@suse.de>
6311
6312         PR tree-optimization/35972
6313         PR tree-optimization/23094
6314         * tree-ssa-sccvn.h (vn_reference_lookup_pieces): Add maywalk
6315         parameter.
6316         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Properly
6317         handle MISALIGNED_INDIRECT_REF.
6318         (get_ref_from_reference_ops): New helper.
6319         (vn_reference_lookup_pieces): Walk the use-def chain using the
6320         alias-oracle if requested.
6321         * tree-ssa-pre.c (phi_translate_1): Do reference lookup with
6322         walking the use-def chain.
6323         (compute_avail): But not here.
6324         (create_component_ref_by_pieces_1): Properly handle
6325         MISALIGNED_INDIRECT_REF.
6326         (do_regular_insertion): Handle fully redundant
6327         expressions after PHI-translation also for SSA_NAME values, not
6328         only constants.  Correctly use edoubleprime for that.
6329
6330 2008-08-19  Ira Rosen  <irar@il.ibm.com>
6331
6332         * tree-vectorizer.c (supportable_widening_operation): Support
6333         multi-step conversion, return the number of steps in such conversion
6334         and the required intermediate types.
6335         (supportable_narrowing_operation): Likewise.
6336         * tree-vectorizer.h (vect_pow2): New function.
6337         (supportable_widening_operation): Change argument types.
6338         (supportable_narrowing_operation): Likewise.
6339         (vectorizable_type_promotion): Add an argument.
6340         (vectorizable_type_demotion): Likewise.
6341         * tree-vect-analyze.c (vect_analyze_operations): Call
6342         vectorizable_type_promotion and vectorizable_type_demotion with
6343         additional argument.
6344         (vect_get_and_check_slp_defs): Detect patterns.
6345         (vect_build_slp_tree): Add an argument, don't fail in case of multiple
6346         types.
6347         (vect_analyze_slp_instance): Don't fail in case of multiple types.
6348         Call vect_build_slp_tree with correct arguments. Calculate unrolling
6349         factor according to the smallest type in the loop.
6350         (vect_detect_hybrid_slp_stmts): Include statements from patterns.
6351         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Call
6352         supportable_widening_operation with correct arguments.
6353         * tree-vect-transform.c (vect_get_slp_defs): Allocate output vector
6354         operands lists according to the number of vector statements in left
6355         or right node, if exists.
6356         (vect_gen_widened_results_half): Remove unused argument.
6357         (vectorizable_conversion): Call supportable_widening_operation,
6358         supportable_narrowing_operation, and vect_gen_widened_results_half
6359         with correct arguments.
6360         (vectorizable_assignment): Change documentation, support multiple
6361         types in SLP.
6362         (vectorizable_operation): Likewise.
6363         (vect_get_loop_based_defs): New function.
6364         (vect_create_vectorized_demotion_stmts): Likewise.
6365         (vectorizable_type_demotion): Support loop-aware SLP and general
6366         multi-step conversion. Call vect_get_loop_based_defs and
6367         vect_create_vectorized_demotion_stmts for transformation.
6368         (vect_create_vectorized_promotion_stmts): New function.
6369         (vectorizable_type_promotion): Support loop-aware SLP and general
6370         multi-step conversion. Call vect_create_vectorized_promotion_stmts
6371         for transformation.
6372         (vectorizable_store): Change documentation, support multiple
6373         types in SLP.
6374         (vectorizable_load): Likewise.
6375         (vect_transform_stmt): Pass SLP_NODE to
6376         vectorizable_type_promotion and vectorizable_type_demotion.
6377         (vect_schedule_slp_instance): Move here the calculation of number
6378         of vectorized statements for each node from...
6379         (vect_schedule_slp): ... here.
6380         (vect_transform_loop): Call vect_schedule_slp without the last
6381         argument.
6382
6383 2008-08-19  Dorit Nuzman  <dorit@il.ibm.com>
6384
6385         PR bootstrap/37152
6386         * tree-vect-transform.c (vect_create_epilog_for_reduction): Change =
6387         to == in assert statement.
6388         (vectorizable_reduction): Fix typo.
6389
6390 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
6391
6392         PR bootstrap/37153
6393         * value-prof.c (check_counter): Dereference pointer to overall
6394         count when printing it.
6395
6396 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
6397
6398         * profile.h: Really add it.
6399
6400 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
6401
6402         * mcf.c: Really add it.
6403
6404 2008-08-18  Paul Yuan  <yingbo.com@gmail.com>
6405             Vinodha Ramasamy  <vinodha@google.com>
6406
6407         * cgraph.c (cgraph_edge): Handle inconsistent counts when setting
6408         count_scale.
6409         * value-prof.c (check_counter): Fix the counter if
6410         flag_profile_correction is true.
6411         (tree_divmod_fixed_value_transform, tree_mod_pow2_value_transform,
6412         tree_mod_subtract_transform):
6413         Follow check_counter parameter change.
6414         * common.opt (fprofile-correction): New option.
6415         * mcf.c: New file.
6416         * profile.h: Likewise.
6417         * profile.c (edge_info, EDGE_INFO): Moved to new file profile.h.
6418         (sum_edge_counts, is_edge_inconsistent, correct_negative_edge_counts,
6419         is_inconsistent, set_bb_counts, read_profile_edge_counts): New
6420         functions.
6421         (compute_branch_probabilities): Refactored. Invokes mcf_smooth_cfg if
6422         flag_profile_correction is set.
6423
6424 2008-08-18  Richard Sandiford  <rdsandiford@googlemail.com>
6425
6426         * rtlanal.c (subreg_offset_representable_p): Check HARD_REGNO_MODE_OK.
6427
6428 2008-08-18  Tomas Bily  <tbily@suse.cz>
6429
6430         * tree.h (IS_CONVERT_EXPR_CODE_P): Renamed to CONVERT_EXPR_CODE_P.
6431         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Use
6432         CONVERT_EXPR_P.
6433         * tree-data-ref.c (split_constant_offset_1): Likewise.
6434         * tree-inline.c (estimate_operator_cost): Use CASE_CONVERT.
6435         * tree-sra.c (sra_walk_expr): Likewise.
6436         * matrix-reorg.c (ssa_accessed_in_assign_rhs): Likewise.
6437         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
6438         * gimple.h (gimple_assign_cast_p): Use CONVERT_EXPR_CODE_P.
6439         * tree-ssa-structalias.c (find_func_aliases, find_func_aliases):
6440         Likewise.
6441         * gimple.c (gimple_assign_unary_nop_p): Likewise.
6442         * tree-vect-transform.c (vectorizable_type_demotion)
6443         (vectorizable_type_promotion): Likewise.
6444         * tree-inline.c (expand_call_inline):
6445         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
6446         (forward_propagate_addr_expr_1, forward_propagate_comparison)
6447         (tree_ssa_forward_propagate_single_use_vars): Likewise.
6448         * expr.c (expand_expr_real_1): Likewise.
6449         * tree-ssa-dom.c (hashable_expr_equal_p, iterative_hash_hashable_expr)
6450         (gimple_assign_unary_useless_conversion_p): Likewise.
6451         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
6452         * tree-ssa-ccp.c (ccp_fold, fold_gimple_assign): Likewise.
6453         * fold-const.c (fold_unary): Likewise.
6454         * tree.h (CONVERT_EXPR_P): Likewise.
6455         * tree.c (simple_cst_equal, iterative_hash_expr): Likewise.
6456         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
6457         * tree-vrp.c:
6458         (register_edge_assert_for_2, extract_range_from_unary_expr)
6459         (register_edge_assert_for_1): Likewise.
6460
6461 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6462
6463         * real.h (dconst_e, dconst_third, dconst_sqrt2, dconst_e_ptr,
6464         dconst_third_ptr, dconst_sqrt2_ptr): Declare.
6465         (enum real_value_const): Delete.
6466         (get_real_const): Delete.
6467         * real.c (get_real_const): Delete.
6468         (dconst_e_ptr): Define.
6469         (dconst_third_ptr): Define.
6470         (dconst_sqrt2_ptr): Define.
6471         * builtins.c: Update all callers.
6472
6473 2008-08-18  Richard Guenther  <rguenther@suse.de>
6474
6475         * tree-ssa-reassoc.c (reassociate_bb): Properly reset the
6476         statement iterator after statement removal.
6477
6478 2008-08-18  Andreas Tobler  <a.tobler@schweiz.org>
6479
6480         * config/rs6000/driver-rs6000.c (detect_caches_freebsd): New function.
6481         (detect_processor_freebsd): Likewise.
6482         (host_detect_local_cpu): Call newly added functions for FreeBSD.
6483
6484 2008-08-18  Richard Guenther  <rguenther@suse.de>
6485
6486         * tree-cfg.c (verify_types_in_gimple_assign): Verify copies
6487         and loads have the correct types.
6488
6489 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6490
6491         PR cpp/7263
6492         * c-opts.c (cpp_opts): Remove static.
6493         * c-parser.c (cpp_opts): Declare it extern.
6494         (disable_extension_diagnostics): Handle cpp options.
6495         (enable_extension_diagnostics): Likewise.
6496
6497 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6498
6499         * diagnostics.c (permerror_at): Rename as permerror.
6500         (permerror): Delete.
6501         * toplev.h: Likewise.
6502
6503 2008-08-18  Richard Guenther  <rguenther@suse.de>
6504
6505         * passes.c (init_optimization_passes): Remove cleanup_cfg1,
6506         sdse1 and addressables2 passes.  Replace dce1 with cddce1.
6507         Move call_cdce before build_alias.  Move copyrename2,
6508         cunrolli and ccp2 beafore build_alias.  Re-add addressable2
6509         right after final inlining.
6510         * tree-cfg.c (build_gimple_cfg): Do not dump function here.
6511         (pass_build_cfg): But instead via TODO_dump_func.
6512
6513 2008-08-18  Richard Guenther  <rguenther@suse.de>
6514
6515         * tree-sra.c (generate_element_init_1): Deal with NULL constructor
6516         element index.
6517         (scalarize_init): If we failed to generate some initializers
6518         do not generate zeros for not instantiated members.  Instead
6519         rely on the copy out.
6520         * tree-ssa-operands.c (get_addr_dereference_operands): Warn
6521         about missing flow-sensitive alias info only if we have
6522         aliases computed.
6523
6524 2008-08-17  Nick Clifton  <nickc@redhat.com>
6525
6526         * doc/extend.texi (Function Attributes): Fix typo in description
6527         if hot function attribute.
6528
6529 2008-08-17  Daniel Jacobowitz  <dan@codesourcery.com>
6530             Richard Sandiford  <rdsandiford@googlemail.com>
6531
6532         * doc/install.texi (--with-mips-plt): Document.
6533         * doc/invoke.texi (-mplt, -mno-plt): Document.
6534         * config.gcc (mips*-*-*): Add mips-plt to supported_defaults
6535         and handle ${with_mips_plt}.
6536         * config/mips/mips.opt (mplt): New option.
6537         * config/mips/mips.h (TARGET_ABICALLS_PIC0): New macro.
6538         (TARGET_ABICALLS_PIC2): Likewise.
6539         (TARGET_GPWORD): Return false for TARGET_ABSOLUTE_ABICALLS.
6540         (OPTION_DEFAULT_SPECS): Add a mips-plt entry.
6541         (ASM_SPEC): Use !mabi=* instead of !mabi*.
6542         (MIPS_CALL): Use TARGET_ABICALLS_PIC2 instead of TARGET_ABICALLS
6543         to decide whether to output ".option picX" directives.
6544         * config/mips/linux.h (SUBTARGET_ASM_SPEC): Remove -mabi=64 handling.
6545         Pass -call_nonpic rather than -KPIC for -mplt.
6546         (BASE_DRIVER_SELF_SPECS): Remove -mplt if -mno-shared is not present
6547         on the command line.  Also remove it when -mabi=64 is used without
6548         -msym32.
6549         * config/mips/linux64.h (SUBTARGET_ASM_SPEC): Delete.
6550         * config/mips/mips.c (mips_use_pic_fn_addr_reg_p): Handle
6551         TARGET_ABICALLS_PIC0.
6552         (mips_classify_symbol): Use TARGET_ABICALLS_PIC2 instead of
6553         TARGET_ABICALLS.
6554         (mips16_build_function_stub): Only output ".option pic" directives
6555         and PIC stubs if TARGET_ABICALLS_PIC2.  Call through $25 instead of $1.
6556         (mips16_build_call_stub): Fix comment and remove redundant
6557         ".set at"/"set .noat" directives.
6558         (mips_function_rodata_section): Use the default behaviour for
6559         TARGET_ABSOLUTE_ABICALLS.
6560         (mips_file_start): Emit ".option pic0" for TARGET_ABICALLS_PIC0.
6561         (mips_global_pointer): Handle TARGET_ABICALLS_PIC0.
6562         (mips_restore_gp): Do nothing if the current function doesn't use
6563         a global pointer.
6564         (mips_expand_prologue): Only save $gp if the current function uses it.
6565         Use a normal move for TARGET_ABICALLS_PIC0.
6566         (mips_override_options): Only set flag_pic if TARGET_ABICALLS_PIC2.
6567
6568 2008-08-17  Richard Sandiford  <rdsandiford@googlemail.com>
6569
6570         * config/mips/mips.c (mips_save_reg_p): Don't short-circuit rest
6571         of function when handling GLOBAL_POINTER_REGNUM.
6572
6573 2008-08-16  Eric Botcazou  <ebotcazou@adacore.com>
6574
6575         PR ada/20548
6576         * common.opt (-fstack-check): Do not declare the variable here.
6577         (-fstack-check=): New option variant.
6578         * doc/invoke.texi (Code Gen Options): Document it.
6579         * expr.h (STACK_OLD_CHECK_PROTECT): New macro.
6580         (STACK_CHECK_PROTECT): Bump to 3 pages if DWARF-2 EH is used.
6581         (STACK_CHECK_STATIC_BUILTIN): New macro.
6582         * doc/tm.texi (Stack Checking): Document STACK_CHECK_STATIC_BUILTIN.
6583         * opts.c: Include expr.h.
6584         (common_handle_option) <OPT_fold_stack_check_>: New case.
6585         <OPT_fstack_check>: Likewise.
6586         * calls.c (initialize_argument_information): Use TYPE_SIZE_UNIT
6587         consistently in the test for variable-sized types.  Adjust for
6588         new behaviour of flag_stack_check.
6589         * explow.c: Include except.h.
6590         (allocate_dynamic_stack_space): Do not take into account
6591         STACK_CHECK_MAX_FRAME_SIZE for static builtin stack checking.
6592         * function.c (gimplify_parameters): Use DECL_SIZE_UNIT in the test
6593         for variable-sized parameters.  Treat all parameters whose size is
6594         greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized if generic
6595         stack checking is enabled.
6596         * gimplify.c (gimplify_decl_expr): Treat non-static objects whose
6597         size is greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized
6598         if generic stack checking is enabled.
6599         (expand_function_end): Adjust for new behaviour of flag_stack_check.
6600         * reload1.c (reload): Likewise.
6601         * stmt.c (expand_decl): Assert that all automatic variables have
6602         fixed size at this point and remove dead code.
6603         * flags.h (stack_check_type): New enumeration type.
6604         (flag_stack_check): Declare.
6605         * toplev.c (flag_stack_check): New global variable.
6606         * Makefile.in (opts.o): Add dependency on EXPR_H.
6607         (explow.o): Add dependency on except.h.
6608
6609 2008-08-16  Andy Hutchinson  <hutchinsonandy@aim.com>
6610
6611         * config/avr/avr.c (avr_override_options): Reduce value of
6612         PARAM_INLINE_CALL_COST.
6613
6614 2008-08-15  Eric Botcazou  <ebotcazou@adacore.com>
6615
6616         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: When converting
6617         to BLKmode, try to fetch an inner memory reference.  Use 'mode' in
6618         lieu of TYPE_MODE (type) throughout.
6619
6620 2008-08-15  Joseph Myers  <joseph@codesourcery.com>
6621
6622         * config/arm/arm.c (add_minipool_backward_ref): Check for
6623         8-byte-aligned entries in second case of forcing insertion after a
6624         particular entry.  Change third case to avoid inserting
6625         non-8-byte-aligned entries before 8-byte-aligned ones.
6626
6627 2008-08-15  Richard Guenther  <rguenther@suse.de>
6628
6629         * tree-ssa-ccp.c (maybe_fold_offset_to_reference): Do not
6630         strip components for unknown size accesses.
6631
6632 2008-08-15  Wolfgang Gellerich  <gellerich@de.ibm.com>
6633
6634         * config/s390/2097.md New file.
6635         * config/s390/s390.md ("z10prop" attribute): Define none,
6636         z10_super, z10_super_E1, z10_super_A1, z10_super_c,
6637         z10_super_c_E1, z10_fwd, z10_fwd_A1, z10_fwd_A3, z10_fwd_E1,
6638         z10_rec, z10_fr, z10_fr_A3, z10_fr_E1, z10_c, and z10_cobra as
6639         possible values and apply them to insns as appropriate.
6640         ("type" attribute): Removed itof and added ftrunctf,ftruncdf,
6641         ftruncsd, ftruncdd, itoftf, itofdf, itofsf, itofdd, itoftd,
6642         fdivdd, fdivtd, floaddd, floadsd, fmuldd, fmultd, fsimpdd,
6643         fsimpsd, fsimptd, fstoredd, fstoresd, ftoidfp as possible values.
6644         ("bfp" mode attribute): Removed.  Every occurence replaced
6645         with <mode>.
6646         * config/s390/s390.c (struct "z10_cost"): Updated entries.
6647         * config/s390/2084.md (insn_reservation "x_itof"): Updated
6648         type attribute.
6649
6650 2008-08-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6651
6652         PR c/28152
6653         * c-parser.c (c_lex_one_token): Do not store the canonical spelling
6654         for keywords.
6655
6656 2008-08-14  Dorit Nuzman  <dorit@il.ibm.com>
6657
6658         * tree-vect-transform.c (vect_create_epilog_for_reduction): Takes an
6659         additional argument. Support reduction when duplication is needed due
6660         to data-types of different sizes in the loop.
6661         (get_initial_def_for_induction): Fix printout.
6662         (vect_get_vec_def_for_stmt_copy): Support case where the
6663         vec_stmt_for_operand is a phi node.
6664         (vectorizable_reduction): Support reduction when duplication is needed
6665         due to data-types of different sizes in the loop.
6666         (vectorizable_call): Remove restriction to not vectorize in case we
6667         have data-types of different sizes in the loop.
6668         (vectorizable_conversion): Likewise.
6669         (vectorizable_operation): Likewise.
6670         (vectorizable_type_demotion): Likewise.
6671         (vectorizable_type_promotion): Likewise.
6672         (vectorizable_induction): Add restriction to not vectorize in case
6673         we have data-types of different sizes in the loop.
6674
6675 2008-08-14  Christophe Saout  <christophe@saout.de>
6676             Uros Bizjak  <ubizjak@gmail.com>
6677
6678         PR target/37101
6679         * config/i386/sse.md (vec_concatv2di): Remove movlps alternative.
6680         (*vec_concatv2di_rex64_sse4_1): Ditto.
6681         (*vec_concatv2di_rex64_sse): Ditto.
6682
6683 2008-08-14  Jakub Jelinek  <jakub@redhat.com>
6684
6685         PR middle-end/37103
6686         * fold-const.c (fold_widened_comparison): Do not allow
6687         sign changes that change the result even if shorter type
6688         is wider than arg1_unw's type.
6689
6690 2008-08-13  Kazu Hirata  <kazu@codesourcery.com>
6691
6692         * gcc.dg/arm-g2.c, gcc.dg/arm-mmx-1.c, gcc.dg/arm-scd42-2.c:
6693         Skip if the multilib testing specifies -march that does not
6694         agree with the one specified in the testcase.
6695
6696 2008-08-13  Joseph Myers  <joseph@codesourcery.com>
6697
6698         * config/sparc/sparc.c (emit_soft_tfmode_cvt): Explicitly sign or
6699         zero extend SImode values being converted to TFmode before passing
6700         to libcalls.
6701
6702 2008-08-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6703
6704         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Predefine
6705         __PPU__ when targeting the Cell/B.E. PPU processor.
6706
6707 2008-08-13  Eric Botcazou  <ebotcazou@adacore.com>
6708
6709         * gimple.h (gimple_call_set_chain): Accept SSA variables.
6710         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <CALL_EXPR>:
6711         Rematerialize the static chain, if any.
6712         * tree-ssa-sccvn.c (copy_reference_ops_from_call): Also copy the
6713         static chain.
6714
6715 2008-08-13  H.J. Lu  <hongjiu.lu@intel.com>
6716
6717         * dwarf2out.c (dwarf_stack_op_name): Remove prototype.
6718         (new_loc_descr): Likewise.
6719         (add_loc_descr): Likewise.
6720         (size_of_loc_descr): Likewise.
6721         (size_of_locs): Likewise.
6722         (output_loc_operands): Likewise.
6723         (output_loc_sequence): Likewise.
6724         (new_reg_loc_descr): New.
6725         (build_cfa_loc): Use it.
6726         (build_cfa_aligned_loc): Likewise.
6727         (one_reg_loc_descriptor): Likewise.
6728         (based_loc_descr): Likewise.
6729
6730 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6731
6732         PR 30551
6733         * doc/invoke.texi (Wmain): Update.
6734         * c-decl.c (start_decl): warn_main is only 0 or 1.
6735         (start_function): Likewise. Fix formatting.
6736         (finish_function): Delete redundant warning.
6737         * c.opt (Wmain): Add Var(warn_main) and Init(-1).
6738         * c-opts (c_common_handle_option): -Wall only has effect if
6739         warn_main is uninitialized. OPT_Wmain is automatically
6740         handled. -pedantic also enables Wmain.
6741         (c_common_post_options): Handle all logic for Wmain here.
6742         * c-common.c (warn_main): Delete.
6743         (check_main_parameter_types): Make pedwarns conditional on OPT_Wmain.
6744         * c-common.h (warn_main): Delete.
6745
6746 2008-08-13  H.J. Lu  <hongjiu.lu@intel.com>
6747
6748         PR middle-end/36701
6749         * expr.c (emit_group_store): Allocate stack temp with the
6750         largest alignment when copying from register to stack.
6751
6752 2008-08-13  Richard Guenther  <rguenther@suse.de>
6753
6754         * tree.h (maybe_fold_offset_to_address): Declare.
6755         * tree-ssa-ccp.c (surely_varying_stmt_p): Fix typo in last commit.
6756         (ccp_fold): Handle pointer conversions the same as fold_stmt.
6757         Likewise for POINTER_PLUS_EXPR.
6758         (maybe_fold_offset_to_reference): Enable disabled code.
6759         (maybe_fold_offset_to_address): New function.
6760         (fold_stmt_r): Use it.
6761         (fold_gimple_assign): Likewise.
6762         * gimplify.c (gimplify_conversion): Use maybe_fold_offset_to_address.
6763         (gimplify_expr): Likewise.
6764
6765 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6766
6767         * toplev.h (pedwarn_at): Fix declaration.
6768
6769 2008-08-13  Joseph Myers  <joseph@codesourcery.com>
6770
6771         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
6772         LINK_SPEC): Use %R in -Y P argument.
6773
6774 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6775
6776         PR c/15236
6777         * diagnostic.c (pedwarn_at): New.
6778         * toplev.h (pedwarn_at): Declare.
6779         * c-tree.h (build_enumerator): Update declaration.
6780         * c-decl.c (finish_enum): Update comment.
6781         (build_enumerator): Take a location parameter. Give a pedwarn but do
6782         not perform any conversion.
6783         * c-parser.c (c_parser_enum_specifier): Set correct location for
6784         enumerator.
6785
6786 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6787
6788         PR 35635
6789         * c-common.c (conversion_warning): Use a switch. Ignore boolean
6790         expressions except for conversions to signed:1 bitfields. Handle
6791         COND_EXPR with constant operands.
6792
6793 2008-08-13  Richard Guenther  <rguenther@suse.de>
6794
6795         PR tree-optimization/15255
6796         * tree-ssa-reassoc.c (linearize_expr_tree): Declare.
6797         (struct oecount_s): New struct and VEC types.
6798         (cvec): New global.
6799         (oecount_hash): New function.
6800         (oecount_eq): Likewise.
6801         (oecount_cmp): Likewise.
6802         (zero_one_operation): New function.
6803         (build_and_add_sum): Likewise.
6804         (undistribute_ops_list): Perform un-distribution of multiplication
6805         and division on the chain of summands.
6806         (should_break_up_subtract): Also break up subtracts for factors.
6807         (reassociate_bb): Delete dead visited statements.
6808         Call undistribute_ops_list.  Re-sort and optimize if it did something.
6809         * passes.c (init_optimization_passes): Move DSE before
6810         reassociation.
6811         * tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Correctly handle
6812         PHI nodes.
6813
6814 2008-08-12  Janis Johnson  <janis187@us.ibm.com>
6815
6816         * doc/invoke.texi (-fipa-pta): Say the option is experimental.
6817
6818         * doc/invoke.texi: Revert unintended checkin.
6819
6820 2008-08-12  Nathan Froyd  <froydnj@codesourcery.com>
6821
6822         PR libgomp/26165
6823         * gcc.c (include_spec_function): Tweak call to find_a_file.
6824
6825 2008-08-12  Jakub Jelinek  <jakub@redhat.com>
6826
6827         PR middle-end/37014
6828         * expr.c (expand_expr_real_1): Handle TRUTH_ANDIF_EXPR
6829         and TRUTH_ORIF_EXPR.
6830         * dojump.c (do_jump): Likewise.
6831
6832         PR tree-optimization/37084
6833         * tree-inline.c (copy_bb): Call gimple_regimplify_operands
6834         if id->regimplify, don't assume stmt is a cast assignment.
6835
6836 2008-08-12  Anatoly Sokolov  <aesok@post.ru>
6837
6838         * final.c (final_scan_insn): Use app_enable/app_disable functions.
6839
6840 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6841
6842         PR bootstrap/37097
6843         * builtins.c (do_mpfr_bessel_n): Fix copy-and-paste bug introduced
6844         by last change.
6845
6846 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6847
6848         * defaults.h (TARGET_FLOAT_FORMAT): Remove.
6849         (UNKNOWN_FLOAT_FORMAT, IEEE_FLOAT_FORMAT, VAX_FLOAT_FORMAT): Remove.
6850
6851         * config/alpha/alpha.h (TARGET_FLOAT_FORMAT): Remove.
6852         * config/iq2000/iq2000.h (TARGET_FLOAT_FORMAT): Remove.
6853         * config/pdp11/pdp11.h (TARGET_FLOAT_FORMAT): Remove.
6854         * config/score/score.h (TARGET_FLOAT_FORMAT): Remove.
6855         * config/vax/vax.h (TARGET_FLOAT_FORMAT): Remove.
6856
6857         * doc/tm.texi (Storage Layout): Remove documentation for
6858         TARGET_FLOAT_FORMAT.
6859
6860         * simplify-rtx.c (simplify_binary_operation_1): Replace
6861         TARGET_FLOAT_FORMAT check by appropriate HONOR_... checks.
6862
6863 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6864
6865         * real.h (struct real_format): New member has_sign_dependent_rounding.
6866         * real.c (ieee_single_format, mips_single_format, motorola_single_format,
6867         spu_single_format, ieee_double_format, mips_double_format,
6868         motorola_double_format, ieee_extended_motorola_format,
6869         ieee_extended_intel_96_format, ieee_extended_intel_128_format,
6870         ieee_extended_intel_96_round_53_format, ibm_extended_format,
6871         mips_extended_format, ieee_quad_format, mips_quad_format,
6872         vax_f_format, vax_d_format, vax_g_format): Initialize it.
6873         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
6874
6875         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
6876         MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
6877         * config/spu/spu.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
6878         MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
6879         (ROUND_TOWARDS_ZERO): Likewise.
6880
6881         * real.h (REAL_MODE_FORMAT): Protect MODE against macro expansion.
6882         (FLOAT_MODE_FORMAT): New macro.
6883         (REAL_MODE_FORMAT_COMPOSITE_P): Remove, replace by ...
6884         (MODE_COMPOSITE_P): ... this new macro.
6885         (MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
6886         MODE_HAS_SIGN_DEPENDENT_ROUNDING): New macros.
6887         * machmode.h (GET_MODE_INNER): Cast result to enum machine_mode.
6888
6889         * flags.h: Include "real.h".
6890
6891         * fold-const.c (const_binop): Use MODE_COMPOSITE_P instead of
6892         REAL_MODE_FORMAT_COMPOSITE_P.
6893         * simplify-rtx.c (simplify_const_binary_operation): Likewise.
6894
6895         * doc/tm.texi (Storage Layout): Remove documentation of
6896         MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
6897         MODE_HAS_SIGN_DEPENDENT_ROUNDING.  Update documentation of
6898         ROUND_TOWARDS_ZERO and LARGEST_EXPONENT_IS_NORMAL to clarify
6899         they only apply to libgcc2.a.
6900
6901 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6902
6903         * config/spu/float_disf.c: New file.
6904         * config/spu/float_unsdisf.c: New file.
6905         * config/spu/t-elf (LIB2FUNCS_STATIC_EXTRA): Add them.
6906         (LIB2FUNCS_EXCLUDE): Define.
6907
6908 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6909             Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
6910
6911         * real.h (struct real_format): New member round_towards_zero.
6912         * real.c (round_for_format): Respect fmt->round_towards_zero.
6913         (ieee_single_format, mips_single_format, motorola_single_format,
6914         spu_single_format, ieee_double_format, mips_double_format,
6915         motorola_double_format, ieee_extended_motorola_format,
6916         ieee_extended_intel_96_format, ieee_extended_intel_128_format,
6917         ieee_extended_intel_96_round_53_format, ibm_extended_format,
6918         mips_extended_format, ieee_quad_format, mips_quad_format,
6919         vax_f_format, vax_d_format, vax_g_format): Initialize it.
6920         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
6921
6922         * builtins.s (do_mpfr_arg1): Consider round_towards_zero member of
6923         real_format to choose rounding mode when calling MPFR functions.
6924         (do_mpfr_arg2, do_mpfr_arg3, do_mpfr_sincos): Likewise.
6925         (do_mpfr_bessel_n, do_mpfr_remquo, do_mpfr_lgamma_r): Likewise.
6926
6927         * real.h (real_to_decimal_for_mode): Add prototype.
6928         * real.c (real_to_decimal_for_mode): Renames old real_to_decimal.
6929         Respect target rounding mode when generating decimal representation.
6930         (real_to_decimal): New stub for backwards compatibility.
6931         * c-cppbuiltin.c (builtin_define_with_hex_fp_value): Use
6932         real_to_decimal_for_mode instead of real_to_decimal.
6933
6934         * config/spu/spu.md ("floatdisf2", "floatunsdisf2"): New.
6935
6936 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6937             Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
6938
6939         * real.c (spu_single_format): New variable.
6940         * real.h (spu_single_format): Declare.
6941
6942         * config/spu/spu.c (spu_override_options): Install SFmode format.
6943         (spu_split_immediate): Use integer mode to operate on pieces of
6944         floating-point values in all cases.
6945
6946         * config/spu/spu.md (UNSPEC_FLOAT_EXTEND, UNSPEC_FLOAT_TRUNCATE): New.
6947         ("extendsfdf2"): Use UNSPEC_FLOAT_EXTEND instead of FLOAT_EXTEND.
6948         ("truncdfsf2"): Use UNSPEC_FLOAT_TRUNCATE instead of FLOAT_TRUNCATE.
6949
6950 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6951
6952         * config/spu/spu.c (spu_safe_dma): Respect TARGET_SAFE_DMA.
6953
6954 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6955
6956         * config/spu/spu.h (DWARF_FRAME_RETURN_COLUMN): Define.
6957
6958 2008-08-12  Jakub Jelinek  <jakub@redhat.com>
6959
6960         PR c++/36688
6961         * gimplify.c (gimplify_modify_expr_rhs): Test TREE_READONLY
6962         on the VAR_DECL instead of TYPE_READONLY on its type.
6963
6964 2008-08-12  Ira Rosen  <irar@il.ibm.com>
6965
6966         * tree-vectorizer.c: Depend on langhooks.h.
6967         (supportable_widening_operation): Add two arguments. Support double
6968         type conversions.
6969         (supportable_narrowing_operation): Likewise.
6970         * tree-vectorizer.h (supportable_widening_operation): Add two
6971         arguments.
6972         (supportable_narrowing_operation): Likewise.
6973         * tree-vect-patterns.c (vect_recog_widen_mult_pattern) : Call
6974         supportable_widening_operation with correct arguments.
6975         * tree-vect-transform.c (vectorizable_conversion): Likewise.
6976         (vectorizable_type_demotion): Support double type conversions.
6977         (vectorizable_type_promotion): Likewise.
6978         * Makefile.in (tree-vectorizer.o): Depend on langhooks.h.
6979
6980 2008-08-11  Michael Matz  <matz@suse.de>
6981
6982         * i386/i386.c (override_options): Move initialisation from
6983         flag_schedule_insns_after_reload to here from ...
6984         (optimization_options): ... here.
6985
6986 2008-08-11  Jakub Jelinek  <jakub@redhat.com>
6987
6988         PR rtl-optimization/36998
6989         * dwarf2out.c (compute_barrier_args_size_1,
6990         compute_barrier_args_size): Temporarily remove assertions.
6991
6992 2008-08-10  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6993
6994         PR middle-end/20644
6995         * tree-ssa.c (struct walk_data): Add new flag
6996         warn_possibly_uninitialized.
6997         (warn_uninitialized_var): Use it.
6998         (warn_uninitialized_vars): New.
6999         (execute_early_warn_uninitialized): Call it.
7000         (execute_late_warn_uninitialized): Likewise.
7001
7002 2008-08-09  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7003
7004         PR middle-end/36238
7005         * reload1.c (gen_reload): Guard calls to get_secondary_mem
7006         for memory subregs.
7007
7008 2008-08-09  Jan Hubicka  <jh@suse.cz>
7009
7010         PR target/37055
7011         * optabs.c (maybe_emit_unop_insn): Remove produced code if
7012         expansion failed.
7013         (expand_fix): Be prepared for expansion to fail.
7014         (expand_sfix_optab): Remove instructions if expansion failed.
7015
7016 2008-08-09  Anatoly Sokolov  <aesok@post.ru>
7017
7018         * config/avr/avr.c (avr_mcu_types): Move the AT43USB320 device to
7019         avr31 architecture.
7020         * config/avr/avr.h (CRT_BINUTILS_SPECS): (Ditto.).
7021         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
7022
7023 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
7024
7025         * config.gcc (mips*-*-linux*, mips64*-*-linux*): Add
7026         mips/t-libgcc-mips16 to tmake_file.
7027         * config/mips/mips-protos.h (mips_call_type): New enum.
7028         (mips_pic_base_register, mips_got_load): Declare.
7029         (mips_restore_gp): Take an rtx argument.
7030         (mips_use_pic_fn_addr_reg_p): Declare.
7031         (mips_expand_call): Replace the sibcall_p argument with
7032         a mips_call_type argument.  Add a lazy_p parameter.
7033         (mips_split_call): Declare.
7034         * config/mips/mips.h (MIPS16_PIC_TEMP_REGNUM): New macro.
7035         (MIPS16_PIC_TEMP): Likewise.
7036         (reg_class): Delete M16_NA_REGS.
7037         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
7038         (SYMBOL_FLAG_BIND_NOW, SYMBOL_REF_BIND_NOW_P): New macros.
7039         (mips_split_hi_p): Declare.
7040         * config/mips/mips.c (mips_split_hi_p): New array.
7041         (mips_regno_to_class): Change M16_NA_REGS entries to M16_REGS.
7042         (mips_got_symbol_type_p): New function.
7043         (mips_global_symbol_p): Check SYMBOL_REF_EXTERNAL_P.
7044         (mips16_stub_function_p): New function.
7045         (mips16_local_function_p): Likewise.
7046         (mips_use_pic_fn_addr_reg_p): Likewise.
7047         (mips_cannot_force_const_mem): Return false for HIGHs.
7048         Extend CONST_INT and symbolic handling to MIPS16, using
7049         mips_symbol_insns to check that the base symbol type is a
7050         legitimate constant.  Reject GOT-based constants if
7051         TARGET_MIPS16_PCREL_LOADS.
7052         (mips_const_insns): Check targetm.cannot_force_const_mem when
7053         decomposing a symbolic base and a large offset.
7054         (mips_emit_call_insn): Add ORIG_ADDR and ADDR parameters.
7055         When calling a function that needs $25 from MIPS16 code,
7056         move the target address into $25 separately and add a USE
7057         to the call insn.
7058         (mips16_gp_pseudo_reg): Insert the initializer immediately
7059         before the first real insn.
7060         (mips_pic_base_register, mips_got_load): New functions.
7061         (mips_split_symbol): Generalize the name of the LO_SUM_OUT
7062         parameter to LOW_OUT.  Say that it can be any valid SET_SRC
7063         when splitting a load-address operation.  Split SYMBOL_GOT_DISP
7064         constants and highs of SYMBOL_GOT_PAGE_OFST constants.
7065         (mips_call_tls_get_addr): Update the call to mips_expand_call,
7066         also passing NULL_RTX rather than const0_rtx as the aux argument.
7067         (mips_rewrite_small_data_p): Check mips_lo_relocs and mips_split_p
7068         instead of TARGET_EXPLICIT_RELOCS.
7069         (mips_ok_for_lazy_binding_p): Check SYMBOL_REF_BIND_NOW_P.
7070         (mips_load_call_address): Replace the sibcall_p argument with
7071         a mips_call_type argument.  Use mips_got_load.
7072         (mips16_local_alias): New structure.
7073         (mips16_local_aliases): New variable.
7074         (mips16_local_aliases_hash): New function.
7075         (mips16_local_aliases_eq): Likewise.
7076         (mips16_local_alias): Likewise.
7077         (mips16_stub_function): Likewise.
7078         (mips16_build_function_stub): Create a local alias for the target
7079         function.  Handle TARGET_ABICALLS.  For PIC abicalls, emit a
7080         .cpload directive and an R_MIPS_NONE relocation for the target
7081         function, then load the alias rather than the function itself.
7082         Wrap the non-PIC abicalls version in ".option pic0/.option pic2".
7083         (mips16_copy_fpr_return_value): Use mips16_stub_function and
7084         mips_expand_call.  Set SYMBOL_REF_BIND_NOW on the symbol.
7085         (mips16_build_call_stub): Replace the FN parameter with an
7086         FN_PTR parameter.  Force the address into a register if it
7087         isn't a call_insn_operand; don't rely on the caller to do this.
7088         If a call to a locally-defined and locally-binding MIPS16
7089         function must be made indirectly, redirect the call to the
7090         function's local alias.  Use mips16_stub_function_p,
7091         mips16_stub_function, mips_expand_call and use_reg.
7092         Set SYMBOL_FLAG_BIND_NOW on __mips_call_* symbols.
7093         Use explicit %hi and %lo accesses where possible.
7094         Use MIPS_CALL to generate the correct code form of a
7095         jal instruction.  Add clobbers of $18 instead of uses.
7096         Update the call to mips_emit_call_insn.
7097         (mips_expand_call): Replace the SIBCALL_P argument with a
7098         mips_call_type argument and handle the new MIPS_CALL_EPILOGUE value.
7099         Take a LAZY_P parameter.  Call mips16_build_call_stub first,
7100         allowing it to modify the call address.  Update the calls to
7101         mips_load_call_address and mips_emit_call_insn.
7102         (mips_split_call): New function.
7103         (mips_init_relocs): Clear mips_split_hi_p.  Only use %gp_rel if
7104         !TARGET_MIPS16.  Split SYMBOL_GOT_DISP, and the high parts of
7105         SYMBOL_GOT_PAGE_OFST, for MIPS16 code.
7106         (mips_global_pointer): Check mips16_cfun_returns_in_fpr_p.
7107         (mips_extra_live_on_entry): Include MIPS16_PIC_TEMP_REGNUM
7108         if TARGET_MIPS16.
7109         (mips_cprestore_slot): New function.
7110         (mips_restore_gp): Take a TEMP parameter.  Handle TARGET_MIPS16
7111         and use mips_cprestore_slot.
7112         (mips_output_function_prologue): Handle TARGET_MIPS16 for
7113         LOADGP_OLDABI.
7114         (mips_emit_loadgp): Move into MIPS16_PIC_TEMP for MIPS16,
7115         then use a copygp_mips16 instruction to set up $28.
7116         (mips_expand_prologue): Initialize the cprestore slot for MIPS16 too.
7117         (mips16_lay_out_constants): Call split_all_insns_noflow.
7118         (mips_reorg_process_insns): Explicitly set all_noreorder_p to
7119         false if TARGET_MIPS16.
7120         (mips_reorg): Don't call vr4130_align_insns if TARGET_MIPS16.
7121         (mips_output_mi_thunk): Use mips_got_symbol_type_p.  Use the
7122         mips_dangerous_for_la25_p approach for MIPS16 PIC calls too.
7123         (mips_set_mips16_mode): Always set MASK_EXPLICIT_RELOCS for
7124         MIPS16 code.  Allow MIPS16 o32 PIC.
7125         (mips_override_options): Allow MIPS16 o32 PIC.
7126         * config/mips/mips.md: Lower CONST_GP_P moves into register moves
7127         after reload if TARGET_USE_GOT.
7128         (UNSPEC_COPYGP): New constant.
7129         (length): Use a default length of 8 for MIPS16 GOT loads.
7130         (*got_disp<mode>): Check mips_split_p instead of TARGET_XGOT.
7131         (*got_page<mode>): Check mips_split_hi_p.
7132         (*got_disp<mode>, *got_page<mode>): Use mips_got_load.
7133         (unspec_got<mode>, unspec_call<mode>): New expanders.
7134         (load_got<mode>, load_call<mode>): Remove the length attributes.
7135         Use a got attribute instead of a type attribute.
7136         (copygp_mips16): New insn.
7137         (restore_gp): Add a scratch clobber and pass it to mips_restore_gp.
7138         (load_call<mode>): Use a "d" constraint instead of an "r" constraint.
7139         (sibcall, sibcall_value, call, call_value): Update the calls
7140         to mips_expand_call.
7141         (call_internal, call_value_internal): Use mips_split_call.
7142         (call_value_multiple_internal): Likewise.
7143         (call_split): Move after call_internal (the insn it is split from).
7144         (call_internal_direct, call_value_internal_direct): Turn into
7145         define_insn_and_splits.  Split if TARGET_SPLIT_CALLS.
7146         (call_direct_split, call_value_direct_split): New patterns.
7147         * config/mips/constraints.md (c): Handle TARGET_MIPS16 first
7148         and use M16_REGS instead of M16_NA_REGS.
7149         * config/mips/predicates.md (const_call_insn_operand): Replace
7150         the TARGET_ABSOLUTE_ABICALLS-based check with a more general
7151         mips_use_pic_fn_addr_reg_p check.
7152         (move_operand): Reject HIGHs if mips_split_hi_p.
7153         * config/mips/mips16.S: Assembly as empty if the ABI is not suitable.
7154         (__mips16_floatunsisf): Inline __mips16_floatsisf.
7155         (CALL_STUB_NO_RET, CALL_STUB_REG): Copy the target register to $25.
7156         * config/mips/libgcc-mips16.ver: New file.
7157         * config/mips/t-libgcc-mips16 (SHLIB_MAPFILES): Add
7158         $(srcdir)/config/mips/libgcc-mips16.ver.
7159
7160 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
7161
7162         * config/mips/mips.c (mips_unspec_address_offset): Move earlier
7163         in file.
7164         (mips_unspec_address, mips_unspec_offset_high): Likewise.
7165         (mips_ok_for_lazy_binding_p, mips_load_call_address): Likewise.
7166         (mips16_cfun_returns_in_fpr_p): Likewise.
7167
7168 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
7169
7170         * config/mips/mips.h (MASK_RETURN_ADDR): Expand commentary.
7171         * config/mips/linux-unwind.h (mips_fallback_frame_state): Add 2
7172         rather than 4 to PC.
7173
7174 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
7175
7176         * config/mips/mips.h (STATIC_CHAIN_REGNUM): Remap to $15.
7177         (FUNCTION_PROFILER): Save the static chain pointer into $2
7178         beforehand and restore it aftewards.
7179         (TRAMPOLINE_TEMPLATE): Adjust accordingly.  Load the target
7180         address directly into $25 and call the function through $25;
7181         do not clobber $3.  Pad the DImode version to cover the space
7182         left by the deleted $25 <- $3 move.
7183         (TRAMPOLINE_SIZE): Adjust the size of the SImode version after
7184         the removal of the $25 <- $3 move.
7185         (INITIALIZE_TRAMPOLINE): Update offsets accordingly.
7186         * config/mips/sdemtk.h (FUNCTION_PROFILER): As for mips.h.
7187
7188 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
7189             Daniel Jacobowitz  <dan@codesourcery.com>
7190
7191         * config/mips/mips.h (FUNCTION_NAME_ALREADY_DECLARED): Delete.
7192         * config/mips/linux.h (ASM_DECLARE_FUNCTION_NAME): Delete.
7193         (ASM_DECLARE_FUNCTION_SIZE, FUNCTION_NAME_ALREADY_DECLARED): Delete.
7194         * config/mips/mips.c (mips_start_function_definition): New function.
7195         (mips_end_function_definition): Likewise.
7196         (mips_output_function_prologue): Use mips_start_function_definition.
7197         (mips_output_function_epilogue): Use mips_end_function_definition.
7198         (build_mips16_function_stub): Use mips_start_function_definition
7199         and mips_end_function_definition.
7200         (build_mips16_call_stub): Likewise.
7201
7202 2008-08-09  Richard Guenther  <rguenther@suse.de>
7203
7204         * gimple.c (gimple_build_call_1): Deal with FUNCTION_DECL fn.
7205         * gimple.h (gimple_call_fn): Adjust comment.
7206         (gimple_call_set_fndecl): New function.
7207         (gimple_call_fndecl): Adjust for GIMPLE_CALL no
7208         longer having bare FUNCTION_DECL operand.
7209         (gimple_call_return_type): Likewise.
7210         * tree-cfg.c (verify_stmt): Verify function operand of a GIMPLE_CALL.
7211
7212         * value-prof.c (gimple_divmod_fixed_value): Do not emit labels.
7213         (gimple_mod_pow2): Likewise.
7214         (gimple_mod_subtract): Likewise.
7215         (gimple_ic): Likewise.
7216         (gimple_stringop_fixed_value): Likewise.
7217         (gimple_indirect_call_to_profile): Fix for GIMPLE_CALL no
7218         longer having bare FUNCTION_DECL operand.
7219         * ipa-cp.c (ipcp_update_callgraph): Use gimple_call_set_fndecl.
7220         * omp-low.c (optimize_omp_library_calls): Likewise.
7221         * cgraphunit.c (update_call_expr): Likewise.
7222         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
7223         (execute_convert_to_rsqrt): Likewise.
7224         * cfgexpand.c (gimple_to_tree): Simplify.
7225         (release_stmt_tree): Fix for GIMPLE_CALL no longer having
7226         bare FUNCTION_DECL operand.
7227         * tree-nested.c (init_tmp_var_with_call): Use gimple_call_return_type.
7228         (convert_gimple_call): Use gimple_call_fndecl.
7229         * c-common.c (c_warn_unused_result): Likewise.
7230
7231 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7232
7233         PR c/17880
7234         * c-typeck.c (digest_init): Call verify_sequence_points from here.
7235         (c_finish_return): Likewise.
7236         (c_start_case): Likewise.
7237         * c-common.c (warn_for_collisions_1): Use explicit location in warning.
7238         * c-parser.c (c_parser_condition): New. Call
7239         verify_sequence_points.
7240         (c_parser_paren_condition): Call c_parser_condition.
7241         (c_parser_for_statement): Call c_parser_condition.
7242
7243 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7244
7245         PR 36901
7246         * diagnostic.def (DK_PEDWARN, DK_PERMERROR): New.
7247         * diagnostic.c (pedantic_warning_kind, permissive_error_kind):
7248         Moved from diagnostic.h
7249         (diagnostic_report_diagnostic): Return bool. Handle DK_PEDWARN and
7250         DK_PERMERROR.
7251         (emit_diagnostic): New.
7252         (warning0, pedwarn0): Delete.
7253         (warning, warning_at, pedwarn, permerror): Return bool.
7254         * diagnostic.h (pedantic_warning_kind, permissive_error_kind):
7255         Moved to diagnostic.c.
7256         (struct diagnostic_context): Use correct type for
7257         classify_diagnostic.
7258         (diagnostic_report_diagnostic): Update declaration.
7259         (emit_diagnostic): Declare.
7260         * errors.c (warning): Return bool.
7261         * errors.h (warning): Update declaration.
7262         * toplev.h (warning0, pedwarn0): Delete.
7263         (warning, warning_at, pedwarn, permerror): Return bool.
7264         * c-errors.c (pedwarn_c99, pedwarn_c90): Use DK_PEDWARN.
7265         * c-decl.c (locate_old_decl): Delete 'diag' argument. Always use
7266         inform. Update all calls.
7267         (diagnose_mismatched_decls): Check return value of warning/pedwarn
7268         before giving informative note.
7269         (implicit_decl_warning): Likewise.
7270         * c-typeck.c (build_function_call): Likewise.
7271         * tree-sssa.c (warn_uninit): Likewise.
7272         * builtins.c (gimplify_va_arg_expr): Likewise.
7273
7274 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7275
7276         PR 7651
7277         * doc/invoke.texi (-Wextra): Move warning from here...
7278         (-Wuninitialized): ... to here.
7279
7280 2008-08-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7281
7282         PR 28875
7283         * flags.h (set_Wunused): Delete
7284         * toplev.c (process_options): Handle Wunused flags here.
7285         * opts.c (maybe_warn_unused_parameter): Delete.
7286         (common_handle_option): Replace set_Wunused by warn_unused.
7287         (set_Wextra): Do not handle Wunused-parameter here.
7288         (set_Wunused): Delete.
7289         * c-opts.c (c_common_handle_option): Replace set_Wunused by
7290         warn_unused.
7291         * common.opt (Wunused): Add Var and Init.
7292         (Wunused-function): Likewise.
7293         (Wunused-label): Likewise.
7294         (Wunused-parameter): Likewise.
7295         (Wunused-value): Likewise.
7296         (Wunused-variable): Likewise.
7297
7298 2008-08-08  Peter Bergner  <bergner@vnet.ibm.com>
7299
7300         * doc/invoke.texi: Add cpu_type power7.
7301         * config.in (HAVE_AS_VSX): New.
7302         * config.gcc: Add cpu_type power7.
7303         * configure.ac (HAVE_AS_VSX): Check for assembler support of the
7304         VSX instructions.
7305         * configure: Regenerate.
7306         * config/rs6000/rs6000.c (rs6000_override_options): Alias power7 to
7307         power5.
7308         * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Define.
7309         (ASM_CPU_SPEC): Pass %(asm_cpu_power7) for -mcpu=power7.
7310         (EXTRA_SPECS): Add asm_cpu_power7 spec string.
7311
7312 2008-08-08  Dorit Nuzman  <dorit@il.ibm.com>
7313
7314         * tree-vect-transform.c (vectorizable_conversion): Pass the integral
7315         type to vectorize.builtin_conversion.
7316         (vectorizable_conversion): Likewise.
7317         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Always takes
7318         integral type as input.
7319         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Add case for
7320         FIX_TRUNC_EXPR.
7321         (rs6000_expand_builtin): Add case for ALTIVEC_BUILTIN_VCTUXS
7322         and ALTIVEC_BUILTIN_VCTSXS.
7323         (rs6000_builtin_mul_widen_even. rs6000_builtin_mul_widen_odd): Fix
7324         formatting.
7325
7326 2008-08-08  Richard Guenther  <rguenther@suse.de>
7327
7328         * tree-ssa-ccp.c (likely_value): Calls are not all varying.
7329         (surely_varying_stmt_p): Calls are varying only if they are
7330         non-builtin and not indirect or have no result.
7331         (ccp_fold): Re-instantiate code before the tuples merge.
7332
7333 2008-08-08  Richard Guenther  <rguenther@suse.de>
7334
7335         PR tree-optimization/37056
7336         * gimple.h (gimple_assign_rhs_class): New helper function.
7337         * tree-ssa-loop-niter.c (get_val_for): Fix tuplification, handle
7338         unary operations properly.
7339
7340 2008-08-07  Jan Hubicka  <jh@suse.cz>
7341
7342         * i386.h (ix86_size_cost): Declare.
7343         (ix86_cur_cost): New function macro.
7344         * i386.md (peepholes expanding size and splitters): Predicate by
7345         optimize_insn_for_speed_p.
7346         (peepholes reduce size and splitters): Predicate by
7347         optimize_insn_for_size_p.
7348         * i386.c (ix86_size_cost): Rename from ...
7349         (size_cost): This one.
7350         (override_options): Update.
7351         (decide_alg): Likewise.
7352         (ix86_expand_clear): Use RTL profile.
7353         (ix86_pad_returns): Use RTL profile.
7354
7355 2008-08-07  Jan Hubicka  <jh@suse.cz>
7356
7357         * recog.c (split_all_insns): Set RTL profile
7358         (peephole2_optimize): Likewise.
7359         * function.c (thread_prologue_and_epilogue_insns): Likewise.
7360         * combine.c (combine_instructions): Likewise.
7361
7362 2008-08-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7363
7364         * c-common.c (c_common_reswords): Also warn about keyword "bool".
7365
7366 2008-08-07  Bob Wilson  <bob.wilson@acm.org>
7367
7368         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Copy incoming
7369         value in a6 after the set_frame_ptr insn.
7370
7371 2008-08-07  Richard Henderson  <rth@redhat.com>
7372
7373         PR debug/37033
7374         * gcc.c (cpp_options): Pass along -g*.
7375
7376 2008-08-07  Joseph Myers  <joseph@codesourcery.com>
7377
7378         * config/arm/arm.c (output_move_neon): Update comment describing
7379         big-endian vector layout.
7380         (arm_assemble_integer): Do not handle big-endian NEON vectors
7381         specially.
7382         * config/arm/neon.md (vec_set<mode>_internal, vec_extract<mode>,
7383         neon_vget_lane<mode>_sext_internal,
7384         neon_vget_lane<mode>_zext_internal, neon_vget_lane<mode>): Adjust
7385         element indices for big-endian.
7386
7387 2008-08-07  Richard Henderson  <rth@redhat.com>
7388
7389         * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): New.
7390         * configure, config.in: Rebuild.
7391         * debug.h (dwarf2out_do_cfi_asm): Declare.
7392         * c-cppbuiltin.c (c_cpp_builtins): Use it.
7393         * dwarf2out.c (dwarf2out_do_cfi_asm): New.
7394         (dwarf2out_cfi_label, add_fde_cfi, output_call_frame_info,
7395         dwarf2out_begin_prologue, dwarf2out_end_epilogue): Use it.
7396
7397 2008-08-07  Joseph Myers  <joseph@codesourcery.com>
7398
7399         * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
7400         movv2si_internal): Combine into mov<mode>_internal.
7401         (movv2si_internal_2): Remove.
7402
7403 2008-08-07  Jan Hubicka  <jh@suse.cz>
7404
7405         PR target/37048
7406         * i386.md (single stringop patterns): Enable unconditionally.
7407
7408 2008-08-07  H.J. Lu  <hongjiu.lu@intel.com>
7409
7410         PR target/36992
7411         * config/i386/emmintrin.h (_mm_move_epi64): Use __builtin_ia32_movq128.
7412
7413         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVQ128.
7414         (bdesc_args): Add IX86_BUILTIN_MOVQ128.
7415
7416         * config/i386/sse.md (sse2_movq128): New.
7417
7418         * doc/extend.texi: Document __builtin_ia32_movq128.
7419
7420 2008-08-07  Richard Guenther  <rguenther@suse.de>
7421
7422         PR middle-end/37042
7423         * tree-ssa-alias-warnings.c (nonstandard_alias_p): Ref-all
7424         pointers can access anything.
7425
7426 2008-08-06  Jan Hubicka  <jh@suse.cz>
7427
7428         * optabs.c (emit_unop_insn): Break out to ...
7429         (maybe_emit_unop_insn): ... this one.
7430         (expand_sfix_optab): Use maybe variant.
7431         * optabs.h (maybe_emit_unop_insn): Declare.
7432
7433         * i386.md (mov0 patterns): Enable by default.
7434         (FP conversion expanders): Disable expansion of code expanding
7435         sequences when instruction should be optimized for size.
7436         (single strinop patterns): Enable when optimizing for size.
7437         (string expanders): Disable expanding of code expanding sequences
7438         when optimizning instruction for size.
7439         * i386.c (ix86_expand_vector_move_misalign): Do code size optimization
7440         per BB basis.
7441         (ix86_fp_comparison_sahf_cost): Likewise.
7442         (ix86_expand_branch): Likewise.
7443         (ix86_expand_ashl_const): Likewise.
7444         (ix86_split_ashl): Likewise.
7445         (ix86_expand_strlen): Likewise.
7446         (ix86_emit_fp_unordered_jump): Likewie.
7447
7448 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7449
7450         * c-common.c: Fix typo.
7451         (c_common_reswords): Activate more C++ keyword warnings.
7452
7453         * matrix-reorg.c (compute_offset): Avoid C++ keywords.
7454
7455 2008-08-06  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7456
7457         PR 26785
7458         * diagnostic.c (permerror_at): New.
7459         * toplev.h (permerror_at): Declare.
7460
7461 2008-08-06  Victor Kaplansky  <victork@il.ibm.com>
7462             Ira Rosen  <irar@il.ibm.com>
7463
7464         * tree-vect-transform.c (vect_model_simple_cost): Return
7465         immediately if stmt is pure SLP.
7466         (vect_model_store_cost): Ditto.
7467         (vect_model_load_cost): Ditto.
7468         (vectorizable_store): Remove PURE_SLP check before call
7469         to vect_model_store_cost.
7470         (vect_model_store_cost): When checking whether stmt describe
7471         strided access, add a check that it is not slp_node.
7472
7473 2008-08-06  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7474
7475         PR 8715
7476         * c-common.c (warn_for_sign_compare): New. Handle separately the
7477         case that 'constant' is zero.
7478         * c-typeck.c (build_binary_op): Move code to c-common.c
7479
7480 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7481
7482         * config/alpha/alpha.c (alpha_preferred_reload_class,
7483         alpha_secondary_reload, alpha_emit_set_const_1, function_value,
7484         alpha_output_mi_thunk_osf): Avoid C++ keywords.
7485         * config/arm/arm.c (output_move_vfp, output_move_neon): Likewise.
7486         * config/arm/arm.md: Likewise.
7487         * config/avr/avr-protos.h (preferred_reload_class,
7488         test_hard_reg_class, avr_simplify_comparison_p,
7489         out_shift_with_cnt, class_max_nregs): Likewise.
7490         * config/avr/avr.c (class_max_nregs, avr_simplify_comparison_p,
7491         output_movqi, output_movhi, output_movsisf, out_shift_with_cnt,
7492         preferred_reload_class, test_hard_reg_class): Likewise.
7493         * config/bfin/bfin.c (legitimize_pic_address, hard_regno_mode_ok,
7494         bfin_memory_move_cost, bfin_secondary_reload,
7495         bfin_output_mi_thunk): Likewise.
7496         * config/crx/crx.c (crx_secondary_reload_class,
7497         crx_memory_move_cost): Likewise.
7498         * config/frv/frv-protos.h (frv_secondary_reload_class,
7499         frv_class_likely_spilled_p, frv_class_max_nregs): Likewise.
7500         * config/frv/frv.c (frv_override_options, frv_alloc_temp_reg,
7501         frv_secondary_reload_class, frv_class_likely_spilled_p,
7502         frv_class_max_nregs): Likewise.
7503         * config/h8300/h8300.c (h8300_classify_operand,
7504         h8300_unary_length, h8300_bitfield_length, h8300_asm_insn_count):
7505         Likewise.
7506         * config/i386/winnt.c (i386_pe_declare_function_type): Likewise.
7507         * config/ia64/ia64.c (ia64_preferred_reload_class,
7508         ia64_secondary_reload_class, ia64_output_mi_thunk): Likewise.
7509         * config/iq2000/iq2000.c (gen_int_relational): Likewise.
7510         * config/m32c/m32c.c (class_can_hold_mode, m32c_output_compare):
7511         Likewise.
7512         * config/m68hc11/m68hc11.c (preferred_reload_class,
7513         m68hc11_memory_move_cost): Likewise.
7514         * config/mcore/mcore.c (mcore_secondary_reload_class,
7515         mcore_reload_class): Likewise.
7516         * config/mips/mips.c (mips_hard_regno_mode_ok_p,
7517         mips_class_max_nregs, mips_cannot_change_mode_class,
7518         mips_preferred_reload_class, mips_secondary_reload_class,
7519         mips_output_mi_thunk): Likewise.
7520         * config/mmix/mmix.c (mmix_preferred_reload_class,
7521         mmix_preferred_output_reload_class, mmix_secondary_reload_class):
7522         Likewise.
7523         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
7524         Likewise.
7525         * config/pa/pa.c (pa_secondary_reload, pa_combine_instructions,
7526         pa_can_combine_p, pa_cannot_change_mode_class): Likewise.
7527         * config/pa/pa.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
7528         * config/rs6000/rs6000.c (paired_expand_vector_init,
7529         rs6000_secondary_reload_class, rs6000_output_mi_thunk,
7530         compare_section_name, rs6000_memory_move_cost): Likewise.
7531         * config/s390/s390.c (s390_emit_compare_and_swap,
7532         s390_preferred_reload_class, s390_secondary_reload,
7533         legitimize_pic_address, legitimize_tls_address,
7534         legitimize_reload_address, s390_expand_cs_hqi, s390_expand_atomic,
7535         s390_class_max_nregs): Likewise.
7536         * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
7537         * config/s390/s390.md: Likewise.
7538         * config/score/score-protos.h (score_secondary_reload_class,
7539         score_preferred_reload_class): Likewise.
7540         * config/score/score.c (score_preferred_reload_class,
7541         score_secondary_reload_class): Likewise.
7542         * config/score/score3.c (score3_output_mi_thunk,
7543         score3_preferred_reload_class, score3_secondary_reload_class,
7544         score3_hard_regno_mode_ok): Likewise.
7545         * config/score/score3.h (score3_preferred_reload_class,
7546         score3_secondary_reload_class): Likewise.
7547         * config/score/score7.c (score7_output_mi_thunk,
7548         score7_preferred_reload_class, score7_secondary_reload_class,
7549         score7_hard_regno_mode_ok): Likewise.
7550         * config/score/score7.h (score7_preferred_reload_class,
7551         score7_secondary_reload_class): Likewise.
7552         * config/sh/sh.c (prepare_move_operands, output_far_jump,
7553         output_branchy_insn, add_constant, gen_block_redirect,
7554         sh_insn_length_adjustment, sh_cannot_change_mode_class,
7555         sh_output_mi_thunk, replace_n_hard_rtx, sh_secondary_reload): Likewise.
7556         * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
7557         * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi,
7558         xstormy16_output_cbranch_si, xstormy16_secondary_reload_class,
7559         xstormy16_preferred_reload_class): Likewise.
7560         * config/xtensa/xtensa.c (xtensa_expand_compare_and_swap,
7561         xtensa_expand_atomic, override_options,
7562         xtensa_preferred_reload_class, xtensa_secondary_reload_class):
7563         Likewise.
7564         * reorg.c (try_merge_delay_insns): Likewise.
7565         * tree.c (merge_dllimport_decl_attributes): Likewise.
7566
7567         * config/frv/frv.c (frv_print_operand): Change isalpha to ISALPHA.
7568
7569 2008-08-06  Michael Matz  <matz@suse.de>
7570
7571         * Makefile.in (write_entries_to_file): Quote words.
7572         * gengtype.c: (read_input_line): Skip over leading white-space.
7573
7574 2008-08-06  Marc Gauthier  <marc@tensilica.com>
7575
7576         * config.gcc: Match more processor names for Xtensa.
7577         * configure.ac: Likewise.
7578         * doc/install.texi (Specific): Likewise.
7579         * configure: Regenerate.
7580
7581 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7582
7583         * builtins.c (expand_builtin_profile_func): Avoid C++ keywords.
7584         * calls.c (avoid_likely_spilled_reg): Likewise.
7585         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
7586         * cgraph.c (cgraph_clone_edge, cgraph_clone_node): Likewise.
7587         * config/i386/i386.c (ix86_expand_special_args_builtin,
7588         ix86_secondary_reload): Likewise.
7589         * except.c (struct eh_region, gen_eh_region_catch,
7590         remove_unreachable_regions, duplicate_eh_regions,
7591         assign_filter_values, build_post_landing_pads,
7592         sjlj_find_directly_reachable_regions, remove_eh_handler,
7593         reachable_next_level, foreach_reachable_handler,
7594         can_throw_internal_1, can_throw_external_1,
7595         collect_one_action_chain): Likewise.
7596         * expr.c (expand_expr_real_1, vector_mode_valid_p): Likewise.
7597         * fold-const.c (twoval_comparison_p, eval_subst): Likewise.
7598         * function.c (update_temp_slot_address, instantiate_new_reg,
7599         instantiate_virtual_regs_in_rtx,
7600         instantiate_virtual_regs_in_insn): Likewise.
7601         * gimple.c (extract_ops_from_tree, gimple_seq_copy): Likewise.
7602         * gimplify.c (gimplify_call_expr, gimplify_init_constructor,
7603         gimplify_cleanup_point_expr): Likewise.
7604         * ipa-cp.c (ipcp_lattice_changed): Likewise.
7605         * passes.c (next_pass_1): Likewise.
7606         * print-tree.c (print_node_brief, print_node): Likewise.
7607         * profile.c (branch_prob): Likewise.
7608         * tree-dump.c (dump_register): Likewise.
7609         * tree-eh.c (replace_goto_queue_cond_clause, lower_catch):
7610         Likewise.
7611         * tree-inline.c (remap_ssa_name, remap_type_1, remap_blocks,
7612         copy_statement_list, remap_gimple_op_r, copy_tree_body_r,
7613         copy_edges_for_bb, copy_cfg_body, copy_tree_r,
7614         copy_arguments_for_versioning, copy_static_chain): Likewise.
7615         * tree-into-ssa.c (names_replaced_by, add_to_repl_tbl,
7616         add_new_name_mapping, register_new_name_mapping): Likewise.
7617         * tree-mudflap.c (mf_xform_derefs): Likewise.
7618         * tree-predcom.c (struct chain, dump_chain, replace_ref_with,
7619         get_init_expr, combine_chains): Likewise.
7620         * tree-pretty-print.c (dump_generic_node): Likewise.
7621         * tree-ssa-structalias.c (create_variable_info_for): Likewise.
7622         * tree-vrp.c (simplify_cond_using_ranges): Likewise.
7623         * tree.c (substitute_in_expr, iterative_hash_expr): Likewise.
7624         * value-prof.c (gimple_duplicate_stmt_histograms): Likewise.
7625
7626 2008-08-06  H.J. Lu  <hongjiu.lu@intel.com>
7627
7628         PR middle-end/37010
7629         * calls.c (expand_call): Use the biggest preferred stack
7630         boundary.
7631
7632 2008-08-06  Michael Matz  <matz@suse.de>
7633
7634         PR target/36613
7635         * reload.c (push_reload): Merge in,out,in_reg,out_reg members
7636         for reused reload, instead of overwriting them.
7637
7638 2008-08-06  H.J. Lu  <hongjiu.lu@intel.com>
7639
7640         PR middle-end/37009
7641         * cfgexpand.c (expand_stack_alignment): Check parm_stack_boundary
7642         for incoming stack boundary.
7643
7644         * function.c (assign_parm_find_entry_rtl): Update
7645         parm_stack_boundary.
7646
7647         * function.h (rtl_data): Add parm_stack_boundary.
7648
7649         * config/i386/i386.c (ix86_finalize_stack_realign_flags): Check
7650         parm_stack_boundary for incoming stack boundary.
7651
7652 2008-08-06  Joseph Myers  <joseph@codesourcery.com>
7653
7654         * jump.c (rtx_renumbered_equal_p): Do not call subreg_regno_offset
7655         for unrepresentable subregs or treat them as equal to other regs
7656         or subregs with the same register number.
7657
7658 2008-08-06  Aldy Hernandez  <aldyh@redhat.com>
7659
7660         PR middle-end/35432
7661         * gimplify.c (gimplify_modify_expr): Do not optimize zero-sized types
7662         if want_value.
7663
7664 2008-08-06  Jan Hubicka  <jh@suse.cz>
7665
7666         * predict.c (maybe_hot_frequency_p): When profile is absent, all
7667         frequencies might be hot.
7668
7669 2008-08-06  Andreas Krebbel  <krebbel1@de.ibm.com>
7670
7671         * reload.c (find_reloads): Force constants into literal pool
7672         also if they are wrapped in a SUBREG.
7673
7674 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
7675
7676         PR target/35659
7677         * haifa-sched.c (sched_insn_is_legitimate_for_speculation_p): Move ...
7678         * sched-deps.c (sched_insn_is_legitimate_for_speculation_p): ... here.
7679         Don't allow predicated instructions for data speculation.
7680         * sched-int.h (sched_insn_is_legitimate_for_speculation_p): Move
7681         declaration.
7682
7683 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
7684
7685         * haifa-sched.c (extend_global): Split to extend_global_data and
7686         extend_region_data.  Update all uses.
7687         (extend_all): Rename to extend_block_data.
7688
7689 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
7690
7691         * sched-rgn.c (new_ready): Check if instruction can be
7692         speculatively scheduled before attempting speculation.
7693         (debug_rgn_dependencies): Remove wrongful assert.
7694
7695 2008-08-05  Bob Wilson  <bob.wilson@acm.org>
7696
7697         * config/xtensa/t-xtensa: Remove dependency for gt-xtensa.h.
7698
7699 2008-08-05  Bob Wilson  <bob.wilson@acm.org>
7700
7701         * config/xtensa/xtensa.c (xtensa_va_start): Unshare valist.
7702         (xtensa_gimplify_va_arg_expr): Unshare valist, orig_ndx, ndx, array,
7703         va_size, and type_size.
7704
7705 2008-08-04  Jason Merrill  <jason@redhat.com>
7706
7707         PR c++/37016
7708         * tree-ssa.c (useless_type_conversion_p_1): Call langhook
7709         if TYPE_STRUCTURAL_EQUALITY_P is true for both types.
7710
7711 2008-08-05  Richard Henderson  <rth@redhat.com>
7712
7713         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Check .cfi_personality.
7714         * configure: Rebuild.
7715
7716 2008-08-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7717
7718         PR tree-opt/37024
7719         * tree-tailcall.c (process_assignment): Use gimple_assign_cast_p
7720         instead of IS_CONVERT_EXPR_CODE_P for seeing if the assignment
7721         is a conversion.
7722
7723 2008-08-05  Richard Henderson  <rth@redhat.com>
7724
7725         * Makefile.in (c-cppbuiltin.o): Depend on debug.h.
7726         * c-cppbuiltin.c (c_cpp_builtins): Define __GCC_HAVE_DWARF2_CFI_ASM.
7727         * doc/cpp.texi (__GCC_HAVE_DWARF2_CFI_ASM): Document it.
7728         * common.opt (fdwarf2-cfi-asm): New.
7729         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): New.
7730         * config.in, configure: Rebuild.
7731         * dwarf2asm.c (dw2_asm_output_data_raw): New.
7732         (dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_sleb128_raw):
7733         New.
7734         (dw2_force_const_mem): Externalize.
7735         * dwarf2asm.h: Update.
7736         * dwarf2out.c (dwarf2out_cfi_label): If flag_dwarf2_cfi_asm, don't
7737         generate a real label.
7738         (output_cfi_directive): New.
7739         (add_fde_cfi): If flag_dwarf2_cfi_asm, use it.
7740         (output_call_frame_info): Do nothing if flag_dwarf2_cfi_asm.
7741         (dwarf2out_begin_prologue): Emit .cfi_startproc, .cfi_personality,
7742         and .cfi_lsda.
7743         (dwarf2out_end_epilogue): Emit .cfi_endproc.
7744         (output_loc_operands_raw, output_loc_sequence_raw): New.
7745         (output_cfa_loc_raw): New.
7746
7747 2008-08-05  Paul Brook  <paul@codesourcery.com>
7748
7749         * doc/invoke.texi: Document new ARM -mfpu= and -mcpu= options.
7750         * config/arm/arm.c (all_fpus): Add vfpv3 and vfpv3-d16.
7751         (fp_model_for_fpu): Add entry for FPUTYPE_VFP3D16.
7752         (arm_file_start): Add FPUTYPE_VFP3D16.  Rename vfp3 to vfpv3.
7753         * config/arm/arm.h (TARGET_VFPD32): Define.
7754         (TARGET_VFP3): Use TARGET_VFPD32.
7755         (fputype): Add FPUTYPE_VFP3D16.
7756         (LAST_VFP_REGNUM): Use TARGET_VFPD32.
7757         * config/arm/constraints.md ("w"): Use TARGET_VFPD32.
7758         * config/arm/arm-cores.def: Add cortex-r4f.
7759         * config/arm/arm-tune.md: Regenerate.
7760
7761 2008-08-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7762
7763         * config/spu_spu_mfcio.h: Wrap in extern "C" if __cplusplus.
7764         Reword some comments throughout the file.
7765
7766         (MFC_MIN_DMA_LIST_ELEMENTS): New define.
7767         (MFC_MAX_DMA_LIST_ELEMENTS): Likewise.
7768         (MFC_MIN_DMA_LIST_SIZE): Redefine in terms of
7769         MFC_MIN_DMA_LIST_ELEMENTS.
7770         (MFC_MAX_DMA_LIST_SIZE): Redefine in terms of
7771         MFC_MAX_DMA_LIST_ELEMENTS.
7772
7773         (MFC_START_ENABLE): Remove PPU-only define.
7774         (MFC_PUTS_CMD, MFC_PUTFS_CMD, MFC_PUTBS_CMD): Likewise.
7775         (MFC_GETS_CMD, MFC_GETFS_CMD, MFC_GETBS_CMD): Likewise.
7776
7777         (MFC_PUTB_CMD, MFC_PUTF_CMD): Reimplement using symbolic constants.
7778         (MFC_PUTL_CMD, MFC_PUTLB_CMD, MFC_PUTLF_CMD): Likewise.
7779         (MFC_PUTR_CMD, MFC_PUTRB_CMD, MFC_PUTRF_CMD): Likewise.
7780         (MFC_PUTRL_CMD, MFC_PUTRLB_CMD, MFC_PUTRLF_CMD): Likewise.
7781         (MFC_GETB_CMD, MFC_GETF_CMD): Likewise.
7782         (MFC_GETL_CMD, MFC_GETLB_CMD, MFC_GETLF_CMD): Likewise.
7783         (MFC_SNDSIGB_CMD, MFC_SNDSIGF_CMD): Likewise.
7784
7785         (MFC_SDCRT_CMD, MFC_SDCRTST_CMD): New defines.
7786         (MFC_SDCRZ_CMD, MFC_SDCRST_CMD, MFC_SDCRF_CMD): Likewise.
7787         (mfc_sdcrt, mfc_sdcrtst): Likewise.
7788         (mfc_sdcrz, mfc_sdcrst, mfc_sdcrf): Likewise.
7789
7790         (spu_read_machine_status): Fix typo.
7791
7792 2008-08-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7793
7794         * config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Allow (multi)word-sized
7795         SUBREG of multi-word hard register.
7796         * config/spu/spu.c (valid_subreg): Likewise.
7797         (adjust_operand): Handle SUBREGs of multi-word hard registers.
7798
7799 2008-08-04  Richard Guenther  <rguenther@suse.de>
7800
7801         * tree-ssa-loop-ivopts.c (add_iv_value_candidates): Also add
7802         the candidate with the stripped base if that base is different
7803         from the original base even for offset zero.
7804
7805 2008-08-04  Richard Guenther  <rguenther@suse.de>
7806
7807         PR middle-end/36691
7808         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Correctly
7809         check for no_overflow.
7810
7811 2008-08-04  Richard Guenther  <rguenther@suse.de>
7812
7813         * tree-vect-transform.c (vectorizable_call): Fix tuplification.
7814
7815 2008-08-04  Paul Brook  <paul@codesourcery.com>
7816
7817         * cofig/arm/arm.c (thumb_core_reg_alloc_order): New.
7818         (arm_order_regs_for_local_alloc): New function.
7819         * config/arm/arm-protos.h (arm_order_regs_for_local_alloc): Add
7820         prototype.
7821         * config/arm/arm.h (ORDER_REGS_FOR_LOCAL_ALLOC): Define.
7822
7823 2008-08-04  H.J. Lu  <hongjiu.lu@intel.com>
7824
7825         PR target/37012
7826         * config/i386/i386.c (ix86_expand_prologue): Use UNITS_PER_WORD
7827         instead of STACK_BOUNDARY / BITS_PER_UNIT to align stack.
7828         (ix86_expand_epilogue): Likewise.
7829
7830 2008-08-04  H.J. Lu  <hongjiu.lu@intel.com>
7831
7832         * config/i386/i386.c (ix86_compute_frame_layout): Fix a typo
7833         in comments.
7834
7835 2008-08-03  Uros Bizjak  <ubizjak@gmail.com>
7836
7837         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use Yi instead of x
7838         to avoid inter-unit moves for !TARGET_INTER_UNIT_MOVES.
7839         (*movv2sf_internal_rex64): Ditto.
7840
7841 2008-08-03  Jan Hubicka  <jh@suse.cz>
7842
7843         * optabs.c (expand_binop, expand_builtin_pow, expand_builtin_powi,
7844         expand_builtin_strcat): Upse optimize_insn_for_speed predicate.
7845         * expmed.c (expand_smod_pow2): Likewise.
7846
7847 2008-08-03  Uros Bizjak  <ubizjak@gmail.com>
7848
7849         PR target/36992
7850         * config/i386/sse.md (vec_concatv2di): Add Y2 constraint to
7851         alternative 0 of operand 1.
7852         (*vec_concatv2di_rex64_sse): Ditto.
7853         (*vec_concatv2di_rex64_sse4_1): Add x constraint to alternative 0
7854         of operand 1.
7855         (*sse2_storeq_rex64): Penalize allocation of "r" registers.
7856         * config/i386/mmx.md (*mov<mode>_internal_rex64): Penalize allocation
7857         of "Y2" registers to avoid SSE <-> MMX conversions for DImode moves.
7858         (*movv2sf_internal_rex64): Ditto.
7859
7860 2008-08-02  Richard Guenther  <rguenther@suse.de>
7861
7862         PR target/35252
7863         * config/i386/sse.md (SSEMODE4S, SSEMODE2D): New mode iterators.
7864         (ssedoublesizemode): New mode attribute.
7865         (sse_shufps): Call gen_sse_shufps_v4sf.
7866         (sse_shufps_1): Macroize.
7867         (sse2_shufpd): Call gen_Sse_shufpd_v2df.
7868         (sse2_shufpd_1): Macroize.
7869         (vec_extract_odd, vec_extract_even): New expanders.
7870         (vec_interleave_highv4sf, vec_interleave_lowv4sf,
7871         vec_interleave_highv2df, vec_interleave_lowv2df): Likewise.
7872         * i386.c (ix86_expand_vector_init_one_nonzero): Call
7873         gen_sse_shufps_v4sf instead of gen_sse_shufps_1.
7874         (ix86_expand_vector_set): Likewise.
7875         (ix86_expand_reduc_v4sf): Likewise.
7876
7877 2008-08-01  Doug Kwan  <dougkwan@google.com>
7878
7879         * matrix-reorg.c: Re-enable all code.
7880         (struct malloc_call_data): Change CALL_STMT to gimple type.
7881         (collect_data_for_malloc_call): Tuplify.
7882         (struct access_site_info): Change STMT to gimple type.
7883         (struct matrix_info): Change MIN_INDIRECT_LEVEL_ESCAPE_STMT,
7884         and MALLOC_FOR_LEVEL to gimple and gimple pointer type.
7885         (struct free_info): Change STMT to gimple type.
7886         (struct matrix_access_phi_node):  Change PHI to gimple type.
7887         (get_inner_of_cast_expr): Remove.
7888         (may_flatten_matrices_1): Tuplify.
7889         (may_flatten_matrices): Ditto.
7890         (mark_min_matrix_escape_level): Ditto.
7891         (ssa_accessed_in_tree): Refactor statement RHS related code into ...
7892         (ssa_accessed_in_call_rhs): New
7893         (ssa_accessed_in_assign_rhs): New
7894         (record_access_alloc_site_info): Tuplify.
7895         (add_allocation_site): Ditto.
7896         (analyze_matrix_allocation_site): Ditto.
7897         (analyze_transpose): Ditto.
7898         (get_index_from_offset): Ditto.
7899         (update_type_size): Ditto.
7900         (analyze_accesses_for_call_expr): Tuplify and renamed into ...
7901         (analyze_accesses_for_call_stmt): New. Also handle LHS of a call.
7902         (analyze_accesses_for_phi_node): Tuplify.
7903         (analyze_accesses_for_modify_stmt): Tuplify and renamed into ...
7904         (analyze_accesses_for_assign_stmt): Remove code for handling call LHS.
7905         (analyze_matrix_accesses): Tuplify.
7906         (check_var_data): New call-back type for check_var_notmodified_p.
7907         (check_var_notmodified_p): Tuplify and use call-back struct to
7908         return statement found.
7909         (can_calculate_expr_before_stmt): Factor out statement related code
7910         into ...
7911         (can_calculate_stmt_before_stmt): New.
7912         (check_allocation_function): Tuplify.
7913         (find_sites_in_func): Ditto.
7914         (record_all_accesses_in_func): Ditto.
7915         (transform_access_sites): Ditto.
7916         (transform_allocation_sites): Ditto.
7917         (matrix_reorg): Re-enable.
7918         (gate_matrix_reorg): Re-enable.
7919
7920 2008-08-01  Jakub Jelinek  <jakub@redhat.com>
7921
7922         * dwarf2out.c (compute_barrier_args_size): Set barrier_args_size
7923         for labels for which it hasn't been set yet.  If it has been set,
7924         stop walking insns and continue with next worklist item.
7925         (dwarf2out_stack_adjust): Don't call compute_barrier_args_size
7926         if the only BARRIER is at the very end of a function.
7927
7928 2008-08-01  H.J. Lu  <hongjiu.lu@intel.com>
7929
7930         * cfgexpand.c (expand_stack_alignment): Assert that
7931         stack_realign_drap and drap_rtx must match.
7932
7933         * function.c (instantiate_new_reg): If DRAP is used to realign
7934         stack, replace virtual_incoming_args_rtx with internal arg
7935         pointer.
7936
7937 2008-08-01  Richard Guenther  <rguenther@suse.de>
7938
7939         * tree-ssa-pre.c (fini_pre): Take in_fre parameter.  Free
7940         loop information only if we initialized it.
7941         (execute_pre): Call fini_pre with in_fre.
7942         * tree-ssa-loop-ivcanon (try_unroll_loop_completely): Dump
7943         if we do not unroll because we hit max-completely-peeled-insns.
7944         Use our estimation for consistency, do allow shrinking.
7945
7946 2008-08-01  H.J. Lu  <hongjiu.lu@intel.com>
7947
7948         * config/i386/i386.c (override_options): Replace ABI_STACK_BOUNDARY
7949         with MIN_STACK_BOUNDARY.
7950         (ix86_update_stack_boundary): Likewise.
7951         (ix86_expand_prologue): Assert MIN_STACK_BOUNDARY instead of
7952         STACK_BOUNDARY.
7953
7954         * config/i386/i386.h (ABI_STACK_BOUNDARY): Renamed to ...
7955         (MIN_STACK_BOUNDARY): This.
7956
7957 2008-08-01  Richard Guenther  <rguenther@suse.de>
7958
7959         PR middle-end/36997
7960         * gimplify.c (gimplify_call_expr): Set error_mark_node on GS_ERROR.
7961
7962 2008-08-01  Richard Guenther  <rguenther@suse.de>
7963
7964         PR tree-optimization/36988
7965         * tree-ssa-ccp.c (ccp_fold): Conversions of constants only
7966         do not matter if that doesn't change volatile qualification.
7967
7968 2008-08-01  Paolo Bonzini  <bonzini@gnu.org>
7969
7970         * configure.ac: Do not generate libada-mk.  Do not subst
7971         host_cc_for_libada.
7972         * libada-mk.in: Remove.
7973         * Makefile.in: Pass TARGET_LIBGCC2_CFLAGS to libgcc.mvars.
7974         * configure: Regenerate.
7975
7976 2008-08-01  Basile Starynkevitch  <basile@starynkevitch.net>
7977
7978         * tree-pass.h: Added comment about not dumping passes with name
7979         starting with star in struct opt_pass.
7980         * passes.c (register_dump_files_1): Don't do dump for a pass with
7981         name starting with star.
7982         * doc/passes.texi (Pass manager): Mention pass names and special
7983         meaning of star prefix to avoid dump.
7984
7985 2008-07-31  Adam Nemet  <anemet@caviumnetworks.com>
7986
7987         * config.gcc (mipsisa64r2*-*-linux*): New configuration.  Set ISA
7988         to MIPS64r2.
7989         * config/mips/mips.h (GENERATE_MIPS16E): Update comment.
7990         (ISA_MIPS64R2): New macro.
7991         (TARGET_CPU_CPP_BUILTINS, MULTILIB_ISA_DEFAULT): Handle it.
7992         (ISA_HAS_64BIT_REGS, ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE,
7993         ISA_HAS_8CC, ISA_HAS_FP4, ISA_HAS_PAIRED_SINGLE,
7994         ISA_HAS_MADD_MSUB, ISA_HAS_NMADD4_NMSUB4, ISA_HAS_CLZ_CLO,
7995         ISA_HAS_ROR, ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX, ISA_HAS_SEB_SEH,
7996         ISA_HAS_EXT_INS, ISA_HAS_MXHC1, ISA_HAS_HILO_INTERLOCKS,
7997         ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Return true for ISA_MIPS64R2.
7998         (MIPS_ISA_LEVEL_SPEC, ASM_SPEC, LINK_SPEC): Handle -mips64r2.
7999         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF):
8000         Move up to keep list alphabetically sorted.
8001         (TUNE_20KC, TUNE_24K, TUNE_74K, TUNE_LOONGSON_2EF): Likewise.
8002         * config/mips/mips.c (mips_cpu_info_table): Add default MIPS64r2
8003         processor.
8004         * doc/invoke.texi (MIPS Options): Add -mips64r2.
8005         (-march=@var{arch}): Add mips64r2.
8006
8007 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
8008
8009         * config/i386/darwin.h (MAIN_STACK_BOUNDARY): Define to 128.
8010
8011 2008-07-31  Steve Ellcey  <sje@cup.hp.com>
8012
8013         * expr.c (expand_assignment): Check for complete type.
8014
8015 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
8016
8017         PR debug/36977
8018         * cfgexpand.c (expand_stack_alignment): Set stack_realign_tried.
8019
8020         * dwarf2out.c (based_loc_descr): Check crtl->stack_realign_tried
8021         for stack alignment.
8022
8023         * function.h (rtl_data): Add stack_realign_tried.  Update comments.
8024
8025 2008-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
8026
8027         * config/sh/sh.c (sh_canonical_va_list_type): Remove.
8028         (TARGET_CANONICAL_VA_LIST_TYPE): Remove.
8029
8030 2008-07-31  Jakub Jelinek  <jakub@redhat.com>
8031
8032         PR rtl-optimization/36419
8033         * dwarf2out.c (barrier_args_size): New variable.
8034         (compute_barrier_args_size, compute_barrier_args_size_1): New
8035         functions.
8036         (dwarf2out_stack_adjust): For BARRIERs call compute_barrier_args_size
8037         if not called yet in the current function, use barrier_args_size
8038         array to find the new args_size value.
8039         (dwarf2out_frame_debug): Free and clear barrier_args_size.
8040
8041 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
8042
8043         PR debug/36980
8044         * dwarf2out.c (dwarf2out_frame_debug_expr): Move rule 17 before
8045         rule 19.
8046
8047 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
8048
8049         PR debug/36976
8050         * dwarf2out.c (dwarf2out_args_size_adjust): New.
8051         (dwarf2out_stack_adjust): Use it.
8052         (dwarf2out_frame_debug_expr): Likewise.
8053
8054 2008-07-31  Richard Guenther  <rguenther@suse.de>
8055
8056         PR tree-optimization/36978
8057         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Do not fold
8058         the generated condition.
8059
8060 2008-07-31  Richard Guenther  <rguenther@suse.de>
8061
8062         * passes.c (init_optimization_passes): Always call
8063         pass_early_warn_uninitialized.
8064         * opts.c (decode_options): Do not warn about -Wuninitialized at -O0.
8065         * doc/invoke.texi (-Wuninitialized): Correct for enabling at -O0.
8066         * doc/passes.texi (Warn for uninitialized variables): Adjust.
8067
8068 2008-07-31  Jakub Jelinek  <jakub@redhat.com>
8069
8070         PR c/36970
8071         * builtins.c (maybe_emit_free_warning): New function.
8072         (expand_builtin): Process BUILT_IN_FREE even at -O0.  Call
8073         maybe_emit_free_warning for BUILT_IN_FREE.
8074
8075         PR debug/36278
8076         * dwarf2out.c (get_context_die): New function.
8077         (force_decl_die, force_type_die): Use it.
8078         (dwarf2out_imported_module_or_decl): Likewise.  If base_type_die
8079         returns NULL, force generation of DW_TAG_typedef and put that into
8080         DW_AT_import.
8081
8082         PR preprocessor/36649
8083         * c-pch.c (c_common_read_pch): Save and restore
8084         line_table->trace_includes across PCH restore.
8085
8086 2008-07-30  Eric Botcazou  <ebotcazou@adacore.com>
8087
8088         PR ada/36554
8089         * dwarf2out.c (is_subrange_type): Deal with BOOLEAN_TYPE.
8090
8091 2008-07-30  Rafael Ãƒvila de Espíndola  <espindola@google.com>
8092
8093         PR 36974
8094         * final.c (call_from_call_insn): Handle COND_EXEC.
8095
8096 2008-07-30  H.J. Lu  <hongjiu.lu@intel.com>
8097
8098         * builtins.c (std_gimplify_va_arg_expr): Replace
8099         PREFERRED_STACK_BOUNDARY with MAX_SUPPORTED_STACK_ALIGNMENT.
8100         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
8101
8102 2008-07-30  Joey Ye  <joey.ye@intel.com>
8103             H.J. Lu  <hongjiu.lu@intel.com>
8104
8105         * builtins.c (expand_builtin_setjmp_receiver): Replace
8106         virtual_incoming_args_rtx with crtl->args.internal_arg_pointer.
8107         (expand_builtin_apply_args_1): Likewise.
8108         (expand_builtin_longjmp): Need DRAP for stack alignment.
8109         (expand_builtin_apply): Likewise.
8110
8111         * caller-save.c (setup_save_areas): Call assign_stack_local_1
8112         instead of assign_stack_local to allow alignment reduction.
8113
8114         * calls.c (emit_call_1): Need DRAP for stack alignment if
8115         return pops.
8116         (expand_call): Replace virtual_incoming_args_rtx with
8117         crtl->args.internal_arg_pointer.
8118         * stmt.c (expand_nl_goto_receiver): Likewise.
8119
8120         * cfgexpand.c (get_decl_align_unit): Estimate stack variable
8121         alignment and store to stack_alignment_estimated and
8122         max_used_stack_slot_alignment.
8123         (expand_one_var): Likewise.
8124         (expand_stack_alignment): New function.
8125         (tree_expand_cfg): Initialize max_used_stack_slot_alignment
8126         and stack_alignment_estimated fields in rtl_data.  Call
8127         expand_stack_alignment at end.
8128
8129         * defaults.h (INCOMING_STACK_BOUNDARY): New.
8130         (MAX_STACK_ALIGNMENT): Likewise.
8131         (MAX_SUPPORTED_STACK_ALIGNMENT): Likewise.
8132         (SUPPORTS_STACK_ALIGNMENT): Likewise.
8133
8134         * emit-rtl.c (gen_reg_rtx): Estimate stack alignment for
8135         stack alignment when generating virtual registers.
8136
8137         * function.c (assign_stack_local): Renamed to ...
8138         (assign_stack_local_1): This.  Add a parameter to indicate
8139         if it is OK to reduce alignment.
8140         (assign_stack_local): Use it.
8141         (instantiate_new_reg): Instantiate virtual incoming args rtx
8142         to vDRAP if stack realignment and DRAP is needed.
8143         (assign_parms): Collect parameter/return type alignment and
8144         contribute to stack_alignment_estimated.
8145         (locate_and_pad_parm): Likewise.
8146         (get_arg_pointer_save_area): Replace virtual_incoming_args_rtx
8147         with crtl->args.internal_arg_pointer.
8148
8149         * function.h (rtl_data): Add new field drap_reg,
8150         max_used_stack_slot_alignment, stack_alignment_estimated,
8151         stack_realign_needed, need_drap, stack_realign_processed and
8152         stack_realign_finalized.
8153         (stack_realign_fp): New macro.
8154         (stack_realign_drap): Likewise.
8155
8156         * global.c (compute_regsets): Frame pointer is needed when
8157         stack is realigned.  Can eliminate frame pointer when stack is
8158         realigned and dynamic realigned argument pointer isn't used.
8159
8160         * reload1.c (update_eliminables):  Frame pointer is needed
8161         when stack is realigned.
8162         (init_elim_table): Can eliminate frame pointer when stack is
8163         realigned and dynamic realigned argument pointer isn't used.
8164
8165         * rtl.h (assign_stack_local_1): Declare new funtion.
8166
8167         * target-def.h (TARGET_UPDATE_STACK_BOUNDARY): New.
8168         (TARGET_GET_DRAP_RTX): Likewise.
8169         (TARGET_CALLS): Add TARGET_UPDATE_STACK_BOUNDARY and
8170         TARGET_GET_DRAP_RTX.
8171
8172         * target.h (gcc_target): Add update_stack_boundary and get_drap_rtx.
8173
8174         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
8175         STACK_BOUNDARY with MAX_STACK_ALIGNMENT.
8176
8177 2008-07-30  Xuepeng Guo  <xuepeng.guo@intel.com>
8178             H.J. Lu  <hongjiu.lu@intel.com>
8179
8180         * dwarf2out.c (dw_fde_struct): Add stack_realignment, drap_reg,
8181         vdrap_reg, stack_realign and drap_reg_saved.
8182         (add_cfi): Don't allow redefining CFA when DRAP is used.
8183         (reg_save): Handle stack alignment.
8184         (dwarf2out_frame_debug_expr): Add rules 16-20 to handle stack
8185         alignment.  Don't generate DWARF information for (set fp sp)
8186         when DRAP is used.
8187         (dwarf2out_begin_prologue): Initialize drap_reg and vdrap_reg
8188         to INVALID_REGNUM.
8189         (int_loc_descriptor): Move prototype forward.  Also define if
8190         DWARF2_UNWIND_INFO is true.
8191         (output_cfa_loc): Handle DW_CFA_expression.
8192         (build_cfa_aligned_loc): New.
8193         (based_loc_descr): Update assert for stack realign.  For local
8194         variables, use sp+offset when stack is aligned without drap and
8195         fp+offset when stack is aligned with drap.  For arguments, use
8196         cfa+offset when drap is used to align stack.
8197
8198 2008-07-30  Joey Ye  <joey.ye@intel.com>
8199             H.J. Lu  <hongjiu.lu@intel.com>
8200
8201         * config/i386/i386.c (ix86_force_align_arg_pointer_string):
8202         Break long line.
8203         (ix86_gen_andsp): New.
8204         (ix86_user_incoming_stack_boundary): Likewise.
8205         (ix86_default_incoming_stack_boundary): Likewise.
8206         (ix86_incoming_stack_boundary): Likewise.
8207         (ix86_can_eliminate): Likewise.
8208         (find_drap_reg): Likewise.
8209         (ix86_update_stack_boundary): Likewise.
8210         (ix86_get_drap_rtx): Likewise.
8211         (ix86_finalize_stack_realign_flags): Likewise.
8212         (TARGET_UPDATE_STACK_BOUNDARY): Likewise.
8213         (TARGET_GET_DRAP_RTX): Likewise.
8214         (override_options): Overide option value for new options.
8215         (ix86_function_ok_for_sibcall): Remove check for
8216         force_align_arg_pointer.
8217         (ix86_handle_cconv_attribute): Likewise.
8218         (ix86_function_regparm): Likewise.
8219         (setup_incoming_varargs_64): Don't set stack_alignment_needed here.
8220         (ix86_va_start): Replace virtual_incoming_args_rtx with
8221         crtl->args.internal_arg_pointer.
8222         (ix86_select_alt_pic_regnum): Check DRAP register.
8223         (ix86_save_reg): Replace force_align_arg_pointer with drap_reg.
8224         (ix86_compute_frame_layout): Compute frame layout wrt stack
8225         realignment.
8226         (ix86_internal_arg_pointer): Just return virtual_incoming_args_rtx.
8227         (ix86_expand_prologue): Decide if stack realignment is needed
8228         and generate prologue code accordingly.
8229         (ix86_expand_epilogue): Generate epilogue code wrt stack
8230         realignment is really needed or not.
8231
8232         * config/i386/i386.h (MAIN_STACK_BOUNDARY): New.
8233         (ABI_STACK_BOUNDARY): Likewise.
8234         (PREFERRED_STACK_BOUNDARY_DEFAULT): Likewise.
8235         (STACK_REALIGN_DEFAULT): Likewise.
8236         (INCOMING_STACK_BOUNDARY): Likewise.
8237         (MAX_STACK_ALIGNMENT): Likewise.
8238         (ix86_incoming_stack_boundary): Likewise.
8239         (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Removed.
8240         (REAL_PIC_OFFSET_TABLE_REGNUM): Updated to use BX_REG.
8241         (CAN_ELIMINATE): Defined with ix86_can_eliminate.
8242         (machine_function): Remove force_align_arg_pointer.
8243
8244         * config/i386/i386.md (BX_REG): New.
8245         (R13_REG): Likewise.
8246
8247         * config/i386/i386.opt (mforce_drap): New.
8248         (mincoming-stack-boundary): Likewise.
8249         (mstackrealign): Add Init(-1).
8250
8251         * config/i386/i386-protos.h (ix86_can_eliminate): New
8252
8253 2008-07-30  H.J. Lu  <hongjiu.lu@intel.com>
8254
8255         * doc/extend.texi: Update force_align_arg_pointer.
8256
8257         * doc/invoke.texi: Document -mincoming-stack-boundary.  Update
8258         -mstackrealign.
8259
8260         * doc/tm.texi (MAX_STACK_ALIGNMENT): Add macro.
8261         (INCOMING_STACK_BOUNDARY): Likewise.
8262         (TARGET_UPDATE_STACK_BOUNDARY): New target hook.
8263         (TARGET_GET_DRAP_RTX): Likewise.
8264
8265 2008-07-30  Andreas Schwab  <schwab@suse.de>
8266
8267         PR rtl-optimization/36929
8268         * dse.c (replace_inc_dec): Use emit_insn_before instead of
8269         add_insn_before and fix argument order.
8270         (replace_inc_dec_mem): Handle NULL rtx.
8271
8272 2008-07-30  Andrew Jenner  <andrew@codesourcery.com>
8273
8274         * config/arm/arm.c (arm_compute_static_chain_stack_bytes): New
8275         function.
8276         (arm_compute_initial_elimination_offset): Use it.
8277         (arm_compute_save_reg_mask): Include static chain save slot when
8278         calculating alignment.
8279         (arm_get_frame_offsets): Ditto.
8280         (thumb1_compute_save_reg_mask): Ensure we have a low register saved
8281         that we can use to decrement the stack when the stack decrement
8282         could be too big for an immediate value in a single insn.
8283         (thumb1_expand_prologue): Avoid using r12 for stack decrement.
8284
8285 2008-07-30  Richard Guenther  <rguenther@suse.de>
8286
8287         PR tree-optimization/36967
8288         * tree-predcom.c (remove_stmt): Use gimple_assign_ssa_name_copy_p.
8289         Release defs of statements we remove.
8290
8291 2008-07-30  Nathan Froyd  <froydnj@codesourcery.com>
8292
8293         * config/arm/arm.c (arm_expand_prologue): Use 0-length rtvec
8294         instead of NULL_RTVEC.
8295
8296 2008-07-30  Nathan Froyd  <froydnj@codesourcery.com>
8297
8298         PR target/35866
8299
8300         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Add clause for
8301         vector modes.
8302
8303 2008-07-30  Rafael Ãƒvila de Espíndola  <espindola@google.com>
8304
8305         * final.c (call_from_call_insn): New.
8306         (final_scan_insn): Call assemble_external on FUNCTION_DECLs.
8307
8308 2008-07-30  Paolo Bonzini  <bonzini@gnu.org>
8309
8310         * configure.ac: Substitute ADA_CFLAGS.
8311         * configure: Regenerate.
8312         * config.host: Remove mention of pa/x-ada and pa/x-ada-hpux10 files.
8313         * Makefile.in: Remove mention of X_* variables.
8314         * config/pa/x-ada-hpux10: Remove.
8315         * config/pa/x-ada: Remove.
8316
8317         * doc/fragments.texi: Update.
8318
8319 2008-07-30  Olivier Hainque  <hainque@adacore.com>
8320
8321         * config/mips/irix-crti.asm: .hide __gcc_init and __gcc_fini.
8322         * config/mips/iris6.h (IRIX_SUBTARGET_LINK_SPEC, irix ld): Hide
8323         __dso_handle explicitly here.
8324
8325 2008-07-30  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8326
8327         PR 34389
8328         * c-typeck.c (build_binary_op): Encapsulate code into...
8329         * c-common.c (shorten_binary_op): ...this new function.
8330         (conversion_warning): Use the new function. Handle non-negative
8331         constant in bitwise-and.
8332         * c-common.h (shorten_binary_op): Declare.
8333
8334 2008-07-30  Olivier Hainque  <hainque@adacore.com>
8335
8336         * scan.c (make_sstring_space): Add explicit conversions of
8337         allocator's return value.
8338         * fix-header.c (recognized_function): Likewise.
8339
8340 2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8341
8342         * doc/cpp.texi: Update to GFDL 1.2.
8343         * doc/gcc.texi: Do not list GPL as Invariant Section.
8344         * doc/gccint.texi: Likewise.  Update copyright years.
8345         * doc/install.texi: Update copyright years.
8346
8347 2008-07-30  Alan Modra  <amodra@bigpond.net.au>
8348
8349         PR target/36955
8350         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add
8351         a use of pic_offset_table_rtx for -msecure-plt __tls_get_addr calls.
8352
8353 2008-07-29  Jan Hubicka  <jh@suse.cz>
8354
8355         * c-decl.c (merge_decls): Do not handle DECL_INLINE.
8356         (grokdeclarator): Likewise.
8357         * langhooks.c (lhd_warn_unused_global_decl): Use
8358         DECL_DECLARED_INLINE_P.
8359         * print-tree.c (print_node): Remove DECL_INLINE check.
8360
8361 2008-07-29  Richard Guenther  <rguenther@suse.de>
8362
8363         PR tree-optimization/36945
8364         * tree-ssa-sccvn.h (copy_reference_ops_from_ref): Declare.
8365         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Export.
8366         Record invariant addresses un-decomposed.
8367         (copy_reference_ops_from_call): Record reference call
8368         arguments properly.  Simplify.
8369         * tree-ssa-pre.c (create_component_ref_by_pieces_1): New
8370         helper split out from ...
8371         (create_component_ref_by_pieces): ... here.  Simplify.
8372         Prepare for recursive invocation for call arguments.
8373         (create_expression_by_pieces): Adjust call to
8374         create_component_ref_by_pieces.
8375         (compute_avail): Process operand 2 of reference ops.
8376
8377 2008-07-29  Richard Guenther  <rguenther@suse.de>
8378
8379         * gimplify.c (gimplify_expr): Clear TREE_SIDE_EFFECTS for OBJ_TYPE_REF.
8380
8381 2008-07-29  Jakub Jelinek  <jakub@redhat.com>
8382
8383         * c-format.c (check_format_types): Revert unwanted checkin.
8384
8385 2008-07-29  Jan Hubicka  <jh@suse.cz>
8386
8387         * flags.h (flag_really_no_inline): Remove.
8388         * cgraph.c (cgraph_function_possibly_inlined_p): Simplify.
8389         * toplev.c (flag_really_no_inline): Remove.
8390         * c-cppbuiltin.c (c_cpp_builtins): Use flag_no_inline.
8391         * ipa-inline.c (cgraph_decide_inlining): Do not check flag_no_inline.
8392         (cgraph_decide_inlining_incrementally): Likewise.
8393         (compute_inline_parameters): Likewise.
8394         * opts.c (decode_options): Simplify.
8395         * c-opts.c (c_common_post_options): Do not set flag_no_inline.
8396         * common.opt (finline): Initialize to 1.
8397         * tree-inline.c (inlinable_function_p): Check flag_no_inline.
8398
8399 2008-07-29  Jan Hubicka  <jh@suse.cz>
8400
8401         * predict.c (always_optimize_for_size_p): New function.
8402         (optimize_bb_for_size_p, optimize_bb_for_speed_p,
8403         optimize_edge_for_size_p, optimize_edge_for_speed_p,
8404         optimize_insn_for_size_p, optimize_insn_for_speed_p): New global
8405         functions.
8406         (rtl_profile_for_bb, rtl_profile_for_edge, rtl_default_profile): New.
8407         * function.c (prepare_function_start): Set default profile.
8408         * function.h (rtl_data): Add maybe_hot_insn_p.
8409         * cfgexpand.c (expand_gimple_basic_block): Set RTL profile.
8410         (construct_exit_block): Likewise.
8411         (tree_expand_cfg): Likewise.
8412         * basic-block.h
8413         (optimize_bb_for_size_p, optimize_bb_for_speed_p,
8414         optimize_edge_for_size_p, optimize_edge_for_speed_p,
8415         optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
8416         (rtl_profile_for_bb, rtl_profile_for_edge, default_rtl_profile):
8417         Declare.
8418
8419 2008-07-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8420
8421         PR 34985
8422         * c-decl.c (merge_decls): Merge USED flags.
8423
8424 2008-07-29  Kaz Kojima  <kkojima@gcc.gnu.org>
8425
8426         * config/sh/sh.c (sh_gimplify_va_arg_expr): Unshare the addr,
8427         valist, next_fp, next_fp_tmp, next_fp_limit, next_o, next_o_limit,
8428         next_stack, lab_false and lab_over trees.
8429
8430 2008-07-28  Richard Guenther  <rguenther@suse.de>
8431
8432         PR tree-optimization/36957
8433         * tree-flow.h (tree_ssa_useless_type_conversion): Remove.
8434         (useless_type_conversion_p): Remove.
8435         (types_compatible_p): Remove.
8436         * gimple.h (tree_ssa_useless_type_conversion): Declare.
8437         (useless_type_conversion_p): Declare.
8438         (types_compatible_p): Declare.
8439         (gimple_expr_type): Return the base type only if it is
8440         trivially convertible to the subtype.
8441
8442 2008-07-28  Andreas Tobler  <a.tobler@schweiz.org>
8443
8444         * configure.ac: Use the m4_do macro to concatenate the warnings into
8445         one string in ACX_PROG_CC_WARNING_OPTS,
8446         ACX_PROG_CC_WARNING_ALMOST_PEDANTIC and
8447         ACX_PROG_CC_WARNINGS_ARE_ERRORS.
8448         * configure: Regenerate.
8449
8450 2008-07-28  Richard Guenther  <rguenther@suse.de>
8451
8452         * tree-ssa-pre.c (insert_into_preds_of_block): Remove dead code.
8453         (insert_fake_stores): Remove.
8454         (realify_fake_stores): Likewise.
8455         (execute_pre): Remove dead code.
8456         * tree-ssa-structalias.c (get_constraint_for_1): Remove tcc_unary case.
8457         (find_func_aliases): Deal with it here instead.
8458         Re-enable gcc_unreachable call.
8459
8460 2008-07-28  Richard Guenther  <rguenther@suse.de>
8461
8462         Merge from gimple-tuples-branch.
8463
8464         * ChangeLog.tuples: ChangeLog from gimple-tuples-branch.
8465         * gimple.def: New file.
8466         * gsstruct.def: Likewise.
8467         * gimple-iterator.c: Likewise.
8468         * gimple-pretty-print.c: Likewise.
8469         * tree-gimple.c: Removed.  Merged into ...
8470         * gimple.c: ... here.  New file.
8471         * tree-gimple.h: Removed.  Merged into ...
8472         * gimple.h: ... here.  New file.
8473
8474         * Makefile.in: Add dependencies on GIMPLE_H and tree-iterator.h.
8475         * configure.ac: Added support for ENABLE_GIMPLE_CHECKING and the
8476         --enable-checking=gimple flag.
8477         * config.in: Likewise.
8478         * configure: Regenerated.
8479
8480         * tree-ssa-operands.h: Tuplified.
8481         * tree-vrp.c: Likewise.
8482         * tree-loop-linear.c: Likewise.
8483         * tree-into-ssa.c: Likewise.
8484         * tree-ssa-loop-im.c: Likewise.
8485         * tree-dump.c: Likewise.
8486         * tree-complex.c: Likewise.
8487         * cgraphbuild.c: Likewise.
8488         * tree-ssa-threadupdate.c: Likewise.
8489         * tree-ssa-loop-niter.c: Likewise.
8490         * tree-pretty-print.c: Likewise.
8491         * tracer.c: Likewise.
8492         * gengtype.c: Likewise.
8493         * tree-loop-distribution.c: Likewise.
8494         * tree-ssa-loop-unswitch.c: Likewise.
8495         * cgraph.c: Likewise.
8496         * cgraph.h: Likewise.
8497         * tree-ssa-loop-manip.c: Likewise.
8498         * value-prof.c: Likewise.
8499         * tree-ssa-loop-ch.c: Likewise.
8500         * tree-tailcall.c: Likewise.
8501         * value-prof.h: Likewise.
8502         * tree.c: Likewise.
8503         * tree.h: Likewise.
8504         * tree-pass.h: Likewise.
8505         * ipa-cp.c: Likewise.
8506         * tree-scalar-evolution.c: Likewise.
8507         * tree-scalar-evolution.h: Likewise.
8508         * target.h: Likewise.
8509         * lambda-mat.c: Likewise.
8510         * tree-phinodes.c: Likewise.
8511         * diagnostic.h: Likewise.
8512         * builtins.c: Likewise.
8513         * tree-ssa-alias-warnings.c: Likewise.
8514         * cfghooks.c: Likewise.
8515         * fold-const.c: Likewise.
8516         * cfghooks.h: Likewise.
8517         * omp-low.c: Likewise.
8518         * tree-ssa-dse.c: Likewise.
8519         * ipa-reference.c: Likewise.
8520         * tree-ssa-uncprop.c: Likewise.
8521         * toplev.c: Likewise.
8522         * tree-gimple.c: Likewise.
8523         * tree-gimple.h: Likewise.
8524         * tree-chrec.c: Likewise.
8525         * tree-chrec.h: Likewise.
8526         * tree-ssa-sccvn.c: Likewise.
8527         * tree-ssa-sccvn.h: Likewise.
8528         * cgraphunit.c: Likewise.
8529         * tree-ssa-copyrename.c: Likewise.
8530         * tree-ssa-ccp.c: Likewise.
8531         * tree-ssa-loop-ivopts.c: Likewise.
8532         * tree-nomudflap.c: Likewise.
8533         * tree-call-cdce.c: Likewise.
8534         * ipa-pure-const.c: Likewise.
8535         * c-format.c: Likewise.
8536         * tree-stdarg.c: Likewise.
8537         * tree-ssa-math-opts.c: Likewise.
8538         * tree-ssa-dom.c: Likewise.
8539         * tree-nrv.c: Likewise.
8540         * tree-ssa-propagate.c: Likewise.
8541         * ipa-utils.c: Likewise.
8542         * tree-ssa-propagate.h: Likewise.
8543         * tree-ssa-alias.c: Likewise.
8544         * gimple-low.c: Likewise.
8545         * tree-ssa-sink.c: Likewise.
8546         * ipa-inline.c: Likewise.
8547         * c-semantics.c: Likewise.
8548         * dwarf2out.c: Likewise.
8549         * expr.c: Likewise.
8550         * tree-ssa-loop-ivcanon.c: Likewise.
8551         * predict.c: Likewise.
8552         * tree-ssa-loop.c: Likewise.
8553         * tree-parloops.c: Likewise.
8554         * tree-ssa-address.c: Likewise.
8555         * tree-ssa-ifcombine.c: Likewise.
8556         * matrix-reorg.c: Likewise.
8557         * c-decl.c: Likewise.
8558         * tree-eh.c: Likewise.
8559         * c-pretty-print.c: Likewise.
8560         * lambda-trans.c: Likewise.
8561         * function.c: Likewise.
8562         * langhooks.c: Likewise.
8563         * ebitmap.h: Likewise.
8564         * tree-vectorizer.c: Likewise.
8565         * function.h: Likewise.
8566         * langhooks.h: Likewise.
8567         * tree-vectorizer.h: Likewise.
8568         * ipa-type-escape.c: Likewise.
8569         * ipa-type-escape.h: Likewise.
8570         * domwalk.c: Likewise.
8571         * tree-if-conv.c: Likewise.
8572         * profile.c: Likewise.
8573         * domwalk.h: Likewise.
8574         * tree-data-ref.c: Likewise.
8575         * tree-data-ref.h: Likewise.
8576         * tree-flow-inline.h: Likewise.
8577         * tree-affine.c: Likewise.
8578         * tree-vect-analyze.c: Likewise.
8579         * c-typeck.c: Likewise.
8580         * gimplify.c: Likewise.
8581         * coretypes.h: Likewise.
8582         * tree-ssa-phiopt.c: Likewise.
8583         * calls.c: Likewise.
8584         * tree-ssa-coalesce.c: Likewise.
8585         * tree.def: Likewise.
8586         * tree-dfa.c: Likewise.
8587         * except.c: Likewise.
8588         * except.h: Likewise.
8589         * cfgexpand.c: Likewise.
8590         * tree-cfgcleanup.c: Likewise.
8591         * tree-ssa-pre.c: Likewise.
8592         * tree-ssa-live.c: Likewise.
8593         * tree-sra.c: Likewise.
8594         * tree-ssa-live.h: Likewise.
8595         * tree-predcom.c: Likewise.
8596         * lambda.h: Likewise.
8597         * tree-mudflap.c: Likewise.
8598         * ipa-prop.c: Likewise.
8599         * print-tree.c: Likewise.
8600         * tree-ssa-copy.c: Likewise.
8601         * ipa-prop.h: Likewise.
8602         * tree-ssa-forwprop.c: Likewise.
8603         * ggc-page.c: Likewise.
8604         * c-omp.c: Likewise.
8605         * tree-ssa-dce.c: Likewise.
8606         * tree-vect-patterns.c: Likewise.
8607         * tree-ssa-ter.c: Likewise.
8608         * tree-nested.c: Likewise.
8609         * tree-ssa.c: Likewise.
8610         * lambda-code.c: Likewise.
8611         * tree-ssa-loop-prefetch.c: Likewise.
8612         * tree-inline.c: Likewise.
8613         * tree-inline.h: Likewise.
8614         * tree-iterator.c: Likewise.
8615         * tree-optimize.c: Likewise.
8616         * tree-ssa-phiprop.c: Likewise.
8617         * tree-vect-transform.c: Likewise.
8618         * tree-object-size.c: Likewise.
8619         * tree-outof-ssa.c: Likewise.
8620         * cfgloop.c: Likewise.
8621         * system.h: Likewise.
8622         * tree-profile.c: Likewise.
8623         * cfgloop.h: Likewise.
8624         * c-gimplify.c: Likewise.
8625         * c-common.c: Likewise.
8626         * tree-vect-generic.c: Likewise.
8627         * tree-flow.h: Likewise.
8628         * c-common.h: Likewise.
8629         * basic-block.h: Likewise.
8630         * tree-ssa-structalias.c: Likewise.
8631         * tree-switch-conversion.c: Likewise.
8632         * tree-ssa-structalias.h: Likewise.
8633         * tree-cfg.c: Likewise.
8634         * passes.c: Likewise.
8635         * ipa-struct-reorg.c: Likewise.
8636         * ipa-struct-reorg.h: Likewise.
8637         * tree-ssa-reassoc.c: Likewise.
8638         * cfgrtl.c: Likewise.
8639         * varpool.c: Likewise.
8640         * stmt.c: Likewise.
8641         * tree-ssanames.c: Likewise.
8642         * tree-ssa-threadedge.c: Likewise.
8643         * langhooks-def.h: Likewise.
8644         * tree-ssa-operands.c: Likewise.
8645         * config/alpha/alpha.c: Likewise.
8646         * config/frv/frv.c: Likewise.
8647         * config/s390/s390.c: Likewise.
8648         * config/m32c/m32c.c: Likewise.
8649         * config/m32c/m32c-protos.h: Likewise.
8650         * config/spu/spu.c: Likewise.
8651         * config/sparc/sparc.c: Likewise.
8652         * config/i386/i386.c: Likewise.
8653         * config/sh/sh.c: Likewise.
8654         * config/xtensa/xtensa.c: Likewise.
8655         * config/stormy16/stormy16.c: Likewise.
8656         * config/ia64/ia64.c: Likewise.
8657         * config/rs6000/rs6000.c: Likewise.
8658         * config/pa/pa.c: Likewise.
8659         * config/mips/mips.c: Likewise.
8660
8661 2008-07-28  Simon Baldwin  <simonb@google.com>
8662
8663         * c-pragma.c (handle_pragma_message): New function.
8664         (init_pragma): Register handle_pragma_message.
8665         * doc/extend.texi (Diagnostic Pragmas): Added #pragma message
8666         documentation.
8667
8668 2008-07-27  Victor Kaplansky  <victork@il.ibm.com>
8669
8670         PR tree-optimization/35252
8671         * tree-vect-analyze.c (vect_build_slp_tree): Make IMAGPART_EXPR and
8672         REALPART_EXPR to be considered as same load operation.
8673
8674 2008-07-27  Eric Botcazou  <ebotcazou@adacore.com>
8675
8676         PR tree-optimization/36830
8677         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Hash operand #2.
8678         (expressions_equal_p): Return false if only one operand is null.
8679
8680 2008-07-26  Gerald Pfeifer  <gerald@pfeifer.com>
8681
8682         * doc/install.texi (powerpc-*-netbsd*): Remove redundant texinfo
8683         version requirements.
8684
8685 2008-07-26  Olivier Hainque  <hainque@adacore.com>
8686
8687         * collect2.c (symkind): New enum.  Symbol kinds we care about.
8688         (is_ctor_dtor): Return symkind instead of int.  Adjust prototype,
8689         code and head comment accordingly.
8690         (scan_prog_file): Use symkind names instead of bare integers.
8691
8692 2008-07-25  Jan Hubicka  <jh@suse.cz>
8693
8694         * cgraph.c (cgraph_function_possibly_inlined_p): Do not rely on
8695         DECL_INLINE.
8696         * cgraphunit.c (record_cdtor_fn): Do not initialize DECL_INLINE
8697         (cgraph_preserve_function_body_p): Do not rely on DECL_INLINE.
8698         * dojump.c (clear_pending_stack_adjust): Likewise.
8699         * print-tree.c (print_node): Ignore DECL_INLINE.
8700         * tree-inline.c (inlinable_function_p): Likewise.
8701
8702 2008-07-25  Michael Meissner  <gnu@the-meissners.org>
8703
8704         * doc/extend.texi (hot attribute): Document that the hot attribute
8705         turns on -O3 for some ports.
8706         (cold attribute): Document that the cold attribute turns on -Os
8707         for some ports
8708
8709         * doc/tm.texi (OPTIMIZATION_OPTIONS): Update documentation to
8710         reflect function specific option support.
8711
8712         * target.h (struct target_option_hooks): Add fields to say whether
8713         the cold attribute implies -Os and the hot attribute implies -O3.
8714
8715         * target-def.h (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION):
8716         By default, do not turn on -Os for cold functions.
8717         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): By default, do
8718         not turn on -O3 for hot functions.
8719
8720         * c-common.c (handle_hot_attribute): Use target hook to determine
8721         if hot functions should enable -O3.
8722         (handle_cold_attribute): Use target hook to determine if cold
8723         functions should enable -Os.
8724
8725         * config/i386/i386.c (ix86_target_string): Add -m3dnowa support.
8726         (override_options): Move disable scheduling to
8727         optimization_options.
8728         (optimization_options): Disable scheduling here, not
8729         override_options.
8730         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
8731         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
8732
8733         * config/ia64/ia64.c (ia64_override_options): Move setting
8734         scheduling flags to ia64_optimization_options.
8735         (ia64_optimization_options): Disable scheduling options here, and
8736         not in ia64_override_options.
8737         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
8738         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
8739
8740 2008-07-25  H.J. Lu  <hongjiu.lu@intel.com>
8741
8742         PR target/36936
8743         * config/i386/i386.c (override_options): Don't clear TARGET_CMOVE.
8744
8745 2008-07-25  Martin Jambor  <mjambor@suse.cz>
8746
8747         PR tree-optimization/36926
8748         * ipa-prop.c (ipa_analyze_call_uses): Call
8749         ipa_is_ssa_with_stmt_def instead of SSA_NAME_IS_DEFAULT_DEF.
8750
8751 2008-07-25  Joseph Myers  <joseph@codesourcery.com>
8752
8753         * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
8754         movv2si_internal): Add mem = reg alternative.
8755
8756 2008-07-25  Andreas Tobler  <a.tobler@schweiz.org>
8757
8758         PR bootstrap/36918
8759         * config/sparc/sparc.h (DEFAULT_PCC_STRUCT_RETURN): Define
8760         DEFAULT_PCC_STRUCT_RETURN to 127.
8761
8762 2008-07-24  Jan Hubicka  <jh@suse.cz>
8763
8764         * cgraphbuild.c (record_reference): Drop non-unit-at-a-time code.
8765         (build_cgraph_edges): Likewise.
8766         * cgraph.c (cgraph_node): Do not update assembler hash.
8767         (cgraph_remove_node): Drop non-unit-at-a-time code.
8768         * tree-pass.h (pass_O0_always_inline): Remove.
8769         * ipa-reference.c (gate_reference): Remove unit-at-a-time check.
8770         * toplev.c (process_options): Flag unit-at-a-time does not imply
8771         no section anchors.
8772         * cgraphunit.c: Update comments.
8773         (decide_is_function_needed): Drop non-unit-at-a-time mode.
8774         (cgraph_assemble_pending_functions): Remove.
8775         (cgraph_reset_node): Drop non-unit-at-a-time code.
8776         (cgraph_finalize_function): Likewise.
8777         (cgraph_analyze_function): Likewise.
8778         (cgraph_finalize_compilation_unit): Likewise.
8779         (cgraph_expand_function): Likewise.
8780         (cgraph_optimize): Likesise.
8781         (save_inline_function_body): Likewise.
8782         * ipa-pure-const.c (gate_pure_const): Drop flag_unit_at_a_time check.
8783         * tree-ssa-alias.c (maybe_be_aliased): Likewise.
8784         * ipa-inline.c: Update comments.
8785         (enum inlining_mode): remove INLINE_SPEED.
8786         (cgraph_clone_inlined_nodes): Drop unit-at-a-time check.
8787         (cgraph_mark_inline_edge): Likewise.
8788         (try_inline): Likewise.
8789         (cgraph_decide_inlining_incrementally): Likewise.
8790         (cgraph_gate_inlining): Remove.
8791         (cgraph_early_inlining): Remove flag_unit_at_a_time checks.
8792         (cgraph_gate_early_inlining): Likewise.
8793         (gate_inline_passes): Remove.
8794         (pass_inline_parameters, pass_ipa_inline): Remove gates.
8795         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
8796         pass_O0_always_inline): Remove.
8797         * c-pch.c (c_pch_matching): Remove -funit-at-a-time.
8798         * dwarf2out.c (reference_to_unused): Remove flag_unit_at_a_time check.
8799         * opts.c (no_unit_at_a_time_default): Remove.
8800         (decode_options): Remove flag_unit_at_a_time reset and warning.
8801         * opts.h (no_unit_at_a_time_default): Remove.
8802         * c-decl.c (diagnose_mismatched_decls): Do not require inline keyword
8803         early in GNU dialect.
8804         (merge_decls): Update comment; drop unit-at-a-time check.
8805         (finish_decl): Likewise.
8806         (grok_declaration): Remove flag_inline_trees code.
8807         (finish_functions): Return on function returning non-void on all
8808         statics.
8809         * ipa-tye-escape.c (gate_type_escape_vars): Remove.
8810         * cfgexpand.c (expand_one_static_var): Remove.
8811         (expand_one_var): Remove expand_one_static_var call.
8812         (expand_used_vars_for_block): Remove flag_unit_a_time check.
8813         * c-opts.c (c_common_post_options): Remove flag_inline_trees code
8814         and flag_unit_at_a-time compatibility checks.
8815         * varasm.c (assemble_alias): Remove flag_unit_at_a_time check.
8816         * tree-inline.c (flag_inline_trees): Remove.
8817         (inlinable_function_p): Don't check it.
8818         (expand_call_inline): Remove non-unit-at-a-time code.
8819         * tree-inline.h (flag_inline_trees): Remove.
8820         * tree-optimize.c (execute_early_local_optimizations): Remove
8821         unit-at-a-time checks.
8822         (tree_rest_of_compilation): Likewise.
8823         * combine.c (setup_incoming_promotions): Likewise.
8824         * tree-profile.c (tree_gen_ic_func_profiler): Likewise.
8825         * tree-ssa-structalias.c (delete_points_to_sets): Likewise.
8826         * passes.c (pass_inline_parameters): Update comments; remove
8827         O0_alwaysinline pass.
8828         (execute_one_ipa_transform_pass): Do not reset in_gimple_form.
8829         (execute_one_pass): Likewise.
8830         * i386.c (ix86_function_regparm): Remove unit-at-a-time check.
8831         (ix86_function_sseregparm): Likewise.
8832         * arm.c (arm_function_in_section_p): Likewise.
8833         * bfin.c (bfin_load_pic_reg, bfin_function_ok_for_sibcall): Likewise.
8834         * varpool.c: Update comments.
8835         (decide_is_variable_needed): Remove unit-at-a-time checks.
8836         (varpool_finalize_decl): Likewise.
8837
8838 2008-07-24  Kaz Kojima  <kkojima@gcc.gnu.org>
8839
8840         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_omit_frame_pointer
8841         to 2 instead of -1.
8842         (OVERRIDE_OPTIONS): Check if flag_omit_frame_pointer is equal to 2.
8843
8844 2008-07-24  Kai Tietz  <kai.tietz@onevision.com>
8845
8846         * config/i386/i386.c (get_dllimport_decl): Treat user_label_prefix for
8847         imp symbol extension.
8848
8849         2008-07-23  Ian Lance Taylor  <iant@google.com>
8850
8851         * tree-vrp.c (infer_value_range): Ignore asm statements when
8852         looking for memory accesses for -fdelete-null-pointer-checks.
8853
8854 2008-07-24  Ben Elliston  <bje@au.ibm.com>
8855
8856         * config/spu/spu-c.c (__vector_keyword): New variable.
8857         (vector_keyword): Likewise.
8858         (spu_categorize_keyword): New function.
8859         (spu_macro_to_expand): Likewise.
8860         (spu_cpu_cpp_builtins): Enable context-sensitive macros if not
8861         compiling an ISO C dialect.
8862
8863 2008-07-24  Ben Elliston  <bje@au.ibm.com>
8864
8865         * config/rs6000/rs6000-c.c: Move GTY(()) markers to match
8866         conventional usage.
8867
8868 2008-07-23  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
8869
8870         * configure: Regenerate.
8871         * configure.ac: Require texinfo 4.7.
8872         * doc/install.texi: Document texinfo 4.7 requirement.
8873
8874 2008-07-23  Martin Jambor  <mjambor@suse.cz>
8875
8876         * ipa-cp.c (ipcp_print_edge_profiles): Test for node->analyzed
8877         rather than for DECL_SAVED_TREE.
8878         * ipa-prop.c: Include diagnostic.h.
8879         (ipa_check_stmt_modifications): Check LHS of GIMPLE_MODIFY_EXPRs
8880         thoroughly.
8881         (ipa_detect_param_modifications): Function rewritten from scratch.
8882         (ipa_compute_jump_functions): Changed accesses to modification flags.
8883         (ipa_free_node_params_substructures): Update flags destruction.
8884         (ipa_node_duplication_hook): Update flags duplication.
8885         (ipa_print_all_params_modified): Updated flag access.
8886         * ipa-prop.h (struct ipa_param_flags): New structure.
8887         (struct ipa_node_params): New field modification_analysis_done,
8888         modified_flags changed into param_flags.
8889         (ipa_is_ith_param_modified): Changed to use new flags.
8890         * Makefile.in (ipa-prop.o): Add $(DIAGNOSTIC_H) to dependencies.
8891
8892         * ipa-prop.c (ipa_print_all_jump_functions): Moved here from
8893         ipa-cp.c and split into two functions.
8894         (ipa_print_node_jump_functions): New function.
8895         (compute_scalar_jump_functions): New function.
8896         (type_like_member_ptr_p): New function.
8897         (compute_pass_through_member_ptrs): New function.
8898         (fill_member_ptr_cst_jump_function): New function.
8899         (determine_cst_member_ptr): New function.
8900         (compute_cst_member_ptr_arguments): New function.
8901         (ipa_compute_jump_functions): Complete rewrite.
8902         * ipa-prop.h (enum jump_func_type): Make explicit that we depend
8903         on IPA_UNKNOWN being zero. Added value IPA_CONST_MEMBER_PTR.
8904         (struct ipa_member_ptr_cst): New structure.
8905         (union jump_func_value): New field member_cst.
8906         * ipa-cp.c (ipcp_lat_is_insertable): New function.
8907         (ipcp_lattice_from_jfunc): Produces bottom lattices for unhandled
8908         jump function types.
8909         (ipcp_print_all_lattices): Slight fprintf rearrangement.
8910         (ipcp_print_all_structures): Call ipa_print_all_jump_functions
8911         instead of ipcp_print_all_jump_functions.
8912         (ipcp_insert_stage): Use ipcp_lat_is_insertable, create replace maps
8913         only for replacable scalars.
8914
8915         * doc/invoke.texi (Optimize options): Add description of
8916         -findirect-inlining.
8917         * common.opt (flag_indirect_inlining): New flag.
8918         * opts.c (decode_options): Set flag_indirect_inlining when
8919         optimize >= 3.
8920
8921         * ipa-inline.c: Include ipa-prop.h.
8922         (inline_indirect_intraprocedural_analysis): New function.
8923         (inline_generate_summary): Allocate parameter and argument info
8924         structures, call inline_indirect_intraprocedural_analysis on each
8925         node when doing indirect inlining and deallocate indirect inlining
8926         data structures in the end.
8927         * ipa-prop.c (ipa_create_param_decls_array): Return if already done.
8928         (free_all_ipa_structures_after_iinln): New function.
8929         (free_all_ipa_structures_after_ipa_cp): Checks whether iinln will be
8930         done.
8931         * Makefile.in (ipa-inline.o): Added $(IPA_PROP_H) to dependencies.
8932
8933         * cgraphbuild.c (compute_call_stmt_bb_frequency): New function.
8934         (build_cgraph_edges): Call compute_call_stmt_bb_frequency instead
8935         of computing the frequency separately.
8936         (rebuild_cgraph_edges): Call compute_call_stmt_bb_frequency instead
8937         of computing the frequency separately.
8938         * ipa-cp.c (ipcp_print_all_structures): Replace a call to
8939         ipa_print_all_param_modified with a call to ipa_print_all_param_flags.
8940         * ipa-prop.c (ipa_get_member_ptr_load_param): New function.
8941         (ipa_get_stmt_member_ptr_load_param): New function.
8942         (ipa_is_ssa_with_stmt_def): New function.
8943         (ipa_note_param_call): New function.
8944         (ipa_analyze_call_uses): New function.
8945         (ipa_analyze_stmt_uses): New function.
8946         (ipa_analyze_params_uses): New function.
8947         (ipa_free_node_params_substructures): Also free the param_calls linked
8948         list.
8949         (ipa_node_duplication_hook): Also duplicate the param_calls
8950         linked list.
8951         (ipa_print_node_param_flags): New function.
8952         (ipa_print_all_params_modified): Renamed to ipa_print_all_param_flags.
8953         (ipa_print_all_param_flags): Calls ipa_print_node_param_flags.
8954         * ipa-prop.h (struct ipa_param_flags): New field called.
8955         (struct ipa_param_call_note): New structure.
8956         (struct ipa_node_params): New fields param_calls and
8957         uses_analysis_done.
8958         (ipa_is_ith_param_called): New function.
8959         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
8960         ipa_analyze_params_uses and dump parameter flags.
8961
8962         * ipa-inline.c (cgraph_decide_recursive_inlining): Call
8963         ipa_propagate_indirect_call_infos if performing indirect inlining,
8964         pass a new parameter new_edges to it.
8965         (add_new_edges_to_heap): New fucntion.
8966         (cgraph_decide_inlining_of_small_functions): New vector
8967         new_indirect_edges for newly found indirect edges , call
8968         ipa_propagate_indirect_call_infos after inlining.
8969         (cgraph_decide_inlining): Call ipa_propagate_indirect_call_infos after
8970         inlining if performing indirect inlining.  Call
8971         free_all_ipa_structures_after_iinln when doing so too.
8972         (inline_generate_summary): Do not call
8973         free_all_ipa_structures_after_iinln here.
8974         * ipa-prop.c (update_jump_functions_after_inlining): New function.
8975         (print_edge_addition_message): New function.
8976         (update_call_notes_after_inlining): New function.
8977         (propagate_info_to_inlined_callees): New function.
8978         (ipa_propagate_indirect_call_infos): New function.
8979         * ipa-prop.h: Include cgraph.h
8980         (struct ipa_param_call_note): Fields reordered, new field processed.
8981         * cgraph.h (cgraph_edge): Shrink loop_nest field to 31 bits, add a new
8982         flag indirect_call.
8983         * cgraphunit.c (verify_cgraph_node): Allow indirect edges not to have
8984         rediscovered call statements.
8985         * cgraph.c (cgraph_create_edge): Initialize indirect_call to zero.
8986         (dump_cgraph_node): Dump also the indirect_call flag.
8987         (cgraph_clone_edge): Copy also the indirect_call flag.
8988         * tree-inline.c (copy_bb): Do not check for fndecls from call
8989         expressions, check for edge availability when moving clones.
8990         (get_indirect_callee_fndecl): New function.
8991         (expand_call_inline): If callee declaration is not apprent from
8992         the statement, try calling get_indirect_callee_fndecl.  Do not
8993         issue warnings or call sorry when not inlinings an indirect edge.
8994         * Makefile.in (IPA_PROP_H): Added $(CGRAPH_H) to dependencies.
8995
8996         * ipa-prop.c (ipa_print_node_param_flags): Make the dump format a
8997         bit more frandly to matching.
8998         * testsuite/g++.dg/ipa/iinline-1.C: New testcase.
8999         * testsuite/gcc.dg/ipa/iinline-1.c: New testcase.
9000         * testsuite/gcc.dg/ipa/modif-1.c: New testcase.
9001
9002 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
9003
9004         PR 36907
9005         * opth-gen.awk: Suppress function specific features when building
9006         target libraries.
9007         * optc-gen.awk: Ditto.
9008
9009 2008-07-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9010
9011         PR 35058
9012         * diagnostic.c (pedwarn): Add opt parameter.
9013         (pedwarn0): New.
9014         * c-tree.h (pedwarn_init): Add opt parameter.
9015         (pedwarn_c90): Likewise.
9016         (pedwarn_c99): Likewise.
9017         * c-errors.c (pedwarn_c99): Likewise.
9018         (pedwarn_c90): Likewise.
9019         * toplev.h (pedwarn): Update declaration.
9020         (pedwarn0): Declare.
9021         * c-lex.c: All calls to pedwarn changed.
9022         * builtins.c: All calls to pedwarn changed.
9023         * toplev.c: All calls to pedwarn changed.
9024         * c-decl.c: All calls to pedwarn changed.
9025         * c-typeck.c: All calls to pedwarn changed.
9026         * c-common.c: All calls to pedwarn changed.
9027         * c-parser.c: All calls to pedwarn changed.
9028
9029 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
9030             Karthik Kumar  <karthikkumar@gmail.com>
9031
9032         * attribs.c (file scope): Include c-common.h.
9033         (decl_attributes): Add support for #pragma GCC optimize and
9034         #pragma GCC option.
9035
9036         * targhooks.c (default_can_inline_p): New function that is the
9037         default for the TARGET_CAN_INLINE_P target hook.
9038
9039         * targhooks.h (default_can_inline_p): Add declaration.
9040
9041         * tree.c (cl_optimization_node): New static tree for building
9042         OPTIMIZATION_NODE tree.
9043         (cl_target_option_node): New static tree for building
9044         TARGET_OPTION_NODE tree.
9045         (cl_option_hash_table): New hash table for hashing
9046         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
9047         (cl_option_hash_hash): New function to provide the hash value for
9048         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
9049         (cl_option_hash_eq): New function to provide an equality test for
9050         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
9051         (tree_code_size): Add support for OPTIMIZATION_NODE and
9052         TARGET_OPTION_NODE trees.
9053         (tree_code_structure): Add support for OPTIMIZATION_NODE and
9054         TARGET_OPTION_NODE trees.
9055         (build_optimization_node): Build a tree that has all of the
9056         current optimization options.
9057         (build_target_option_node): Build a tree that has the target
9058         options that might be changed on a per function basis.
9059
9060         * tree.h (file scope): Include options.h.
9061         (DECL_FUNCTION_SPECIFIC_TARGET): New accessor macro.
9062         (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
9063         (TREE_OPTIMIZATION): Ditto.
9064         (TREE_TARGET_SPECIFIC): Ditto.
9065         (struct tree_function_decl): Add fields for remembering the
9066         current optimization options and target specific options.
9067         (struct tree_optimization_option): New tree variant that remembers
9068         the optimization options.
9069         (struct tree_target_option): New tree variant that remembers the
9070         target specific flags that might change for compiling a particular
9071         function.
9072         (union tree_node): Include tree_optimization_option and
9073         tree_target_option fields.
9074         (enum tree_index): Add TI_OPTIMIZATION_DEFAULT,
9075         TI_OPTIMIZATION_CURRENT, TI_OPTIMIZATION_COLD,
9076         TI_OPTIMIZATION_HOT, TI_TARGET_OPTION_DEFAULT,
9077         TI_TARGET_OPTION_CURRENT, TI_CURRENT_OPTION_PRAGMA,
9078         TI_CURRENT_OPTIMIZE_PRAGMA entries for saving function specific
9079         optimization and target options.
9080         (optimization_default_node): New macro to refer to global_trees
9081         field.
9082         (optimization_current_node): Ditto.
9083         (optimization_cold_node): Ditto.
9084         (optimization_hot_node): Ditto.
9085         (target_option_default_node): Ditto.
9086         (target_option_current_node): Ditto.
9087         (current_option_pragma): Ditto.
9088         (current_optimize_pragma): Ditto.
9089
9090         * target.h (struct gcc_target): Add valid_option_attribute_p,
9091         target_option_save, target_option_restore, target_option_print,
9092         target_option_pragma_parse, and can_inline_p hooks.
9093
9094         * toplev.h (parse_optimize_options): Add declaration.
9095         (fast_math_flags_struct_set_p): Ditto.
9096
9097         * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): New function to
9098         adjust the current __OPTIMIZE__, etc. macros when #pragma GCC
9099         optimize is used.
9100
9101         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Call
9102         tree_can_inline_p hook to see if one function can inline another.
9103         (cgraph_decide_inlining): Ditto.
9104         (cgraph_decide_inlining_incrementally): Ditto.
9105
9106         * opts.c (decode_options): Add support for running multiple times
9107         to allow functions with different target or optimization options
9108         than was specified on the command line.
9109         (fast_math_flags_struct_set_p): New function that is similar to
9110         fast_math_flags_set_p, except it uses the values in the
9111         cl_optimization structure instead of global variables.
9112
9113         * optc-gen.awk: Add support for TargetSave to allow a back end to
9114         declare new fields that need to be saved when using function
9115         specific options.  Include flags.h and target.h in the options.c
9116         source.  Add support for Save to indicate which options can be set
9117         for individual functions.  Generate cl_optimize_save,
9118         cl_optimize_restore, cl_optimize_print, cl_target_option_save,
9119         cl_target_option_restore, cl_target_option_print functions to
9120         allow functions to use different optimization or target options.
9121
9122         * opt-functions.awk (var_type_struct): Return the type used for
9123         storing the field in a structure.
9124
9125         * opth-gen.awk: Add support for TargetSave to allow a back end to
9126         declare new fields that need to be saved when using function
9127         specific options.  Add support for Save to indicate which options
9128         can be set for individual functions.  Only generate one extern for
9129         Mask fields.  Generate cl_optimization and cl_target_option
9130         structures to remember optimization and target options.
9131
9132         * treestruct.def (TS_OPTIMIZATION): Add support for garbage
9133         collecting new tree nodes.
9134         (TS_TARGET_OPTION): Ditto.
9135
9136         * c-decl.c (merge_decls): Merge function specific target and
9137         optimization options.
9138
9139         * function.c (invoke_set_current_function_hook): If the function
9140         uses different optimization options, change the global variables
9141         to reflect this.
9142
9143         * coretypes.h (struct cl_optimization): Add forward reference.
9144         (struct cl_target_option): Ditto.
9145
9146         * c-pragma.c (option_stack): New static vector to remember the
9147         current #pragma GCC option stack.
9148         (handle_pragma_option): New function to support #pragma GCC option
9149         to change target options.
9150         (optimize_stack): New static vector to remember the current
9151         #pragma GCC optimize stack.
9152         (handle_pragma_optimize): New function to support #pragma GCC
9153         optimize to change optimization options.
9154         (init_pragma): Add support for #pragma GCC optimize and #pragma
9155         GCC option.
9156
9157         * tree.def (OPTIMIZATION_NODE): New tree code for remembering
9158         optimization options.
9159         (TARGET_OPTION_NODE): New tree code for remembering certain target
9160         options.
9161
9162         * print-tree.c (print_node): Add support for OPTIMIZATION_NODE and
9163         TARGET_OPTION_NODE trees.
9164
9165         * common.opt (-O): Add Optimization flag.
9166         (-Os): Ditto.
9167         (-fmath-errno): Ditto.
9168         (-falign-functions): Add UInteger flag to make sure flag gets full
9169         int in cl_optimization structure.
9170         (-falign-jumps): Ditto.
9171         (-falign-labels): Ditto.
9172         (-falign-loops): Ditto.
9173         (-fsched-stalled-insns): Ditto.
9174         (-fsched-stalled-insns-dep): Ditto.
9175
9176         * target-def.h (TARGET_VALID_OPTION_ATTRIBUTE_P): Add default
9177         definition.
9178         (TARGET_OPTION_SAVE): Ditto.
9179         (TARGET_OPTION_RESTORE): Ditto.
9180         (TARGET_OPTION_PRINT): Ditto.
9181         (TARGET_OPTION_PRAGMA_PARSE): Ditto.
9182         (TARGET_CAN_INLINE_P): Ditto.
9183         (TARGET_INITIALIZER): Add new hooks.
9184
9185         * tree-inline.c (tree_can_inline_p): New function to determine
9186         whether one function can inline another.  Check if the functions
9187         use compatible optimization options, and also call the backend
9188         can_inline_p hook.
9189
9190         * tree-inline.h (tree_can_inline_p): Add declaration.
9191
9192         * c-common.c (c_common_attribute): Add support for option and
9193         optimize attributes.
9194         (handle_option_attribute): Add support for the option attribute to
9195         allow the user to specify different target options for compiling a
9196         specific function.
9197         (handle_optimize_attribute): Add support for the optimize
9198         attribute to allow the user to specify different optimization
9199         options for compiling a specific function.
9200         (handle_hot_attribute): Turn on -O3 optimization for this one
9201         function if it isn't the default optimization level.
9202         (handle_cold_attribute): Turn on -Os optimization for this one
9203         function if it insn't the default optimization.
9204         (const_char_p): New const char * typedef.
9205         (optimize_args): New static vector to remember the optimization
9206         arguments.
9207         (parse_optimize_options): New function to set up the optimization
9208         arguments from either the optimize attribute or #pragma GCC optimize.
9209
9210         * c-common.h (c_cpp_builtins_optimize_pragma): Add declaration.
9211         (builtin_define_std): Ditto.
9212
9213         * config.gcc (i[3467]86-*-*): Add i386-c.o to C/C++ languages.
9214         Add t-i386 Makefile fragment to add i386-c.o and i386.o dependencies.
9215         (x86_64-*-*): Ditto.
9216
9217         * Makefile.in (TREE_H): Add options.h.
9218         (options.o): Add $(TARGET_H) $(FLAGS_H) dependencies.
9219
9220         * doc/extend.texi (option attribute): Document new attribute.
9221         (optimize attribute): Ditto.
9222         (hot attribute): Document hot attribute sets -O3.
9223         (cold attribute): Document cold attribute sets -Os.
9224         (#pragma GCC option): Document new pragma.
9225         (#pragma GCC optimize): Ditto.
9226
9227         * doc/options.texi (TargetSave): Document TargetSave syntax.
9228         (UInteger): Document UInteger must be used for certain flags.
9229         (Save): Document Save option to create target specific options
9230         that can be saved/restored on a function specific context.
9231
9232         * doc/c-tree.texi (DECL_FUNCTION_SPECIFIC_TARGET): Document new macro.
9233         (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
9234
9235         * doc/tm.texi (TARGET_VALID_OPTION_ATTRIBUTE_P): Document new hook.
9236         (TARGET_OPTION_SAVE): Ditto.
9237         (TARGET_OPTION_RESTORE): Ditto.
9238         (TARGET_OPTION_PRINT): Ditto.
9239         (TARGET_OPTION_PRAGMA_PARSE): Ditto.
9240         (TARGET_CAN_INLINE_P): Ditto.
9241
9242         * doc/invoke.texi (-mfpmath=sse+387): Document as an alias for
9243         -mfpmath=sse,387.
9244         (-mfpmath=both): Ditto.
9245
9246 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
9247             Karthik Kumar  <karthikkumar@gmail.com>
9248
9249         * config/i386/i386.h (TARGET_ABM): Move switch into ix86_isa_flags.
9250         (TARGET_POPCNT): Ditto.
9251         (TARGET_SAHF): Ditto.
9252         (TARGET_AES): Ditto.
9253         (TARGET_PCLMUL): Ditto.
9254         (TARGET_CMPXCHG16B): Ditto.
9255         (TARGET_RECIP): Move switch into target_flags.
9256         (TARGET_FUSED_MADD): Ditto.
9257         (ix86_arch_features): Make an unsigned char type.
9258         (ix86_tune_features): Ditto.
9259         (OVERRIDE_OPTIONS): Add bool argument to override_options call.
9260         (TARGET_CPU_CPP_BUILTINS): Move into ix86_target_macros.
9261         (REGISTER_TARGET_PRAGMAS): Define, call ix86_register_pragmas.
9262
9263         * config/i386/i386.opt (arch): New TargetSave field to define
9264         fields that need to be saved for function specific option support.
9265         (tune): Ditto.
9266         (fpmath): Ditto.
9267         (branch_cost): Ditto.
9268         (ix86_isa_flags_explicit): Ditto.
9269         (tune_defaulted): Ditto.
9270         (arch_specified): Ditto.
9271         (-m128-long-double): Add Save flag to save option for target
9272         specific option support.
9273         (-m80387): Ditto.
9274         (-maccumulate-outgoing-args): Ditto.
9275         (-malign-double): Ditto.
9276         (-malign-stringops): Ditto.
9277         (-mfancy-math-387): Ditto.
9278         (-mhard-float): Ditto.
9279         (-mieee-fp): Ditto.
9280         (-minline-all-stringops): Ditto.
9281         (-minline-stringops-dynamically): Ditto.
9282         (-mms-bitfields): Ditto.
9283         (-mno-align-stringops): Ditto.
9284         (-mno-fancy-math-387): Ditto.
9285         (-mno-push-args): Ditto.
9286         (-mno-red-zone): Ditto.
9287         (-mpush-args): Ditto.
9288         (-mred-zone): Ditto.
9289         (-mrtd): Ditto.
9290         (-msseregparm): Ditto.
9291         (-mstack-arg-probe): Ditto.
9292         (-m32): Ditto.
9293         (-m64): Ditto.
9294         (-mmmx): Ditto.
9295         (-m3dnow): Ditto.
9296         (-m3dnowa): Ditto.
9297         (-msse): Ditto.
9298         (-msse2): Ditto.
9299         (-msse3): Ditto.
9300         (-msse4.1): Ditto.
9301         (-msse4.2): Ditto.
9302         (-msse4): Ditto.
9303         (-mno-sse4): Ditto.
9304         (-msse4a): Ditto.
9305         (-msse5): Ditto.
9306         (-mrecip): Move flag into target_flags.
9307         (-mcld): Ditto.
9308         (-mno-fused-madd): Ditto.
9309         (-mfused-madd): Ditto.
9310         (-mabm): Move flag into ix86_isa_flags.
9311         (-mcx16): Ditto.
9312         (-mpopcnt): Ditto.
9313         (-msahf): Ditto.
9314         (-maes): Ditto.
9315         (-mpclmul): Ditto.
9316
9317         * config/i386/i386-c.c: New file for #pragma support.
9318         (ix86_target_macros_internal): New function to #define or #undef
9319         target macros based when the user uses the #pragma GCC option to
9320         change target options.
9321         (ix86_pragma_option_parse): New function to add #pragma GCC option
9322         support.
9323         (ix86_target_macros): Move defining the target macros here from
9324         TARGET_CPU_CPP_BUILTINS in i386.h.
9325         (ix86_register_pragmas): Register the #pragma GCC option hook.  If
9326         defined, initialize any subtarget #pragmas.
9327
9328         * config/i386/darwin.h (REGISTER_SUBTARGET_PRAGMAS): Rename from
9329         REGISTER_TARGET_PRAGMAS.
9330
9331         * config/i386/t-i386: New file for x86 dependencies.
9332         (i386.o): Make dependencies mirror the include files used.
9333         (i386-c.o): New file, add dependencies.
9334
9335         * config/i386/i386-protos.h (override_options): Add bool argument.
9336         (ix86_valid_option_attribute_tree): Add declaration.
9337         (ix86_target_macros): Ditto.
9338         (ix86_register_macros): Ditto.
9339
9340         * config/i386/i386.c (ix86_tune_features): Move initialization of
9341         the target masks to initial_ix86_tune_features to allow functions
9342         to have different target options.  Make type unsigned char,
9343         instead of unsigned int.
9344         (initial_ix86_tune_features): New static vector to hold processor
9345         masks for the tune variables.
9346         (ix86_arch_features): Move initialization of the target masks to
9347         initial_ix86_arch_features to allow functions to have different
9348         target options.  Make type unsigned char, instead of unsigned int.
9349         (initial_ix86_arch_features): New static vector to hold processor
9350         masks for the arch variables.
9351         (enum ix86_function_specific_strings): New enum to describe the
9352         string options used for attribute((option(...))).
9353         (ix86_target_string): New function to return a string that
9354         describes the target options.
9355         (ix86_debug_options): New function to print the current options in
9356         the debugger.
9357         (ix86_function_specific_save): New function hook to save the
9358         function specific global variables in the cl_target_option structure.
9359         (ix86_function_specific_restore): New function hook to restore the
9360         function specific variables from the cl_target_option structure to
9361         the global variables.
9362         (ix86_function_specific_print): New function hook to print the
9363         target specific options in the cl_target_option structure.
9364         (ix86_valid_option_attribute_p): New function hook to validate
9365         attribute((option(...))) arguments.
9366         (ix86_valid_option_attribute_tree): New function that is common
9367         code between attribute((option(...))) and #pragma GCC option
9368         support that parses the options and returns a tree holding the options.
9369         (ix86_valid_option_attribute_inner_p): New helper function for
9370         ix86_valid_option_attribute_tree.
9371         (ix86_can_inline_p): New function hook to decide if one function
9372         can inline another on a target specific basis.
9373         (ix86_set_current_function); New function hook to switch target
9374         options if the user used attribute((option(...))) or #pragma GCC
9375         option.
9376         (ix86_tune_defaulted): Move to static file scope from
9377         override_options.
9378         (ix86_arch_specified): Ditto.
9379         (OPTION_MASK_ISA_AES_SET): New macro for moving switches into
9380         ix86_isa_flags.
9381         (OPTION_MASK_ISA_PCLMUL_SET): Ditto.
9382         (OPTION_MASK_ISA_ABM_SET): Ditto.
9383         (OPTION_MASK_ISA_POPCNT_SET): Ditto.
9384         (OPTION_MASK_ISA_CX16_SET): Ditto.
9385         (OPTION_MASK_ISA_SAHF_SET): Ditto.
9386         (OPTION_MASK_ISA_AES_UNSET): Ditto.
9387         (OPTION_MASK_ISA_PCLMUL_UNSET): Ditto.
9388         (OPTION_MASK_ISA_ABM_UNSET): Ditto.
9389         (OPTION_MASK_ISA_POPCNT_UNSET): Ditto.
9390         (OPTION_MASK_ISA_CX16_UNSET): Ditto.
9391         (OPTION_MASK_ISA_SAHF_UNSET): Ditto.
9392         (struct ptt): Move to static file scope from override_options.
9393         (processor_target_table): Ditto.
9394         (cpu_names): Ditto.
9395         (ix86_handle_option): Add support for options that are now isa options.
9396         (override_options): Add support for declaring functions that
9397         support different target options than were specified on the
9398         command line.  Move struct ptt, processor_target_table, cpu_names,
9399         ix86_tune_defaulted, ix86_arch_specified to static file scope.
9400         Add bool argument.  Fix up error messages so the appropriate error
9401         is given for either command line or attribute.
9402         (ix86_previous_fndecl): New static to remember previous function
9403         declaration to see if we need to change target options.
9404         (ix86_builtins_isa): New array to record the ISA of each builtin
9405         function.
9406         (def_builtin): Always create the builtin function, even if the
9407         current ISA doesn't support it.
9408         (ix86_init_mmx_sse_builtins): Remove TARGET_AES and TARGET_PCLMUL
9409         tests for those builtins.
9410         (ix86_init_builtins): Remove TARGET_MMX test for calling
9411         ix86_init_mmx_sse_builtins.
9412         (ix86_expand_builtin): If the current ISA doesn't support a given
9413         builtin, signal an error.
9414         (TARGET_VALID_OPTION_ATTRIBUTE_P): Set target hook.
9415         (TARGET_SET_CURRENT_FUNCTION): Ditto.
9416         (TARGET_OPTION_SAVE): Ditto.
9417         (TARGET_OPTION_RESTORE): Ditto.
9418         (TARGET_OPTION_PRINT): Ditto.
9419         (TARGET_CAN_INLINE_P): Ditto.
9420
9421 2008-07-22  Rafael Ãƒvila de Espíndola  <espindola@google.com>
9422
9423         * c-typeck.c (build_external_ref): Don't call assemble_external.
9424         * final.c (output_operand): Call assemble_external.
9425
9426 2008-07-21  DJ Delorie  <dj@redhat.com>
9427
9428         * config/h8300/h8300.c (h8300_hard_regno_scratch_ok): New.
9429         (TARGET_HARD_REGNO_SCRATCH_OK): Define.
9430
9431 2008-07-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9432
9433         * config/spu/spu.md ("div<mode>3"): Convert into expander, move
9434         original insn and splitter contents into ...
9435         ("*div<mode>3_fast"): ... this new pattern.  Enable only if
9436         flag_unsafe_math_optimizations.  Add dummy scratch register.
9437         ("*div<mode>3_adjusted"): New insn and splitter.  Enable only if
9438         !flag_unsafe_math_optimizations.  Returns number with next
9439         highest magnitude if this is still less or equal to the true
9440         quotient in magnitude.
9441
9442 2008-07-21  Rafael Ãƒvila de Espíndola  <espindola@google.com>
9443
9444         * Makefile.in: Replace toplev.h with TOPLEV_H.
9445         * c-decl.c (merge_decls): Don't set DECL_IN_SYSTEM_HEADER.
9446         * c-lex.c (fe_file_change): Don't set in_system_header.
9447         * c-parser.c (c_token): Remove in_system_header.
9448         (c_lex_one_token): Don't set in_system_header.
9449         (c_parser_set_source_position_from_token): Don't set in_system_header.
9450         * diagnostic.c (diagnostic_report_diagnostic): Use location from
9451         diagnostic_info.
9452         (warning_at): New.
9453         * diagnostic.h (diagnostic_report_warnings_p): Add LOC argument.
9454         * flags.h (in_system_header): Remove.
9455         * function.c (saved_in_system_header): Remove.
9456         (push_cfun): Don't set in_system_header.
9457         (pop_cfun): Don't set in_system_header.
9458         (push_struct_function): Don't set in_system_header.
9459         * input.h (expanded_location): Add sysp.
9460         (in_system_header_at): New.
9461         (in_system_header): New.
9462         * toplev.c (in_system_header): Remove.
9463         * toplev.h: Include input.h
9464         (warning_at): New.
9465         * tree-cfg.c (execute_warn_function_return): Call warning_at.
9466         * tree-ssa.c (warn_uninit): Call warning_at.
9467         (warn_uninitialized_var): Update calls to warn_uninit.
9468         (warn_uninitialized_phi): Update calls to warn_uninit.
9469         * tree.c (make_node_stat): Don't set DECL_IN_SYSTEM_HEADER.
9470         (expand_location): Initialize xloc.sysp.
9471         * tree.h (DECL_IN_SYSTEM_HEADER): Use in_system_header_at.
9472         (tree_decl_with_vis): Remove in_system_header_flag.
9473
9474 2008-07-21  Andreas Krebbel  <krebbel1@de.ibm.com>
9475
9476         PR target/36822
9477         * recog.c (asm_operand_ok): Change the order of the extra
9478         memory constraint checks.
9479
9480 2008-07-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9481
9482         PR tree-opt/36879
9483         * tree-switch-conversion.c (build_one_array): Call
9484         varpool_mark_needed_node and varpool_finalize_decl
9485         instead of assemble_variable.
9486
9487 2008-07-19  Jan Hubicka  <jh@suse.cz>
9488
9489         * cgraph.c (cgraph_add_new_function): Do early local passes.
9490         * tree-nrv.c (gate_pass_return_slot): New gate.
9491         (pass_nrv): Add the gate.
9492         * tree-ssa-coalese.c (hash_ssa_name_by_var, eq_ssa_name_by_var): New
9493         functions.
9494         (coalesce_ssa_name): Coalesce SSA names.
9495         * tree-ssa-live.c (remove_unused_locals): Be more conservative when
9496         not optimizing so unused user vars remains visible.
9497         * common.opt (flag_tree_ter): Always enable by default.
9498         * tree-ssa-ter.c: Include flags.h
9499         (is_replaceable_p): Check that locations match; when aliasing
9500         is missing be conservative about loads.
9501         * tree-optimize.c (gate_init_datastructures): Remove.
9502         (pass_init_datastructures): New.
9503         * passes.c: Reorder passes so we always go into SSA.
9504
9505 2008-07-19  Jan Hubicka  <jh@suse.cz>
9506
9507         * doc/extend.texi (flatten attribute): Remove note about
9508         unit-at-a-time.
9509         * doc/invoke.texi (--combine): Likewise.
9510         (-finline-functions-called-once): Update levels when enabled.
9511         (-funit-at-a-time): Document new behaviour.
9512         (-ftoplevel-reorder): Document that it is enabled -O0 and imply
9513         -fno-section-anchors when disabled explicitly.
9514         (inline params): They are not ignored now.
9515         (precompiled headers): Remove unit-at-a-time as being incompatible.
9516         * opts.c (decode_options): Handle unit-at-a-time as alias;
9517         imply -fno-section-anchors when toplevel reorder is disabled
9518         explicitly.
9519         * common.opt (ftoplevel-reorder): Set default value to 2.
9520         (funit-at-a-time): Set default value to 1.
9521         * config/rs6000/rs6000.c (optimization_options): Set section anchors
9522         to 2.
9523
9524 2008-07-19  Jan Hubicka  <jh@suse.cz>
9525
9526         * builtins.c (expand_builtin_int_roundingfn,
9527         expand_builtin_int_roundingfn_2): Do not take subtarget argument;
9528         it is not useful.
9529
9530 2008-07-19  Richard Guenther  <rguenther@suse.de>
9531
9532         PR bootstrap/36864
9533         * tree-ssa-sccvn.h (get_constant_value_id): Declare.
9534         * tree-ssa-sccvn.c (get_constant_value_id): New function.
9535         * tree-ssa-pre.c (get_expr_value_id): For newly created
9536         constant value-ids make sure to add the expression to its
9537         expression-set.
9538
9539 2008-07-19  Jakub Jelinek  <jakub@redhat.com>
9540
9541         PR middle-end/36877
9542         * omp-low.c (expand_omp_atomic_fetch_op): Make sure the
9543         return value of the builtin is ignored.
9544
9545 2008-07-19  Olivier Hainque  <hainque@adacore.com>
9546
9547         * doc/tm.texi (MALLOC_ABI_ALIGNMENT): New macro. Alignment, in
9548         bits, a C conformant malloc implementation has to provide.
9549         * defaults.h (MALLOC_ABI_ALIGNMENT): Default to BITS_PER_WORD.
9550
9551 2008-07-19  Joseph Myers  <joseph@codesourcery.com>
9552
9553         PR target/36780
9554         PR target/36827
9555         * reload.c (find_reloads_subreg_address): Only reload address if
9556         reloaded == 0, not for reloaded != 1.
9557
9558         Revert:
9559         2008-07-16  Joseph Myers  <joseph@codesourcery.com>
9560         * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
9561         (m32c_legitimate_address_p): Handle "++rii" addresses created by
9562         m32c_legitimize_reload_address.
9563
9564         2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
9565         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
9566         (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
9567
9568 2008-07-19  Olivier Hainque  <hainque@adacore.com>
9569
9570         * dwarf2out.c (add_subscript_info): New explicit COLLAPSE_P
9571         argument, saying whether nested array are to be collapsed
9572         into a single array type DIE with multiple subscripts.
9573         (gen_array_type_die): Factorize comments about the MIPS_DEBUG_INFO
9574         issues, centralize the nested array types collapsing control and
9575         disable the transformation for Ada.
9576
9577 2008-07-18  Uros Bizjak  <ubizjak@gmail.com>
9578
9579         PR target/36786
9580         * config/i386/i386.md (x86_64_shift_adj_1): Rename from
9581         x86_64_shift_adj.
9582         (x86_64_shift_adj_2): New expander.
9583         (x86_64_shift_adj_3): Ditto.
9584         * config/i386/i386.c (ix86_split_ashr): Use gen_x86_64_shift_adj_3
9585         to split TImode operands.
9586         (ix86_split_ashl): Use gen_x86_64_shift_adj_2 to split TImode operands.
9587         (ix86_split_lshr): Ditto.
9588
9589 2008-07-18  Kris Van Hees  <kris.van.hees@oracle.com>
9590
9591         * c-common.c (c_stddef_cpp_builtins): Define __CHAR16_TYPE__
9592         and __CHAR32_TYPE__.
9593         * c-typeck.c (digest_init): Support char16_t and char32_t.
9594         (set_nonincremental_init_from_string): Idem.
9595
9596 2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
9597
9598         PR middle-end/36859
9599         * builtins.c (std_gimplify_va_arg_expr): Limit alignment to
9600         PREFERRED_STACK_BOUNDARY.
9601         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
9602
9603 2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
9604
9605         PR middle-end/36858
9606         * function.c (locate_and_pad_parm): Cap boundary earlier.
9607
9608 2008-07-17  Julian Brown  <julian@codesourcery.com>
9609
9610         * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Make
9611         no-op for targets which don't use DLLs.
9612
9613 2008-07-17  Martin Jambor  <mjambor@suse.cz>
9614
9615         * ipa-cp.c (ipcp_print_all_lattices): New variable info, check
9616         that nodes are relevant by examining the node->analyzed flag.
9617         (ipcp_init_stage): Check which nodes are relevant, assert that the
9618         relevant ones are also required.
9619         (ipcp_propagate_stage): Check on the side arrays are properly
9620         allocated.
9621         (ipcp_print_all_jump_functions): Make sure not to touch any node
9622         that is not analyzed or an edge that does not have a corresponding
9623         entry in the on-the-side vectors.
9624         (ipcp_function_scale_print): Likewise.
9625         (ipcp_update_callgraph): Check that the node is relevant.
9626         (ipcp_insert_stage): Check that the node is relevant.  Check there is
9627         an info for every node and edge.
9628         * ipa-prop.c (ipa_init_func_list): Check the nodes are relevant.
9629         (ipa_print_all_tree_maps): Likewise and a new variable info.
9630         (ipa_print_all_params_modified): Likewise.
9631         * ipa-prop.h (ipa_edge_args_info_available_for_edge_p): New function.
9632
9633 2008-07-17  Roman Zippel <zippel@linux-m68k.org>
9634
9635         PR target/25343
9636         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __mc68000__.
9637
9638 2008-07-17  Paolo Bonzini  <bonzini@gnu.org>
9639
9640         PR rtl-optimization/36753
9641         * fwprop.c (use_killed_between): Don't shortcut
9642         single-definition global registers.
9643
9644 2008-07-16  Jan Hubicka  <jh@suse.cz>
9645
9646         * cgraph.h (varpool_empty_needed_queue): Declare.
9647         * cgraphunit.c (output_in_order): Mark all variables as needed;
9648         empty the queue.
9649         * varpool.c (varpool_assemble_node): Update debug queue.
9650         (varpool_assemble_pending_decls): Don't do it here.
9651         (varpool_empty_needed_queue):  New function.
9652
9653 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9654
9655         * recog.c (peephole2_optimize): Fix formatting.
9656
9657 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9658
9659         * c-pch.c (get_ident): Avoid C++ keywords.
9660         * combine-stack-adj.c (single_set_for_csa): Likewise.
9661         * final.c (asm_insn_count, final_scan_insn, alter_subreg,
9662         output_asm_insn): Likewise.
9663         * reload.c (push_secondary_reload, find_reusable_reload,
9664         push_reload, combine_reloads, find_reloads,
9665         debug_reload_to_stream): Likewise.
9666         * reload.h (struct reload): Likewise.
9667         * reload1.c (reload_reg_class_lower, find_reg, find_reload_regs,
9668         allocate_reload_reg, choose_reload_regs, emit_input_reload_insns,
9669         emit_output_reload_insns): Likewise.
9670         * targhooks.c (default_secondary_reload): Likewise.
9671         * varasm.c (section_entry_eq, object_block_entry_eq): Likewise.
9672
9673 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9674
9675         * recog.c (validate_change_1, validate_change,
9676         validate_unshare_change, validate_replace_rtx_1, struct
9677         funny_match, constrain_operands, peephole2_optimize): Avoid C++
9678         keywords.
9679         * reload.c (push_secondary_reload, secondary_reload_class,
9680         scratch_reload_class, find_valid_class, find_reusable_reload,
9681         push_reload, find_dummy_reload, find_reloads_address_1,
9682         find_reloads_address_part, find_equiv_reg): Likewise.
9683         * reload1.c (spill_failure, eliminate_regs_1, allocate_reload_reg,
9684         choose_reload_regs): Likewise.
9685         * rtlanal.c (replace_rtx, nonzero_bits1, num_sign_bit_copies1):
9686         Likewise.
9687         * rtlhooks.c (gen_lowpart_if_possible): Likewise.
9688         * sched-ebb.c (add_deps_for_risky_insns): Likewise.
9689         * sched-rgn.c (concat_INSN_LIST): Likewise.
9690         * stor-layout.c (mode_for_size, mode_for_size_tree,
9691         smallest_mode_for_size): Likewise.
9692
9693 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9694
9695         * cfg.c (dump_reg_info): Avoid C++ keywords.
9696         * dwarf2asm.c (dw2_force_const_mem,
9697         dw2_asm_output_encoded_addr_rtx): Likewise.
9698         * except.c (gen_eh_region, add_action_record, output_ttype): Likewise.
9699         * expmed.c (expand_shift): Likewise.
9700         * global.c (find_reg): Likewise.
9701         * graph.c (draw_edge): Likewise.
9702         * local-alloc.c (reg_meets_class_p, find_free_reg): Likewise.
9703         * optabs.c (expand_binop, expand_twoval_unop, expand_twoval_binop,
9704         widen_clz, widen_bswap, expand_parity, expand_unop,
9705         emit_cmp_and_jump_insn_1): Likewise.
9706         * postreload.c (reload_cse_simplify_operands): Likewise.
9707         * ra.h (add_neighbor): Likewise.
9708         * reg-stack.c (remove_regno_note, change_stack): Likewise.
9709         * regclass.c (memory_move_secondary_cost, dump_regclass, regclass,
9710         record_reg_classes, copy_cost, record_address_regs,
9711         invalid_mode_change_p): Likewise.
9712         * regrename.c (regrename_optimize, scan_rtx_reg,
9713         dump_def_use_chain, find_oldest_value_reg,
9714         replace_oldest_value_reg, copyprop_hardreg_forward_1): Likewise.
9715
9716 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
9717
9718         * config/rs6000/rs6000.c (processor_target_table): Remove duplicate
9719         MASK_POWERPC64 for power4 in previous commit.
9720
9721 2008-07-16  Olivier Hainque  <hainque@adacore.com>
9722
9723         * collect2.c (scan_prog_file, COFF version): Use CONST_CAST
9724         instead of bare conversion to cast const-ness away.
9725
9726 2008-07-16  Anatoly Sokolov  <aesok@post.ru>
9727
9728         * config/xtensa/xtensa.h (FUNCTION_OUTGOING_VALUE,
9729         XTENSA_FUNCTION_VALUE, XTENSA_FUNCTION_VALUE): Remove.
9730         * config/xtensa/xtensa.c (xtensa_function_value): New function.
9731         (TARGET_FUNCTION_VALUE): Define.
9732
9733 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
9734
9735         * config/rs6000/rs6000.c (processor_target_table): Add
9736         MASK_PPC_GPOPT for power4, power5, power5+, power6, and power6x.
9737
9738 2008-07-16  Joseph Myers  <joseph@codesourcery.com>
9739
9740         PR target/36827
9741         * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
9742         (m32c_legitimate_address_p): Handle "++rii" addresses created by
9743         m32c_legitimize_reload_address.
9744
9745 2007-07-16  Rafael Ãƒvila de Espíndola  <espindola@google.com>
9746
9747         * c-decl.c (merge_decls): Keep DECL_SOURCE_LOCATION and
9748         DECL_IN_SYSTEM_HEADER in sync.
9749
9750 2008-07-15  Daniel Berlin  <dberlin@dberlin.org>
9751
9752         * tree-ssa-sccvn.c (expressions_equal_p): Check type equality.
9753         * tree-ssa-pre.c (pre_expr_eq): Ditto
9754         (get_constant_for_value_id): Take a type as an argument.
9755         (fully_constant_expression): Pass in type.
9756         (find_or_generate_expression): Short circuit constant case.
9757         (create_expression_by_pieces): Remove special casing of
9758         pointer_plus.
9759         (do_regular_insertion): Short circuit constant case.
9760         (do_partial_partial_insertion): Ditto.
9761
9762 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
9763
9764         PR target/36782
9765         * config/sh/sh.md (symGOT_load): Don't add REG_EQUAL note.
9766
9767 2008-07-15  Bob Wilson  <bob.wilson@acm.org>
9768
9769         * config/xtensa/libgcc-xtensa.ver: New file.
9770         * config/xtensa/t-linux (SHLIB_MAPFILES): Append libgcc-xtensa.ver.
9771
9772 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9773
9774         * df-problems.c (df_set_note): Avoid C++ keywords.
9775         * df-scan.c (df_ref_change_reg_with_loc_1): Likewise.
9776         * dse.c (record_store, remove_useless_values): Likewise.
9777         * emit-rtl.c (gen_reg_rtx, update_reg_offset, gen_rtx_REG_offset,
9778         gen_reg_rtx_offset, operand_subword, change_address_1,
9779         change_address, adjust_address_1, offset_address,
9780         widen_memory_access, emit_copy_of_insn_after): Likewise.
9781         * explow.c (round_push, allocate_dynamic_stack_space): Likewise.
9782         * fwprop.c (should_replace_address, propagate_rtx_1,
9783         propagate_rtx, try_fwprop_subst, forward_propagate_and_simplify):
9784         Likewise.
9785         * gcse.c (cprop_jump, find_implicit_sets, bypass_block,
9786         gcse_emit_move_after, update_ld_motion_stores): Likewise.
9787         * lcm.c (compute_insert_delete, pre_edge_lcm,
9788         compute_rev_insert_delete, pre_edge_rev_lcm): Likewise.
9789         * lower-subreg.c (resolve_reg_notes): Likewise.
9790         * mode-switching.c (optimize_mode_switching): Likewise.
9791
9792 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9793
9794         * bt-load.c (add_btr_def, migrate_btr_def,
9795         branch_target_load_optimize): Avoid C++ keywords.
9796         * caller-save.c (insert_restore, insert_save, insert_one_insn):
9797         Likewise.
9798         * combine.c (subst, simplify_set, make_extraction,
9799         make_compound_operation, known_cond, simplify_shift_const_1): Likewise.
9800         * cse.c (make_regs_eqv, merge_equiv_classes, validate_canon_reg,
9801         fold_rtx, equiv_constant, cse_insn, cse_process_notes_1): Likewise.
9802
9803 2008-07-15  Richard Guenther  <rguenther@suse.de>
9804
9805         PR middle-end/36369
9806         * c-common.c (strict_aliasing_warning): Do not warn for
9807         TYPE_REF_CAN_ALIAS_ALL pointers.
9808         (c_common_get_alias_set): may_alias types are not special.
9809         * tree.c (build_pointer_type_for_mode): Look up the may_alias
9810         attribute and set can_ref_all accordingly.
9811         (build_reference_type_for_mode): Likewise.
9812         * doc/extend.texi (may_alias): Clarify.
9813
9814 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
9815
9816         PR target/36780
9817         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
9818         (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
9819
9820 2008-07-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9821
9822         PR target/31568
9823         * config/rs6000/rs6000.c (print_operand <case 'y'>): Don't use
9824         gcc_assert, instead call output_operand_lossage.
9825
9826 2008-07-15  Kai Tietz  <kai.tietz@onevision.com>
9827
9828         * builtins.c (std_canonical_va_list): Treat structure based
9829         va_list types.
9830
9831 2008-07-15  Ben Elliston  <bje@au.ibm.com>
9832
9833         * emit-rtl.c (set_mem_attributes_minus_bitpos): Improve comment.
9834
9835 2007-07-14  Rafael Ãƒvila de Espíndola  <espindola@google.com>
9836
9837         * c-decl.c (diagnose_mismatched_decls): Don't warn if TREE_NO_WARNING
9838         is set.
9839
9840 2008-07-14  Jan Hubicka  <jh@suse.cz>
9841
9842         * i386.md (sse5 cmov pattern): Update call of ix86_sse5_valid_op_p
9843         * sse.md (sse5 patterns): Update call of ix86_sse5_valid_op_p;
9844         fix predicates and constraints.
9845         * i386.c (ix86_sse5_valid_op_p): Add commutative parameter.
9846         * i386-protos.h (ix86_sse5_valid_op_p): Update declaration.
9847
9848 2008-07-14  Doug Kwan  <dougkwan@google.com>
9849
9850         * config.gcc (arm*-*-eabi*): Include arm/eabi.h and use
9851         additional option file arm/eabi.opt.
9852         * config/arm/eabi.h (File): New configuration file for EABI targets.
9853         * config/arm/elf.h (SUBTARGET_EXTRA_SPECS): Add
9854         SUBSUBTARGET_EXTRA_SPECS.
9855         (SUBSUBTARGET_EXTRA_SPECS): Provide empty default.
9856         * config/arm/unknown-elf.h (UNKNOWN_ELF_STARTFILE_SPEC): Renamed
9857         from STARTFILE_SPEC so that it can be referenced in an override.
9858         (STARTFILE_SPEC): Use UNKNOWN_ELF_STARTFILE_SPEC.
9859         (UNKNOWN_ELF_ENDFILE_SPEC): Renamed from ENDFILE_SPEC so that it
9860         can be referenced in an override.
9861         (ENDFILE_SPEC): Use UNKNOWN_ELF_ENDFILE_SPEC.
9862         * config/arm/bpabi.h (BPABI_LINK_SPEC): Renamed from LINK_SPEC
9863         so that it can be referenced in an override.
9864         (LINK_SPEC): Use BPABI_LINK_SPEC.
9865         * config/arm/eabi.opt (File): New.
9866
9867 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9868
9869         * Makefile.in (TARGET_DEF_H): Add targhooks.h.
9870         (FIXED_VALUE_H): New variable.
9871         (RTL_BASE_H): Use $(INPUT_H) and $(FIXED_VALUE_H) instead of
9872         input.h, fixed-value.h.
9873         (TREE_H): Use $(INPUT_H), add $(SYMTAB_H).
9874         (BASIC_BLOCK_H): Use $(BITMAP_H).
9875         (FUNCTION_H): Add varray.h.
9876         (IPA_REFERENCE_H): Use $(BITMAP_H).
9877         (CGRAPH_H): Add $(BASIC_BLOCK_H).
9878         (DF_H): Use $(BITMAP_H).
9879         (GGC_H): Add statistics.h.
9880         (INSN_ADDR_H): New.
9881         (INSN_ATTR_H): Use it.
9882         (SYSTEM_H): Add safe-ctype.h, filenames.h.
9883         (INPUT_H): New.
9884         (SYMTAB_H): Add $(OBSTACK_H).
9885         (CPP_INTERNAL_H): New.
9886         (TREE_DUMP_H): Add tree-pass.h.
9887         (TREE_FLOW_H): Use $(BITMAP_H)
9888         (PRETTY_PRINT_H): Use $(INPUT_H).
9889         (EBITMAP_H): Rename from typo-ed EBIMAP_H.
9890         (GSTAB_H): New.
9891         (BITMAP_H): New.
9892         (many object files): Fix lots of header dependencies throughout.
9893
9894 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9895
9896         * Makefile.in (write_entries_to_file, write_entries_to_file_split):
9897         New macros.
9898         (s-gtyp-input): Use them to write tmp-gi.list.
9899         (echo_to_gi.list): Remove.
9900
9901 2008-07-14  Richard Guenther  <rguenther@suse.de>
9902
9903         * tree-ssa-sccvn.c (pre_info): Remove.
9904         (switch_to_PRE_table): Likewise.
9905         (free_scc_vn): Do not clear SSA_NAME_VALUE.  Do not free pre_info.
9906         (set_hashtable_value_ids): Do not create value-ids for the
9907         optimistic tables.
9908         (run_scc_vn): Remove double test.  Remove bogus special-case
9909         in value-number printing.
9910         * tree-ssa-sccvn.h (switch_to_PRE_table): Remove.
9911         * tree-ssa-ccp.c (get_symbol_constant_value): Do not look at
9912         SSA_NAME_VALUE.
9913         * tree-flow-inline.h (get_value_handle): Remove.
9914         * tree-flow.h (get_value_handle): Remove.
9915
9916 2008-07-14  Martin Jambor  <mjambor@suse.cz>
9917
9918         * tree-switch-conversion.c (gen_inbound_check): Make sure the type
9919         in which we generate arithmetics is not a subrange.
9920
9921 2008-07-14  Martin Jambor  <mjambor@suse.cz>
9922
9923         * Makefile.in (IPA_PROP_H): Added ipa-prop.h to IPA_PROP_H variable.
9924
9925 2008-07-14  Richard Guenther  <rguenther@suse.de>
9926
9927         * tree-ssa-pre.c (insert_into_preds_of_block): Do not call convert.
9928
9929 2008-07-14  Andreas Krebbel  <krebbel1@de.ibm.com>
9930
9931         PR target/36745
9932         * config/s390/s390.c: (s390_secondary_reload): Add a secondary
9933         reload for symbol refs moved to r0 with -fPIC.
9934         (legitimize_pic_address): Use the target register as temporary
9935         reg if possible.
9936         (emit_symbolic_move): Adjust comment.
9937         * config/s390/s390.md (reloadsi_PIC_addr, reloaddi_PIC_addr):
9938         New expanders.
9939
9940 2008-07-14  Ben Elliston  <bje@au.ibm.com>
9941
9942         * c-common.h (C_CPP_HASHNODE): New macro.
9943         * coretypes.h (struct cpp_token): Forward declare.
9944         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
9945         the context-sensitive keyword method.
9946         * config/rs6000/rs6000-c.c (__vector_keyword, vector_keyword,
9947         __pixel_keyword, pixel_keyword, __bool_keyword, bool_keyword,
9948         expand_bool_pixel): New.
9949         (altivec_categorize_keyword): New function.
9950         (init_vector_keywords): New function.
9951         (rs6000_macro_to_expand): Likewise.
9952         (rs6000_cpu_cpp_builtins): Enable context-sensitive macros if not
9953         compiling an ISO C dialect.
9954
9955 2008-07-13  Daniel Berlin  <dberlin@dberlin.org>
9956
9957         * tree-ssa-pre.c (fully_constant_expression): Add fold_convert calls.
9958         (create_expression_by_pieces): Fix typo.
9959         (do_regular_insertion): Use debug counter here too.
9960
9961 2008-07-14  Hans-Peter Nilsson  <hp@axis.com>
9962
9963         PR target/35492.
9964         * config/cris/cris.h (CRIS_CONST_OK_FOR_LETTER_P): Renamed from
9965         CONST_OK_FOR_LETTER_P.  All port-local users changed.
9966         (CONST_OK_FOR_CONSTRAINT_P): Define; implement Kc as old K,
9967         implement Kp matching power-of-two.
9968         (CONSTRAINT_LEN): Define to match.
9969         * config/cris/cris.md: Replace all use of constraint K with Kc.
9970         ("*btst*): Use Kp for operand 0 of last alternative.
9971
9972 2008-07-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9973
9974         PR testsuite/36440
9975         * tree-call-cdce.c (check_target_format): Accept MIPS single, double
9976         and quad formats.
9977
9978 2008-07-13  Jan Hubicka  <jh@suse.cz>
9979
9980         * tree.c (decl_assembler_name_equal): Expect assembler name of decl
9981         to be mangled too.
9982
9983 2008-07-13  Richard Guenther  <rguenther@suse.de>
9984
9985         PR middle-end/36811
9986         * langhooks.c (lhd_print_error_function): Deal with recursive
9987         BLOCK trees.
9988
9989 2008-07-12  Jan Hubicka  <jh@suse.cz>
9990
9991         * cgraph.c (assembler_name_hash): New static var.
9992         (hash_node_by_assembler_name, eq_assembler_name): New.
9993         (cgraph_node_for_asm): Use hashtable.
9994         (cgraph_remove_node): Maintain hashtable.
9995         (change_decl_assembler_name): Sanity check that names are not changing
9996         after aliasing was processed.
9997         * cgraph.h (varpoon_node): Add next GGC marker.
9998         * tree.c (decl_assembler_name_equal): Constify.
9999         (decl_assembler_name_hash): New.
10000         * tree.h (decl_assembler_name_equal): Constify.
10001         (decl_assembler_name_hash): Update.
10002
10003 2008-07-12  David Daney  <ddaney@avtrex.com>
10004
10005         * config/mips/driver-native.c (host_detect_local_cpu): Handle
10006         sb1 and r5000 cpus.
10007
10008 2008-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
10009
10010         * doc/md.texi: Document the MIPS "v" constraint.
10011         * config/mips/mips.h (reg_class): Revert last change.
10012         (REG_CLASS_NAMES): Likewise.
10013         (REG_CLASS_CONTENTS): Likewise.
10014         * config/mips/mips.c (mips_regno_to_class): Likewise.
10015         * config/mips/constraints.md (v): Likewise, but add documentation.
10016         Add a comment to say that this constraint should not be used in
10017         gcc code.
10018
10019 2008-07-11  DJ Delorie  <dj@redhat.com>
10020
10021         * config/h8300/h8300.md (length): Fix branch offset limit.
10022
10023 2008-07-11  Anatoly Sokolov  <aesok@post.ru>
10024
10025         * config/avr/avr-protos.h (avr_peep2_scratch_safe): Remove prototype.
10026         * config/avr/avr.c (avr_peep2_scratch_safe): Remove.
10027         (avr_hard_regno_scratch_ok): New function.
10028         (TARGET_HARD_REGNO_SCRATCH_OK): Define.
10029         * config/avr/avr.md (all peepholes that request a scratch register):
10030         Remove avr_peep2_scratch_safe use.
10031
10032 2008-07-11  Tom Tromey  <tromey@redhat.com>
10033             Ian Lance Taylor  <iant@google.com>
10034
10035         * c-common.h (enum rid): Add RID_CXX_COMPAT_WARN.
10036         (struct c_common_resword): Define.
10037         (D_CONLY, D_CXXONLY, D_C99, D_CXX0X, D_EXT, D_EXT89): Define.
10038         (D_ASM, D_OBJC, D_CXX_OBJC, D_CXXWARN): Define.
10039         (c_common_reswords, num_c_common_reswords): Declare.
10040         * c-common.c (c_common_reswords): New global const array.
10041         (num_c_common_reswords): New const int.
10042         * c-parser.c (struct resword, reswords): Don't define.
10043         (D_C89, D_EXT, D_EXT89, D_OBJC): Don't define.
10044         (c_parse_init): Clarify mask code.  Use c_common_reswords rather
10045         than reswords.  If warning about C++ keywords, give them a special
10046         RID code.
10047         (c_lex_one_token): Warn about C++ keywords.  Call
10048         objc_is_reserved_word rather than OBJC_IS_AT_KEYWORD.
10049         (c_parser_external_declaration): Look for RID_xxx rather than
10050         RID_AT_xxx, for ObjC++ keywords which are also C++ keywords.
10051         (c_parser_statement_after_labels): Likewise.
10052         (c_parser_objc_class_instance_variables): Likewise.
10053         (c_parser_objc_class_declaration): Likewise.
10054         (c_parser_objc_try_catch_statement): Likewise.
10055         * c-decl.c (c_print_identifier): Ignore RID_CXX_COMPAT_WARN.
10056         (declspecs_add_type): Likewise.
10057
10058 2008-07-11  Angelo Graziosi  <angelo.graziosi@alice.it>
10059
10060         * ggc-page.c (alloc_page):
10061         Substituting xmalloc, xcalloc with
10062         XNEWVEC and XCNEWVAR macros which add the
10063         needed casts.
10064
10065 2008-07-11  Richard Guenther  <rguenther@suse.de>
10066
10067         PR tree-optimization/36765
10068         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
10069         aliases from HEAP vars to SMTs.
10070
10071 2008-07-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10072
10073         * Makefile.in (LOOSE_WARN, STRICT_WARN): Update comments.
10074         * configure.ac (loose_warn): Move -Wc++-compat from here...
10075         (strict_warn): ...to here.
10076         * configure: Regenerate.
10077
10078 2008-07-10  Joseph Myers  <joseph@codesourcery.com>
10079
10080         * config.gcc (arm-*-coff*, armel-*-coff*, h8300-*-*,
10081         i[34567]86-*-aout*, i[34567]86-*-coff*, m68k-*-aout*,
10082         m68k-*-coff*, sh-*-*, mips-sgi-irix[56]*, pdp11-*-bsd,
10083         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*): Deprecate targets,
10084         excluding more specific h8300-*-* and sh-*-* targets.
10085
10086 2008-07-10  Daniel Berlin  <dberlin@dberlin.org>
10087
10088         * tree-ssa-pre.c (create_expression_by_pieces): Add fold_convert calls.
10089         (eliminate): Ditto.
10090         (execute_pre): Call loop_optimizer_finalize in early exit.
10091
10092 2008-07-10  Jakub Jelinek  <jakub@redhat.com>
10093
10094         PR middle-end/36790
10095         * omp-low.c (lower_omp_2): If task_shared_vars, test all DECL_P
10096         uids in the bitmap, not just VAR_DECL uids.
10097
10098         PR rtl-optimization/36419
10099         * combine-stack-adj.c (adjust_frame_related_expr): New function.
10100         (combine_stack_adjustments_for_block): Call it if needed.  Delete
10101         correct insn.
10102         * dwarf2out.c (dwarf2out_frame_debug_expr): Adjust
10103         DW_CFA_GNU_args_size if CSA pass merged some adjustments into
10104         prologue sp adjustment.
10105
10106 2008-07-10  Peter Maydell  <pmaydell@chiark.greenend.org.uk>
10107
10108         PR other/28322
10109         * opts.c (print_ignored_options): Report postponed diagnostics for
10110         unknown -Wno-* options as warnings, not errors.
10111         (postpone_unknown_option_error): Renamed to...
10112         (postpone_unknown_option_warning): ... this.
10113
10114 2008-07-09  Doug Kwan  <dougkwan@google.com>
10115
10116         Revert:
10117         2008-07-08  Doug Kwan  <dougkwan@google.com>
10118
10119         * config/arm/arm.opt (mandroid): New option.
10120         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
10121         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
10122         (CC1_SPEC): Same.
10123         (CC1PLUS_SPEC): Same.
10124         (LIB_SPEC): Same.
10125         (STARTFILE_SPEC): Same.
10126         (ENDFILE_SPEC): Same.
10127         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
10128         used.
10129
10130 2008-07-09  Richard Sandiford  <rdsandiford@googlemail.com>
10131
10132         PR target/35802
10133         * config/mips/mips.h (reg_class): Remove V1_REG.
10134         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
10135         * config/mips/mips.c (mips_regno_to_class): Map $3 to M16_NA_REGS
10136         instead of V1_REGS.
10137         (mips_get_tp): New function.
10138         (mips_legitimize_tls_address): Use it.
10139         * config/mips/constraints.md (v): Delete.
10140         * config/mips/mips.md (TLS_GET_TP_REGNUM): New constant.
10141         (tls_get_tp_<mode>): Allow any GPR destination and clobber $3.
10142         After reload, split into a move and ...
10143         (*tls_get_tp_<mode>_split): ...this new instruction.
10144
10145 2008-07-09  David Daney  <ddaney@avtrex.com>
10146
10147         * config/mips/driver-native.c: Include coretypes.h and tm.h.
10148
10149 2008-07-09  Jakub Jelinek  <jakub@redhat.com>
10150
10151         * gimplify.c (struct gimplify_ctx): Move to tree-gimple.h.
10152         (push_gimplify_context): Don't allocate temp_htab nor c itself here.
10153         Add c argument.
10154         (pop_gimplify_context): Check c->temp_htab instead of optimize whether
10155         htab_delete should be called.  Don't free c.
10156         (lookup_tmp_var): Create temp_htab lazily.
10157         (gimplify_scan_omp_clauses, gimplify_omp_parallel, gimplify_omp_task,
10158         gimplify_body, force_gimple_operand): Adjust push_gimplify_context
10159         callers.
10160         * omp-low.c (lower_omp_sections, lower_omp_single, lower_omp_master,
10161         lower_omp_ordered, lower_omp_critical, lower_omp_for,
10162         create_task_copyfn, lower_omp_taskreg, execute_lower_omp):
10163         * tree-ssa-ccp.c (convert_to_gimple_builtin): Likewise.
10164         * tree-sra.c (generate_element_init): Likewise.
10165         * tree-mudflap.c (execute_mudflap_function_ops,
10166         execute_mudflap_function_decls): Likewise.
10167         * tree-inline.c (setup_one_parameter, optimize_inline_calls): Likewise.
10168         * tree-gimple.h (struct gimplify_ctx): New type.
10169         (push_gimplify_context): Adjust prototype.
10170
10171 2008-07-09  Daniel Berlin  <dberlin@dberlin.org>
10172
10173         * tree-ssa-pre.c (phi_translate_1): Update placement of
10174         add_to_value calls.
10175
10176 2008-07-09  Anatoly Sokolov  <aesok@post.ru>
10177
10178         * target.h (struct gcc_target): Add hard_regno_scratch_ok field.
10179         * target-def.h (TARGET_HARD_REGNO_SCRATCH_OK): New.
10180         (TARGET_INITIALIZER): Use TARGET_HARD_REGNO_SCRATCH_OK.
10181         * targhooks.c (default_hard_regno_scratch_ok): New function.
10182         * targhooks.h (default_hard_regno_scratch_ok): Declare function.
10183         * doc/tm.texi: Document TARGET_HARD_REGNO_SCRATCH_OK hook.
10184         * recog.c:  Include "target.h".
10185         (peep2_find_free_register): Add check for global regs. Add target
10186         specific check.
10187         * Makefile.in (recog.o): Depend on target.h.
10188
10189 2008-07-09  Kaz Kojima  <kkojima@gcc.gnu.org>
10190
10191         * config/sh/sh.c (sh_canonical_va_list_type): New.
10192         (TARGET_CANONICAL_VA_LIST_TYPE): Define.
10193
10194 2008-07-09  Raksit Ashok <raksit@google.com>
10195
10196         * doc/invoke.texi (Option Summary): Mention new option
10197         -Wdisallowed-function-list=...
10198         (Warning Options): Document -Wdisallowed-function-list=...
10199         * common.opt (Wdisallowed-function-list=): New flag.
10200         * flags.h (warn_disallowed_functions): External definition of new
10201         boolean warning flag.
10202         (warn_if_disallowed_function_p): Declare new function.
10203         * opts.c (warning_disallowed_functions): New static variable.
10204         (warn_disallowed_functions): New boolean warning flag.
10205         (warn_if_disallowed_function_p): New function.
10206         (add_comma_separated_to_vector): Rename
10207         add_instrument_functions_exclude_list to this.
10208         (common_handle_option): Handle new option. Rename calls to
10209         add_instrument_functions_exclude_list into calls to
10210         add_comma_separated_to_vector.
10211         * c-parser.c (c_parser_postfix_expression_after_primary): New warning
10212         based on flag warn_disallowed_functions.
10213
10214 2008-07-09  Christian Bruel  <christian.bruel@st.com>
10215
10216         * final.c (get_attr_length_1): Call get_attr_length_1 with fallback_fn
10217          instead of get_attr_length.
10218
10219 2008-07-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10220
10221         * genattrtab.c (insert_right_side, evaluate_eq_attr): Avoid C++
10222         keywords.
10223         * genemit.c (gen_insn): Likewise.
10224         * gengtype.c (note_def_vec): Likewise.
10225         * gengtype.h (note_def_vec): Likewise.
10226         * genoutput.c (struct data, output_insn_data, process_template,
10227         gen_expand, gen_split, note_constraint): Likewise.
10228         * genrecog.c (new_decision, add_to_sequence, factor_tests,
10229         make_insn_sequence): Likewise.
10230         * gensupport.c (record_insn_name): Likewise.
10231
10232 2008-07-08  Doug Kwan  <dougkwan@google.com>
10233
10234         * config/arm/arm.opt (mandroid): New option.
10235         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
10236         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
10237         (CC1_SPEC): Same.
10238         (CC1PLUS_SPEC): Same.
10239         (LIB_SPEC): Same.
10240         (STARTFILE_SPEC): Same.
10241         (ENDFILE_SPEC): Same.
10242         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
10243         used.
10244
10245 2008-07-08  Raksit Ashok  <raksit@google.com>
10246
10247         * expr.c (emit_block_move_via_movmem): Fix expected_align parameter.
10248         (set_storage_via_setmem): Fix expected_align parameter.
10249         * doc/invoke.texi (i386 and x86-64 Options): Add a couple of options
10250         missing from the list.
10251         * doc/md.texi (movmem): Explicitly state that expected alignment is
10252         to be expressed in bytes.
10253         (setmem): Explicitly state that expected alignment is to be expressed
10254         in bytes.
10255
10256 2008-07-08  Joseph Myers  <joseph@codesourcery.com>
10257
10258         * reload.c (find_reloads_subreg_address): Do not require validity
10259         of address in original mode before reloading address.
10260
10261 2008-07-07  Tianwei Sheng  <tianweis@google.com>
10262
10263         * df-core.c (df_remove_problem): Adjust the access to avoid out of
10264         bounds array access.
10265
10266 2008-07-08  Jakub Jelinek  <jakub@redhat.com>
10267
10268         * tree-sra.c (sra_build_assignment): Handle CONVERT_EXPR_P dst.
10269
10270 2008-07-05  Daniel Berlin  <dberlin@dberlin.org>
10271
10272         Fix PR tree-optimization/23455
10273         Fix PR tree-optimization/35286
10274         Fix PR tree-optimization/35287
10275         * Makefile.in (OBJS-common): Remove tree-vn.o.
10276         (tree-vn.o): Remove.
10277         * dbgcnt.def: Add treepre_insert debug counter.
10278         * gcc/tree-flow.h (add_to_value): Updated for other changes.
10279         (debug_value_expressions): Ditto.
10280         (print_value_expressions): Ditto.
10281         * tree-pretty-print.c (dump_generic_node): Updated for
10282         VALUE_HANDLE removal.
10283         * tree-ssa-dom.c (record_equality): Ditto.
10284         (cprop_operand): Ditto.
10285         (lookup_avail_expr): Ditto.
10286         * tree-ssa-threadedge.c
10287         (record_temporary_equivalences_from_stmts_at_dest): Ditto.
10288         (simplify_control_stmt_condition): Ditto.
10289         * tree.c (tree_code_size): Ditto.
10290         (tree_node_structure): Ditto.
10291         (iterative_hash_expr): Ditto.
10292         * tree.def: Ditto.
10293         * tree.h (VALUE_HANDLE_ID): Ditto.
10294         (VALUE_HANDLE_EXPR_SET): Ditto.
10295         (struct tree_value_handle): Ditto.
10296         (union tree_node): Ditto.
10297         * treestruct.def: Ditto.
10298         * tree-vn.c: Removed.
10299         * tree-ssa-pre.c: Rewritten entirely.
10300         * tree-ssa-sccvn.c (constant_to_value_id): New hashtable.
10301         (constant_value_ids): Ditto.
10302         (vn_nary_op_t): Moved to header.
10303         (vn_phi_t): Ditto.
10304         (vn_reference_op_t): Ditto
10305         (vn_reference_t): Ditto.
10306         (next_value_id): New variable.
10307         (VN_INFO): Add an assert.
10308         (vn_constant_eq): New function.
10309         (vn_constant_hash): Ditto.
10310         (get_or_alloc_constant_value_id): Ditto.
10311         (value_id_constant_p): Ditto.
10312         (vn_reference_compute_hash): De-staticify.
10313         (copy_reference_ops_from_ref): Don't use get_callee_fndecl.
10314         Disable some code with a FIXME.  Remove VALUE_HANDLE use.
10315         (valueize_refs): Update opcode if it changes from ssa name to constant.
10316         (vn_reference_lookup_1): Add new argument.
10317         (vn_reference_lookup):  Ditto.
10318         (vn_reference_lookup_pieces): New function.
10319         (vn_reference_insert): Add return type. Modify to deal with value ids.
10320         (vn_reference_insert_pieces):  New function.
10321         (vn_nary_op_compute_hash): De-staticify.
10322         (vn_nary_op_eq): Ditto.
10323         (vn_nary_op_lookup_pieces): New function.
10324         (vn_nary_op_lookup): Add new argument.
10325         (vn_nary_op_insert_pieces): New function.
10326         (vn_nary_op_insert): Add return type. Modify to deal with value ids.
10327         (vn_phi_insert): Ditto.
10328         (visit_unary_op): Update for callee changes.
10329         (visit_binary_op): Ditto.
10330         (visit_reference_op_load): Ditto.
10331         (visit_reference_op_store): Ditto.
10332         (init_scc_vn): Init next_value_id, constant_to_value_id and
10333         constant_value_ids.
10334         (free_scc_vn): Free them.
10335         (set_hashtable_value_ids): New function.
10336         (run_scc_vn): Use it.
10337         (get_max_value_id): New function.
10338         (get_next_value_id): Ditto.
10339         (expressions_equal_p): Moved from tree-vn.c
10340         (sort_vuses): Ditto.
10341         (sort_vuses_heap): Ditto.
10342         * tree-ssa-sccvn.h: Structures moved from tree-ssa-sccvn.c (noted
10343         above).
10344         * tree.c (iterative_hash_hashval_t): Made non-static
10345         * tree.h (iterative_hash_hashval_t): Declare it.
10346
10347 2008-07-08  Martin Jambor  <mjambor@suse.cz>
10348
10349         * ipa-cp.c (ipcp_init_cloned_node): Call ipa_check_create_node_params
10350         instead of ipa_create_node_params.
10351         (ipcp_driver): Allocate infos with ipa_check_create_node_params and
10352         ipa_check_create_edge_args, free them with
10353         free_all_ipa_structures_after_ipa_cp, call ipa_register_cgraph_hooks.
10354
10355         * ipa-prop.c: Include flags.h and tree-inline.h.
10356         (ipa_node_params_vector): New variable.
10357         (ipa_edge_args_vector): New variable.
10358         (edge_removal_hook_holder): New variable.
10359         (node_removal_hook_holder): New variable.
10360         (edge_duplication_hook_holder): New variable.
10361         (node_duplication_hook_holder): New variable.
10362         (ipa_detect_param_modifications): Check for presence of modified flags.
10363         (ipa_compute_jump_functions): Check for presence of jump functions.
10364         (ipa_free_edge_args_substructures): New function.
10365         (ipa_create_node_params): Removed.
10366         (ipa_free_all_edge_args): Changed to deallocate the on-the-side vector.
10367         (ipa_free_node_params_substructures): New function.
10368         (ipa_free_all_node_params): Changed to deallocate the on-the-side
10369         vector.
10370         (ipa_edge_removal_hook): New function.
10371         (ipa_node_removal_hook): New function.
10372         (duplicate_array): New function.
10373         (ipa_edge_duplication_hook): New function.
10374         (ipa_node_duplication_hook): New function.
10375         (ipa_register_cgraph_hooks): New function.
10376         (ipa_unregister_cgraph_hooks): New function.
10377         (free_all_ipa_structures_after_ipa_cp): New function.
10378
10379         * ipa-prop.h: Include vec.h.
10380         (ipa_node_params_t): New typedef with vector types for it.
10381         (ipa_edge_args_t):  New typedef with vector types for it.
10382         (IPA_NODE_REF): Changed to access an on-the-side vector.
10383         (IPA_EDGE_REF): Changed to access an on-the-side vector.
10384         (ipa_check_create_node_params): New function.
10385         (ipa_check_create_edge_args): New function.
10386
10387         * Makefile.in (IPA_PROP_H): New variable for ipa-prop.h.  Converted
10388         all users.
10389
10390 2008-07-07  Tom Tromey  <tromey@redhat.com>
10391
10392         * configure, config.in: Rebuilt.
10393         * configure.ac: Don't check for scandir or alphasort.
10394
10395 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
10396
10397         * config/arm/arm.c (arm_init_neon_builtins): Register built-in
10398         types immediately after creating them.
10399
10400 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
10401
10402         * config/arm/aout.h (DOLLARS_IN_IDENTIFIERS): Remove.
10403
10404 2008-07-07  Fernando Pereira <fernando@cs.ucla.edu>
10405
10406         * tree-ssa-structalias.c (compute_points_to_sets): Add call to
10407         dump_constraint_graph.
10408         (dump_constraint_edge): New function.
10409         (dump_constraint_graph): New function.
10410         (debug_constraint_graph): New function.
10411         (dump_constraint): Removed useless comparison.
10412         * tree-ssa-structalias.h (dump_constraint_edge): Declare.
10413         (dump_constraint_graph): Declare.
10414         (debug_constraint_graph): Declare.
10415         * tree-dump.c (struct dump_option_value_info): Declare TDF_GRAPH.
10416
10417 2008-07-07  Kai Tietz  <kai.tietz@onevision.com>
10418
10419         * config/i386/i386.c (is_va_list_char_pointer): New.
10420         (ix86_va_start): Replace compare with ms_va_list_type_node
10421         by is_va_list_char_pointer.
10422         (ix86_gimplify_va_arg): Likewise.
10423
10424 2008-07-07  Martin Jambor  <mjambor@suse.cz>
10425
10426         * cgraph.c (cgraph_edge_max_uid): New variable.
10427         (struct cgraph_edge_hook_list): New type.
10428         (struct cgraph_node_hook_list): New type.
10429         (struct cgraph_2edge_hook_list): New type.
10430         (struct cgraph_2node_hook_list): New type.
10431         (first_cgraph_edge_removal_hook): New variable.
10432         (first_cgraph_node_removal_hook): New variable.
10433         (first_cgraph_edge_duplicated_hook): New variable.
10434         (first_cgraph_node_duplicated_hook): New variable.
10435         (cgraph_add_edge_removal_hook): New function.
10436         (cgraph_remove_edge_removal_hook): New function.
10437         (cgraph_call_edge_removal_hooks):  New function.
10438         (cgraph_add_node_removal_hook):  New function.
10439         (cgraph_remove_node_removal_hook):  New function.
10440         (cgraph_call_node_removal_hooks):  New function.
10441         (cgraph_add_edge_duplication_hook):  New function.
10442         (cgraph_remove_edge_duplication_hook):  New function.
10443         (cgraph_call_edge_duplication_hooks):  New function.
10444         (cgraph_add_node_duplication_hook):  New function.
10445         (cgraph_remove_node_duplication_hook):  New function.
10446         (cgraph_call_node_duplication_hooks):  New function.
10447         (cgraph_create_edge): Assign to edge uid.
10448         (cgraph_remove_edge): Call edge removal hooks.
10449         (cgraph_node_remove_callees): Call edge removal hooks.
10450         (cgraph_node_remove_callers): Call edge removal hooks.
10451         (cgraph_remove_node): Call node removal hooks.
10452         (cgraph_clone_edge): Call edge duplication hooks.
10453         (cgraph_clone_node): Call node duplication hooks.
10454
10455         * cgraph.h (cgraph_edge): New field uid.
10456         (cgraph_edge_hook): New type.
10457         (cgraph_node_hook): New type.
10458         (cgraph_2edge_hook): New type.
10459         (cgraph_2node_hook): New type.
10460
10461 2008-07-07  Andreas Tobler  <a.tobler@schweiz.org>
10462
10463         * config.in: Regenerate.
10464
10465 2008-07-07  Vladimir Prus  <vladimir@codesourcery.com>
10466
10467         * gcc.c (print_sysroot): New.
10468         (option_map, display_help, process_command): Handle the
10469         -print-sysroot option.
10470         (main): Print the sysroot if requested.
10471         * doc/invoke.texi (Debugging Options): Document -print-sysroot.
10472
10473 2008-07-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10474
10475         PR target/34780
10476         * unwind-pe.h (size_of_encoded_value): add attribute unused.
10477
10478 2008-07-07  Daniel Jacobowitz  <dan@codesourcery.com>
10479
10480         * function.c (assign_parm_remove_parallels): Check mode of entry_parm.
10481         (assign_parm_setup_block_p): Also check mode of entry_parm.
10482
10483 2008-07-07  Richard Guenther  <rguenther@suse.de>
10484
10485         * tree-ssa-structalias.h (set_used_smts): Remove.
10486         * tree-ssa-structalias.c (used_smts): Likewise.
10487         (set_used_smts): Likewise.
10488         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Remove
10489         call to set_used_smts.
10490
10491 2008-07-07  Richard Guenther  <rguenther@suse.de>
10492
10493         * tree-ssa-structalias.c (struct variable_info): Add is_full_var flag.
10494         (new_var_info): Set it to false.
10495         (solution_set_add): Correctly handle pointers outside a var and
10496         inside a field.
10497         (type_safe): Treat variables with is_full_var properly.
10498         (do_sd_constraint): Likewise.
10499         (do_ds_constraint): Likewise.
10500         (process_constraint): Remove zeroing offset for !use_field_sensitive.
10501         (get_constraint_for_ptr_offset): New function.
10502         (get_constraint_for_component_ref): For addresses at least include
10503         the last field of the variable.  Handle is_full_vars properly.
10504         (get_constraint_for_1): Factor common code, handle POINTER_PLUS_EXPR.
10505         (handle_ptr_arith): Remove.
10506         (find_func_aliases): Simplify assignment handling.
10507         (create_function_info_for): For parameter and result varinfos set
10508         is_full_var flag.
10509         (create_variable_info_for): Set is_full_var flag whenever we
10510         just created a single varinfo for a decl.
10511         (init_alias_vars): Initialize use_field_sensitive from
10512         max-fields-for-field-sensitive parameter.
10513
10514 2008-07-07  Richard Guenther  <rguenther@suse.de>
10515
10516         PR tree-optimization/36713
10517         * tree-flow-inline.h (is_call_used): New function.
10518         * tree-nrv.c (dest_safe_for_nrv_p): Use it.
10519         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
10520         * tree-outof-ssa.c (create_temp): Set call-used flag if required.
10521
10522 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
10523
10524         * config/m68k/m68k.c (m68k_return_in_memory): Fix arguments types.
10525
10526 2008-07-07  Mark Shinwell  <shinwell@codesourcery.com>
10527
10528         * config/m68k/lb1sf68.asm: Add PIC macros for Linux targets.
10529
10530 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
10531             Nathan Sidwell  <nathan@codesourcery.com>
10532
10533         * config.gcc (m68k-*-linux*): Add with_arch.  Add sysroot-suffix.h
10534         to tm_file.  Add m68k/t-floatlib, m68k/t-linux & m68k/t-mlibs to
10535         tmake_file.
10536         * config/m68k/t-linux: New.
10537         * doc/install.texi: Document m68k-*-linux is now multilibbed by
10538         default.
10539
10540 2008-07-07  Nathan Sidwell  <nathan@codesourcery.com>
10541
10542         * config/m68k/t-cf (MULTILIB_EXTRA_OPTS): Add no-mac.
10543         * config/m68k/m68k-devices.def: Remove multilibs that only differ
10544         by MAC/EMAC.
10545
10546 2008-07-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10547
10548         * gcc.c (execute): Fix -Wc++-compat warning.
10549
10550 2008-07-06  H.J. Lu  <hongjiu.lu@intel.com>
10551
10552         PR target/36720
10553         * config/ia64/ia64.c (ia64_split_tmode): Fix typo in TImode
10554         constant for little endian.
10555
10556 2008-07-06  Richard Sandiford  <rdsandiford@googlemail.com>
10557
10558         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Check
10559         mips_base_mips16 instead of TARGET_MIPS16.
10560         (mips_base_mips16): Declare.
10561         * config/mips/mips.c (mips_base_mips16): Make global.
10562         (was_mips16_p): Remove GTY marker.
10563         (was_mips16_pch_p): New variable.
10564         (mips_set_mips16_mode): Check both was_mips16_p and was_mips16_pch_p.
10565         (mips_override_options): Force to non-MIPS16 mode initially.
10566         Do not complain about MIPS16 PIC incompatibilities here.
10567         Only allow -mgpopt if -mexplicit-relocs is in force for
10568         non-MIPS16 code.
10569
10570 2008-07-06  Andreas Tobler  <a.tobler@schweiz.org>
10571
10572         * configure.ac: Check for caddr_t, define to char * if not defined.
10573         * configure: Regenerate.
10574         * ggc-common.c (mmap_gt_pch_get_address): Fix -Wc++-compat warnings.
10575         (mmap_gt_pch_use_address): Likewise.
10576         * config/host-solaris.c (sol_gt_pch_use_address): Likewise.
10577
10578 2008-07-06  Richard Guenther  <rguenther@suse.de>
10579
10580         * tree-ssa-structalias.c (struct variable_info): Remove has_union.
10581         (new_var_info): Deal with it.
10582         (solution_set_add): Likewise.
10583         (bitpos_of_field): Make signed, fix.
10584         (struct fieldoff): Remove type and decl fields.  Make size field
10585         unsigned HOST_WIDE_INT.  Add has_unknown_size and may_have_pointers
10586         flags.
10587         (fieldoff_compare): Deal with it.
10588         (push_fields_onto_fieldstack): Remove has_union argument, glob
10589         adjacent non-pointer fields together.
10590         (create_function_info_for): Do not set has_union.
10591         (create_variable_info_for): Simplify.
10592
10593 2008-07-06  Kai Tietz  <kai.tietz@onevision.com>
10594
10595         * config.gcc (extra_headers): Add cross-stdarg.h for target
10596         x86_64-*-* and i?86-*-*.
10597         * config/i386/cross-stdarg.h: New.
10598         * builtins.c (std_fn_abi_va_list): New.
10599         (std_canonical_va_list_type): New.
10600         (stabilize_va_list): Replace va_list_type_node use by
10601         mtarget.canonical_va_list_type.
10602         (gimplify_va_arg_expr): Likewise.
10603         (expand_builtin_va_copy): Replace va_list_type_node use by
10604         mtarget.fn_abi_va_list.
10605         * tree-sra.c (is_va_list_type): New helper.
10606         (decl_can_be_decomposed_p): Replace
10607         va_list_type_node use by is_va_list_type.
10608         * tree-ssa-ccp.c (optimize_stdarg_builtin): Likewise.
10609         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
10610         * c-common.c (c_common_nodes_and_builtins): Use TARGET_ENUM_VA_LIST.
10611         * config/i386/i386-protos.h (ix86_get_valist_type): New.
10612         (ix86_enum_va_list): New.
10613         * config/i386/i386.c (sysv_va_list_type_node): New.
10614         (ms_va_list_type_node): New.
10615         (ix86_function_type_abi): Remove sorry.
10616         (ix86_build_builtin_va_list_abi): New.
10617         (ix86_build_builtin_va_list): Call ix86_build_builtin_va_list_abi
10618         for 64-bit targets.
10619         (ix86_va_start): Replace va_list_type_node by sysv_va_list_type_node.
10620         (ix86_init_builtins_va_builtins_abi): New.
10621         (ix86_init_builtins): Use ix86_init_builtins_va_builtins_abi
10622         for 64-bit targets.
10623         (ix86_handle_abi_attribute): New.
10624         (attribute_spec): Add sysv_abi and ms_abi.
10625         (ix86_fn_abi_va_list): New.
10626         (ix86_canonical_va_list_type): New.
10627         (ix86_enum_va_list): New.
10628         (TARGET_FN_ABI_VA_LIST): New.
10629         (TARGET_CANONICAL_VA_LIST_TYPE): New.
10630         * config/i386/i386.h (TARGET_ENUM_VA_LIST): New.
10631         * doc/tm.texi (TARGET_FN_ABI_VA_LIST): New.
10632         (TARGET_CANONICAL_VA_LIST_TYPE): New.
10633         (TARGET_ENUM_VA_LIST): New.
10634         * expr.h (std_fn_abi_va_list): New.
10635         (std_canonical_va_list_type): New.
10636         * target-def.h (TARGET_FN_ABI_VA_LIST): New.
10637         (TARGET_CANONICAL_VA_LIST_TYPE): New.
10638         (TARGET_INITIALIZER): Add TARGET_FN_ABI_VA_LIST and
10639         TARGET_CANONICAL_VA_LIST_TYPE.
10640         * target.h (struct gcc_target): Add fn_abi_va_list hook
10641         and canonical_va_list_type hook.
10642
10643 2008-07-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10644
10645         * fold-const.c (fold_convert_const): Treat OFFSET_TYPE the same as
10646         integral and pointer types.
10647
10648 2008-07-04  Roger Sayle  <roger@eyesopen.com>
10649
10650         * config/rs6000/host-darwin.c (darwin_rs6000_extra_signals): Cast
10651         the "void*" result of xmalloc to "char*" to fix bootstrap breakage.
10652
10653 2008-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
10654
10655         PR target/36684
10656         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable -fschedule-insns for PIC.
10657
10658 2008-07-04  Jakub Jelinek  <jakub@redhat.com>
10659
10660         * tree-switch-conversion.c (build_one_array, gen_def_assigns): Use
10661         build_gimple_modify_stmt.
10662         (build_arrays, gen_inbound_check): Likewise.  Force RHS to be
10663         gimple operand.  Use fold_build* instead of build*.
10664
10665 2008-07-04  Richard Guenther  <rguenther@suse.de>
10666
10667         * tree-ssa-structalias.c (lookup_vi_for_tree): Declare.
10668         (do_sd_constraint): Handle a dereference of ESCAPED and CALLUSED
10669         properly to compute the reachability set if we do field-sensitive PTA.
10670         * invoke.texi (max-fields-for-field-sensitive): Document default.
10671         * opts.c (decode_options): Set max-fields-for-field-sensitive to
10672         100 for optimize >= 2.
10673
10674 2008-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10675
10676         * ggc-zone.c (lookup_page_table_if_allocated,
10677         set_page_table_entry, zone_find_object_size, alloc_small_page,
10678         alloc_large_page, ggc_free, gt_ggc_m_S, ggc_marked_p, init_ggc,
10679         new_ggc_zone, init_ggc_pch, ggc_pch_this_base, ggc_pch_read): Fix
10680         -Wc++-compat and/or -Wcast-qual warnings.
10681
10682 2008-07-04  Alan Modra  <amodra@bigpond.net.au>
10683
10684         PR target/36634
10685         * config/rs6000/rs6000.md (call, call_value): Don't arrange for
10686         pic_offset_table_rtx to be marked as used here.
10687         (call_nonlocal_sysv, call_value_nonlocal_sysv): Add split for
10688         TARGET_SECURE_PLT to "use" pic_offset_table_rtx.
10689         (call_nonlocal_sysv_secure, call_value_nonlocal_sysv_secure): New insn.
10690         (sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv): Assert
10691         !TARGET_SECURE_PLT.
10692
10693 2008-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10694
10695         * alloc-pool.c (hash_descriptor, eq_descriptor,
10696         alloc_pool_descriptor): Fix -Wc++-compat warnings.
10697         * bitmap.c (hash_descriptor, eq_descriptor, bitmap_descriptor):
10698         Likewise.
10699         * ggc-common.c (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr,
10700         loc_descriptor, ggc_prune_ptr, ggc_free_overhead,
10701         final_cmp_statistic, cmp_statistic, dump_ggc_loc_statistics): Likewise.
10702         * varray.c (hash_descriptor, eq_descriptor, varray_descriptor):
10703         Likewise.
10704
10705 2008-07-03  Eric Botcazou  <ebotcazou@adacore.com>
10706
10707         * tree-flow.h (loop_only_exit_p): Declare.
10708         * tree-ssa-loop-niter.c (loop_only_exit_p): Make public.
10709         * tree-ssa-loop-ivopts.c (may_eliminate_iv): Reinstate direct check on
10710         the number of iterations if it is constant.  Otherwise, if this is the
10711         only possible exit of the loop, use the conservative estimate on the
10712         number of iterations of the entire loop if available.
10713
10714 2008-07-03  Richard Sandiford  <rdsandiford@googlemail.com>
10715
10716         * Makefile.in (libgcc.mvars): Add LIBGCC_SYNC and LIBGCC_SYNC_CFLAGS.
10717         * libgcc-std.ver (GCC_4.4.0): New version, inherited from GCC_4.3.0.
10718         Add synchronization functions.
10719         * config/sync.c: New file.
10720         * config/mips/t-libgcc-mips16 (LIBGCC_SYNC): Define.
10721         (LIBGCC_SYNC_CFLAGS): Likewise.
10722
10723 2008-07-03  Uros Bizjak  <ubizjak@gmail.com>
10724
10725         PR target/36710
10726         * config/i386/i386.md (mode): Add TF to "mode" attribute.
10727         (*pushtf_sse): New insn pattern.
10728         (pushtf splitters): New splitters.
10729
10730 2008-07-03  Michael Meissner  <gnu@the-meissners.org>
10731
10732         PR middle-end/35736
10733         * predict.c (build_predict_expr): Use void_type_node for the tree
10734         type, instead of NULL_TREE.
10735
10736 2008-07-03  H.J. Lu  <hongjiu.lu@intel.com>
10737
10738         * config/i386/i386.c (contains_aligned_value_p): Return true
10739         for TCmode.
10740         (ix86_data_alignment): Align TCmode to 128bits.
10741         (ix86_local_alignment): Likewise.
10742
10743 2008-07-03  Andrew Haley  <aph@redhat.com>
10744
10745         PR bootstrap/33304
10746         * vec.h (VEC_TA): New.
10747         (DEF_VEC_I, DEF_VEC_P, DEF_VEC_ALLOC_I, DEF_VEC_ALLOC_P,
10748         DEF_VEC_O, DEF_VEC_ALLOC_O: Use VEC_TA.
10749         * c-common.c (C_COMMON_FIXED_TYPES_SAT): New macro.
10750         (C_COMMON_FIXED_MODE_TYPES_SAT): New macro.
10751         (C_COMMON_FIXED_TYPES): Remove first arg.
10752         (C_COMMON_FIXED_MODE_TYPES): Likewise.
10753         * tree.c (MAKE_FIXED_TYPE_NODE): Break into two macros,
10754         MAKE_FIXED_TYPE_NODE and MAKE_FIXED_TYPE_NODE_WIDTH in order
10755         not to use empty macro arguments.
10756
10757 2008-07-02  Joseph Myers  <joseph@codesourcery.com>
10758
10759         * config/alpha/vms_tramp.asm, config/arm/crti.asm,
10760         config/arm/crtn.asm, config/bfin/crti.s, config/bfin/crtlibid.s,
10761         config/bfin/crtn.s, config/fr30/crti.asm, config/fr30/crtn.asm,
10762         config/frv/lib1funcs.asm, config/i386/sol2-c1.asm,
10763         config/i386/sol2-ci.asm, config/i386/sol2-cn.asm,
10764         config/i386/sol2-gc1.asm, config/ia64/crti.asm,
10765         config/ia64/crtn.asm, config/m68hc11/larith.asm,
10766         config/m68hc11/m68hc11-crt0.S, config/m68k/crti.s,
10767         config/m68k/crtn.s, config/mcore/crti.asm, config/mcore/crtn.asm,
10768         config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
10769         config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
10770         config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
10771         config/rs6000/crtsavres.asm, config/rs6000/e500crtres32gpr.asm,
10772         config/rs6000/e500crtres64gpr.asm,
10773         config/rs6000/e500crtres64gprctr.asm,
10774         config/rs6000/e500crtrest32gpr.asm,
10775         config/rs6000/e500crtrest64gpr.asm,
10776         config/rs6000/e500crtresx32gpr.asm,
10777         config/rs6000/e500crtresx64gpr.asm,
10778         config/rs6000/e500crtsav32gpr.asm,
10779         config/rs6000/e500crtsav64gpr.asm,
10780         config/rs6000/e500crtsav64gprctr.asm,
10781         config/rs6000/e500crtsavg32gpr.asm,
10782         config/rs6000/e500crtsavg64gpr.asm,
10783         config/rs6000/e500crtsavg64gprctr.asm, config/rs6000/eabi-ci.asm,
10784         config/rs6000/eabi-cn.asm, config/rs6000/eabi.asm,
10785         config/rs6000/sol-ci.asm, config/rs6000/sol-cn.asm,
10786         config/rs6000/tramp.asm, config/sparc/sol2-ci.asm,
10787         config/sparc/sol2-cn.asm: Remove .file directives.
10788
10789 2008-07-02  Richard Sandiford  <rdsandiford@googlemail.com>
10790
10791         * resource.c (mark_referenced_resources): Look inside
10792         UNSPEC_VOLATILEs and ASM_INPUTs.
10793
10794 2008-07-02  Ian Lance Taylor  <iant@google.com>
10795
10796         * rtlanal.c (add_reg_note): New function.
10797         * rtl.h (add_reg_note): Declare.
10798         * auto-inc-dec.c (attempt_change): Use add_reg_note.
10799         * bb-reorder.c (add_reg_crossing_jump_notes): Likewise.
10800         * builtins.c (expand_builtin_longjmp): Likewise.
10801         (expand_builtin_nonlocal_goto): Likewise.
10802         * calls.c (emit_call_1, expand_call): Likewise.
10803         * cfgexpand.c (add_reg_br_prob_note): Likewise.
10804         * cfglayout.c (fixup_reorder_chain): Likewise.
10805         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
10806         (commit_one_edge_insertion): Likewise.
10807         * combine.c (move_deaths, distribute_notes): Likewise.
10808         * df-problems.c (df_set_note): Likewise.
10809         * emit-rtl.c (link_cc0_insns, try_split): Likewise.
10810         (set_unique_reg_note): Likewise.
10811         (emit_copy_of_insn_after): Likewise.
10812         * expr.c (expand_expr_real): Likewise.
10813         * gcse.c (add_label_notes): Likewise.
10814         * haifa-sched.c (create_check_block_twin): Likewise.
10815         * jump.c (mark_jump_label_1): Likewise.
10816         * loop-doloop.c (add_test, doloop_modify): Likewise.
10817         * loop-unswitch.c (compare_and_jump_seq): Likewise.
10818         * lower-subreg.c (move_eh_region_note): Likewise.
10819         * optabs.c (emit_libcall_block): Likewise.
10820         * predict.c (predict_insn): Likewise.
10821         (combine_predictions_for_insn): Likewise.
10822         * recog.c (peephole2_optimize): Likewise.
10823         * regmove.c (try_auto_increment): Likewise.
10824         * reg-stack.c (emit_pop_insn, move_for_stack_reg): Likewise.
10825         * reload.c (find_reloads): Likewise.
10826         * reload1.c (fixup_eh_region_note): Likewise.
10827         (reload_as_needed, add_auto_inc_notes, copy_eh_notes): Likewise.
10828         * reorg.c (delete_prior_computation): Likewise.
10829         (delete_computation, dbr_schedule): Likewise.
10830         * config/pa/pa.c (legitimize_pic_address): Likewise.
10831         * config/sh/sh.c (sh_reorg): Likewise.
10832
10833 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
10834
10835         PR target/36669
10836         * config/libgcc-glibc.ver: Add %exclude.
10837         * config/m32r/libgcc-glibc.ver: Likwise.
10838         * config/s390/libgcc-glibc.ver: Likwise.
10839         * config/sh/libgcc-glibc.ver: Likwise.
10840         * config/sparc/libgcc-sparc-glibc.ver: Likwise.
10841
10842         * config/i386/libgcc-glibc.ver: New.
10843
10844         * config/i386/libgcc-x86_64-glibc.ver: Removed.
10845
10846 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
10847
10848         * config.gcc: Remove i386/t-fprules-softfp64 soft-fp/t-softfp
10849         from tmake_file from i[34567]86-*-darwin*, x86_64-*-darwin*,
10850         i[34567]86-*-linux*, x86_64-*-linux*.  Add
10851         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file for
10852         i[34567]86-*-darwin*, x86_64-*-darwin*, i[34567]86-*-linux*,
10853         x86_64-*-linux*.  Add i386/t-linux to tmake_file for
10854         i[34567]86-*-linux*, x86_64-*-linux*.
10855
10856         * libgcc-std.ver: Add empty GCC_4.4.0.
10857
10858         * mkmap-symver.awk: Support multiple versions per symbol.
10859
10860         * config/i386/i386.c (ix86_init_builtins): Always define
10861         __builtin_fabsq and __builtin_copysignq with fallbacks.
10862         (ix86_expand_builtin): Emit normal call for __builtin_fabsq
10863         and __builtin_copysignq if SSE2 isn't available.
10864
10865         * config/i386/linux.h (LIBGCC2_HAS_TF_MODE): Defined.
10866         (LIBGCC2_TF_CEXT): Likwise.
10867         (TF_SIZE): Likwise.
10868
10869         * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): Defined as 1.
10870
10871         * config/i386/sfp-machine.h: Moved to libgcc.
10872
10873         * config/i386/sfp-machine.h: New.
10874         * config/i386/t-linux: Likwise.
10875
10876         * config/i386/t-darwin: Remove softfp_wrap_start and
10877         softfp_wrap_end.
10878         * config/i386/t-darwin64: Likewise.
10879
10880         * config/i386/t-fprules-softfp64: Renamed to ...
10881         * config/i386/t-fprules-softfp: This.
10882
10883         * config/i386/t-linux64: Remove SHLIB_MAPFILES, softfp_wrap_start
10884         and softfp_wrap_end.
10885
10886 2008-07-02  Jason Merrill  <jason@redhat.com>
10887
10888         * tree.c (ctor_to_list): Use FOR_EACH_CONSTRUCTOR_ELT.
10889
10890         * tree.c (ctor_to_list): New fn.
10891         * tree.h: Declare it.
10892         (CONSTRUCTOR_ELT): New macro.
10893         (CONSTRUCTOR_NELTS): New macro.
10894
10895 2008-07-02  Richard Guenther  <rguenther@suse.de>
10896
10897         * tree-ssa-structalias.c (struct variable_info): Reorder
10898         to fill padding on 64bit hosts.  Make collapsed_to an int.
10899         (get_varinfo_fc): Deal with that.
10900         (new_var_info): Likewise.
10901         (collapse_rest_of_var): Likewise.
10902
10903 2008-07-02  Joshua Sumali  <jsumali@redhat.com>
10904
10905         * doc/install.texi (--enable-java-home): Document.
10906         (--enable-aot-compile-rpm): Likewise.
10907         (--with-arch-directory): Likewise.
10908         (--with-os-directory): Likewise.
10909         (--with-origin-name): Likewise.
10910         (--with-arch-suffix): Likewise.
10911         (--with-jvm-root-dir): Likewise.
10912         (--with-jvm-jar-dir): Likewise.
10913         (--with-python-dir): Likewise.
10914
10915 2008-07-02  Richard Guenther  <rguenther@suse.de>
10916
10917         * tree-ssa-forwprop.c (can_propagate_from): Exclude loads
10918         from decls explicitly.  Merge operand checking from tuples.
10919
10920 2008-07-02  Martin Jambor  <mjambor@suse.cz>
10921
10922         * tree-switch-conversion.c: Included timevar.h which I forgot before.
10923
10924 2008-07-02  Martin Jambor  <mjambor@suse.cz>
10925
10926         * tree-switch-conversion.c: Included timevar.h
10927         (pass_convert_switch): Added a timevar id (TV_TREE_SWITCH_CONVERSION).
10928
10929         * timevar.def: Added TV_TREE_SWITCH_CONVERSION.
10930
10931 2008-07-02  Martin Jambor  <mjambor@suse.cz>
10932
10933         * tree-switch-conversion.c: Corrected various comments and
10934         whitespace issues
10935         (build_constructors): Fixed minor formatting mistakes.
10936
10937         * invoke.texi (Optimize Options): Corrected the
10938         switch-conversion-max-branch-ratio parameter.
10939
10940 2008-07-02  Mark Shinwell  <shinwell@codesourcery.com>
10941
10942         * final.c (asm_insn_count): Return zero for an empty asm body.
10943
10944 2008-07-02  Richard Guenther  <rguenther@suse.de>
10945
10946         * bitmap.h (bitmap_set_bit): Return bool.
10947         (bitmap_clear_bit): Likewise.
10948         * bitmap.c (bitmap_set_bit): Return if the bit changed.  Only
10949         write to the bitmap if it would.
10950         (bitmap_clear_bit): Likewise.
10951         * tree-ssa-structalias.c (add_implicit_graph_edge): Use
10952         bitmap_set_bit return value.
10953         (add_pred_graph_edge): Likewise.
10954         (add_graph_edge): Likewise.
10955         (do_sd_constraint): Likewise.
10956         (do_ds_constraint): Likewise.
10957
10958 2008-07-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10959
10960         * config/alpha/alpha.c (alpha_need_linkage, alpha_use_linkage):
10961         Fix -Wc++-compat and/or -Wcast-qual warnings.
10962         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration,
10963         gen_regparm_prefix): Likewise.
10964         * vmsdbgout.c (write_modbeg, lookup_filename,
10965         vmsdbgout_source_line, vmsdbgout_init): Likewise.
10966
10967 2008-07-02  Danny Smith  <dannysmith@users.sourceforge.net>
10968
10969         * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Undef to let
10970         defaults.h definition apply.
10971
10972 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
10973
10974         * function.c (assign_parm_remove_parallels): New.
10975         (assign_parm_setup_block_p): Do not return true for non-BLKmode
10976         PARALLELs.
10977         (assign_parm_setup_block): Do not handle them.
10978         (assign_parm_setup_reg, assign_parm_setup_stack): Call
10979         assign_parm_remove_parallels.
10980
10981 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
10982
10983         * c-typeck.c (convert_for_assignment): Use
10984         vector_targets_convertible_p.
10985         * c-common.c (vector_targets_convertible_p): New.
10986         * c-common.h (vector_targets_convertible_p): New prototype.
10987         * config/rs6000/rs6000.c (rs6000_is_opaque_type): Do not check
10988         opaque_p_V2SI_type_node.
10989
10990 2008-07-01  Steve Ellcey  <sje@cup.hp.com>
10991
10992         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Do not allow
10993         RFmode constants.
10994
10995 2008-07-01  Uros Bizjak  <ubizjak@gmail.com>
10996
10997         * config/i386/i386.c (ix86_build_signbit_mask): Generate TImode and
10998         TFmode constants via two element DImode vector for hosts with
10999         HOST_BITS_PER_WIDE_INT < 64.
11000         (ix86_init_builtins): Define __builtin_fabsq and __builtin_copysignq
11001         also for HOST_BITS_PER_WIDE_INT < 64.
11002
11003 2008-07-01  Richard Guenther  <rguenther@suse.de>
11004
11005         PR tree-optimization/36666
11006         * tree-ssa-structalias.c (get_constraint_for_1): Declare.
11007         (get_constraint_exp_from_ssa_var): Split into ...
11008         (get_constraint_exp_for_temp): ... this ...
11009         (get_constraint_for_ssa_var): ... and that.
11010         Return constraint expressions for all touched sub-fields
11011         if the results address is not taken.
11012         (process_constraint): Remove assertion that aggregate
11013         assignments do not happen at this place.
11014         (get_constraint_for_component_ref): Add address_p argument.
11015         Return constraint expressions for all touched sub-fields
11016         if the results address is not taken.
11017         (do_deref): Use get_constraint_exp_for_temp.
11018         (get_constraint_for_1): Rename from ...
11019         (get_constraint_for): ... this.  Add the old function as wrapper.
11020         (do_structure_copy): Use get_constraint_for_1.
11021
11022 2008-07-01  Martin Jambor  <mjambor@suse.cz>
11023
11024         * Makefile.in (tree-switch-conversion.o): Add.
11025         (OBJS-common): Add tree-swtch-conversion.o.
11026         * passes.c (init_optimization_passes): Add pass_convert_switch.
11027         * tree-pass.h: (pass_convert_switch): Add.
11028         * tree-switch-conversion.c: New file.
11029         * gcc.dg/tree-ssa/cswtch.c: New testcase.
11030         * common.opt (ftree-cswtch): New option.
11031         * params.h (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
11032         * params.def (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
11033         * opts.c (decode_options): Set flag_tree_switch_conversion when
11034         optimization level is >= 2.
11035         * doc/invoke.texi (Optimize Options): Added description of
11036         -ftree-swtch-conversion and switch-conversion-max-branch-ratio.
11037
11038 2008-06-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11039
11040         * config/darwin-driver.c (darwin_default_min_version): Fix
11041         -Wc++-compat warnings.
11042
11043 2008-06-30  Uros Bizjak  <ubizjak@gmail.com>
11044
11045         * config/i386/i386.md (*movti_rex64): Add "!" to "r" constraint
11046         of operand 0.
11047
11048 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
11049
11050         * ifcvt.c (cond_move_process_if_block): Free vectors on false return.
11051
11052 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
11053
11054         PR rtl-optimization/34744
11055         * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): New macros.
11056         (df_scan_free_internal): Free data structures not
11057         allocated in storage pools.
11058         (df_mw_hardreg_chain_delete_eq_uses): Use df_scan_free_mws_vec.
11059         (df_refs_add_to_chains): Use df_scan_free_ref_vec and
11060         df_scan_free_mws_vec.
11061         * dse.c (dse_step6): Free offset_map_p and offset_map_n
11062         unconditionally.
11063
11064 2008-06-30  H.J. Lu  <hongjiu.lu@intel.com>
11065
11066         * config/i386/i386.c (contains_aligned_value_p): Return true
11067         for __float128.
11068         (ix86_function_arg_boundary): Return its natural boundary
11069         for __float128.
11070         (return_in_memory_32): Don't check TDmode.
11071         (ix86_split_to_parts): Support splitting into 4 parts and
11072         support TFmode for 32bit target.
11073         (ix86_split_long_move): Support splitting into 4 parts.
11074         (bdesc_args): Enable IX86_BUILTIN_FABSQ and IX86_BUILTIN_COPYSIGNQ
11075         for SSE2.
11076         (ix86_init_mmx_sse_builtins): Move __float80 and __float128 to ...
11077         (ix86_init_builtins): Here.
11078         (ix86_scalar_mode_supported_p): Always return true for TFmode.
11079         (ix86_c_mode_for_suffix): Always return TFmode and XFmode for
11080         'q' and 'w', respectively.
11081
11082         * config/i386/i386.md (movtf): Check TARGET_SSE2 instead of
11083         TARGET_64BIT.
11084         (movtf_internal): Likewise.
11085         (<code>tf2): Likewise.
11086         (*absnegtf2_sse): Likewise.
11087         (copysign<mode>3): Likewise.
11088         (copysign<mode>3_const): Likewise.
11089         (copysign<mode>3_var): Likewise.
11090         (define_split UNSPEC_COPYSIGN): Likewise.
11091         * config/i386/sse.md (*nandtf3): Likewise.
11092         (<code>tf3): Likewise.
11093         (*<code>tf3): Likewise.
11094
11095 2008-06-30  Joey Ye  <joey.ye@intel.com>
11096             H.J. Lu  <hongjiu.lu@intel.com>
11097
11098         * global.c (compute_regsets): Set frame_pointer_needed here.
11099         * reload1.c (init_elim_table): Don't set frame_pointer_needed here.
11100
11101 2008-06-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
11102
11103         * doc/install.texi (specific): Expand Windows build notes.
11104
11105 2008-06-30  Ira Rosen  <irar@il.ibm.com>
11106
11107         PR tree-optimization/36648
11108         * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Divide
11109         number of prolog iterations by step. Fix the comment.
11110
11111 2008-06-30  Richard Guenther  <rguenther@suse.de>
11112
11113         PR middle-end/36671
11114         * tree-ssa-structalias.c (handle_lhs_call): Add flags argument,
11115         handle calls from ECF_MALLOC functions.
11116         (handle_pure_call): ECF_MALLOC functions do not return
11117         call-used memory.
11118         (find_func_aliases): Handle all calls, adjust calls to handle_lhs_call.
11119
11120 2008-06-29  Andreas Schwab  <schwab@suse.de>
11121
11122         * config/m68k/m68k.c (print_operand): Always print a float
11123         constant in hex.
11124         * config/m68k/m68k.h (ASM_OUTPUT_FLOAT_OPERAND)
11125         (ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND):
11126         Remove macros.
11127
11128         * config/rs6000/x-linux64: Remove never used file.
11129
11130 2008-06-29  Richard Guenther  <rguenther@suse.de>
11131
11132         * tree-ssa-structalias.h (compute_points_to_sets): Adjust
11133         prototype.
11134         (struct alias_info): Move ...
11135         * tree-ssa-alias.c: ... here.
11136         (update_alias_info): Declare.
11137         (compute_may_aliases): Call it.
11138         (update_alias_info): New function.
11139         * tree-ssa-structalias.c (update_alias_info): Move ...
11140         * tree-ssa-alias.c (update_alias_info_1): ... here.
11141         * tree-ssa-structalias.c (process_constraint_1): Remove
11142         unused from_call argument.  Rename to ...
11143         (process_constraint): ... this.  Delete old wrapper.
11144         (make_constraint_to): Adjust callers.
11145         (handle_const_call): Likewise.
11146         (handle_pure_call): Likewise.
11147         (init_base_vars): Likewise.
11148         (handle_lhs_call): Likewise.  Remove unnecessary constraint.
11149         (find_func_aliases): We don't need structure copies for
11150         complex types.
11151         (make_constraint_from_anything): Remove.
11152         (create_variable_info_for): For globals make constraints
11153         from escaped, not from anything.
11154         (compute_points_to_sets): Do not call update_alias_info.
11155         (ipa_pta_execute): Use make_constraint_from.
11156
11157 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11158
11159         * Makefile.in (CXX_COMPAT_WARN, cxx_compat_warn): Delete.
11160         (bitmap.o-warn, dominance.o-warn): New.
11161         * configure.ac (cxx_compat_warn): Delete.
11162         (loose_warn): Add -Wcast-qual and -Wc++-compat.
11163         * system.h: Remove #pragma diagnostic for -Wcast-qual and
11164         -Wc++-compat.
11165         * configure: Regenerate.
11166
11167         * optabs.c (libfunc_decl_hash, libfunc_decl_eq): Fix -Wcast-qual
11168         warnings.
11169
11170 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11171
11172         * alloc-pool.c (create_alloc_pool): Fix -Wc++-compat warnings.
11173         * df-scan.c (df_notes_rescan): Likewise.
11174         * ggc-page.c (set_page_table_entry): Likewise.
11175         * intl.c (gcc_gettext_width): Likewise.
11176         * varasm.c (get_unnamed_section, get_noswitch_section,
11177         get_section): Likewise.
11178
11179 2008-06-28  Andrew Jenner  <andrew@codesourcery.com>
11180
11181         * regrename.c (build_def_use): Don't copy RTX.
11182
11183 2008-06-28  Sandra Loosemore  <sandra@codesourcery.com>
11184
11185         * doc/extend.texi (Variable Attributes): Use @ref instead of @xref.
11186         (Type Attributes): Fix nesting of @table and @subsection.  Adjust
11187         punctuation.  Use @ref instead of @xref.
11188         (Function Names): Remove stray @display/@end display.
11189         (C++ Attributes): Use @ref instead of @xref.
11190         (Deprecated Features): Fix punctuation around @xref.
11191         (Backwards Compatibility): Likewise.
11192         * doc/rtl.texi (Incdec): Remove stray @table/@end table.
11193
11194 2008-06-28  Joseph Myers  <joseph@codesourcery.com>
11195
11196         * config/rs6000/predicates.md (easy_fp_constant): Reject TFmode
11197         constants for E500 double.
11198
11199 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11200
11201         * doc/rtl.texi (const_vector): Document const_fixed as legitimate
11202         element type of const_vector.
11203
11204 2008-06-28  Uros Bizjak  <ubizjak@gmail.com>
11205
11206         * config/i386/i386.md (addti3, adddi3, addsi3, addhi3, addqi3):
11207         Remove FLAGS_REG clobber from expander pattern.
11208         (subti3, subdi3, subsi3, subhi3, subqi3): Ditto.
11209         (anddi3, andsi3, andhi3, andqi3): Ditto.
11210         (iordi3, iorsi3, iorhi3, iorqi3): Ditto.
11211         (xordi3, xorsi3, xorhi3, xorqi3): Ditto.
11212         (negti2, negdi2, negsi2, neghi2, negqi2): Ditto.
11213         (ashlsi3, ashlhi3, ashlqi3): Ditto.
11214         (ashrsi3, ashrhi3, ashrqi3): Ditto.
11215         (lshrsi3, lshrhi3, lshrqi3): Ditto.
11216         (rotldi3, rotlsi3, rotlhi3, rotlqi3): Ditto.
11217         (rotrdi3, rotrsi3, rotrhi3, rotrqi3): Ditto.
11218
11219 2008-06-28  Richard Guenther  <rguenther@suse.de>
11220
11221         * tree-ssa-structalias.c (callused_id, var_callused,
11222         callused_tree): Add.
11223         (handle_pure_call): New function.
11224         (find_func_aliases): Call it.
11225         (find_what_p_points_to): Handle the call-used set.
11226         (clobber_what_escaped): Likewise.
11227         (compute_call_used_vars): New function.
11228         (init_base_vars): Init the call-used variable.
11229         (do_sd_constraint): Do not propagate the solution from CALLUSED
11230         but use CALLUSED as a placeholder.
11231         (solve_graph): Likewise.
11232         * tree-flow-inline.h (gimple_call_used_vars): New function.
11233         * tree-flow.h (struct gimple_df): Add call_used_vars bitmap.
11234         (compute_call_used_vars): Declare.
11235         * tree-ssa-alias.c (set_initial_properties): Call
11236         compute_call_used_vars.
11237         (reset_alias_info): Clear call-used variables.
11238         (add_call_clobber_ops): Assert we are not called for const/pure
11239         functions.  Remove handling of them.
11240         (add_call_read_ops): Handle pure functions by adding the
11241         call-used set of variables as VUSEs.
11242         * tree-ssa.c (init_tree_ssa): Allocate call-used bitmap.
11243         (delete_tree_ssa): Free it.
11244         * tree-dfa.c (remove_referenced_var): Clear the var from the
11245         call-used bitmap.
11246
11247 2008-06-28  Kai Tietz  <kai.tietz@onevision.com>
11248
11249         * tree.c (build_varargs_function_type_list): New.
11250         (build_function_type_list_1): New.
11251         (build_function_type_list): Use build_function_type_list_1.
11252         * tree.h (build_varargs_function_type_list): New.
11253
11254 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11255
11256         PR target/34856
11257         * config/spu/spu.c (spu_builtin_splats): Do not generate
11258         invalid CONST_VECTOR expressions.
11259         (spu_expand_vector_init): Likewise.
11260
11261 2008-06-28  Richard Sandiford  <rdsandiford@googlemail.com>
11262
11263         * optabs.c (libfunc_decls): New variable.
11264         (libfunc_decl_hash, libfunc_decl_eq): New functions.
11265         (init_one_libfunc): Reuse decls and SYMBOL_REFs when asked
11266         for the same function twice.
11267
11268 2008-06-27  Uros Bizjak  <ubizjak@gmail.com>
11269
11270         * config/i386/i386.md (ashlti3, ashrti3, lshrti3): Expand using
11271         ix86_expand_binary_operator directly.
11272         (*ashlti3_1): Rename from ashlti3_1.  Use nonmemory_operand predicate
11273         for operand 2.
11274         (*ashrti3_1): Ditto.
11275         (*lshrti3_1): Ditto.
11276         (*ashlti3_2, *ashrti3_2, *lshrti3_2): Remove insn patterns.
11277         (ashlti, ashrti and lshrti splitters): Handle nonmemory operand 2
11278         using only one splitter.  Conditionaly execute splitter before or
11279         after peephole2 pass.
11280         (ashlti, ashrti and lshrti peephole2): Define peephole2 patterns.
11281         (x86_shld): Rename from x86_shld_1.  Compress operand 2 constraints.
11282         Use only one alternative in asm template.
11283         (x86_64_shld): Compress operand 2 constraints. Use only one alternative
11284         in asm template.
11285         (*ashldi3_cmp_rex64): Use const_1_to_63_operand operand predicate and
11286         "J" operand constraint for operand 2.
11287         (*ashldi3_cconly_rex64): Ditto.
11288         (*ashrdi3_cmp_rex64): Ditto.
11289         (*ashrdi3_cconly_rex64): Ditto.
11290         (*lshrdi3_cmp_rex64): Ditto.
11291         (*lshrdi3_cconly_rex64): Ditto.
11292         * config/i386/predicates.md (const_1_to_63_operand): New predicate.
11293         * config/i386/i386.md (print_operand) ['s']: Print ", " using fputs.
11294         (split_ashr, split_ashl, split_lshr): Use gen_x86_shrd instead of
11295         gen_x86_shrd_1.
11296
11297 2008-06-27  Jakub Jelinek  <jakub@redhat.com>
11298
11299         * gimplify.c (omp_is_private): Don't return true if decl is not
11300         already private on #pragma omp for or #pragma omp parallel for.
11301
11302         PR debug/36617
11303         * tree-cfg.c (struct move_stmt_d): Replace block field with
11304         orig_block and new_block fields.
11305         (move_stmt_r): Only set TREE_BLOCK to p->new_block if
11306         if it used to be NULL, p->orig_block or if p->orig_block is NULL.
11307         (move_block_to_fn): Replace vars_map and new_label_map arguments
11308         with struct move_stmt_d pointer.
11309         (replace_block_vars_by_duplicates): New function.
11310         (move_sese_region_to_fn): Add ORIG_BLOCK argument.  Adjust
11311         move_block_to_fn caller.  If ORIG_BLOCK is non-NULL, move over
11312         all subblocks of ORIG_BLOCK to the new function.  Call
11313         replace_block_vars_by_duplicates.
11314         * tree-flow.h (move_sese_region_to_fn): Adjust prototype.
11315         * omp-low.c (expand_omp_taskreg): Set TREE_USED on DECL_INITIAL
11316         BLOCK of the new function.  Adjust move_sese_region_to_fn caller.
11317         Prune vars with original DECL_CONTEXT from child_cfun->local_decls.
11318         (expand_omp): Temporarily set input_location to the location of
11319         region's controlling stmt.
11320         (lower_omp_sections, lower_omp_for): Add a BLOCK into outermost
11321         BIND_EXPR, push ctx->block_vars and gimplification vars into
11322         the BIND_EXPR and its block's BLOCK_VARS instead of directly
11323         into dest function.
11324         (lower_omp_single): Set TREE_USED on the BIND_EXPR's BLOCK if
11325         there are any BLOCK_VARS.
11326         (lower_omp_taskreg): Set BLOCK on a BIND_EXPR containing the
11327         OMP_PARALLEL or OMP_TASK stmt.
11328         (lower_omp): Save and restore input_location around the lower_omp_1
11329         call.
11330
11331 2008-06-27  Richard Guenther  <rguenther@suse.de>
11332
11333         PR tree-optimization/36400
11334         PR tree-optimization/36373
11335         PR tree-optimization/36344
11336         * tree-ssa-structalias.c (var_escaped, escaped_tree, escaped_id,
11337         var_nonlocal, nonlocal_tree, nonlocal_id): New globals
11338         (update_alias_info): Remove call clobbering code.
11339         (make_constraint_to): New helper function.
11340         (make_escape_constraint): Likewise.
11341         (handle_rhs_call): Use it on all pointer containing arguments.
11342         Also mark the static chain escaped.
11343         (handle_lhs_call): Make constraints from NONLOCAL and ESCAPED
11344         instead of ANYTHING.
11345         (make_constraint_from): New helper split out from ...
11346         (make_constraint_from_anything): ... here.
11347         (find_func_aliases): Add constraints for escape sites.
11348         (intra_create_variable_infos): Make constraints from NONLOCAL
11349         for parameters.
11350         (find_what_p_points_to): Interpret NONLOCAL and ESCAPED the same
11351         as ANYTHING.
11352         (clobber_what_p_points_to): Remove.
11353         (clobber_what_escaped): New function.
11354         (init_base_vars): Init NONLOCAL and ESCAPED.
11355         (do_sd_constraint): Do not propagate the solution from ESCAPED
11356         but use ESCAPED as a placeholder.
11357         (solve_graph): Likewise.
11358         * tree-flow.h (clobber_what_p_points_to): Remove.
11359         (clobber_what_escaped): Declare.
11360         * tree-ssa-alias.c (set_initial_properties): Call it.
11361         Remove code clobbering escaped pointers.
11362
11363 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
11364
11365         * function.c (allocate_struct_function): Only allocate a unique
11366         funcdef_no if the decl is nonzero.
11367
11368 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
11369
11370         * config/mips/mips-protos.h (mips_split_const_insns): Declare.
11371         * config/mips/mips.c (mips_split_const_insns): New function.
11372         * config/mips/mips.md (move_type): New attribute.
11373         (mode): Move attribute definition earlier in file.  Add "TI" and "TF".
11374         (dword_mode): New attribute.
11375         (type): Avoid long line.  Map "move_type"s to "type"s,
11376         choosing "multi" for doubleword moves if appropriate.
11377         Swap MTC/MFC comments to match their declaration order.
11378         (extended_mips16): Default to "yes" if "move_type" is "sll0",
11379         "type" is "branch" or "jal" is "direct".
11380         (length): Handle "extended_mips16" first.  Make the default
11381         "0" for "ghost" instructions.  Set the length from "move_type".
11382         (truncdisi2, truncdihi2, truncdiqi2): Use "move_type" instead
11383         of "type", with "sll0" for the register alternative.  Remove the
11384         "extended_mips16" attribute.
11385         (zero_extendsidi2, *clear_upper32): Use "move_type" instead
11386         of "type", with "shift_shift" for the register alternative.
11387         Remove the "length" attribute.
11388         (*extend<SHORT:mode><GPR:mode>2, *extendqihi2): Likewise.
11389         (*zero_extend<SHORT:mode><GPR:mode>2): Use "move_type" instead
11390         of "type", with "andi" for the register alternative.
11391         (*zero_extendqihi2): Likewise.
11392         (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): Use a "move_type"
11393         of "andi" instead of a "type" of "arith".
11394         (*zero_extend<SHORT:mode><GPR:mode>2_mips16): Use "move_type"
11395         instead of "type".
11396         (*zero_extendqihi2_mips16, mov_<load>l, mov_<load>r, mov_<store>l)
11397         (mov_<store>r, *mov<mode>_ra): Likewise.
11398         (extendsidi2): Use "move_type" instead of "type", with "move"
11399         for the register alternative.
11400         (*extend<SHORT:mode><GPR:mode>2_mips16e): Use "move_type" instead
11401         of "type", with "signext" for the register alternative.
11402         (*extend<SHORT:mode><GPR:mode>2_se<SHORT:size>): Likewise.
11403         (*extendqihi2_mips16e, *extendqihi2_seb): Likewise.
11404         (fix_truncdfsi2_insn, fix_truncsfsi2_insn, fix_truncdfdi2)
11405         (fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2, floatdisf2)
11406         (floatdisf2, *branch_equality<mode>_mips16): Likewise.
11407         (unnamed branch insn): Likewise.
11408         (*movdi_gp32_fp64): Fold into...
11409         (*movdi_32bit): ...here.
11410         (*movdf_hardfloat_64bit, *movdf_hardfloat_32bit): Combine into...
11411         (*movdf_hardfloat): ...this new pattern.
11412         (*movdf_softfloat): Remove redundant FPR alternatives.
11413         (*movti, *movti_mips16, *movtf, *movtf_mips16): Add "mode" attributes.
11414         (*movv2sf_hardfloat_64bit, *movv2sf_hardfloat_32bit): Combine into...
11415         (*movv2sf): ...this new pattern.  Use "DF" rather than "SF" for
11416         the "move" attribute.
11417         (*movdi_32bit): Use "move_type" instead of "type" and remove the
11418         "length" attribute.  Use "fpload" and "fpstore" instead of "load"
11419         and "store" for COP loads and stores.
11420         (*movdi_32bit_mips16, *movdi_64bit, *movsi_internal, movcc)
11421         (*movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16)
11422         (*movsf_hardfloat, *movsf_softfloat, *movsi_mips16, *movdf_hardfloat)
11423         (*movdf_softfloat, *movdf_mips16, *movti, *movti_mips16, *movtf)
11424         (*movtf_mips16, *movv2sf): Likewise.
11425         (mfhi<GPR:mode>_<HILO:mode>, mflo<GPR:mode>_<HILO:mode>)
11426         (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
11427         (mfhc1<mode>): Use "move_type" instead of "move".
11428         (*low<mode>_mips16): Use "extended_mips16" instead of "length".
11429         (loadgp_blockage): Remove the "length" attribute.
11430         (blockage, set_got_version, update_got_version): Likewise.
11431         (call_internal): Remove the "extended_mips16" attribute.
11432         (call_value_internal, call_value_multiple_internal): Likewise.
11433         * config/mips/loongson.md (mov<mode>_internal): Use "move_type"
11434         instead of "move".
11435         * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Remove
11436         the "length" attribute.
11437
11438 2008-06-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11439
11440         * c-format.c (handle_format_attribute): Fix -Wc++-compat and/or
11441         -Wcast-qual warnings.
11442         * c-pragma.c (dpm_eq, handle_pragma_push_macro,
11443         handle_pragma_pop_macro): Likewise.
11444         * collect2.c (resolve_lib_name): Likewise.
11445         * config/arc/arc.c (arc_init): Likewise.
11446         * config/arm/arm.c (neon_builtin_compare,
11447         locate_neon_builtin_icode): Likewise.
11448         * config/arm/pe.c (arm_mark_dllexport, arm_pe_unique_section): Likewise.
11449         * config/bfin/bfin.c (bfin_init_machine_status,
11450         bfin_optimize_loop): Likewise.
11451         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.
11452         * config/cris/cris.c (cris_init_expanders): Likewise.
11453         * config/darwin-c.c (frameworks_in_use, add_framework): Likewise.
11454         * config/darwin.c (machopic_indirection_eq,
11455         machopic_indirection_name, machopic_output_indirection): Likewise.
11456         * config/frv/frv.c (frv_init_machine_status, frv_compare_insns,
11457         frv_io_check_address, frv_io_handle_set, frv_io_handle_use_1,
11458         frv_optimize_membar): Likewise.
11459         * config/i386/cygwin.h (mingw_scan,
11460         GCC_DRIVER_HOST_INITIALIZATION): Likewise.
11461         * config/i386/cygwin1.c (mingw_scan): Likewise.
11462         * config/i386/i386.c (machopic_output_stub): Likewise.
11463         * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix,
11464         i386_pe_unique_section): Likewise.
11465         * config/ia64/ia64.c (ia64_init_machine_status,
11466         ia64_h_i_d_extended, get_free_bundle_state, bundling, ia64_reorg):
11467         Likewise.
11468         * config/iq2000/iq2000.c, iq2000_init_machine_status): Likewise.
11469         * config/m68hc11/m68hc11.c (m68hc11_encode_label): Likewise.
11470         * config/m68k/m68k.c (m68k_handle_option,
11471         m68k_sched_md_init_global): Likewise.
11472         * config/mcore/mcore.c (mcore_mark_dllexport, mcore_mark_dllimport,
11473         mcore_unique_section): Likewise.
11474         * config/mips/mips.c (mips_block_move_straight,
11475         mips16_rewrite_pool_refs, mips_sim_wait_regs_2, mips_sim_record_set):
11476         Likewise.
11477         * config/mmix/mmix.c (mmix_init_machine_status,
11478         mmix_encode_section_info): Likewise.
11479         * config/pa/pa.c (pa_init_machine_status, hppa_encode_label): Likewise.
11480         * config/rs6000/rs6000.c (rs6000_init_machine_status,
11481         print_operand_address, output_toc, redefine_groups,
11482         rs6000_elf_encode_section_info, machopic_output_stub): Likewise.
11483         * config/s390/s390.c (s390_init_machine_status): Likewise.
11484         * config/score/score.c (score_block_move_straight,
11485         score_block_move_loop_body): Likewise.
11486         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
11487         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
11488         * emit-rtl.c (find_auto_inc): Likewise.
11489         * gcc.c (translate_options, process_command): Likewise.
11490         * reorg.c (dbr_schedule): Likewise.
11491         * sdbout.c (sdbout_start_source_file, sdbout_init): Likewise.
11492         * xcoffout.c (xcoffout_declare_function): Likewise.
11493
11494 2008-06-27  Daniel Berlin  <dberlin@dberlin.org>
11495
11496         * tree-ssa-structalias.c (find_func_aliases): Trivial fix to get
11497         ipa-pta working again.
11498
11499 2008-06-27  David Edelsohn  <edelsohn@gnu.org>
11500
11501         * config/rs6000/t-aix52: Append large data option to LDFLAGS for
11502         genautomata.
11503
11504 2008-06-27  Edmar Wienskoski  <edmar@freescale.com>
11505
11506         * config.gcc (powerpc*-*-*): Add new core e500mc.
11507         * config/rs6000/e500mc.md: New file.
11508         * config/rs6000/rs6000.c (processor_costs): Add new costs for
11509         e500mc.
11510         (rs6000_override_options): Add e500mc case to
11511         processor_target_table. Altivec and Spe options not allowed
11512         with e500mc. Add isel instruction to e500mc by
11513         default. Initialize rs6000_cost for e500mc.
11514         (rs6000_issue_rate): Set issue rate for e500mc.
11515         * config/rs6000/rs6000.h (processor_type): Add
11516         PROCESSOR_PPCE500MC.
11517         (ASM_CPU_SPEC): Add e500mc.
11518         Set TARGET_ISEL to rs6000_isel.
11519         * config/rs6000/e500.h: Remove redefinition of TARGET_ISEL.
11520         (CHECK_E500_OPTIONS): Remove TARGET_ISEL.
11521         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc.
11522         Include e500mc.md.
11523         * doc/invoke.texi: Add e500mc to list of cpus.
11524
11525 2008-06-27  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
11526
11527         PR c/34867
11528         * c-lex.c (lex_charconst): Initialize unsignedp.
11529
11530 2008-06-27  Olivier Hainque  <hainque@adacore.com>
11531
11532         * gimplify.c (gimplify_modify_expr_to_memset): Assert our
11533         documented assumptions.
11534
11535 2008-06-26  H.J. Lu  <hongjiu.lu@intel.com>
11536
11537         * dwarf2out.c: Remove trailing white spaces.  Break long line
11538         in comments.
11539
11540 2008-06-26  Richard Sandiford  <rdsandiford@googlemail.com>
11541
11542         * libfuncs.h (LTI_synchronize): New libfunc_index.
11543         (synchronize_libfunc): Declare.
11544         * builtins.c (expand_builtin_synchronize): Consider using
11545         synchronize_libfunc before falling back on an asm blockage.
11546         * config/mips/mips.c: Include libfuncs.h
11547         (mips_init_libfuncs): Initialize synchronize_libfunc for TARGET_MIPS16.
11548
11549 2008-06-26  Nathan Froyd  <froydnj@codesourcery.com>
11550
11551         * config/rs6000/rs6000.c (emit_allocate_stack): Add copy_r11
11552         parameter.  Copy stack_reg to r11 where appropriate.
11553         (no_global_regs_above): Add gpr parameter.
11554         (rs6000_stack_info): Only add padding for SPE save area if we
11555         are saving SPE GPRs and CR.
11556         (saveres_routine_syms): New variable.
11557         (FIRST_SAVRES_REGISTER, LAST_SAVRES_REGISTER, N_SAVRES_REGISTERS):
11558         Define.
11559         (rs6000_savres_routine_sym): New function.
11560         (rs6000_emit_stack_reset, rs6000_restore_saved_cr): New functions,
11561         split out of...
11562         (rs6000_emit_epilogue): ...here.  Use rs6000_use_multiple_p and
11563         rs6000_savres_strategy.  Restore GPRs out-of-line if appropriate.
11564         Tweak FPR out-of-line saving.
11565         (rs6000_make_savres_rtx): New function.
11566         (rs6000_use_multiple_p): New function.
11567         (rs6000_savres_strategy): New function.
11568         (rs6000_emit_prologue): Use rs6000_savres_strategy.  Save GPRs
11569         out-of-line if appropriate.
11570         * config/rs6000/sysv4.h (FP_SAVE_INLINE): Save FPRs out-of-line
11571         if we are optimizing for size.
11572         (GP_SAVE_INLINE): Define.
11573         (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): Only use _l on 64-bit targets.
11574         * config/rs6000/darwin.h (GP_SAVE_INLINE): Define.
11575         * config/rs6000/aix.h (GP_SAVE_INLINE): Define.
11576         * config/rs6000/rs6000.md (*save_gpregs_<mode>): New insn.
11577         (*save_fpregs_<mode>): Add use of r11.
11578         (*restore_gpregs_<mode>): New insn.
11579         (*return_and_restore_gpregs_<mode>): New insn.
11580         (*return_and_restore_fpregs_<mode>): Adjust to clobber LR and
11581         use r11.
11582         * config/rs6000/spe.md (*save_gpregs_spe): New insn.
11583         (*restore_gpregs_spe): New insn.
11584         (*return_and_restore_gpregs_spe): New insn.
11585         * config/rs6000/predicates.md (save_world_operation): Fix check.
11586
11587 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
11588
11589         * tree-into-ssa (insert_phi_nodes_for): 'var' must be a DECL at
11590         this point, so assert that.
11591
11592 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
11593
11594         * cfganal.c: Include vec.h and vecprim.h.
11595         (compute_idf): Import from...
11596         * tree-into-ssa (compute_idf): ...here.
11597         * basic-block.h (compute_idf): Export.
11598
11599 2008-06-26  Joseph Myers  <joseph@codesourcery.com>
11600
11601         * c-decl.c (merge_decls): Use !current_function_decl to check for
11602         extern declaration of C99 inline function being at file scope.
11603
11604 2008-06-25  John David Anglin  <dave.anglin@gcc-cnrc.gc.ca>
11605
11606         * config.gcc (hppa[12]*-*-hpux10*): Don't use fixproto.
11607
11608 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11609
11610         * alias.c (record_alias_subset, init_alias_analysis): Fix
11611         -Wc++-compat and/or -Wcast-qual warnings.
11612         * attribs.c (lookup_attribute_spec): Likewise.
11613         * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
11614         copy_bb, connect_traces,
11615         find_rarely_executed_basic_blocks_and_cr): Likewise.
11616         * bt-load.c (find_btr_def_group, add_btr_def, new_btr_user,
11617         note_btr_set, migrate_btr_defs): Likewise.
11618         * builtins.c (result_vector, expand_builtin_memcpy,
11619         expand_builtin_mempcpy_args, expand_builtin_strncpy,
11620         builtin_memset_read_str, expand_builtin_printf,
11621         fold_builtin_memchr, rewrite_call_expr, fold_builtin_printf):
11622         Likewise.
11623         * caller-save.c (mark_set_regs): Likewise.
11624         * calls.c (expand_call, emit_library_call_value_1): Likewise.
11625         * cgraph.c (cgraph_edge): Likewise.
11626         * combine.c (likely_spilled_retval_1): Likewise.
11627         * coverage.c (htab_counts_entry_hash, htab_counts_entry_eq,
11628         htab_counts_entry_del, get_coverage_counts): Likewise.
11629         * cselib.c (new_elt_list, new_elt_loc_list, entry_and_rtx_equal_p,
11630         new_cselib_val): Likewise.
11631         * dbgcnt.c (dbg_cnt_process_opt): Likewise.
11632         * dbxout.c (dbxout_init, dbxout_type, output_used_types_helper):
11633         Likewise.
11634         * df-core.c (df_compact_blocks): Likewise.
11635         * df-problems.c (df_grow_bb_info, df_chain_create): Likewise.
11636         * df-scan.c (df_grow_reg_info, df_ref_create,
11637         df_insn_create_insn_record, df_insn_rescan, df_notes_rescan,
11638         df_ref_compare, df_ref_create_structure, df_bb_refs_record,
11639         df_record_entry_block_defs, df_record_exit_block_uses,
11640         df_bb_verify): Likewise.
11641         * df.h (DF_REF_EXTRACT_WIDTH_CONST, DF_REF_EXTRACT_OFFSET_CONST,
11642         DF_REF_EXTRACT_MODE_CONST): New.
11643         * dominance.c (get_immediate_dominator, get_dominated_by,
11644         nearest_common_dominator, root_of_dom_tree,
11645         iterate_fix_dominators, first_dom_son, next_dom_son): Fix
11646         -Wc++-compat and/or -Wcast-qual warnings.
11647         * dse.c (clear_alias_set_lookup, get_group_info, gen_rtx_MEM,
11648         record_store, replace_read, check_mem_read_rtx, scan_insn,
11649         dse_step1, dse_record_singleton_alias_set): Likewise.
11650         * dwarf2asm.c (dw2_force_const_mem): Likewise.
11651
11652 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11653
11654         * dwarf2out.c (new_cfi, queue_reg_save, dwarf2out_begin_prologue,
11655         dwarf2out_frame_init, new_loc_descr, new_die, lookup_decl_die,
11656         lookup_decl_loc, add_var_loc_to_decl, compute_section_prefix,
11657         assign_symbol_names, htab_cu_hash, htab_cu_eq, htab_cu_del,
11658         build_abbrev_table, new_loc_list, output_comp_unit, add_arange,
11659         add_ranges_num, add_ranges_by_labels, file_info_cmp,
11660         file_name_acquire, output_file_names, add_const_value_attribute,
11661         premark_used_types_helper, file_table_eq, file_table_hash,
11662         lookup_filename, dwarf2out_var_location, dwarf2out_source_line,
11663         dwarf2out_init, file_table_relative_p): Fix -Wc++-compat and/or
11664         -Wcast-qual warnings.
11665         * ebitmap.c (ebitmap_array_grow, ebitmap_array_init,
11666         ebitmap_alloc, ebitmap_ior, ebitmap_and_compl): Likewise.
11667         * emit-rtl.c (get_mem_attrs, get_reg_attrs, gen_rtvec,
11668         gen_reg_rtx, start_sequence, init_emit): Likewise.
11669         * et-forest.c (et_new_occ, et_new_tree): Likewise.
11670         * except.c (init_eh_for_function, gen_eh_region,
11671         remove_unreachable_regions, add_ehl_entry, duplicate_eh_regions_1,
11672         arh_to_landing_pad, arh_to_label, add_action_record,
11673         add_call_site, switch_to_exception_section): Likewise.
11674         * expmed.c (synth_mult): Likewise.
11675         * expr.c (gen_group_rtx, emit_group_load, emit_group_store,
11676         store_expr): Likewise.
11677         * final.c (shorten_branches, final_scan_insn, debug_queue_symbol):
11678         Likewise.
11679         * function.c (assign_stack_temp_for_type,
11680         allocate_struct_function, match_asm_constraints_1): Likewise.
11681         * gcov-io.c (gcov_allocate): Likewise.
11682         * gcse.c (GNEW, GCNEW, GNEWVEC, GCNEWVEC, GRESIZEVEC, GNEWVAR,
11683         GCNEWVAR, GRESIZEVAR, GOBNEW, GOBNEWVAR): New.
11684         (gcse_main, alloc_gcse_mem, alloc_gcse_mem, alloc_reg_set_mem,
11685         record_one_set, insert_expr_in_table, insert_set_in_table,
11686         dump_hash_table, compute_hash_table_work, alloc_hash_table,
11687         pre_ldst_expr_hash, pre_ldst_expr_eq, find_rtx_in_ldst,
11688         reg_set_info, reg_clear_last_set): Fix -Wc++-compat and/or
11689         -Wcast-qual warnings.
11690
11691 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11692
11693         * cse.c (approx_reg_cost_1, cse_insn): Fix -Wc++-compat and/or
11694         -Wcast-qual warnings.
11695         * gcc.c (process_command): Likewise.
11696         * genattrtab.c (oballoc): Use XOBNEW.
11697         (oballocvec): Define.
11698         (attr_hash_add_rtx, attr_hash_add_string, attr_string,
11699         get_attr_value, fill_attr, make_length_attrs, gen_attr, gen_insn,
11700         gen_delay, find_attr, gen_insn_reserv, gen_bypass_1): Fix
11701         -Wc++-compat and/or -Wcast-qual warnings.
11702         * genautomata.c (XCREATENODE, XCREATENODEVEC, XCREATENODEVAR,
11703         XCOPYNODE, XCOPYNODEVEC, XCOPYNODEVAR): New.
11704         (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
11705         gen_presence_absence_set, gen_automaton, gen_regexp_el,
11706         gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
11707         gen_regexp_sequence, gen_reserv, gen_insn_reserv, process_excls,
11708         add_excls, process_presence_absence_names,
11709         process_presence_absence_patterns, add_presence_absence,
11710         process_regexp, add_advance_cycle_insn_decl, get_free_alt_state,
11711         get_free_state, add_arc, get_free_automata_list_el,
11712         form_reserv_sets_list, copy_insn_regexp, transform_1, transform_2,
11713         transform_3, cache_presence, create_ainsns, create_automata,
11714         create_state_ainsn_table, dfa_insn_code_enlarge,
11715         output_trans_func, output_min_issue_delay_func,
11716         output_dead_lock_func, output_reset_func,
11717         output_get_cpu_unit_code_func, output_dfa_start_func,
11718         expand_automata): Likewise.
11719         * genextract.c (gen_insn): Likewise.
11720         * gengtype-lex.l: Likewise.
11721         * gengtype.c (read_input_list, adjust_field_type,
11722         process_gc_options): Likewise.
11723         * genoutput.c (note_constraint): Likewise.
11724         * genpreds.c (mangle, add_constraint): Likewise.
11725         * genrecog.c (process_define_predicate, new_decision,
11726         add_to_sequence): Likewise.
11727         * gensupport.c (record_insn_name): Likewise.
11728
11729 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11730
11731         * config/i386/driver-i386.c (detect_caches_amd,
11732         detect_caches_intel, host_detect_local_cpu): Fix -Wc++-compat
11733         and/or -Wcast-qual warnings.
11734         *ggc-common.c (ggc_mark_roots, gt_pch_note_object,
11735         gt_pch_note_reorder, relocate_ptrs, write_pch_globals,
11736         gt_pch_save): Likewise.
11737         * ggc-page.c (push_depth, push_by_depth, alloc_anon, alloc_page,
11738         gt_ggc_m_S, clear_marks, ggc_pch_read): Likewise.
11739         * global.c (compute_regsets): Likewise.
11740         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
11741         finish_graph_dump_file): Likewise.
11742         * haifa-sched.c (schedule_block, extend_h_i_d, extend_ready,
11743         unlink_bb_notes): Likewise.
11744         * integrate.c (get_hard_reg_initial_val): Likewise.
11745         * ipa-prop.c (ipa_push_func_to_list): Likewise.
11746         * ipa-struct-reorg.c (gen_var_name, gen_cluster_name): Likewise.
11747         * local-alloc.c (update_equiv_regs): Likewise.
11748         * loop-invariant.c (check_invariant_table_size,
11749         hash_invariant_expr, eq_invariant_expr, find_or_insert_inv):
11750         Likewise.
11751         * loop-iv.c (check_iv_ref_table_size, analyzed_for_bivness_p,
11752         altered_reg_used, mark_altered): Likewise.
11753         * loop-unroll.c (si_info_eq, ve_info_eq, allocate_basic_variable,
11754         insert_var_expansion_initialization,
11755         combine_var_copies_in_loop_exit, apply_opt_in_copies,
11756         release_var_copies): Likewise.
11757         * matrix-reorg.c (mat_acc_phi_hash, mat_acc_phi_eq, mtt_info_eq,
11758         analyze_matrix_decl, add_allocation_site, analyze_transpose,
11759         analyze_accesses_for_phi_node, check_var_notmodified_p,
11760         check_allocation_function, find_sites_in_func,
11761         record_all_accesses_in_func, transform_access_sites,
11762         transform_allocation_sites): Likewise.
11763         * omp-low.c (new_omp_region, create_omp_child_function_name,
11764         check_omp_nesting_restrictions, check_combined_parallel,
11765         lower_omp_2, diagnose_sb_1, diagnose_sb_2): Likewise.
11766         * optabs.c (no_conflict_move_test, gen_libfunc, gen_fp_libfunc,
11767         gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
11768         gen_intraclass_conv_libfunc, set_optab_libfunc, set_conv_libfunc):
11769         Likewise.
11770         * opts-common.c (prune_options): Likewise.
11771         * opts.c (add_input_filename, print_filtered_help,
11772         get_option_state): Likewise.
11773         * params.c (add_params): Likewise.
11774         * passes.c (set_pass_for_id, next_pass_1,
11775         do_per_function_toporder, pass_fini_dump_file): Likewise.
11776         * postreload.c (reload_cse_simplify_operands): Likewise.
11777         * predict.c (tree_predicted_by_p, tree_predict_edge,
11778         clear_bb_predictions, combine_predictions_for_bb): Likewise.
11779
11780 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11781
11782         * ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual
11783         warnings.
11784         * recog.c (check_asm_operands, validate_change_1): Likewise.
11785         * reg-stack.c (check_asm_stack_operands, subst_asm_stack_regs,
11786         subst_asm_stack_regs): Likewise.
11787         * regclass.c (regclass, som_hash, som_eq, record_subregs_of_mode,
11788         cannot_change_mode_set_regs, invalid_mode_change_p): Likewise.
11789         * regmove.c (reg_is_remote_constant_p): Likewise.
11790         * regrename.c (regrename_optimize, scan_rtx_reg,
11791         kill_clobbered_value, kill_set_value, kill_autoinc_value):
11792         Likewise.
11793         * regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
11794         regstat_compute_calls_crossed): Likewise.
11795         * reload1.c (init_reload, new_insn_chain,
11796         has_nonexceptional_receiver, reload, copy_reloads,
11797         calculate_needs_all_insns, init_elim_table): Likewise.
11798         * rtl-factoring.c (compute_rtx_cost, fill_hash_bucket): Likewise.
11799         * rtl.c (shallow_copy_rtx_stat): Likewise.
11800         * rtlanal.c (parms_set): Likewise.
11801         * sbitmap.c (sbitmap_alloc, sbitmap_alloc_with_popcount,
11802         sbitmap_resize, sbitmap_vector_alloc): Likewise.
11803         * sched-ebb.c (earliest_block_with_similiar_load,
11804         add_deps_for_risky_insns): Likewise.
11805         * sched-rgn.c (find_rgns, gather_region_statistics, extend_rgns,
11806         schedule_region): Likewise.
11807         * see.c (eq_descriptor_pre_extension,
11808         hash_descriptor_pre_extension, hash_del_pre_extension,
11809         eq_descriptor_properties, hash_descriptor_properties,
11810         hash_del_properties, see_seek_pre_extension_expr,
11811         see_initialize_data_structures, see_print_register_properties,
11812         see_print_pre_extension_expr, see_delete_merged_def_extension,
11813         see_delete_unmerged_def_extension, see_emit_use_extension,
11814         see_pre_delete_extension, see_map_extension, see_commit_changes,
11815         see_analyze_merged_def_local_prop,
11816         see_analyze_merged_def_local_prop,
11817         see_analyze_unmerged_def_local_prop, see_analyze_use_local_prop,
11818         see_set_prop_merged_def, see_set_prop_unmerged_def,
11819         see_set_prop_unmerged_use, see_print_one_extension,
11820         see_merge_one_use_extension, see_merge_one_def_extension,
11821         see_store_reference_and_extension, see_update_uses_relevancy,
11822         see_update_defs_relevancy): Likewise.
11823         * statistics.c (hash_statistics_hash, hash_statistics_eq,
11824         hash_statistics_free, curr_statistics_hash): Likewise.
11825         * stmt.c (parse_output_constraint, decl_overlaps_hard_reg_set_p,
11826         expand_asm_operands, expand_return, case_bit_test_cmp,
11827         expand_case): Likewise.
11828         * stor-layout.c (start_record_layout): Likewise.
11829         * stringpool.c (ggc_alloc_string, gt_pch_n_S,
11830         gt_pch_save_stringpool): Likewise.
11831         * tree-data-ref.c (hash_stmt_vertex_info,
11832         have_similar_memory_accesses_1, ref_base_address_1): Likewise.
11833         * tree-ssa-phiopt.c (name_to_bb_hash): Likewise.
11834
11835 2008-06-25  Uros Bizjak  <ubizjak@gmail.com>
11836
11837         PR target/36627
11838         * config/i386/i386.md : Change constraints of HImode and QImode
11839         immediate operands from "i" to "n".  Change SImode "ni" constraint to
11840         "i" and SImode "rmi" constraint to "g".  Remove all constraints
11841         from const0_operand and const1_operand predicated operands.
11842         (i): Change QImode and HImode attribute from "i" to "n".
11843         (*subqi_2): Change HImode operands to QImode.
11844         (*subqi_3): Ditto.
11845
11846 2008-06-25  Olivier Hainque  <hainque@adacore.com>
11847
11848         * Makefile.in (GTFILES_H): Use | instead of ; as separator in
11849         sed substitutions.
11850
11851 2008-06-25  Richard Guenther  <rguenther@suse.de>
11852
11853         * tree-ssa-structalias.c (fieldoff_compare): Make sure to
11854         not overflow the result type.
11855
11856 2008-06-25  Richard Guenther  <rguenther@suse.de>
11857
11858         * tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
11859         (vn_lookup): Likewise.
11860
11861 2008-06-25  Richard Guenther  <rguenther@suse.de>
11862
11863         PR tree-optimization/35518
11864         * fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs.
11865         * tree-sra.c (instantiate_element): Use fold_build3 to build
11866         BIT_FIELD_REFs.
11867         (try_instantiate_multiple_fields): Likewise.
11868
11869 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11870
11871         * config/rs6000/rs6000.md: Change all string instruction's clobber to
11872         be early clobbers.
11873
11874 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11875
11876         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Set
11877         use_backchain_to_restore_sp to true
11878         if the offset of the link register save area would go over the 32k - 1
11879         offset limit of the load
11880         instructions.
11881
11882 2008-06-25  Hans-Peter Nilsson  <hp@axis.com>
11883
11884         * doc/invoke.texi (Optimize Options) <fstrict-aliasing>: Add
11885         anchor for the type-punning blurb.  Cross-reference "Structures
11886         unions enumerations and bit-fields implementation".  Provide a
11887         cast-through-pointer example.  Make final sentence self-contained.
11888         * doc/implement-c.texi (Structures unions enumerations and
11889         bit-fields implementation): Cross-reference the type-punning blurb
11890         in the -fstrict-aliasing documentation.
11891
11892 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11893
11894         PR middle-end/36594
11895         * builtins.c (expand_builtin_nonlocal_goto): Stabilize the address of
11896         the memory instead of the memory itself for the save area.
11897
11898 2008-06-24  Olivier Hainque  <hainque@adacore.com>
11899             Nicolas Roche  <roche@adacore.com>
11900
11901         * gengtype.c (srcdir_len): size_t instead of int.
11902         (get_file_realbasename): New function.  For F a filename, the real
11903         basename of F, with all the path components stripped.
11904         (get_file_srcdir_relative_path): New function.  For F a filename, the
11905         relative path to F from $(srcdir).
11906         (get_file_basename): Rewrite using get_file_srcdir_relative_path and
11907         get_file_realbasename.  Adjust the head comment.
11908         (get_prefix_langdir_index): New function. For F a filename, return the
11909         lang_dir_names[] relative index of the language directory that is
11910         a prefix in F.
11911         (get_file_langdir): For F a filename, return the name of the language
11912         directory where F is located.
11913         (get_file_gtfilename): New function. The gt- output file name for an
11914         input filename F.
11915         (get_output_file_with_visibility): Replace in-line computations with
11916         uses of get_file_gtfilename and get_prefix_langdir_index.
11917         * Makefile.in (GTFILES_H): Adjust to match what gengtype generates.
11918
11919 2008-06-24  Jakub Jelinek  <jakub@redhat.com>
11920
11921         PR tree-optimization/36504
11922         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip
11923         references without base address.
11924
11925 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
11926
11927         PR middle-end/36584
11928         * calls.c (expand_call): Increase alignment for recursive functions.
11929
11930 2008-06-23  Anatoly Sokolov  <aesok@post.ru>
11931
11932         * config/avr/avr.c (avr_function_value): Add new 'outgoing' argument.
11933         (TARGET_FUNCTION_VALUE): New define.
11934         * config/avr/avr-protos.h (avr_function_value): Remove declaration.
11935         * config/avr/avr.h (FUNCTION_VALUE): Remove.
11936
11937 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
11938
11939         * config/i386/i386.md (fmodxf3): Change sequence of move instructions.
11940         (fmod<mode>3): Ditto.
11941         (remainderxf3): Ditto.
11942         (remainder<mode>3): Ditto.
11943
11944 2008-06-23  Jakub Jelinek  <jakub@redhat.com>
11945
11946         PR target/36533
11947         * emit-rtl.c (set_reg_attrs_from_value): Do nothing if
11948         REG is a hard register.
11949
11950         PR tree-optimization/36508
11951         * tree-ssa-pre.c (compute_antic): Allow num_iterations up to
11952         499, don't check it at all in release compilers.
11953
11954 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
11955
11956         * config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
11957         together with SSE_TARGET_MATH to disable insn pattern.
11958         (*fop_<MODEF:mode>_2_i387): Ditto.
11959         (*fop_<MODEF:mode>_3_i387): Ditto.
11960
11961 2008-06-22  Andy Hutchinson  <hutchinsonandy@aim.com>
11962
11963         * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
11964
11965 2008-06-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
11966
11967         PR middle-end/34906
11968         * gimplify.c (gimplify_asm_expr): Check the return code of
11969         parse_output_constraint call, set function return and is_inout
11970         value if it failed.
11971
11972 2008-06-22  Ian Lance Taylor  <iant@google.com>
11973
11974         * c-lex.c (narrowest_unsigned_type): Change itk to int.
11975         (narrowest_signed_type): Likewise.
11976         * c-typeck.c (c_common_type): Change local variable mclass to enum
11977         mode_class, twice.
11978         (parser_build_binary_op): Compare the TREE_CODE_CLASS with
11979         tcc_comparison, not the tree code itself.
11980         * c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
11981         (c_expand_expr): Cast modifier to enum expand_modifier.
11982         * c-common.h (C_RID_CODE): Add casts.
11983         (C_SET_RID_CODE): Define.
11984         * c-parser.c (c_parse_init): Use C_SET_RID_CODE.
11985         (c_lex_one_token): Add cast to avoid warning.
11986         (c_parser_objc_type_name): Rename local typename to type_name.
11987         (check_no_duplicate_clause): Change code parameter to enum
11988         omp_clause_code.
11989         (c_parser_omp_var_list_parens): Change kind parameter to enum
11990         omp_clause_code.
11991         (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
11992         c_parser_omp_list_var_parens.
11993         (c_parser_omp_threadprivate): Likewise.
11994         * cp/lex.c (init_reswords): Use C_SET_RID_CODE.
11995         * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
11996         * c-format.c (NO_FMT): Define.
11997         (printf_length_specs): Use NO_FMT.
11998         (asm_fprintf_length_specs): Likewise.
11999         (gcc_diag_length_specs): Likewise.
12000         (scanf_length_specs): Likewise.
12001         (strfmon_length_specs): Likewise.
12002         (gcc_gfc_length_specs): Likewise.
12003         (printf_flag_specs): Change 0 to STD_C89.
12004         (asm_fprintf_flag_specs): Likewise.
12005         (gcc_diag_flag_specs): Likewise.
12006         (gcc_cxxdiag_flag_specs): Likewise.
12007         (scanf_flag_specs): Likewise.
12008         (strftime_flag_specs): Likewise.
12009         (strfmon_flag_specs): Likewise.
12010         (print_char_table): Likewise.
12011         (asm_fprintf_char_table): Likewise.
12012         (gcc_diag_char_table): Likewise.
12013         (gcc_tdiag_char_table): Likewise.
12014         (gcc_cdiag_char_table): Likewise.
12015         (gcc_cxxdiag_char_table): Likewise.
12016         (gcc_gfc_char_table): Likewise.
12017         (scan_char_table): Likewise.
12018         (time_char_table): Likewis.
12019         (monetary_char_table): Likewise.
12020         * c-format.h (BADLEN): Likewise.
12021
12022 2008-06-21  Ian Lance Taylor  <iant@google.com>
12023
12024         * tree.h (enum tree_code): Include all-tree.def, not tree.def.
12025         Define END_OF_BASE_TREE_CODES around inclusion.
12026         * tree.c (tree_code_type): New global array.
12027         (tree_code_length, tree_code_name): Likewise.
12028         * Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
12029         $(lang_tree_files).
12030         (all-tree.def, s-alltree): New targets.
12031         (gencheck.h, s-gencheck): Remove.
12032         (tree.o): Depend upon all-tree.def.
12033         (build/gencheck.o): Remove gencheck.h dependency.
12034         (mostlyclean): Don't remove gencheck.h.
12035         * c-common.h (enum c_tree_code): Remove.
12036         * c-lang.c (tree_code_type): Remove.
12037         (tree_code_length, tree_code_name): Remove.
12038         * gencheck.c (tree_codes): Include all-tree.def, rather than
12039         tree.def, c-common.def, and gencheck.h.  Undefined DEFTREECODE
12040         after it is used.
12041         * tree-browser.c (tb_tree_codes): Include all-tree.def, rather
12042         than tree.def.
12043         * cp/cp-tree.h (enum cplus_tree_code): Remove.
12044         (operator_name_info): Size to MAX_TREE_CODES.
12045         (assignment_operator_name_info): Likewise.
12046         * cp/cp-lang.c (tree_code_type): Remove.
12047         (tree_code_length, tree_code_name): Remove.
12048         * cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
12049         (assignment_operator_name_info): Likewise.
12050         * cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
12051         MAX_TREE_CODES.
12052         * cp/mangle.c (write_expression): Likewise.
12053         * cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
12054         * fortran/f95-lang.c (tree_code_type): Remove.
12055         (tree_code_length, tree_code_name): Remove.
12056         * java/java-tree.h (enum java_tree_code): Remove.
12057         * java/lang.c (tree_code_type): Remove.
12058         (tree_code_length, tree_code_name): Remove.
12059         * java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
12060         * objc/objc-act.h (enum objc_tree_code): Remove.
12061         * objc/objc-lang.c (tree_code_type): Remove.
12062         (tree_code_length, tree_code_name): Remove.
12063         * objcp/objcp-lang.c (tree_code_type): Remove.
12064         (tree_code_length, tree_code_name): Remove.
12065         * ada/ada-tree.h (enum gnat_tree_code): Remove.
12066         * ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
12067         * ada/misc.c (tree_code_type): Remove.
12068         (tree_code_length, tree_code_name): Remove.
12069
12070 2008-06-21  Bernhard Fischer  <aldot@gcc.gnu.org>
12071
12072         * tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before
12073         the grand_bitmap_obstack.
12074
12075 2008-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12076
12077         * ggc.h (GGC_RESIZEVAR): New, reorder macros.
12078         * tracer.c (tail_duplicate): Fix for -Wc++-compat.
12079         * tree-affine.c (aff_combination_expand, free_name_expansion): Likewise.
12080         * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
12081         move_stmt_r, new_label_mapper): Likewise.
12082         * tree-complex.c (cvc_lookup): Likewise.
12083         * tree-dfa.c (create_function_ann): Likewise.
12084         * tree-dump.c (dump_register): Likewise.
12085         * tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
12086         find_phi_replacement_condition): Likewise.
12087         * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
12088         tree_function_versioning): Likewise.
12089         * tree-into-ssa.c (cmp_dfsnum): Likewise.
12090         * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
12091         * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
12092         get_nonlocal_debug_decl, convert_nonlocal_reference,
12093         convert_nonlocal_omp_clauses, get_local_debug_decl,
12094         convert_local_reference, convert_local_omp_clauses,
12095         convert_nl_goto_reference, convert_nl_goto_receiver,
12096         convert_tramp_reference, convert_call_expr): Likewise.
12097         * tree-outof-ssa.c (contains_tree_r): Likewise.
12098         * tree-parloops.c (reduction_phi, initialize_reductions,
12099         eliminate_local_variables_1, add_field_for_reduction,
12100         add_field_for_name, create_phi_for_local_result,
12101         create_call_for_reduction_1, create_loads_for_reductions,
12102         create_stores_for_reduction, create_loads_and_stores_for_name):
12103         Likewise.
12104         * tree-phinodes.c (allocate_phi_node): Likewise.
12105         * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
12106         * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
12107         * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
12108         * tree-ssa-coalesce.c (compare_pairs): Likewise.
12109         * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
12110         memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
12111         record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
12112         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
12113         * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
12114         vn_nary_op_insert): Likewise.
12115         * tree-ssa.c (redirect_edge_var_map_add,
12116         redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
12117         * tree-vectorizer.c (vectorize_loops): Likewise.
12118         * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
12119         build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
12120         tree_cons_stat, build1_stat, build_variant_type_copy,
12121         decl_init_priority_lookup, decl_fini_priority_lookup,
12122         decl_priority_info, decl_restrict_base_lookup,
12123         decl_restrict_base_insert, decl_debug_expr_lookup,
12124         decl_debug_expr_insert, decl_value_expr_lookup,
12125         decl_value_expr_insert, type_hash_eq, type_hash_lookup,
12126         type_hash_add, get_file_function_name, tree_check_failed,
12127         tree_not_check_failed, tree_range_check_failed,
12128         omp_clause_range_check_failed, build_omp_clause,
12129         build_vl_exp_stat): Likewise.
12130         * value-prof.c (gimple_histogram_value,
12131         gimple_duplicate_stmt_histograms): Likewise.
12132         * var-tracking.c (attrs_list_insert, attrs_list_copy,
12133         unshare_variable, variable_union_info_cmp_pos, variable_union,
12134         dataflow_set_different_1, dataflow_set_different_2,
12135         vt_find_locations, variable_was_changed, set_variable_part,
12136         emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
12137         * varasm.c (prefix_name, emutls_decl, section_entry_eq,
12138         section_entry_hash, object_block_entry_eq,
12139         object_block_entry_hash, create_block_symbol,
12140         initialize_cold_section_name, default_function_rodata_section,
12141         strip_reg_name, set_user_assembler_name, const_desc_eq,
12142         build_constant_desc, output_constant_def, lookup_constant_def,
12143         const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
12144         create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
12145         default_internal_label): Likewise.
12146         * varray.c (varray_init, varray_grow): Likewise.
12147         * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.
12148
12149 2008-06-20  Uros Bizjak  <ubizjak@gmail.com>
12150
12151         * config/i386/i386.md (*jcc_fused_1): Handle all valid compare
12152         operators for "test" insn.  Macroize insn using SWI mode macro.
12153         (*jcc_fused_2): Ditto.
12154         (*jcc_fused_3): Macroize insn using SWI mode macro.
12155         (*jcc_fused_4): Ditto.
12156
12157 2008-06-20  Bernhard Fischer  <aldot@gcc.gnu.org>
12158
12159         * tree-ssa-pre.c: Fix typo in comment.
12160         (init_antic, fini_antic): Add explicit funtions for
12161         initializing and deinitializing ANTIC and AVAIL sets.
12162         (create_expression_by_pieces): Fix typo in comment.
12163         Remove redundant set of new_stuff and use NULL_TREE instead of NULL.
12164         (execute_pre): Eventually dump details about ANTIC_IN.
12165
12166 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12167
12168         * collect2.c (main, add_to_list): Fix for -Wc++-compat.
12169         * gcc.c (translate_options, init_spec, store_arg, read_specs,
12170         add_to_obstack, file_at_path, find_a_file, execute,
12171         add_preprocessor_option, add_assembler_option, add_linker_option,
12172         process_command, insert_wrapper, do_option_spec, do_self_spec,
12173         spec_path, do_spec_1, is_directory, main, used_arg,
12174         getenv_spec_function): Likewise.
12175         * tlink.c (symbol_hash_lookup, file_hash_lookup,
12176         demangled_hash_lookup, symbol_push, file_push, frob_extension):
12177         Likewise.
12178
12179 2008-06-19  Kenneth Zadeck <zadeck@naturalbridge.com>
12180
12181         * doc/rtl.texi: Updated subreg section.
12182
12183 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
12184
12185         PR c++/36523
12186         * cgraphunit.c (cgraph_process_new_functions): Don't clear
12187         node->needed and node->reachable.
12188         * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
12189         * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
12190         (expand_task_call): Don't call expand_task_copyfn.
12191         (expand_task_copyfn): Renamed to...
12192         (finalize_task_copyfn): ... this.
12193
12194 2008-06-19  Jan Hubicka  <jh@suse.cz>
12195
12196         * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
12197         clobbering framepointer.
12198
12199 2008-06-19  Jan Hubicka  <jh@suse.cz>
12200
12201         * tree-optimize.c (execute_early_local_optimizations): Set
12202         cgraph_state only at first invocation.
12203
12204 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12205
12206         * system.h (-Wc++-compat): Activate as a warning, no an error.
12207
12208 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
12209
12210         * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
12211         instead of "#" in insn asm template.
12212         (*jcc_fused_2): Ditto.
12213
12214 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
12215
12216         * config/i386/i386.h (ix86_tune_indices)
12217         [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
12218         (TARGET_FUSE_CMP_AND_BRANCH): New define.
12219         * config/i386/i386.md (*jcc_fused_1): New insn pattern
12220         (*jcc_fused_2): Ditto.
12221         * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
12222         X86_TUNE_FUSE_CMP_AND_BRANCH targets.
12223         (print operand): Handle 'E' and 'e' code.
12224
12225 2008-06-19  Anatoly Sokolov  <aesok@post.ru>
12226
12227         * config/avr/avr.c (avr_mcu_t): Add attiny13a.
12228         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
12229         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
12230
12231 2008-06-19  Bernhard Fischer  <aldot@gcc.gnu.org>
12232
12233         * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
12234         node->decl.
12235         (cgraph_expand_function): Use local copy of decl.
12236         (cgraph_expand_all_functions): Remove redundant initialization of
12237         order_pos.
12238         (cgraph_optimize): Reword internal_error message.
12239
12240 2008-06-19  Chung-Lin Tang  <ctang@marvell.com>
12241
12242         * arm-protos.h (arm_return_in_memory): Remove public
12243         arm_return_in_memory() prototype.
12244         * arm.c (arm_return_in_memory): Add static prototype, add target
12245         hook macro, change definition and comments.
12246         * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
12247
12248 2008-06-19  Ben Elliston  <bje@au.ibm.com>
12249
12250         * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
12251         real.c: Remove references to IEEE 754R.
12252         * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
12253         * doc/libgcc.texi (Decimal float library routines): Likewise.
12254
12255 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12256
12257         * targhooks.h (struct gcc_target): New member unwind_word_mode.
12258         (default_unwind_word_mode): Add prototype.
12259         * targhooks.c (default_unwind_word_mode): New function.
12260         (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
12261         instead of word_mode.
12262         * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
12263         (TARGET_INITIALIZER): Use it.
12264
12265         * c-common.c (handle_mode_attribute): Support "unwind_word"
12266         mode attribute.
12267         * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
12268
12269         * except.c (init_eh): Use targetm.unwind_word_mode () instead of
12270         word_mode to access SjLj_Function_Context member "data".
12271         (sjlj_emit_dispatch_table): Likewise.  Also, perform type
12272         conversion from targetm.eh_return_filter_mode () to
12273         targetm.unwind_word_mode () if they differ.
12274
12275         * builtin-types.def (BT_UNWINDWORD): New primitive type.
12276         (BT_FN_UNWINDWORD_PTR): New function type.
12277         (BT_FN_WORD_PTR): Remove.
12278         * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
12279         * except.c (expand_builtin_extend_pointer): Convert pointer to
12280         targetm.unwind_word_mode () instead of word_mode.
12281
12282         * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
12283         * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
12284         (spu_unwind_word_mode): New function.
12285         (TARGET_EH_RETURN_FILTER_MODE): Do not define.
12286         (TARGET_UNWIND_WORD_MODE): Define.
12287         * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
12288
12289 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12290
12291         * config/spu/spu.c (reg_align): Remove.
12292         (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
12293         (spu_split_load): Use regno_aligned_for_load instead of reg_align.
12294         (spu_split_store): Likewise.
12295
12296 2008-06-18  Bernhard Fischer  <aldot@gcc.gnu.org>
12297
12298         * gcc/tree-vn.c: Fix typo in comment.
12299
12300 2008-06-18  Jan Hubicka  <jh@suse.cz>
12301
12302         * cgraphunit.c (cgraph_optimize): Output debug info when doing
12303         toplevel reorder too.
12304
12305 2008-06-18  Jan Hubicka  <jh@suse.cz>
12306
12307         * c-opts.c (c_common_post_options): PCH is not compatible with
12308         no-unit-at-a-time.
12309         * opts.c (handle_options): Enable unit-at-a-time at O0 along with
12310         -fno-toplevel-reorder by default now.
12311
12312 2008-06-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12313
12314         PR documentation/30739
12315         * doc/install.texi (Prerequisites): Document dependency on awk.
12316
12317 2008-06-18  Uros Bizjak  <ubizjak@gmail.com>
12318             Ian Lance Taylor  <iant@google.com>
12319
12320         PR rtl-optimization/35604
12321         * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
12322         only want to change jump destinations, not eventual label comparisons.
12323
12324 2008-06-16  Jan Hubicka  <jh@suse.cz>
12325
12326         * cgraphunit.c (cgraph_expand_pending_functions): Give up at
12327         syntax errors.
12328         (cgraph_analyze_function): Likewise.
12329
12330 2008-06-16  Jan Hubicka  <jh@suse.cz>
12331
12332         * cgraph.h (cgraph_mark_if_needed): New function.
12333         * cgraphunit.c (cgraph_mark_if_needed): New function.
12334         * c-decl.c (duplicate_decl): Use it.
12335
12336 2008-06-16  Jan Hubicka  <jh@suse.cz>
12337
12338         * cgraph.c (cgraph_add_new_function): When in expansion state, do
12339         lowering.
12340
12341 2008-06-16  Jan Hubicka  <jh@suse.cz>
12342
12343         * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
12344
12345 2008-06-16  Daniel Jacobowitz  <dan@codesourcery.com>
12346             Kazu Hirata  <kazu@codesourcery.com>
12347             Maxim Kuvyrkov  <maxim@codesourcery.com
12348
12349         * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
12350         * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
12351         * config/mips/linux.h (host_detect_local_cpu): Declare, add to
12352         EXTRA_SPEC_FUNCTIONS.
12353         (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
12354         (DRIVER_SELF_SPECS): Adjust.
12355         * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
12356         * config/mips/st.h, config/mips/t-st: New.
12357         * config/mips/driver-native.c, config/mips/x-native: New.
12358         * doc/invoke.texi (MIPS): Document 'native' value for -march and
12359         -mtune options.
12360
12361 2008-06-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
12362
12363         * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
12364         from it.
12365         (ISA_HAS_FP_CONDMOVE): New macro.
12366         (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
12367         (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
12368         (ISA_HAS_NMADD3_NMSUB3): New macro.
12369         * config/mips/mips.c (mips_rtx_costs): Update.
12370         * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
12371         compiling for ST Loongson 2E/2F.
12372         (madd<mode>): Rename to madd4<mode>.  Update.
12373         (madd3<mode>): New pattern.
12374         (msub<mode>): Rename to msub4<mode>.  Update.
12375         (msub3<mode>): New pattern.
12376         (nmadd<mode>): Rename to nmadd4<mode>.  Update.
12377         (nmadd3<mode>): New pattern.
12378         (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath.  Update.
12379         (nmadd3<mode>_fastmath): New pattern.
12380         (nmsub<mode>): Rename to nmsub4<mode>.  Update.
12381         (nmsub3<mode>): New pattern.
12382         (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath.  Update.
12383         (nmsub3<mode>_fastmath): New pattern.
12384         (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
12385
12386 2008-06-18  Steven Bosscher  <steven@gcc.gnu.org>
12387
12388         * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
12389         (DF_REF_INSN_INFO): New.
12390         (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
12391         (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
12392         with a NULL DF_REF_INSN_INFO.
12393         (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
12394         DF_INSN_SET.
12395         (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
12396         DF_INSN_INFO_EQ_USES): New.
12397         (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
12398         DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
12399         DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
12400         * df-core.c: Update comment for above changes.
12401         (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
12402         DF_INSN_UID_* macros.
12403         (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
12404         * df-scan.c (df_ref_record): Take a df_insn_info instead of an
12405         insn rtx.  Update all callers.
12406         (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
12407         df_ref_create_structure, df_insn_refs_collect): Likewise.
12408         (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
12409         * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
12410         (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
12411         macros to access the insn refs.
12412         (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
12413         * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
12414         (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
12415         for accessing the refs.
12416         (try_fwprop_subst): Likewise.
12417         * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
12418         * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
12419         for accessing the refs.
12420         * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
12421         (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
12422         to look at the insn refs.
12423         (record_uses): Likewise.
12424         * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
12425         function anymore.
12426         (mark_artificial_uses): Don't mark_insn for artificial refs.
12427         (mark_reg_rependencies): Likewise.
12428
12429         * doc/rtl.texi: Remove documentation of ADDRESSOF.
12430
12431 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12432
12433         * configure: Regenerate.
12434
12435 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
12436
12437         * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
12438         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
12439         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
12440
12441 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
12442
12443         * config/avr/avr.c (avr_mcu_t): Add attiny167.
12444         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
12445         * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise.
12446
12447 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
12448
12449         * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
12450         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
12451         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
12452
12453 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
12454
12455         * tree-ssa-sccvn.c: Fix format of comments.
12456
12457 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
12458
12459         * cgraph.c: Remove unneeded forward declarations of eq_node()
12460         and hash_node().
12461
12462 2008-06-17  Steven Bosscher  <steven@gcc.gnu.org>
12463
12464         * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
12465         REG_RETVAL notes.
12466         (see_update_relevancy): Likewise.
12467         * fwprop.c (try_fwprop_subst): Likewise.
12468         * rtlanal.c (noop_move_p): Likewise.
12469         * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
12470         notes to non-existing libcall blocks.
12471         * cse.c (cse_insn): Change prototype.  Don't update libcall notes.
12472         Remove orig_set.
12473         (cse_extended_basic_block): Don't track libcall and no-conflict notes.
12474         (dead_libcall_p): Remove.
12475         (delete_trivially_dead_insns): Don't use it.
12476         * web.c (union_defs): Remove comment about keeping nops.
12477         * gcse.c (hash_scan_insn): Don't take libcall pointers.
12478         (compute_hash_table_work): Don't track libcall notes.
12479         (do_local_cprop): Don't take libcall pointers.  Don't update
12480         libcall notes.
12481         (adjust_libcall_notes): Deleted.
12482         (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
12483         ever have existed in the first place).
12484         (replace_store_insn): Don't try to remove libcall notes.
12485         * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
12486         (resolve_reg_notes): Don't call them.
12487         (resolve_simple_move): Likewise.
12488         (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
12489         Don't remove REG_RETVAL notes.
12490         * emit-rtl.c (try_split): Don't update libcall notes.
12491         (emit_copy_of_insn_after): Dito.
12492         * cselib.c (cselib_current_insn_in_libcall): Remove.
12493         (cselib_process_insn): Don't set/clear it.
12494         (new_elt_loc_list): Don't record it.
12495         (cselib_init): Don't initialize it.
12496         * cselib.c (struct elt_loc_list): Remove in_libcall field.
12497         * loop-invariant.c (find_invariant_insn): Don't look for libcall
12498         notes.
12499         * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
12500         (sched_analyze): Don't set up deps->libcall_block_tail_insn.
12501         (init_deps): Don't initialize it.
12502         * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
12503         * combine.c (delete_noop_moves): Don't update libcall notes.
12504         (can_combine_p): Remove now pointless #if 0 block.
12505         (try_combine): Remove another obsolete #if 0 block.
12506         (distribute_notes): Don't distribute libcall notes.
12507         * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
12508         * dce.c (libcall_dead_p): Remove.
12509         (delete_unmarked_insns): Don't handle libcall blocks.
12510         (preserve_libcall_for_dce): Remove.
12511         (prescan_insns_for_dce): Don't special-case libcall block insns.
12512         * reload1 (reload): Don't handle libcall notes.
12513         * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
12514         documentation.
12515
12516 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
12517
12518         * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
12519         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
12520         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
12521
12522 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
12523
12524         * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
12525         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
12526         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
12527
12528 2008-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12529
12530         * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
12531
12532 2008-06-16  Ira Rosen  <irar@il.ibm.com>
12533
12534         PR tree-optimization/36493
12535         * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
12536         the arguments list. Use VECTYPE to create vector pointer.
12537         (vectorizable_store): Fail if accesses through a pointer to vectype
12538         do not alias the original memory reference operands.
12539         Call vect_create_data_ref_ptr without the removed argument.
12540         (vectorizable_load): Likewise.
12541         (vect_setup_realignment): Call vect_create_data_ref_ptr without the
12542         removed argument.
12543
12544 2008-06-015  Andy Hutchinson  <hutchinsonandy@aim.com>
12545
12546         PR target/36336
12547         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for
12548         reg_equiv_constant.
12549
12550 2008-06-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
12551
12552         * config/mips/loongson2ef.md: New file.
12553         * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
12554         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
12555         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
12556         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
12557         (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
12558         and loongson_2f.
12559         (loongson2ef.md): New include.
12560         * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
12561         (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
12562         (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
12563         (loongson_gt_<mode>, loongson_extract_halfword)
12564         (loongson_insert_halfword_0, loongson_insert_halfword_2)
12565         (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
12566         (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
12567         (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
12568         (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
12569         (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
12570         (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
12571         (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
12572         (vec_interleave_low<mode>): Define type attribute.
12573         * config/mips/mips.c (mips_ls2): New static variable.
12574         (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
12575         (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
12576         (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
12577         Implement target scheduling hooks.
12578         (mips_multipass_dfa_lookahead): Update to handle tuning for
12579         Loongson 2E/2F.
12580         (mips_sched_init): Initialize data for Loongson scheduling.
12581         (mips_ls2_variable_issue): New static function.
12582         (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
12583         Add sanity check.
12584         (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
12585         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
12586         * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
12587         (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
12588         Handle ST Loongson 2E/2F cores.
12589         (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
12590
12591 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12592
12593         * omp-low.c (extract_omp_for_data): Fix comment typo.
12594         * c.opt: Fix typo.
12595
12596 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12597
12598         * doc/sourcebuild.texi (Config Fragments): Remove obsolete
12599         FIXME note about gcc/config.guess.
12600         * doc/options.texi (Option file format): Remove non-ASCII bytes.
12601         * doc/cpp.texi: Expand TABs, drop indentation outside examples.
12602         * doc/cppopts.texi: Likewise.
12603         * doc/extend.texi: Likewise.
12604         * doc/gcc.texi: Likewise.
12605         * doc/gccint.texi: Likewise.
12606         * doc/gcov.texi: Likewise.
12607         * doc/gty.texi: Likewise.
12608         * doc/hostconfig.texi: Likewise.
12609         * doc/install.texi: Likewise.
12610         * doc/invoke.texi: Likewise.
12611         * doc/loop.texi: Likewise.
12612         * doc/makefile.texi: Likewise.
12613         * doc/md.texi: Likewise.
12614         * doc/passes.texi: Likewise.
12615         * doc/tm.texi: Likewise.
12616         * doc/tree-ssa.texi: Likewise.
12617         * doc/trouble.texi: Likewise.
12618
12619 2008-06-15  Mark Shinwell  <shinwell@codesourcery.com>
12620             Nathan Sidwell  <nathan@codesourcery.com>
12621             Maxim Kuvyrkov  <maxim@codesourcery.com>
12622             Richard Sandiford  <rdsandiford@googlemail.com>
12623
12624         * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
12625         * config/mips/mips-protos.h (mips_expand_vector_init): New.
12626         * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
12627         builtins.
12628         * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
12629         (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
12630         (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
12631         V8QImode cases.
12632         (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
12633         (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
12634         (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
12635         (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
12636         (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
12637         (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
12638         (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
12639         (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
12640         (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
12641         (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
12642         (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
12643         (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
12644         (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
12645         (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
12646         (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
12647         (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
12648         (mips_builtins): Add Loongson builtins.
12649         (mips_loongson_2ef_bdesc): New.
12650         (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
12651         (mips_builtin_vector_type): Handle unsigned versions of vector modes.
12652         (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
12653         (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
12654         New.
12655         (mips_expand_vector_init): New.
12656         * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
12657         (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
12658         if appropriate.
12659         * config/mips/mips.md: Add unspec numbers for Loongson
12660         builtins.  Include loongson.md.
12661         (MOVE64): Include Loongson vector modes.
12662         (SPLITF): Include Loongson vector modes.
12663         (HALFMODE): Handle Loongson vector modes.
12664         * config/mips/loongson.md: New.
12665         * config/mips/loongson.h: New.
12666         * config.gcc: Add loongson.h header for mips*-*-* targets.
12667         * doc/extend.texi (MIPS Loongson Built-in Functions): New.
12668
12669 2008-06-14  Joseph Myers  <joseph@codesourcery.com>
12670
12671         * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
12672         h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
12673         i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
12674         iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
12675         m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
12676         m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
12677         mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
12678         mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
12679         mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
12680         mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
12681         powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
12682         sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
12683         sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
12684         sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
12685         sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
12686         v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
12687         Remove use_fixproto=yes.
12688         (ia64*-*-hpux*): Remove comment about using fixproto.
12689         (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
12690
12691 2008-06-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12692
12693         * configure.ac: Update gthr-default.h lazily, to avoid unneeded
12694         library rebuilds.
12695         * configure: Regenerate.
12696
12697 2008-06-13  Eric Botcazou  <ebotcazou@adacore.com>
12698
12699         PR middle-end/36520
12700         * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
12701         before evaluating it.
12702
12703 2008-06-13  Jakub Jelinek  <jakub@redhat.com>
12704
12705         PR c/36507
12706         * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
12707         nested inline functions.
12708         (start_decl, start_function): Don't invert DECL_EXTERNAL
12709         for nested inline functions.
12710
12711 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
12712
12713         * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
12714         splits that must be made for correctness.
12715
12716 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
12717
12718         * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
12719         (AVAIL_NON_MIPS16): Likewise.
12720         (mips_builtin_description): Replace target_flags with a predicate.
12721         (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
12722         (dspr2_32): New availability predicates.
12723         (MIPS_BUILTIN): New macro.
12724         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
12725         (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
12726         (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
12727         Replace the TARGET_FLAGS parameters with AVAIL parameters.
12728         (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
12729         (mips_dsp_32only_bdesc): Merge into...
12730         (mips_builtins): ...this new array.
12731         (mips_bdesc_map, mips_bdesc_arrays): Delete.
12732         (mips_init_builtins): Update after above changes.
12733         (mips_expand_builtin_1): Merge into...
12734         (mips_expand_builtin): ...here and update after above changes.
12735
12736 2008-06-12  Paul Brook  <paul@codesourcery.com>
12737
12738         * longlong.h (__arm__): Define count_leading_zeros.
12739         * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
12740         (clzsi2, clzdi2): New functions.
12741         * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
12742         * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
12743         * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
12744         * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
12745         * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
12746         * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
12747         * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
12748         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
12749         * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
12750         * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
12751
12752 2008-06-12  Kazu Hirata  <kazu@codesourcery.com>
12753
12754         * config/m68k/m68k.c (m68k_tune_flags): New.
12755         (override_options): Compute m68k_tune_flags.
12756         (MULL_COST, MULW_COST): Update for various variants of CFV2.
12757         * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
12758
12759 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
12760
12761         PR middle-end/36506
12762         * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
12763
12764 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
12765
12766         * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
12767         TREE_THIS_VOLATILE on INDIRECT_REF nodes.
12768
12769 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
12770
12771         * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
12772         (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
12773
12774 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
12775
12776         PR middle-end/36506
12777         * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
12778         reductions.
12779
12780 2008-06-12  Richard Guenther  <rguenther@suse.de>
12781
12782         PR tree-optimization/36345
12783         * tree-flow.h (struct ptr_info_def): Align escape_mask,
12784         add memory_tag_needed flag.
12785         (may_alias_p): Declare.
12786         * tree-ssa-alias.c (may_alias_p): Export.
12787         (set_initial_properties): Use memory_tag_needed flag.
12788         (update_reference_counts): Likewise.
12789         (reset_alias_info): Reset memory_tag_needed flag.
12790         (create_name_tags): Check memory_tag_needed flag.
12791         (dump_points_to_info_for): Dump it.
12792         * tree-ssa-structalias.c (struct variable_info): Remove
12793         directly_dereferenced flag.
12794         (new_var_info): Do not initialize it.
12795         (process_constraint_1): Do not set it.
12796         (update_alias_info): Set is_dereferenced flag.
12797         (set_uids_in_ptset): Use may_alias_p.
12798         (set_used_smts): Check memory_tag_needed flag.
12799         (find_what_p_points_to): Likewise.  Pass is_dereferenced flag.
12800         * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
12801         memory_tag_needed flag.
12802         * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
12803         from broken design.
12804
12805 2008-06-12  Kai Tietz  <kai.tietz@onevision.com>
12806
12807         * config/i386/i386.c (ix86_compute_frame_layout): Disable
12808         red zone for w64 abi.
12809         (ix86_expand_prologue): Likewise.
12810         (ix86_force_to_memory): Likewise.
12811         (ix86_free_from_memory): Likewise.
12812
12813 2008-06-11  Edmar Wienskoski  <edmar@freescale.com>
12814
12815         PR target/36425
12816         * config/rs6000/rs6000.c (rs6000_override_options): Set
12817         rs6000_isel conditionally to the absence of comand line override.
12818         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
12819         Remove duplicate rs6000_isel setting.
12820         * config/rs6000/eabispe.h: Ditto.
12821
12822 2008-06-11  Richard Guenther  <rguenther@suse.de>
12823
12824         * alias.c (get_alias_set): Use the element alias-set for arrays.
12825         (record_component_aliases): For arrays and vectors do nothing.
12826         * c-common.c (strict_aliasing_warning): Handle the cases
12827         of alias set zero explicitly.
12828         * Makefile.in (dfp.o-warn): Add -Wno-error.
12829
12830 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
12831
12832         * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
12833         tune_32 tune_64.
12834         (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
12835         tune_32 tune_64 to supported_defaults.  Allow values not
12836         supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
12837         x86_64.  Do not override cpu_32 or cpu_64 values from target name.
12838         (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
12839         with_cpu_64 to generic for 64-bit-supporting configurations, not
12840         with_cpu.  Remove FIXMEs.
12841         * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
12842         --with-arch-64, --with-tune-32, --with-tune-64): Document.
12843         * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
12844         (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
12845         arch_32 and arch_64.
12846
12847 2008-06-11  Eric Botcazou  <ebotcazou@adacore.com>
12848             Olivier Hainque  <hainque@adacore.com>
12849
12850         * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
12851         Use DECL_SIZE_UNIT to retrieve the size of the field.
12852
12853 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
12854
12855         * config/arm/arm.c (arm_init_neon_builtins): Move initialization
12856         with function calls after declarations.  Lay out
12857         neon_float_type_node before further use.
12858
12859 2008-06-11  Richard Guenther  <rguenther@suse.de>
12860
12861         * tree-flow.h (may_point_to_global_var): Declare.
12862         * tree-ssa-alias.c (may_point_to_global_var): New function.
12863         * tree-ssa-sink.c (is_hidden_global_store): Use it.
12864
12865 2008-06-10  Kazu Hirata  <kazu@codesourcery.com>
12866
12867         * configure.ac: Teach that fido supports .debug_line.
12868         * configure: Regenerate.
12869
12870 2008-06-10  Tom Tromey  <tromey@redhat.com>
12871
12872         * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
12873         debug hook.
12874
12875 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
12876
12877         * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
12878         (encode_decimal64, decode_decimal64, encode_decimal128,
12879         decode_decimal128): Reverse order of 32-bit parts of value if host
12880         and target endianness differ.
12881
12882 2008-06-10  Vinodha Ramasamy  <vinodha@google.com>
12883
12884         * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
12885         Avoid division by 0.
12886         (tree_mod_pow2_value_transform): Likewise.
12887         (tree_ic_transform): Likewise.
12888         (tree_stringops_transform): Likewise.
12889         (tree_mod_subtract_transform): Likewise.
12890         * tree-inline-c (copy_bb): Corrected int type to gcov_type.
12891         (copy_edges_for_bb): Likewise.
12892         (initialize_cfun): Likewise.
12893
12894 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
12895
12896         * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
12897         nonmemory_operand. Add "N" operand constraint.
12898         (*btsi): Ditto.
12899         (*jcc_btdi_mask_rex64): New instruction and split pattern.
12900         (*jcc_btsi_mask): Ditto.
12901         (*jcc_btsi_mask_1): Ditto.
12902
12903 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
12904
12905         * config/rs6000/rs6000.c (build_opaque_vector_type): Set
12906         TYPE_CANONICAL for copied element type.
12907
12908 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
12909
12910         PR target/36473
12911         * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
12912         Add m_CORE2 and m_GENERIC.
12913         * config/i386/predicates.md (bt_comparison_operator): New predicate.
12914         * config/i386/i386.md (*btdi_rex64): New instruction pattern.
12915         (*btsi): Ditto.
12916         (*jcc_btdi_rex64): New instruction and split pattern.
12917         (*jcc_btsi): Ditto.
12918         (*jcc_btsi_1): Ditto.
12919         (*btsq): Fix Intel asm dialect operand order.
12920         (*btrq): Ditto.
12921         (*btcq): Ditto.
12922
12923 2008-06-09  Andy Hutchinson  <hutchinsonandy@aim.com>
12924
12925         PR middle-end/36447
12926         * simplify-rtx.c (simplify_subreg): Add check for shift count
12927         greater than size.
12928
12929 2008-06-09  Richard Sandiford  <rdsandiford@googlemail.com>
12930
12931         * doc/md.texi: Synchronize with later constraints.md change.
12932         * longlong.h (umul_ppmm): Replace the MIPS asm implementation
12933         with a C implementation.
12934         * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
12935         MFLO handling.
12936         (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
12937         (mips_split_doubleword_move): Use special MTHI and MFHI instructions
12938         when moving to and from MD_REGNUM.
12939         (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
12940         Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
12941         Handle byte and halfword moves.
12942         (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
12943         separately.
12944         * config/mips/constraints.md (h): Turn into NO_REGS.
12945         (l, x): Update documentation.
12946         * config/mips/mips.md (UNSPEC_MFHILO): Delete.
12947         (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
12948         (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
12949         (HILO): New mode iterator.
12950         (MOVE128): Add TI.
12951         (any_div): New code iterator.
12952         (u): Extend code attribute to div and udiv.
12953         (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
12954         d_operand in the splitters.  Remove redundant CONST_INT checks.
12955         (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
12956         (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
12957         (*muls): Remove "=h" clobbers.  Adjust peephole2s and define_splits
12958         accordingly, using normal moves instead of unspecs to move LO into
12959         a GPR.  Use d_operand and lo_operand instead of *_REG_P checks.
12960         (<u>mulsidi3): Handle expansion in C code.
12961         (<u>mulsidi3_32bit_internal): Rename to...
12962         (<u>mulsidi3_32bit): ...this.
12963         (<u>mulsidi3_32bit_r4000): Fix insn separator.
12964         (*<u>mulsidi3_64bit): Rename to...
12965         (<u>mulsidi3_64bit): ...this.  Combine DImode "=h" and "=l" clobbers
12966         into a TImode "=x" clobber.  In the split, use an UNSPEC_SET_HILO
12967         to set LO and HI to the multiplication result.  Use a normal move
12968         for MFLO and an unspec for MFHI.
12969         (*<u>mulsidi3_64bit_parts): Replace with...
12970         (<u>mulsidi3_64bit_hilo): ...this new instruction.
12971         (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
12972         (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
12973         and extend it to TARGET_FIX_R4000.  Store the destination in a GPR
12974         instead of HI.  Split the instruction into a separate multiplication
12975         and MFHI if !TARGET_FIX_R4000.
12976         (<su>muldi3_highpart): Likewise.
12977         (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
12978         and the "=h" clobber.
12979         (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
12980         (<u>mulditi3): New expander.
12981         (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
12982         (madsi): Remove "=h" clobber.
12983         (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
12984         Force the modulus result to be a GPR and split the instruction into
12985         a division followed by an MFHI after reload.
12986         (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
12987         (*lea_high64): Use d_operand in the define_peephole2.  Likewise
12988         the MIPS16 HIGH define_split.
12989         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
12990         of acc<->gpr moves to "multi".
12991         (*movdi_64bit): Replace the single "x" alternative with
12992         alternatives for moving into and out of "a".
12993         (*movhi_internal, *movqi_internal): Likewise.  Use mips_output_move.
12994         (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
12995         (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
12996         Use d_operand in the splitters.  Remove redundant CONST_INT checks.
12997         (*movhi_mips16, *movqi_mips16): Likewise.  Use mips_output_move.
12998         (movti): New expander.
12999         (*movti, *movti_mips16): New insns.
13000         (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
13001         (mfhi<GPR:mode>_<HILO:mode>): New pattern.
13002         (mthi<GPR:mode>_<HILO:mode>): Likewise.
13003         * config/mips/predicates.md (fpr_operand): Delete.
13004         (d_operand): New predicate.
13005
13006 2008-06-09  Michael Meissner  <michael.meissner@amd.com>
13007
13008         * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
13009         failure on some Bourne shells.
13010         (x86_64-*-*): Ditto.
13011
13012 2008-06-09  Kai Tietz  <kai.tietz@onevision.com>
13013
13014         * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
13015
13016 2008-06-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
13017
13018         * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
13019         (sparc-sun-solaris2*): Likewise.
13020
13021 2008-06-09  Arnaud Charlet  <charlet@adacore.com
13022
13023         * doc/install.texi: Update requirements to build the Ada compiler.
13024
13025 2008-06-08  Steven Bosscher  <stevenb.gcc@gmail.com>
13026
13027         * df-scan.c (struct df_scan_problem_data): Remove the
13028         mw_link_pool alloc pool.
13029         (df_scan_free_internal): Don't free it.
13030         (df_scan_alloc): Don't allocate it.
13031         * df.h (struct df_link): Update comment.
13032
13033 2008-06-08  Nathan Sidwell  <nathan@codesourcery.com>
13034
13035         * except.h: Correct checks for when SJLJ exceptions must be used.
13036
13037 2008-06-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13038
13039         * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
13040         default.
13041
13042 2008-06-08  Joseph Myers  <joseph@codesourcery.com>
13043
13044         PR tree-optimization/36218
13045         * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
13046         configure for the build system.
13047         (BUILD_LDFLAGS): Define.
13048         * configure: Regenerate.
13049         * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
13050
13051 2008-07-08  Anatoly Sokolov  <aesok@post.ru>
13052
13053         PR target/36424
13054         * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
13055         * config/avr/avr.c (avr_hard_regno_rename_ok): New function.
13056         * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype.
13057
13058 2008-06-07  Danny Smith  <dannysmith@users.sourceforge.net>
13059
13060         * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
13061
13062 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
13063
13064         * config.gcc (Obsolete configurations): Remove list of
13065         configurations.
13066         (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
13067         *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*.  Remove other
13068         targets matched by those patterns.
13069         (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
13070         m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
13071         alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
13072         arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
13073         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
13074         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
13075         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
13076         i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
13077         i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
13078         mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
13079         powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
13080         powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
13081         strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
13082         vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
13083         i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
13084         Make code for Solaris 7 and greater unconditional for Solaris.
13085         (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
13086         Remove --with-* handling.
13087         * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
13088         (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
13089         ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
13090         LINK_OS_WINDISS_SPEC): Remove.
13091         * config/rs6000/sysv4.opt (mwindiss): Remove.
13092         * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
13093         * configure: Regenerate.
13094         * doc/cpp.texi: Don't mention BeOS.
13095         * doc/extend.texi (interrupt): Don't mention MS1.
13096         * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
13097         m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
13098         alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
13099         i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
13100         powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
13101         Remove.
13102         * doc/invoke.texi (MT Options): Remove.
13103         (-mwindiss): Remove.
13104         (CRIS Options): Remove cris-axis-aout references.
13105         (HPPA Options): Don't mention hppa1.1-*-pro.
13106         * doc/md.texi: (MorphoTech family): Remove.
13107         * libgcc2.c: Don't handle UWIN.
13108         * config/alpha/t-unicosmk: Remove.
13109         * config/alpha/unicosmk.h: Remove.
13110         * config/arm/kaos-arm.h: Remove.
13111         * config/arm/kaos-strongarm.h: Remove.
13112         * config/arm/strongarm-coff.h: Remove.
13113         * config/arm/strongarm-elf.h: Remove.
13114         * config/arm/strongarm-pe.h: Remove.
13115         * config/arm/t-strongarm-pe: Remove.
13116         * config/arm/t-xscale-coff: Remove.
13117         * config/arm/t-xscale-elf: Remove.
13118         * config/arm/xscale-coff.h: Remove.
13119         * config/arm/xscale-elf.h: Remove.
13120         * config/chorus.h: Remove.
13121         * config/cris/aout.h: Remove.
13122         * config/cris/aout.opt: Remove.
13123         * config/cris/t-aout: Remove.
13124         * config/i386/beos-elf.h: Remove.
13125         * config/i386/kaos-i386.h: Remove.
13126         * config/i386/ptx4-i.h: Remove.
13127         * config/i386/sco5.h: Remove.
13128         * config/i386/sco5.opt: Remove.
13129         * config/i386/sysv4-cpp.h: Remove.
13130         * config/i386/sysv5.h: Remove.
13131         * config/i386/t-beos: Remove.
13132         * config/i386/t-sco5: Remove.
13133         * config/i386/t-uwin: Remove.
13134         * config/i386/uwin.asm: Remove.
13135         * config/i386/uwin.h: Remove.
13136         * config/kaos.h: Remove.
13137         * config/mips/windiss.h: Remove.
13138         * config/mt: Remove directory.
13139         * config/pa/pa-osf.h: Remove.
13140         * config/pa/pa-pro-end.h: Remove.
13141         * config/pa/t-pro: Remove.
13142         * config/ptx4.h: Remove.
13143         * config/rs6000/beos.h: Remove.
13144         * config/rs6000/kaos-ppc.h: Remove.
13145         * config/rs6000/t-beos: Remove.
13146         * config/rs6000/windiss.h: Remove.
13147         * config/sh/kaos-sh.h: Remove.
13148         * config/sol2-6.h: Remove.
13149         * config/sparc/sol26-sld.h: Remove.
13150         * config/sparc/sysv4-only.h: Remove.
13151         * config/vax/bsd.h: Remove.
13152         * config/vax/t-memfuncs: Remove.
13153         * config/vax/ultrix.h: Remove.
13154         * config/vax/vaxv.h: Remove.
13155         * config/windiss.h: Remove.
13156
13157 2008-06-06  Uros Bizjak <ubizjak@gmail.com>
13158
13159         PR rtl-optimization/36438
13160         * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
13161         for vector shifts with constant scalar shift operands.
13162
13163 2008-06-06  Sandip Matte  <sandip@rmicorp.com>
13164
13165         * doc/invoke.texi: Document -march=xlr.
13166         * config/mips/xlr.md: New file.
13167         * config/mips/mips.md: Include it.
13168         (cpu): Add "xlr".
13169         * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
13170         * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
13171         (mips_rtx_cost_data): Likewise.
13172
13173 2008-06-06  Nathan Froyd  <froydnj@codesourcery.com>
13174
13175         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
13176         PRE_INC and PRE_DEC cases.
13177
13178 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
13179
13180         PR rtl-optimization/36419
13181         * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
13182         the emitting jump insn.
13183
13184         PR target/36362
13185         * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
13186         is not bool, boolify the whole *expr_p and convert to the desired type.
13187
13188 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
13189
13190         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
13191         * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
13192         Add omp_private_outer_ref hook, add another argument to
13193         omp_clause_default_ctor hook.
13194         * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
13195         (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
13196         (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
13197         hook_tree_tree_tree_tree_null.
13198         (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
13199         LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
13200         * hooks.c (hook_tree_tree_tree_tree_null): New function.
13201         * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
13202         * tree.def (OMP_TASK): New tree code.
13203         * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
13204         OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
13205         OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
13206         OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
13207         OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
13208         OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
13209         OMP_CLAUSE_COLLAPSE_EXPR): Define.
13210         (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
13211         (OMP_DIRECTIVE_P): Add OMP_TASK.
13212         (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
13213         (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
13214         * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
13215         and OMP_CLAUSE_UNTIED entries.
13216         (omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
13217         num_ops to 2.
13218         (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
13219         Walk OMP_CLAUSE_LASTPRIVATE_STMT.
13220         * tree-pretty-print.c (dump_omp_clause): Handle
13221         OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
13222         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
13223         (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
13224         * c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
13225         warning about unsigned iterators.  Change decl/init/cond/incr
13226         arguments to TREE_VECs, check arguments for all collapsed loops.
13227         (c_finish_omp_taskwait): New function.
13228         (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
13229         ws_clauses.
13230         * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
13231         default_function_array_conversion on init.  Add par_clauses argument.
13232         If decl is present in parallel's lastprivate clause, change it to
13233         shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
13234         Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
13235         collapse count in clauses.
13236         (c_parser_omp_for, c_parser_omp_parallel): Adjust
13237         c_parser_omp_for_loop callers.
13238         (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
13239         (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
13240         (c_parser_omp_clause_name): Handle collapse and untied clauses.
13241         (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
13242         functions.
13243         (c_parser_omp_clause_schedule): Handle schedule(auto).
13244         Include correct location in the error message.
13245         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
13246         and PRAGMA_OMP_CLAUSE_UNTIED.
13247         (OMP_TASK_CLAUSE_MASK): Define.
13248         (c_parser_omp_task, c_parser_omp_taskwait): New functions.
13249         (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
13250         * tree-nested.c (convert_nonlocal_omp_clauses,
13251         convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
13252         OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
13253         OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
13254         Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
13255         OMP_CLAUSE_DECL.
13256         (conver_nonlocal_reference, convert_local_reference,
13257         convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
13258         OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
13259         (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
13260         * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
13261         * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
13262         * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
13263         (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
13264         * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
13265         (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
13266         OMP_CLAUSE_UNTIED.
13267         * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
13268         * c-common.h (c_finish_omp_taskwait): New prototype.
13269         * gimple-low.c (lower_stmt): Handle OMP_TASK.
13270         * tree-parloops.c (create_parallel_loop): Create 1 entry
13271         vectors for OMP_FOR_{INIT,COND,INCR}.
13272         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
13273         (make_edges): Handle OMP_TASK.
13274         * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
13275         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
13276         * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
13277         * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
13278         BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
13279         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
13280         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
13281         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
13282         * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
13283         BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
13284         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
13285         BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
13286         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
13287         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
13288         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
13289         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
13290         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
13291         BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
13292         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
13293         BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
13294         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
13295         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
13296         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
13297         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
13298         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
13299         * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
13300         handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
13301         original iterator is present in lastprivate clause or if
13302         collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
13303         OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
13304         (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
13305         (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
13306         (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
13307         if it is set, lookup var in outer contexts too.  Handle
13308         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
13309         to be implicitly determined firstprivate for task regions.
13310         (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
13311         if it is set, lookup var in outer contexts too.  Set
13312         OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
13313         Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
13314         OMP_CLAUSE_UNTIED.  Take region_type as last argument
13315         instead of in_parallel and in_combined_parallel.
13316         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
13317         Adjust callers.
13318         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
13319         GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause langhook.
13320         (new_omp_context): Set default_kind to
13321         OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
13322         (omp_region_type): New enum.
13323         (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
13324         fields, add region_type.
13325         (new_omp_context): Take region_type as argument instead of is_parallel
13326         and is_combined_parallel.
13327         (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
13328         omp_is_private, omp_check_private): Adjust ctx->is_parallel and
13329         ctx->is_combined_parallel checks.
13330         (gimplify_omp_task): New function.
13331         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
13332         OMP_CLAUSE_UNTIED.
13333         * omp-low.c (extract_omp_for_data): Use schedule(static)
13334         for schedule(auto).  Handle pointer and unsigned iterators.
13335         Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
13336         Add loops argument.  Extract data for collapsed OMP_FOR loops.
13337         (expand_parallel_call): Assert sched_kind isn't auto,
13338         map runtime schedule to index 3.
13339         (struct omp_for_data_loop): New type.
13340         (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
13341         Add loop, loops, collapse and iter_type fields.
13342         (workshare_safe_to_combine_p): Disallow combined for if
13343         iter_type is unsigned long long.  Don't combine collapse > 1 loops
13344         unless all bounds and steps are constant.  Adjust extract_omp_for_data
13345         caller.
13346         (expand_omp_for_generic): Handle pointer, unsigned and long long
13347         iterators.  Handle collapsed OMP_FOR loops.  Adjust
13348         for struct omp_for_data changes.  If libgomp function doesn't return
13349         boolean_type_node, add comparison of the return value with 0.
13350         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
13351         pointer, unsigned and long long iterators.  Adjust for struct
13352         omp_for_data changes.
13353         (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
13354         to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
13355         unsigned long long.  Allocate loops array, pass it to
13356         extract_omp_for_data.  For collapse > 1 loops use always
13357         expand_omp_for_generic.
13358         (omp_context): Add sfield_map and srecord_type fields.
13359         (is_task_ctx, lookup_sfield): New functions.
13360         (use_pointer_for_field): Use is_task_ctx helper.  Change first
13361         argument's type from const_tree to tree.  Clarify comment.
13362         In OMP_TASK disallow copy-in/out sharing.
13363         (build_sender_ref): Call lookup_sfield instead of lookup_field.
13364         (install_var_field): Add mask argument.  Populate both record_type
13365         and srecord_type if needed.
13366         (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
13367         in srecord_type.
13368         (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
13369         and DECL_FIELD_OFFSET.
13370         (scan_sharing_clauses): Adjust install_var_field callers.  For
13371         firstprivate clauses on explicit tasks allocate the var by value in
13372         record_type unconditionally, rather than by reference.
13373         Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
13374         Use is_taskreg_ctx instead of is_parallel_ctx.
13375         Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
13376         (create_omp_child_function_name): Add task_copy argument, use
13377         *_omp_cpyfn* names if it is true.
13378         (create_omp_child_function): Add task_copy argument, if true create
13379         *_omp_cpyfn* helper function.
13380         (scan_omp_parallel): Adjust create_omp_child_function callers.
13381         Rename parallel_nesting_level to taskreg_nesting_level.
13382         (scan_omp_task): New function.
13383         (lower_rec_input_clauses): Don't run constructors for firstprivate
13384         explicit task vars which are initialized by *_omp_cpyfn*.
13385         Pass outer var ref to omp_clause_default_ctor hook if
13386         OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
13387         Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
13388         OMP_CLAUSE_REDUCTION_INIT.
13389         (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
13390         avoid duplicate setting of fields.  Handle
13391         OMP_CLAUSE_PRIVATE_OUTER_REF.
13392         (lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
13393         copy-out if TREE_READONLY, only copy-in.
13394         (expand_task_copyfn): New function.
13395         (expand_task_call): New function.
13396         (struct omp_taskcopy_context): New type.
13397         (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
13398         New functions.
13399         (lower_omp_parallel): Rename to...
13400         (lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
13401         Call create_task_copyfn if srecord_type is needed.  Adjust
13402         sender_decl type.
13403         (task_shared_vars): New variable.
13404         (check_omp_nesting_restrictions): Warn if work-sharing,
13405         barrier, master or ordered region is closely nested inside OMP_TASK.
13406         Add warnings for barrier if closely nested inside of work-sharing,
13407         ordered, or master region.
13408         (scan_omp_1): Call check_omp_nesting_restrictions even for
13409         GOMP_barrier calls.  Rename parallel_nesting_level to
13410         taskreg_nesting_level.  Handle OMP_TASK.
13411         (lower_lastprivate_clauses): Even if some lastprivate is found on a
13412         work-sharing construct, continue looking for them on parent parallel
13413         construct.
13414         (lower_omp_for_lastprivate): Add lastprivate clauses
13415         to the beginning of dlist rather than end.  Adjust for struct
13416         omp_for_data changes.
13417         (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
13418         not after it.  Handle collapsed OMP_FOR loops, adjust for
13419         OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
13420         (get_ws_args_for): Adjust extract_omp_for_data caller.
13421         (scan_omp_for): Handle collapsed OMP_FOR
13422         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
13423         (lower_omp_single_simple): If libgomp function doesn't return
13424         boolean_type_node, add comparison of the return value with 0.
13425         (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
13426         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
13427         (parallel_nesting_level): Rename to...
13428         (taskreg_nesting_level): ... this.
13429         (is_taskreg_ctx): New function.
13430         (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
13431         of is_parallel_ctx.
13432         (execute_lower_omp): Rename parallel_nesting_level to
13433         taskreg_nesting_level.
13434         (expand_omp_parallel): Rename to...
13435         (expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
13436         Call omp_task_call for OMP_TASK regions.
13437         (expand_omp): Adjust caller, handle OMP_TASK.
13438         (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
13439
13440         * bitmap.c (bitmap_default_obstack_depth): New variable.
13441         (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
13442         if argument is NULL and bitmap_default_obstack is already initialized.
13443         * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
13444         at the end.
13445         * matrix-reorg.c (matrix_reorg): Likewise.
13446
13447 2008-06-06  Uros Bizjak  <ubizjak@gmail.com>
13448
13449         * config/i386/i386.md (*indirect_jump): Macroize using P
13450         mode iterator.  Remove !TARGET_64BIT from insn constraints.
13451         (*tablejump_1): Ditto.
13452         (*indirect_jump_rex64): Remove insn pattern.
13453         (*tablejump_1_rex64): Ditto.
13454         (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
13455         and eh_return_si insn patterns.
13456
13457 2008-06-06  Richard Guenther  <rguenther@suse.de>
13458
13459         * tree-ssa-structalias.c (merge_smts_into): Remove.
13460         (find_what_p_points_to): Do not bother to compute the
13461         points-to set for pt_anything pointers.
13462         * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
13463         for pt_anything pointers is ok.
13464
13465 2008-06-06  Jan Hubicka  <jh@suse.cz>
13466
13467         * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
13468
13469 2008-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13470
13471         * cgraph.c: Fix typos in comments.
13472         (cgraph_availability_names): Fix string typo.
13473         * fold-const.c: Fix typos in comments.
13474         (fold_binary): Fix typo in warning.
13475         * genautomata.c: Fix typos in comments.
13476         (check_presence_pattern_sets): Fix typo in local variable.
13477         (output_description): Fix typo in output.
13478         * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
13479         * hwint.h: Likewise.
13480         * matrix-reorg.c (check_allocation_function): Likewise.
13481         * omega.c (smooth_weird_equations): Likewise.
13482         * auto-inc-dec.c: Fix typos in comments.
13483         * bb-reorder.c: Likewise.
13484         * builtins.c: Likewise.
13485         * c-common.c: Likewise.
13486         * c-cppbuiltin.c: Likewise.
13487         * c-parser.c: Likewise.
13488         * c-pretty-print.c: Likewise.
13489         * cfgcleanup.c: Likewise.
13490         * cfgexpand.c: Likewise.
13491         * cfghooks.c: Likewise.
13492         * cfglayout.c: Likewise.
13493         * cfgloopmanip.c: Likewise.
13494         * cgraphunit.c: Likewise.
13495         * coverage.c: Likewise.
13496         * dbxout.c: Likewise.
13497         * df-byte-scan.c: Likewise.
13498         * df-core.c: Likewise.
13499         * df-problems.c: Likewise.
13500         * df-scan.c: Likewise.
13501         * dfp.c: Likewise.
13502         * dominance.c: Likewise.
13503         * domwalk.c: Likewise.
13504         * dse.c: Likewise.
13505         * dwarf2out.c: Likewise.
13506         * emit-rtl.c: Likewise.
13507         * et-forest.c: Likewise.
13508         * function.c: Likewise.
13509         * function.h: Likewise.
13510         * gcc.c: Likewise.
13511         * gcov-io.c: Likewise.
13512         * gcov.c: Likewise.
13513         * gcse.c: Likewise.
13514         * genattrtab.c: Likewise.
13515         * ggc-page.c: Likewise.
13516         * gimplify.c: Likewise.
13517         * gthr-lynx.h: Likewise.
13518         * haifa-sched.c: Likewise.
13519         * ipa-cp.c: Likewise.
13520         * ipa-inline.c: Likewise.
13521         * ipa-prop.h: Likewise.
13522         * ipa-pure-const.c: Likewise.
13523         * ipa-struct-reorg.c: Likewise.
13524         * ipa-struct-reorg.h: Likewise.
13525         * ipa-type-escape.c: Likewise.
13526         * ipa.c: Likewise.
13527         * loop-doloop.c: Likewise.
13528         * mips-tfile.c: Likewise.
13529         * mkmap-flat.awk: Likewise.
13530         * mkmap-symver.awk: Likewise.
13531         * modulo-sched.c: Likewise.
13532         * omp-low.c: Likewise.
13533         * optabs.c: Likewise.
13534         * optabs.h: Likewise.
13535         * opts.c: Likewise.
13536         * passes.c: Likewise.
13537         * postreload-gcse.c: Likewise.
13538         * postreload.c: Likewise.
13539         * predict.c: Likewise.
13540         * pretty-print.h: Likewise.
13541         * profile.c: Likewise.
13542         * protoize.c: Likewise.
13543         * ra-conflict.c: Likewise.
13544         * real.c: Likewise.
13545         * recog.c: Likewise.
13546         * regclass.c: Likewise.
13547         * regs.h: Likewise.
13548         * reload.c: Likewise.
13549         * rtl-error.c: Likewise.
13550         * rtlanal.c: Likewise.
13551         * scan.h: Likewise.
13552         * sched-rgn.c: Likewise.
13553         * see.c: Likewise.
13554         * stmt.c: Likewise.
13555         * target.h: Likewise.
13556         * tree-dfa.c: Likewise.
13557         * tree-eh.c: Likewise.
13558         * tree-flow-inline.h: Likewise.
13559         * tree-inline.c: Likewise.
13560         * tree-into-ssa.c: Likewise.
13561         * tree-loop-distribution.c: Likewise.
13562         * tree-nested.c: Likewise.
13563         * tree-parloops.c: Likewise.
13564         * tree-pass.h: Likewise.
13565         * tree-pretty-print.c: Likewise.
13566         * tree-profile.c: Likewise.
13567         * tree-scalar-evolution.c: Likewise.
13568         * tree-sra.c: Likewise.
13569         * tree-ssa-alias-warnings.c: Likewise.
13570         * tree-ssa-ccp.c: Likewise.
13571         * tree-ssa-coalesce.c: Likewise.
13572         * tree-ssa-dom.c: Likewise.
13573         * tree-ssa-dse.c: Likewise.
13574         * tree-ssa-forwprop.c: Likewise.
13575         * tree-ssa-live.c: Likewise.
13576         * tree-ssa-live.h: Likewise.
13577         * tree-ssa-loop-im.c: Likewise.
13578         * tree-ssa-loop-ivopts.c: Likewise.
13579         * tree-ssa-loop-niter.c: Likewise.
13580         * tree-ssa-loop-prefetch.c: Likewise.
13581         * tree-ssa-phiopt.c: Likewise.
13582         * tree-ssa-phiprop.c: Likewise.
13583         * tree-ssa-sccvn.c: Likewise.
13584         * tree-ssa-ter.c: Likewise.
13585         * tree-ssa-threadupdate.c: Likewise.
13586         * tree-ssa.c: Likewise.
13587         * tree-vect-analyze.c: Likewise.
13588         * tree-vect-transform.c: Likewise.
13589         * tree-vectorizer.c: Likewise.
13590         * tree-vn.c: Likewise.
13591         * tree-vrp.c: Likewise.
13592         * tree.c: Likewise.
13593         * tree.def: Likewise.
13594         * tree.h: Likewise.
13595         * unwind-dw2-fde.c: Likewise.
13596         * unwind.inc: Likewise.
13597         * value-prof.c: Likewise.
13598         * vmsdbgout.c: Likewise.
13599
13600 2008-06-05  David Edelsohn  <edelsohn@gnu.org>
13601
13602         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
13603         always place FP constants in the TOC for TARGET_POWERPC64.
13604         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
13605
13606 2008-06-05  Joseph Myers  <joseph@codesourcery.com>
13607
13608         * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
13609         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
13610         enable for TARGET_E500_DOUBLE.
13611         (*movdd_softfloat32): Also enable for !TARGET_FPRS.
13612         * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
13613         floating-point modes like integer modes for E500 double.
13614         (rs6000_legitimate_offset_address_p): Likewise.
13615         (rs6000_legitimize_address): Likewise.  Do not allow REG+REG
13616         addressing for DDmode for E500 double.
13617         (rs6000_hard_regno_nregs): Do not treat decimal floating-point
13618         modes as using 64-bits of registers for E500 double.
13619         (spe_build_register_parallel): Do not handle DDmode or TDmode.
13620         (rs6000_spe_function_arg): Do not handle DDmode or TDmode
13621         specially for E500 double.
13622         (function_arg): Do not call rs6000_spe_function_arg for DDmode or
13623         TDmode for E500 double.
13624         (rs6000_gimplify_va_arg): Only handle SDmode in registers
13625         specially if TARGET_HARD_FLOAT && TARGET_FPRS.
13626         (rs6000_split_multireg_move): Do not handle TDmode specially for
13627         E500 double.
13628         (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
13629         using 64-bit registers for E500 double.
13630         (emit_frame_save): Do not handle DDmode specially for E500 double.
13631         (gen_frame_mem_offset): Likewise.
13632         (rs6000_function_value): Do not call spe_build_register_parallel
13633         for DDmode or TDmode.
13634         (rs6000_libcall_value): Likewise.
13635         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
13636         DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
13637         for E500 double.
13638
13639 2008-06-04  H.J. Lu  <hongjiu.lu@intel.com>
13640
13641         * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
13642         in comments.
13643
13644 2008-06-04  Junjie Gu <jgu@tensilica.com>
13645
13646         * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
13647         comparison for frame pointers.
13648
13649 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
13650
13651         PR target/27386
13652         * config/avr/avr.h (PUSH_ROUNDING): Remove.
13653
13654 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
13655
13656         PR target/30243
13657         * builtins.c (expand_builtin_signbit): Don't take lowpart when
13658         register is already smaller or equal to required mode.
13659
13660 2008-06-04  Xinliang David Li  <davidxl@google.com>
13661
13662         * tree-call-cdce.c: New file.
13663         (cond_dead_built_in_calls): New static variable.
13664         (input_domain): New struct.
13665         (check_pow): New function.
13666         (check_builtin_call): Ditto.
13667         (check_target_format): Ditto.
13668         (is_call_dce_candidate): Ditto.
13669         (gen_one_condition): Ditto.
13670         (gen_conditions_for_domain): Ditto.
13671         (get_domain): Ditto.
13672         (gen_conditions_for_pow_cst_base): Ditto.
13673         (gen_conditions_for_pow_int_base): Ditto.
13674         (gen_conditions_for_pow): Ditto.
13675         (get_no_error_domain): Ditto.
13676         (gen_shrink_wrap_conditions): Ditto.
13677         (shrink_wrap_one_built_in_call): Ditto.
13678         (shink_wrap_conditional_dead_built_in_calls): Ditto.
13679         (tree_call_cdce): Ditto.
13680         (gate_call_cdce): Ditto.
13681         (pass_call_cdce): New gimple pass.
13682         * passes.c: (init_optimization_passes): New pass.
13683         * tree-pass.h: New pass declaration.
13684         * opts.c (decode_options): New flag setting.
13685         * common.opt: Add -ftree-builtin-call-dce flag.
13686         * Makefile.in: Add new source file.
13687         * tempvar.def: New tv_id.
13688         * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
13689
13690 2008-06-04  Richard Guenther  <rguenther@suse.de>
13691
13692         * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
13693         (is_call_clobbered): Always check var_ann->call_clobbered.
13694         (mark_call_clobbered): Always set var_ann->call_clobbered.
13695         (clear_call_clobbered): Always clear var_ann->call_clobbered.
13696         * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
13697         (reset_alias_info): Clear call clobbering info on MTAGs and
13698         globals as well.
13699         (set_pt_anything): Set pt_global_mem.
13700         (create_tag_raw): Adjust comment.
13701         (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
13702
13703 2008-06-04  Joseph Myers  <joseph@codesourcery.com>
13704             Maxim Kuvyrkov  <maxim@codesourcery.com>
13705
13706         * config/m68k/m68k.opt (mxgot): New option.
13707         * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
13708         (m68k_output_addr_const_extra): New.
13709         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
13710         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
13711         * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
13712         * doc/invoke.texi (M680x0 Options): Document -mxgot.
13713
13714 2008-06-04  Richard Guenther  <rguenther@suse.de>
13715
13716         * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
13717         negative or non-representable offsets.
13718
13719 2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>
13720
13721         * config/i386/i386.c (ix86_gen_leave): New.
13722         (ix86_gen_pop1): Likewise.
13723         (ix86_gen_add3): Likewise.
13724         (ix86_gen_sub3): Likewise.
13725         (ix86_gen_sub3_carry): Likewise.
13726         (ix86_gen_one_cmpl2): Likewise.
13727         (ix86_gen_monitor): Likewise.
13728         (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
13729         ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
13730         ix86_gen_one_cmpl2 and ix86_gen_monitor.
13731         (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
13732         (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
13733         mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
13734         (ix86_expand_epilogue): Updated.
13735         (print_operand): Handle integer register operand for 'z'.
13736         (ix86_expand_strlensi_unroll_1): Likewise.
13737         (ix86_expand_strlen): Likewise.
13738         (ix86_expand_builtin): Likewise.
13739         (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
13740         mov{q}/mov{l} and add{q}/add{l}.
13741
13742 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
13743
13744         * config/i386/i386.md (P): New mode iterator.
13745         (SFmode push_operand splitter): Macroize DImode and SImode pushes
13746         using P mode iterator.
13747         (DFmode push_operand splitter): Ditto.
13748         (XFmode push_operand splitter): Ditto.
13749         (DFmode float_extend SFmode push_operand splitter): Ditto.
13750         (XFmode float_extend SFmode push_operand splitter): Do not generate
13751         SImode pushes for 64bit target.  Macroize Dimode and SImode
13752         pushes using P mode iterator.
13753         (XFmode float_extend DFmode push_operand splitter): Ditto.
13754
13755 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
13756
13757         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
13758         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
13759         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
13760         return type to int.
13761         (ix86_call_abi_override): Remove check for call_used_regs.
13762
13763 2008-06-03  Richard Guenther  <rguenther@suse.de>
13764
13765         * tree-ssa-structalias.c (find_func_aliases): Add constraints
13766         for the lhs of calls if the return type contains pointers.
13767
13768 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
13769
13770         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
13771         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
13772         * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
13773         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
13774         of cfun and DEFAULT_ABI to deceide abi mode.
13775         (DEFAULT_ABI): New.
13776         (REG_PARM_STACK_SPACE): Removed.
13777         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
13778         (STACK_BOUNDARY): Use default target to deceide stack boundary.
13779         * config/i386/i386-protos.h (ix86_cfun_abi): New.
13780         (ix86_function_abi): Likewise.
13781         (ix86_function_type_abi): Likewise.
13782         (ix86_call_abi_override): Likewise.
13783         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
13784         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
13785         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
13786         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
13787         specific defines.
13788         (X86_64_REGPARM_MAX): New.
13789         (X86_64_SSE_REGPARM_MAX): New.
13790         (X64_REGPARM_MAX): New.
13791         (X64_SSE_REGPARM_MAX): New.
13792         (X86_32_REGPARM_MAX): New.
13793         (X86_32_SSE_REGPARM_MAX): New.
13794         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
13795         (ix86_function_regparm): Handle user calling abi.
13796         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
13797         by DEFAULT_ABI versus SYSV_ABI check.
13798         (ix86_reg_parm_stack_space): New.
13799         (ix86_function_type_abi): New.
13800         (ix86_call_abi_override): New.
13801         (ix86_function_abi): New.
13802         (ix86_cfun_abi): New.
13803         (init_cumulative_args): Call abi specific initialization.
13804         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
13805         (function_arg_64): Extend SSE_REGPARM_MAX check.
13806         (function_arg (): Remove TARGET_64BIT_MS_ABI.
13807         (ix86_pass_by_reference): Likewise.
13808         (ix86_function_value_regno_p): Likewise.
13809         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
13810         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
13811         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
13812         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
13813         (setup_incoming_varargs_64): Adjust regparm for call abi.
13814         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
13815         (ix86_va_start): Likewise.
13816         (ix86_gimplify_va_arg): Likewise.
13817         (ix86_expand_prologue): Likewise.
13818         (output_pic_addr_const): Likewise.
13819         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
13820         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
13821         (x86_output_mi_thunk): Likewise.
13822         (x86_function_profiler): Likewise.
13823         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
13824         (SYSV_ABI, MS_ABI): New constants.
13825         (DEFAULT_ABI): New.
13826         (init_regs): Add prototype of function in regclass.c file.
13827         (OVERRIDE_ABI_FORMAT): New.
13828         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
13829         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
13830         (OUTGOING_REG_PARM_STACK_SPACE): New.
13831         (ix86_reg_parm_stack_space): New prototype.
13832         (CUMULATIVE_ARGS): Add call_abi member.
13833         (machine_function): Add call_abi member.
13834         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
13835         TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
13836
13837 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com>
13838
13839         PR target/34879
13840         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
13841         (avr_builtin_setjmp_frame_value): New function.
13842         * config/avr/avr.md (nonlocal_goto_receiver): Define.
13843         (nonlocal_goto): Define.
13844
13845 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
13846
13847         * config/mips/mips.c (mips_emit_loadgp): Return early if
13848         there is nothing do to, otherwise emit a blockage if
13849         !TARGET_EXPLICIT_RELOCS || crtl->profile.
13850         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
13851
13852 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13853
13854         * configure.ac: Drop unneeded backslash ending up in config.in.
13855         * acinclude.m4: Likewise.
13856         * config.in: Regenerate.
13857
13858 2008-05-26  Jan Hubicka  <jh@suse.cz>
13859
13860         * predict.c (maybe_hot_frequency_p): Break out of...
13861         (maybe_hot_bb_p): ... here.
13862         (maybe_hot_edge_p): New.
13863         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
13864         * basic-block.h (maybe_hot_edge_p): Declare.
13865
13866 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
13867
13868         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
13869         (*cmpfp_<mode>_cc): Ditto.
13870         (*fp_jcc_8<mode>_387): Ditto.
13871         (*fop_<MODEF:mode>_2_i387): Ditto.
13872         (*fop_<MODEF:mode>_3_i387): Ditto.
13873         (*fop_xf_2_i387): Ditto.
13874         (*fop_xf_3_i387): Ditto.
13875
13876 2008-06-02  Tomas Bily  <tbily@suse.cz>
13877
13878         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
13879
13880 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
13881
13882         * config/mips/mips.c (mips_valid_offset_p): New function.
13883         (mips_valid_lo_sum_p): Likewise.
13884         (mips_classify_address): Use them.
13885         (mips_force_address): New function.
13886         (mips_legitimize_address): Use it.
13887         * config/mips/mips.md (MOVE128): New mode iterator.
13888         (movtf): Require TARGET_64BIT.  Remove empty strings.
13889         (*movtf_internal): Rename to...
13890         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
13891         of "R" and use {,fp}{load,store} attributes instead of "multi".
13892         Use a separate define_split.
13893         (*movtf_mips16): New pattern.
13894
13895 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
13896
13897         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
13898         * config/mips/mips.c (mips_expand_before_return): New function.
13899         (mips_expand_epilogue): Call it.
13900         * config/mips/mips.md (return): Turn into a define_expand.
13901         (*return): New insn.
13902
13903 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
13904
13905         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
13906         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
13907         functions.  Do not emit uses and clobbers of CONCATs; individually
13908         use and clobber their operands.
13909         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
13910         gen_clobber, emit_use and gen_use.
13911         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
13912         (expand_builtin_return): Likewise.
13913         * cfgbuild.c (count_basic_blocks): Likewise.
13914         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
13915         * explow.c (emit_stack_restore): Likewise.
13916         * expmed.c (extract_bit_field_1): Likewise.
13917         * expr.c (convert_move, emit_move_complex_parts): Likewise.
13918         (emit_move_multi_word, store_constructor): Likewise.
13919         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
13920         (thread_prologue_and_epilogue_insns): Likewise.
13921         * lower-subreg.c (resolve_simple_move): Likewise.
13922         * optabs.c (widen_operand, expand_binop): Likewise.
13923         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
13924         * reload.c (find_reloads): Likewise.
13925         * reload1.c (eliminate_regs_in_insn): Likewise.
13926         * stmt.c (expand_nl_goto_receiver): Likewise.
13927         * config/alpha/alpha.md (builtin_longjmp): Likewise.
13928         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
13929         * config/arm/arm.c (arm_load_pic_register): Likewise.
13930         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
13931         * config/arm/arm.md (untyped_return): Likewise.
13932         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
13933         * config/avr/avr.c (expand_prologue): Likewise.
13934         * config/bfin/bfin.c (do_unlink): Likewise.
13935         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
13936         * config/cris/cris.c (cris_expand_prologue): Likewise.
13937         * config/darwin.c (machopic_indirect_data_reference): Likewise.
13938         (machopic_legitimize_pic_address): Likewise.
13939         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
13940         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
13941         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
13942         (ix86_expand_convert_uns_didf_sse): Likewise.
13943         (ix86_expand_vector_init_general): Likewise.
13944         * config/ia64/ia64.md (eh_epilogue): Likewise.
13945         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
13946         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
13947         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
13948         (config/iq2000/iq2000.c): Likewise.
13949         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
13950         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
13951         (builtin_longjmp): Likewise.
13952         * config/mn10300/mn10300.md (call, call_value): Likewise.
13953         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
13954         * config/pdp11/pdp11.md (abshi2): Likewise.
13955         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
13956         * config/s390/s390.c (s390_emit_prologue): Likewise.
13957         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
13958         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
13959         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
13960         * config/sh/sh.c (prepare_move_operands): Likewise.
13961         (output_stack_adjust, sh_expand_epilogue): Likewise.
13962         (sh_set_return_address, sh_expand_t_scc): Likewise.
13963         * config/sparc/sparc.c (load_pic_register): Likewise.
13964         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
13965         * config/spu/spu.c (spu_expand_epilogue): Likewise.
13966         * config/v850/v850.c (expand_epilogue): Likewise.
13967
13968 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
13969
13970         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
13971         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
13972         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
13973         * config/avr/avr.c (expand_prologue, expand_epilogue): Use
13974         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the
13975         stack pointer register.
13976         (output_movhi): Remove code for interrupt specific writing to the
13977         stack pointer register.
13978
13979 2008-05-31  Richard Guenther  <rguenther@suse.de>
13980
13981         PR tree-optimization/34244
13982         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
13983         (tree_expr_nonzero_warnv_p): Likewise.
13984         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
13985         ssa_name_nonnegative_p.
13986         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
13987         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
13988         not tree_expr_nonzero_warnv_p.
13989
13990         PR tree-optimization/36262
13991         Revert
13992         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
13993
13994         PR tree-optimization/34244
13995         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
13996         (record_numbers_of_iterations): New function.
13997         (execute_vrp): Cache the numbers of iterations of loops.
13998         * tree-scalar-evolution.c (scev_reset_except_niters):
13999         New function.
14000         (scev_reset): Use scev_reset_except_niters.
14001         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
14002
14003 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
14004
14005         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
14006         __WORKAROUND_RETS when appropriate.
14007
14008 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
14009
14010         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
14011         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
14012         mode iterator.
14013         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
14014         *fop_df_comm_sse insn patterns using MODEF mode iterator.
14015         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
14016         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
14017         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
14018         *fop_df_1_mixed insn patterns using MODEF mode iterator.
14019         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
14020         *fop_df_1_sse insn patterns using MODEF mode iterator.
14021         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
14022         *fop_df_1_i387 insn patterns using MODEF mode iterator.
14023         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
14024         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
14025         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
14026         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
14027         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
14028         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
14029         (*fop_xf_4_i387): Use <MODE> for mode attribute.
14030         (*fop_xf_5_i387): Ditto.
14031         (*fop_xf_6_i387): Ditto.
14032
14033 2008-05-30  Richard Guenther  <rguenther@suse.de>
14034
14035         * builtins.c (build_string_literal): Avoid generating
14036         a non-gimple_val result.
14037
14038 2008-05-30  DJ Delorie  <dj@redhat.com>
14039
14040         * exec-tool.in: Use an environment variable (private) instead of a
14041         file (shared) as a semaphore, so as to not break parallel builds.
14042
14043 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
14044
14045         * optabs.c (maybe_encapsulate_block): Remove.
14046         (emit_libcall_block): Adjust accordingly.
14047         * optabs.h (maybe_encapsulate_block): Remove prototype.
14048
14049         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
14050         Don't use maybe_encapsulate_block.
14051
14052 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
14053
14054         * config/rs6000/rs6000.c (rs6000_legitimize_address,
14055         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
14056         rtx is a SYMBOL_REF before calling get_pool_constant.
14057
14058 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
14059
14060         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
14061
14062 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
14063
14064         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
14065         rather than OS names to choose INO_T_EQ definition.
14066         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
14067         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
14068
14069 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
14070
14071         PR target/36348
14072         * config/darwin-f.c: New.
14073         * config/t-darwin: Added rule to build darwin-f.o.
14074         * config.gcc: Defined new variable, fortran_target_objs.
14075         (*-*-darwin*): Set fortran_target_objs.
14076         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
14077         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
14078         * configure: Regenerated.
14079
14080 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
14081
14082         PR target/35771
14083         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
14084         canonical type if needed.
14085
14086 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
14087
14088         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
14089
14090 2008-05-29  Richard Guenther  <rguenther@suse.de>
14091
14092         PR tree-optimization/36343
14093         PR tree-optimization/36346
14094         PR tree-optimization/36347
14095         * tree-flow.h (clobber_what_p_points_to): Declare.
14096         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
14097         pointed-to variable is dereferenced is irrelevant to whether
14098         the pointer can access the pointed-to variable.
14099         (clobber_what_p_points_to): New function.
14100         * tree-ssa-alias.c (set_initial_properties): Use it.
14101         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
14102         call clobber check for NMTs.
14103
14104 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
14105
14106         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
14107         for printing gcov_type.
14108
14109 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
14110
14111         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
14112         and the eh region information.
14113         * value-prof.c (gimple_move_stmt_histograms): New function.
14114         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
14115
14116 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
14117
14118         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
14119
14120 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
14121
14122         * value-prof.c (tree_ic_transform): Print counts.
14123         * tree-profile.c (tree_gen_ic_func_profiler):
14124         Clear __gcov_indreict_call_callee variable to avoid misattribution
14125         of the profile.
14126
14127 2008-05-28  Rafael Espíndola  <espindola@google.com>
14128
14129         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
14130         invalid sharing.
14131
14132 2008-05-28  Richard Guenther  <rguenther@suse.de>
14133
14134         PR tree-optimization/36339
14135         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
14136         and clobbering code out of the loop.
14137
14138 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
14139
14140         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
14141         letters defined.
14142
14143         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
14144         s390_contiguous_bitmask_p, s390_symref_operand_p,
14145         s390_check_symref_alignment, s390_reload_larl_operand,
14146         s390_reload_symref_address): New functions.
14147         (s390_branch_condition_mnemonic): Support compare and branch
14148         instructions.
14149         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
14150         and 'W' constraints.
14151         (s390_secondary_reload): Add secondary reloads for unaligned
14152         symbol refs or symbol refs to floating point or QI/TI mode
14153         integer values.
14154         (legitimate_address_p): Accept symbol references as addresses.
14155         (s390_expand_insv): Use rotate and insert selected bits
14156         instruction for insv when building for z10.
14157         (print_operand_address): Handle symbol ref addresses.
14158         (print_operand): Output modifier 'c' added for signed byte values.
14159         (s390_encode_section_info): Mark symbol refs with
14160         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
14161
14162         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
14163         (length attribute): RRF, RRR have 4 byte length.
14164         (FPALL, INTALL): New mode iterators added.
14165         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
14166         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
14167         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
14168         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
14169         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
14170         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
14171         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
14172         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
14173         instructions.
14174         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
14175         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
14176         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
14177         reload<INTALL:mode><P:mode>_toreg_z10,
14178         reload<FPALL:mode><P:mode>_tomem_z10,
14179         reload<FPALL:mode><P:mode>_toreg_z10,
14180         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
14181         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
14182         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
14183         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
14184         definition.
14185         (movmem, clrmem, cmpmem): New splitters added.
14186
14187         * config/s390/predicates.md (larl_operand): Use
14188         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
14189         SYMBOL_REF_ALIGN1_P.
14190         (s390_signed_integer_comparison,
14191         s390_unsigned_integer_comparison): New predicates.
14192
14193         * config/s390/s390-protos.h (s390_check_symref_alignment,
14194         s390_contiguous_bitmask_p, s390_reload_larl_operand,
14195         s390_reload_symref_address,
14196         s390_compare_and_branch_condition_mask): Prototypes added.
14197
14198         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
14199         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
14200         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
14201
14202 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
14203
14204         * config/s390/s390.c (z10_cost): New cost function for z10.
14205         (s390_handle_arch_option, override_options): Support -march=z10 switch.
14206         (s390_issue_rate): Adjust issue rate for z10.
14207         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
14208         (processor_flags): Add PF_Z10.
14209         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
14210         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
14211         * gcc/config.gcc: Add z10.
14212
14213 2008-05-28  Richard Guenther  <rguenther@suse.de>
14214
14215         PR tree-optimization/36291
14216         * tree-flow. h (struct gimple_df): Remove var_anns member.
14217         * tree-flow-inline.h (gimple_var_anns): Remove.
14218         (var_ann): Simplify.
14219         * tree-dfa.c (create_var_ann): Simplify.
14220         (remove_referenced_var): Clear alias info from var_anns of globals.
14221         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
14222         (delete_tree_ssa): Clear alias info from var_anns of globals.
14223         Do not free var_anns.
14224         (var_ann_eq): Remove.
14225         (var_ann_hash): Likewise.
14226
14227 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
14228
14229         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
14230         and loongson2f entries.
14231         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
14232         * config/mips/mips.h (processor_type): Add Loongson-2E
14233         and Loongson-2F entries.
14234         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
14235         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
14236         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
14237         * doc/invoke.texi (MIPS Options): Document loongson2e
14238         and loongson2f processor names.
14239
14240 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
14241
14242         PR target/35767
14243         PR target/35771
14244         * config/i386/i386.c (ix86_function_arg_boundary): Use
14245         alignment of canonical type.
14246         (ix86_expand_vector_move): Check unaligned memory access for
14247         all SSE modes.
14248
14249 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
14250
14251         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
14252         Moved to the front of file.
14253
14254 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
14255             H.J. Lu  <hongjiu.lu@intel.com>
14256
14257         * dwarf2out.c (current_fde): New.
14258         (add_cfi): Use it.
14259         (lookup_cfa:): Likewise.
14260         (dwarf2out_end_epilogue): Likewise.
14261         (dwarf2out_note_section_used): Likewise.
14262
14263 2008-05-27  Michael Matz  <matz@suse.de>
14264
14265         PR c++/27975
14266         * c.opt (Wenum-compare): New warning option.
14267         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
14268
14269 2008-05-27  Michael Matz  <matz@suse.de>
14270
14271         PR middle-end/36326
14272         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
14273         non-BLKmode types.
14274         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
14275         into memory as tail calls.
14276
14277 2008-05-27  Richard Guenther  <rguenther@suse.de>
14278
14279         PR tree-optimization/36339
14280         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
14281         pointers cause all addressable variables to be call clobbered.
14282
14283 2008-05-27  Richard Guenther  <rguenther@suse.de>
14284
14285         PR tree-optimization/36245
14286         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
14287
14288 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
14289
14290         * config/s390/s390.md: Replace all occurences of the 'm'
14291         constraint with 'RT'.
14292
14293 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
14294
14295         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
14296         definitions added.
14297         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
14298         "*movdi_64".
14299         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
14300         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
14301         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
14302
14303 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
14304
14305         * reload.c: (find_reloads): Skip alternatives according to the
14306         "enabled" attribute. Constify the constraint variable.
14307         * recog.c (get_attr_enabled): Add default implementation.
14308         (extract_insn): Set the alternative_enabled_p array
14309         in the recog_data struct.
14310         (preprocess_constraints, constrain_operands): Skip
14311         alternatives according to the "enabled" attribute
14312         * recog.h (struct recog_data): New field alternative_enabled_p.
14313         (skip_alternative): New inline function.
14314         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
14315         (record_reg_classes): Skip alternative according to the
14316         "enabled" attribute.
14317
14318         * doc/md.texi: Add documention for the "enabled" attribute.
14319
14320 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
14321
14322         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
14323         * postreload.c (reload_cse_simplify_operands): Replace 'm'
14324         constraint with TARGET_MEM_CONSTRAINT.
14325         * recog.c (asm_operand_ok, preprocess_constraints,
14326         constrain_operands): Likewise.
14327         * regclass.c (record_reg_classes): Likewise.
14328         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
14329         * reload1.c (maybe_fix_stack_asms): Likewise.
14330         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
14331         * recog.h: Adjust comment.
14332         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
14333         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
14334         * doc/md.texi: Add a note to description of 'm' constraint.
14335         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
14336
14337 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
14338
14339         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
14340         that the bitfield is of integral type before testing its precision.
14341
14342 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
14343             Sa Liu  <saliu@de.ibm.com>
14344
14345         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3,
14346         __modti3, __udivti3, __umodti3 and __udivmodti4.
14347         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
14348         that implement TImode mul and div functions.
14349         * config/spu/multi3.c: New. Implement __multi3.
14350         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
14351         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
14352         functions on SPU.
14353
14354 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
14355
14356         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
14357         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
14358         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
14359         tls_sysv_suffix): New mode and mode attribute iterators.
14360         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
14361         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
14362         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
14363         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
14364         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
14365         iterators.
14366
14367 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
14368
14369         PR tree-optimization/36329
14370         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
14371         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
14372         * cgraphbuild.c (initialize_inline_failed): Use the latter
14373         macro in lieu of the former.
14374         * ipa-inline.c (cgraph_mark_inline): Likewise.
14375         (cgraph_decide_inlining_of_small_function): Likewise.
14376         (cgraph_decide_inlining): Likewise.
14377         (cgraph_decide_inlining_incrementally): Likewise.
14378
14379 2008-05-26  Tristan Gingold  <gingold@adacore.com>
14380             Anatoly Sokolov  <aesok@post.ru>
14381
14382         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
14383         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
14384         * config/avr/avr.c (expand_prologue): Tune "call_prologue"
14385         optimization for 'avr6' architecture.
14386
14387 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
14388
14389         PR target/34932
14390         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
14391
14392 2008-05-26  Richard Guenther  <rguenther@suse.de>
14393
14394         * tree-ssa-sccvn.c (expr_has_constants): Declare.
14395         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
14396
14397 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
14398
14399         PR middle-end/36253
14400         * caller-save.c (insert_restore): Verify alignment of spill space.
14401         (insert_save): Likewise.
14402         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
14403         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
14404         (STACK_SLOT_ALIGNMENT): Likewise.
14405         * function.c (LOCAL_ALIGNMENT): Removed.
14406         (get_stack_local_alignment): New.
14407         (assign_stack_local): Use it.  Set alignment on stack slot.
14408         (assign_stack_temp_for_type): Use get_stack_local_alignment.
14409         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
14410         (STACK_SLOT_ALIGNMENT): New.
14411         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
14412         stack slot in XFmode.
14413
14414         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
14415
14416 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
14417
14418         PR/36321
14419         * config/i386/i386.md (allocate_stack_worker_64): Make sure
14420         argument operand in rax isn't removed.
14421
14422 2008-05-26  Richard Guenther  <rguenther@suse.de>
14423
14424         PR middle-end/36300
14425         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
14426         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
14427
14428 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
14429
14430         PR bootstrap/36331
14431         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
14432
14433 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
14434
14435         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
14436         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
14437
14438 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
14439
14440         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
14441         build a trampoline if we don't want one.
14442         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
14443         return zero for nested functions if we don't want a trampoline.
14444
14445 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
14446
14447         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
14448
14449 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
14450
14451         PR fortran/18428
14452         * c.opt: Removed undocumented option '-lang-fortran'.
14453         * c-common.h: Removed global variable 'lang_fortran'.
14454         * c-opts.c (c_common_handle_option): Removed code to handle
14455         option '-lang-fortran'. Updated includes.
14456         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
14457         definition of '__GFORTRAN__'.
14458         (define__GNUC__): Reimplemented to use BASEVER and
14459         cpp_define_formatted.
14460         (builtin_define_with_value_n): Removed.
14461         * c-incpath.h: Renamed to ...
14462         * incpath.h: ... this.
14463         * c-incpath.c: Renamed to ...
14464         * incpath.c: ... this. Updated includes.
14465         * fix-header.c: Updated includes.
14466         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
14467         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
14468         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
14469
14470 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
14471
14472         * tree.h: Update the table of flags used on tree nodes.
14473         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
14474         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
14475         (FORCED_LABEL): Add access check.
14476         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
14477         (ASM_INPUT_P): Likewise.
14478         (ASM_VOLATILE_P): Likewise.
14479         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
14480         (OMP_SECTION_LAST): Access private_flag directly.
14481         (OMP_RETURN_NOWAIT): Likewise.
14482         (OMP_PARALLEL_COMBINED): Likewise.
14483         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
14484         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
14485         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
14486         deprecated_flag directly.
14487
14488 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
14489
14490         * final.c (frame_pointer_needed): Removed.
14491         * flags.h (frame_pointer_needed): Likewise.
14492
14493         * function.h (rtl_data): Add frame_pointer_needed.
14494         (frame_pointer_needed): New.
14495
14496 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
14497
14498         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
14499
14500 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
14501
14502         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
14503         SRC is a REG.
14504
14505 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
14506
14507         * c-common.c (strip_array_types): Move function to..
14508         * tree.c: ..here.
14509         (get_inner_array_type): Delete.
14510         * c-common.h (strip_array_types): Move declaration to..
14511         * tree.h: ..here.
14512         (get_inner_array_type): Delete.
14513         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
14514         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
14515         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
14516         * config/pa/pa.c (emit_move_sequence): Likewise.
14517
14518 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
14519
14520         * config/i386/i386.md (*sse_prologue_save_insn): Set length
14521         attribute to 34.
14522
14523 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
14524
14525         * function.c: Include target hook for nonlocal_goto frame value.
14526
14527 2008-05-24  Richard Guenther  <rguenther@suse.de>
14528
14529         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
14530         variable can be only accessed through a pointer or a union.
14531
14532 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14533
14534         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
14535         * doc/extend.texi: Likewise.
14536
14537 2008-05-23  DJ Delorie  <dj@redhat.com>
14538
14539         * config/m32c/jump.md (untyped_call): Add.
14540
14541         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
14542         for A24 to PSImode.
14543         (m32c_address_cost): Detail costs for indirect offsets.
14544
14545 2008-05-23  Rafael Espíndola  <espindola@google.com>
14546
14547         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
14548         if a node is a SUBREG.
14549         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
14550         is a SUBREG.
14551
14552 2008-05-23  Paul Brook  <paul@codesourcery.com>
14553             Carlos O'Donell  <carlos@codesourcery.com>
14554
14555         * doc/extend.texi: Clarify use of __attribute__((naked)).
14556         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
14557         * target.h (gcc_target): Add allocate_stack_slots_for_args.
14558         * function.c (use_register_for_decl): Use
14559         targetm.calls.allocate_stack_slots_for_args.
14560         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
14561         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
14562         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
14563
14564 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
14565
14566         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
14567
14568 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
14569
14570         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
14571         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
14572         is only rounded once.
14573
14574 2008-05-23  Richard Guenther  <rguenther@suse.de>
14575
14576         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
14577
14578 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
14579             Jakub Jelinek  <jakub@redhat.com>
14580
14581         PR target/36079
14582         * configure.ac: Handle --enable-cld.
14583         * configure: Regenerated.
14584         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
14585         * config/i386/i386.h (struct machine_function): Add needs_cld field.
14586         (ix86_current_function_needs_cld): New define.
14587         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
14588         (cld): New isns pattern.
14589         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
14590         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
14591         * config/i386/i386.opt (mcld): New option.
14592         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
14593         TARGET_CLD and ix86_current_function_needs_cld.
14594         (override_options): Use -mcld by default for 32-bit code if
14595         USE_IX86_CLD.
14596
14597         * doc/install.texi (Options specification): Document --enable-cld.
14598         * doc/invoke.texi (Machine Dependent Options)
14599         [i386 and x86-64 Options]: Add -mcld option.
14600         (Intel 386 and AMD x86-64 Options): Document -mcld option.
14601
14602 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
14603         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
14604         (return_in_memory_64): Likewise.
14605         (return_in_memory_ms_64): Likewise.
14606
14607 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14608
14609         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
14610         * builtins.c (fold_builtin_fpclassify): New.
14611         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
14612         * builtins.def (BUILT_IN_FPCLASSIFY): New.
14613         * c-common.c (handle_type_generic_attribute): Adjust to accept
14614         fixed arguments before an elipsis.
14615         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
14616         * doc/extend.texi: Document __builtin_fpclassify.
14617
14618 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
14619
14620         * omp-low.c (gate_expand_omp_ssa): Remove.
14621         (pass_expand_omp_ssa): Remove.
14622         (gate_expand_omp): Do not check for flag_openmp_ssa.
14623         * common.opt (-fopenmp-ssa): Remove.
14624         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
14625
14626 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
14627
14628         * config/sh/sh.opt (mfixed-range): New option.
14629         * config/sh/sh-protos.h (sh_fix_range): Declare.
14630         * config/sh/sh.c (sh_fix_range): New function.
14631         * config/sh/sh.h (sh_fixed_range_str): Declare.
14632         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
14633         is not empty.
14634         * doc/invoke.texi (SH Options): Document -mfixed-range.
14635
14636 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
14637
14638         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
14639         it before the redeclaration.
14640
14641 2008-05-22  Anatoly Sokolov <aesok@post.ru>
14642
14643         * config/avr/avr.c (get_sequence_length): Add new function.
14644         (expand_prologue, expand_epilogue): Remove duplicate code.
14645
14646 2008-05-22  Rafael Espíndola  <espindola@google.com>
14647
14648         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
14649         sharing.
14650
14651 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
14652
14653         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
14654         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
14655
14656         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
14657         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
14658         (vect_update_misalignment_for_peel): Likewise.
14659         (vector_alignment_reachable_p): Likewise.
14660         * tree-vect-transform.c (vectorizable_load): Likewise.
14661         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
14662         (get_vectype_for_scalar_type): Pass mode of scalar_type
14663         to UNITS_PER_SIMD_WORD.
14664
14665         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
14666         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
14667         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
14668         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
14669         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
14670
14671 2008-05-22  Ira Rosen  <irar@il.ibm.com>
14672
14673         PR tree-optimization/36293
14674         * tree-vect-transform.c (vect_transform_strided_load): Don't check
14675         if the first load must be skipped because of a gap.
14676
14677 2008-05-22  Richard Guenther  <rguenther@suse.de>
14678
14679         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
14680         more cases of offset disambiguation that is possible if
14681         strict-aliasing rules apply.
14682         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
14683         for basic offset and type-based disambiguation.
14684
14685 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
14686
14687         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
14688         ix86_expand_vector_set on V16QImode for SSE4.1.
14689
14690 2008-05-21  Tom Tromey  <tromey@redhat.com>
14691
14692         * c.opt (Wimport): Mark as undocumented.
14693         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
14694         -Wno-import.
14695         (Warning Options): Likewise.
14696         * doc/cppopts.texi: Don't mention -Wimport.
14697
14698 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
14699
14700         PR tree-optimization/36287
14701         PR tree-optimization/36286
14702         * lambda-code.c (build_access_matrix): Do not use the loop->num
14703         for computing the number of induction variables: use the loop depth
14704         instead.
14705
14706 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
14707
14708         PR/36280
14709         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
14710         option -f(no-)leading-underscore.
14711
14712 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
14713
14714         * config/i386/i386.c (ix86_expand_vector_init_general): Use
14715         GET_MODE_NUNITS (mode).
14716
14717 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
14718
14719         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
14720         (-mmulhw): Add 464 to description.
14721         (-mdlmzb): Likewise.
14722         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
14723         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
14724         464fp entries.
14725         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
14726         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
14727         * config/rs6000/rs6000.md: Update comments for 464.
14728
14729 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
14730
14731         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
14732
14733 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
14734
14735         * config/i386/sse.md (vec_extractv4sf): Removed.
14736         (vec_extractv2df): Likewise.
14737         (vec_extractv2di): Likewise.
14738         (vec_extractv4si): Likewise.
14739         (vec_extractv8hi): Likewise.
14740         (vec_extractv16qi): Likewise.
14741         (vec_extract<mode>): New.
14742
14743 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
14744
14745         * config/i386/sse.md (vec_setv4sf): Removed.
14746         (vec_setv2df): Likewise.
14747         (vec_setv2di): Likewise.
14748         (vec_setv4si): Likewise.
14749         (vec_setv8hi): Likewise.
14750         (vec_setv16qi): Likewise.
14751         (vec_set<mode>): New.
14752
14753 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
14754
14755         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
14756         goto for vec_concat and vec_interleave.
14757
14758 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
14759
14760         * config/i386/sse.md (vec_initv4sf): Removed.
14761         (vec_initv2df): Likewise.
14762         (vec_initv2di): Likewise.
14763         (vec_initv4si): Likewise.
14764         (vec_initv8hi): Likewise.
14765         (vec_initv16qi): Likewise.
14766         (vec_init<mode>): New.
14767
14768 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
14769
14770         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
14771
14772 2008-05-21  Tom Tromey  <tromey@redhat.com>
14773
14774         * ggc-zone.c (lookup_page_table_if_allocated): New function.
14775         (zone_find_object_offset): Likewise.
14776         (gt_ggc_m_S): Likewise.
14777         (highest_bit): Likewise.
14778         * ggc-page.c (gt_ggc_m_S): New function.
14779         * stringpool.c (string_stack): Remove.
14780         (init_stringpool): Update.
14781         (ggc_alloc_string): Use ggc_alloc.
14782         (maybe_delete_ident): New function.
14783         (ggc_purge_stringpool): Likewise.
14784         (gt_ggc_m_S): Remove.
14785         * ggc-common.c (ggc_protect_identifiers): New global.
14786         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
14787         ggc_protect_identifiers.
14788         * ggc.h (ggc_protect_identifiers): Declare.
14789         (gt_ggc_m_S): Update.
14790         (ggc_purge_stringpool): Declare.
14791         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
14792         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
14793         special case.
14794         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
14795
14796 2008-05-21  David S. Miller  <davem@davemloft.net>
14797
14798         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
14799         tmake_file.
14800
14801 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
14802
14803         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
14804         once finished.
14805
14806 2008-05-20  David Daney  <ddaney@avtrex.com>
14807
14808         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
14809         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
14810         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
14811         UNSPEC_UPDATE_GOT_VERSION): Renumber.
14812         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
14813         (atomic_hiqi_op): New define_code_iterator.
14814         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
14815         mips_expand_compare_and_swap_12.
14816         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
14817         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
14818         (sync_<optab><mode>, sync_old_<optab><mode>,
14819         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
14820         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
14821         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
14822         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
14823         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
14824         (test_and_set_12): New insn.
14825         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
14826         sync_new_<optab><mode>, sync_old_nand<mode>,
14827         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
14828         clobber to operand 0 for SI and DI mode insns.
14829         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
14830         mips_gen_fn_4): New typedefs.
14831         (mips_gen_fn_ptrs): Define new union type.
14832         (mips_expand_compare_and_swap_12): Remove declaration.
14833         (mips_expand_atomic_qihi): Declare function.
14834         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
14835         (mips_expand_atomic_qihi): ... this.  Use new generator function
14836         parameter.
14837         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
14838         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
14839         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
14840         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
14841         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
14842         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
14843         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
14844         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
14845         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
14846         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
14847         New macros.
14848
14849 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
14850
14851         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
14852         the missing break.
14853
14854 2008-05-20  Anatoly Sokolov <aesok@post.ru>
14855
14856         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
14857         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
14858         (avr_attribute_table): Add 'OS_main' function attribute.
14859         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
14860         functions with 'OS_main' attribute.
14861
14862 2008-05-20  Richard Guenther  <rguenther@suse.de>
14863
14864         PR tree-optimization/35204
14865         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
14866         helper, split out from ...
14867         (DFS): ... here.  Make the DFS walk non-recursive.
14868
14869 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
14870             Jan Sjodin  <jan.sjodin@amd.com>
14871
14872         PR tree-optimization/36181
14873         * tree-parloops.c (loop_has_vector_phi_nodes): New.
14874         (parallelize_loops): Don't parallelize when the loop has vector
14875         phi nodes.
14876
14877 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
14878             Sebastian Pop  <sebastian.pop@amd.com>
14879
14880         * tree-loop-linear.c (gather_interchange_stats): Look in the access
14881         matrix, and never look at the tree representation of the memory
14882         accesses.
14883         (linear_transform_loops): Computes parameters and access matrices.
14884         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
14885         when fails.
14886         (access_matrix_get_index_for_parameter): New.
14887         * tree-data-ref.h (struct access_matrix): New.
14888         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
14889         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
14890         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
14891         am_vector_index_for_loop): New.
14892         (struct data_reference): Add field access_matrix.
14893         (DR_ACCESS_MATRIX): New.
14894         (compute_data_dependences_for_loop): Update declaration.
14895         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
14896         * lambda.h (lambda_vector_vec_p): Declared.
14897         * lambda-code.c: Depend on pointer-set.h.
14898         (lambda_collect_parameters_from_af, lambda_collect_parameters,
14899         av_for_af_base, av_for_af, build_access_matrix,
14900         lambda_compute_access_matrices): New.
14901         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
14902
14903 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
14904
14905         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
14906         $SOURCEDIR/include.
14907
14908 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
14909             Sebastian Pop  <sebastian.pop@amd.com>
14910
14911         PR tree-optimization/36206
14912         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
14913         FOLD_CONVERSIONS.
14914         (instantiate_scev_1): Rename flags to fold_conversions.
14915         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
14916         outeside instantiation_loop.
14917         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
14918         (evolution_function_is_affine_or_constant_p): Removed.
14919         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
14920         instantiate_scev.
14921         (analyze_siv_subscript): Pass in the loop nest number.
14922         Call evolution_function_is_affine_in_loop instead of
14923         evolution_function_is_affine_p.
14924         (analyze_overlapping_iterations): Pass in the loop nest number.
14925
14926 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
14927             Sebastian Pop  <sebastian.pop@amd.com>
14928
14929         PR tree-optimization/36206
14930         * tree-chrec.h (chrec_fold_op): New.
14931         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
14932         and other trees.
14933
14934 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
14935
14936         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
14937         (DIRS_EQ): New.
14938         (remove_duplicates): Do not set inode on non-inode systems.
14939         Use DIRS_EQ.
14940
14941 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
14942
14943         * config.gcc (tm_file): Update comments about relative pathnames.
14944
14945 2008-05-20  Richard Guenther  <rguenther@suse.de>
14946
14947         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
14948         * tree-ssa-sccvn.c (process_scc): Likewise.
14949         * tree-ssa-sink.c (execute_sink_code): Likewise.
14950         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
14951         * tree-vrp.c (process_assert_insertions): Likewise.
14952         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
14953         (perform_tree_ssa_dce): Likewise.
14954         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
14955         (dump_dominator_optimization_stats): Likewise.
14956         * tree-vectorizer.c (vectorize_loops): Likewise.
14957
14958 2008-05-20  Richard Guenther  <rguenther@suse.de>
14959
14960         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
14961
14962 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
14963
14964         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
14965         (ix86_i386elf_return_in_memory): Likewise.
14966         (ix86_i386interix_return_in_memory): Likewise.
14967         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
14968         (SUBTARGET_RETURN_IN_MEMORY): New.
14969         * config/i386/i386elf.h: Likewise.
14970         * config/i386/ptx4-i.h: Likewise.
14971         * config/i386/sol2-10.h: Likewise.
14972         * config/i386/sysv4.h: Likewise.
14973         * config/i386/vx-common.h: Likewise.
14974         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
14975         * config/i386/i386.c (ix86_return_in_memory): Made static and
14976         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
14977         (ix86_i386elf_return_in_memory): Removed.
14978         (ix86_i386interix_return_in_memory): Removed.
14979         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
14980         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
14981
14982 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
14983
14984         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
14985
14986 2008-05-19  Xinliang David Li  <davidxl@google.com>
14987
14988         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18.
14989         * opts.c: Ditto.
14990         * common.opt: Ditto.
14991         * doc/invoke.texi: Ditto.
14992
14993 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
14994
14995         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
14996         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
14997
14998 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
14999
15000         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
15001         sizes of operand array from 8/4 to 4/2.
15002         (ix86_expand_vector_init_general): Change size of operand array
15003         from 32 to 16.  Remove op0, op1 and half_mode.
15004
15005 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
15006
15007         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
15008         (ix86_expand_vector_init_interleave): Likewise.
15009         (ix86_expand_vector_init_general): Use them.  Assert
15010         word_mode == SImode when n_words == 4.
15011
15012 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
15013
15014         * config/i386/i386.c (ix86_secondary_reload): New static function.
15015         (TARGET_SECONDARY_RELOAD): New define.
15016         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
15017         * config/i386/i386.md (reload_outqi): Remove.
15018
15019 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15020
15021         PR middle-end/35509
15022         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
15023         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
15024         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
15025         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
15026         (fold_builtin_1): Likewise.
15027         * builtins.def (BUILT_IN_ISINF_SIGN): New.
15028         c-common.c (check_builtin_function_arguments): Handle
15029         BUILT_IN_ISINF_SIGN.
15030         * doc/extend.texi: Document __builtin_isinf_sign.
15031         * fold-const.c (operand_equal_p): Handle COND_EXPR.
15032
15033 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
15034
15035         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
15036         EH cleanup at the end of the pass, search for those that have been
15037         turned into forwarder blocks and do the cleanup on their successor.
15038
15039 2008-05-18  Richard Guenther  <rguenther@suse.de>
15040
15041         * tree-cfg.c (verify_gimple_expr): Allow conversions from
15042         pointers to sizetype and vice versa.
15043
15044 2008-05-18 Xinliang David Li   <davidxl@google.com>
15045
15046         * gcc/tree-ssa-dce.c: Coding style fix.
15047         (check_pow): Documentation comment.
15048         (check_log): Documenation comment. Coding style fix.
15049         (is_unnecessary_except_errno_call): Ditto.
15050         (gen_conditions_for_pow): Ditto.
15051         (gen_conditions_for_log): Ditto.
15052         (gen_shrink_wrap_conditions): Ditto.
15053         (shrink_wrap_one_built_in_calls): Ditto.
15054         * gcc/doc/invoke.texi: Better documentation string.
15055         * ChangeLog: Fix wrong change log entries from
15056         May 17 checkin on function call DCE.
15057
15058 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
15059
15060         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
15061
15062 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
15063
15064         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
15065         * df-problems.c (simulation routines): Fixed block comment to
15066         properly say how to add forwards scanning functions.
15067
15068 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
15069
15070         * tree-inline.c (setup_one_parameter): Remove dead code.
15071
15072 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
15073
15074         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
15075         a BIT_AND_EXPR only for an INTEGER_TYPE.
15076
15077 2008-05-17 Xinliang David Li   <davidxl@google.com>
15078
15079         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
15080         (check_pow, check_log, is_unnecessary_except_errno_call): New
15081         functions to check for eliminating math functions that are pure
15082         except for setting errno.
15083         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
15084         general condition expressions for shrink-wrapping pow/log calls.
15085         (gen_shrink_wrap_conditions): Ditto.
15086         (shrink_wrap_one_built_in_call): Ditto.
15087         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
15088         (mark_operand_necessary): If debugging, output if OP is necessary.
15089         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
15090         unnecessary.
15091         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
15092         opt level >= 2.
15093         * gcc/common.opt: New user flag -ftree-builtin-dce.
15094         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
15095
15096 2008-05-16  David S. Miller  <davem@davemloft.net>
15097
15098         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
15099         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
15100
15101 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
15102
15103         PR target/36246
15104         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
15105
15106 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
15107
15108         * ifcvt.c (dead_or_predicable): Rename
15109         df_simulate_one_insn_backwards to df_simulate_one_insn.
15110         * recog.c (peephole2_optimize): Ditto.
15111         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
15112         Ditto.
15113         * df.h: Rename df_simulate_one_insn_backwards to
15114         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
15115         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
15116         scanning of defs and uses.
15117         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
15118         (df_simulate_one_insn_forwards): Removed.
15119
15120 2008-05-16  Doug Kwan  <dougkwan@google.com>
15121
15122         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
15123         QNaN & SNaN.
15124         (real_from_string): Handle NaNs and Inf as approriate.
15125
15126 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
15127
15128         * doc/gty.texi (Source Files Containing Type Information): Note
15129         that headers should appear first in the gtfiles list.
15130
15131 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
15132
15133         * tree.def (COND_EXEC): Properly documented this code.
15134
15135 2008-05-16  Diego Novillo  <dnovillo@google.com>
15136
15137         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
15138         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
15139         the new field.
15140
15141 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
15142
15143         * tree-ssa-dse (max_stmt_uid): Removed.
15144         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt,
15145         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
15146         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
15147         * function.h (cfun.last_stmt_uid): New field.
15148         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
15149         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
15150         New functions.
15151         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
15152         (create_stmt_ann): Initialize the ann->uid field.
15153         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
15154         with new calls.
15155         * tree-flow.h (renumber_gimple_stmt_uids): New function.
15156
15157 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
15158
15159         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
15160         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
15161         (init_empty_tree_cfg): Call it.
15162
15163 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
15164
15165         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
15166         Update all users.
15167
15168 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
15169
15170         * doc/invoke.text (-fdump-tree-*-verbose): New option.
15171         * tree-dump.c (dump_options): New verbose option.
15172         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
15173         Add verbose dump.
15174         * tree-pass.h (TDF_VERBOSE): New dump flag.
15175         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
15176         (tree-flow.h): Added include.
15177         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
15178
15179 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
15180
15181         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
15182
15183         From Jie Zhang  <jie.zhang@analog.com>
15184         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
15185         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
15186         mcpu=bf561-none and mcpu=bf561-0.2.
15187         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
15188         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
15189         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
15190         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
15191         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
15192         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
15193         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
15194         option.
15195         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
15196         (cputype_selected): Remove.
15197         (bfin_handle_option): Don't use cputype_selected.
15198         (override_options): When no mcpu option, enable all workarounds.
15199         Don't use bfin_workarounds.
15200         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
15201         processor type.
15202         (DEFAULT_CPU_TYPE): Don't define.
15203
15204 2008-05-16  Richard Guenther  <rguenther@suse.de>
15205
15206         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
15207         on deletion of the last stmt.
15208
15209 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
15210
15211         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
15212         V8HImode for SSE2 and V16QImode for SSE4.1.
15213
15214 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
15215
15216         * cgraph.h (compute_inline_parameters): Made public.
15217         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
15218         variable_generate_summary, function_write_summary,
15219         variable_write_summary, variable_read_summary.  Added generate_summary,
15220         write_summary, read_summary.
15221         * cgraphunit.c (cgraph_process_new_functions): Changed call from
15222         pass_ipa_inline.function_generate_summary, to
15223         compute_inline_parameters.
15224         * ipa-inline.c (compute_inline_parameters): Made public and added
15225         node parameter.
15226         (compute_inline_parameters_for_current): New function.
15227         (pass_inline_param): Now calls compute_inline_parameters_for_current.
15228         (inline_generate_summary): Removed parameter and made to loop over
15229         all cgraph nodes.
15230         (pass_ipa_inline): Updated for new IPA_PASS structure.
15231         * passes.c (execute_ipa_summary_passes): Now is called once per
15232         pass rather than once per node*pass.
15233
15234 2008-05-15  Anatoly Sokolov <aesok@post.ru>
15235
15236         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p,
15237         avr_have_mul_p, avr_asm_only_p): Remove variables.
15238         (avr_override_options): Remove initialization of removed variables.
15239         (avr_file_start):  Convert removed variables to fields of
15240         'struct base_arch_s *avr_current_arch'.
15241         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
15242         (AVR_HAVE_MUL): (Ditto.).
15243         (AVR_HAVE_MOVW): (Ditto.).
15244         (AVR_HAVE_LPMX): (Ditto.).
15245         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p,
15246         avr_asm_only_p): Remove declaration.
15247
15248 2008-05-15  Diego Novillo  <dnovillo@google.com>
15249
15250         * config/arm/arm.c (arm_return_in_memory): Fix return type.
15251         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
15252
15253 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
15254
15255         PR middle-end/36194
15256         * combine.c (check_conversion): Rename back to check_promoted_subreg.
15257         Don't call record_truncated_value from here.
15258         (record_truncated_value): Turn it into a for_each_rtx callback.
15259         (record_truncated_values): New function.
15260         (combine_instructions): Call note_uses with record_truncated_values.
15261         Change name of check_conversion to check_promoted_subreg.
15262
15263 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
15264
15265         * doc/sourcebuild.texi: Document support for torture tests.
15266
15267 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
15268
15269         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
15270         to alternative 4 of operand 2.
15271
15272 2008-05-15  Richard Guenther  <rguenther@suse.de>
15273
15274         * tree-pass.h (current_pass): Declare.
15275         (get_pass_for_id): Likewise.
15276         * passes.c (passes_by_id, passes_by_id_size): New globals.
15277         (set_pass_for_id): New function.
15278         (get_pass_for_id): Likewise.
15279         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
15280         (execute_function_todo): Flush per function statistics.
15281         * toplev.c (compile_file): Init statistics.
15282         (general_init): Do early statistics initialization.
15283         (finalize): Finish statistics.
15284         * statistics.h (statistics_early_init): Declare.
15285         (statistics_init): Likewise.
15286         (statistics_fini): Likewise.
15287         (statistics_fini_pass): Likewise.
15288         (statistics_counter_event): Likewise.
15289         (statistics_histogram_event): Likewise.
15290         * statistics.c: New file.
15291         * Makefile.in (OBJS-common): Add statistics.o.
15292         (statistics.o): Add dependencies.
15293         * doc/invoke.texi (-fdump-statistics): Document.
15294
15295         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
15296         (insert): Likewise.
15297         (execute_pre): Use statistics_counter_event.
15298         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
15299         (substitute_and_fold): Increment it.  Use statistics_counter_event.
15300
15301 2008-05-15  Diego Novillo  <dnovillo@google.com>
15302
15303         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
15304
15305         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
15306         * tree-ssa-alias.c (new_type_alias): Remove references to
15307         sub-variables from comment.
15308         * tree-ssa-operands.c (swap_tree_operands): Likewise.
15309
15310 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
15311
15312         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
15313         attribute to 1 only for insertps alternative.
15314
15315 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
15316
15317         * config/bfin/bfin.md (loadbytes): New pattern.
15318         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
15319         (bfin_init_builtins): Initialize it.
15320         (bdesc_1arg): Add it.
15321
15322 2008-05-15  Sa Liu  <saliu@de.ibm.com>
15323
15324         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
15325         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
15326         * testsuite/lib/target-supports.exp: Add
15327         check_effective_target_fortran_integer_16.
15328
15329 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
15330
15331         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
15332         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
15333         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
15334         (TARGET_RETURN_IN_MEMORY): Define.
15335
15336 2008-05-15  Richard Guenther  <rguenther@suse.de>
15337
15338         PR middle-end/36244
15339         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
15340         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
15341         represent unmodifiable vars.
15342
15343 2008-05-15  Richard Guenther  <rguenther@suse.de>
15344
15345         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
15346         INDIRECT_REF and TARGET_MEM_REF.
15347         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
15348         TARGET_MEM_REF.
15349
15350 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
15351             H.J. Lu  <hongjiu.lu@intel.com>
15352
15353         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
15354         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
15355         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
15356         insn alternatives.  Add missing alternatives.
15357         (*vec_concatv2di_rex64_sse4_1): Likewise.
15358         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
15359         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
15360         Require TARGET_SSE.
15361
15362 2008-05-15  Richard Guenther  <rguenther@suse.de>
15363
15364         PR tree-optimization/36009
15365         PR tree-optimization/36204
15366         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
15367         (determine_invariantness_stmt): Record the loop a store is
15368         always executed in.
15369         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
15370         dependency.
15371
15372 2008-05-15  Richard Guenther  <rguenther@suse.de>
15373
15374         PR tree-optimization/34330
15375         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
15376         through the pointer will alias the SMT.
15377
15378 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
15379
15380         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
15381
15382 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
15383
15384         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
15385
15386 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
15387             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
15388
15389         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
15390         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
15391         (vashl_optab): New optab for vector/vector shifts.
15392         (vashr_optab): Ditto.
15393         (vlshr_optab): Ditto.
15394         (vrotl_optab): Ditto.
15395         (vrotr_optab): Ditto.
15396         (optab_subtype): New enum for optab_for_tree_code call.
15397         (optab_for_tree_code): Add enum optab_subtype argument.
15398
15399         * optabs.c (optab_for_tree_code): Take an additional argument to
15400         distinguish between a vector shift by a scalar and vector shift by
15401         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
15402         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
15403         vector shift by a vector.
15404         (expand_widen_pattern_expr): Pass additional argument to
15405         optab_for_tree_code.
15406
15407         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
15408         vrotl_optab, vrotr_optab.
15409
15410         * expr.c (expand_expr_real_1): Update calls to
15411         optab_for_tree_code to distinguish between vector shifted by a
15412         scalar and vector shifted by a vector.
15413         * tree-vectorizer.c (supportable_widening_operation): Ditto.
15414         (supportable_narrowing_operation): Ditto.
15415         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
15416         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
15417         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
15418         (vect_create_epilog_for_reduction): Ditto.
15419         (vectorizable_reduction): Ditto.
15420         (vectorizable_operation): Ditto.
15421         (vect_strided_store_supported): Ditto.
15422         (vect_strided_load_supported): Ditto.
15423         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
15424         * expmed.c (expand_shift): Ditto.
15425
15426         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
15427         scalar type.
15428         (ashr@var{m}3): Ditto.
15429         (vashl@var{m}3): Document new vector/vector shift standard name.
15430         (vashr@var{m}3): Ditto.
15431         (vlshr@var{m}3): Ditto.
15432         (vrotl@var{m}3): Ditto.
15433         (vrotr@var{m}3): Ditto.
15434
15435         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
15436         (PPERM_INVERT): Ditto.
15437         (PPERM_REVERSE): Ditto.
15438         (PPERM_REV_INV): Ditto.
15439         (PPERM_ZERO): Ditto.
15440         (PPERM_ONES): Ditto.
15441         (PPERM_SIGN): Ditto.
15442         (PPERM_INV_SIGN): Ditto.
15443         (PPERM_SRC1): Ditto.
15444         (PPERM_SRC2): Ditto.
15445
15446         * config/i386/sse.md (mulv2di3): Add SSE5 support.
15447         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
15448         allows a memory operand to be the value being added, and split it
15449         to improve vectorization.
15450         (sse5_pmacsdqh_mem): Ditto.
15451         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
15452         (sse5_mulv2div2di3_high): Ditto.
15453         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
15454         (vec_pack_trunc_v4si): Ditto.
15455         (vec_pack_trunc_v2di): Ditto.
15456         (sse5_pcmov_<mode>): Remove code that tried to use use
15457         andps/andnps instead of pcmov.
15458         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
15459         pmacsdqh instructions.
15460         (vec_widen_smult_lo_v4si): Ditto.
15461
15462         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
15463         (PPERM_INVERT): Ditto.
15464         (PPERM_REVERSE): Ditto.
15465         (PPERM_REV_INV): Ditto.
15466         (PPERM_ZERO): Ditto.
15467         (PPERM_ONES): Ditto.
15468         (PPERM_SIGN): Ditto.
15469         (PPERM_INV_SIGN): Ditto.
15470         (PPERM_SRC1): Ditto.
15471         (PPERM_SRC2): Ditto.
15472         (ix86_expand_sse_movcc): Move the SSE5 test after the if
15473         true/false tests.
15474         (ix86_expand_int_vcond): If SSE5 generate all possible integer
15475         comparisons.
15476         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
15477         says ignore whether the last reference is a memory operand.
15478
15479 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
15480             Paolo Bonzini <bonzini at gnu dot org>
15481
15482         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
15483         shift patterns.
15484
15485         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
15486         (vlshr<mode>3): Rename from vlshr<mode>3.
15487         (vashr<mode>3): Rename from vashr<mode>3.
15488         (mulv4sf3): Change the names of vector shift patterns.
15489         (mulv4si3): Ditto.
15490         (negv4sf2): Ditt.
15491
15492         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
15493         shift insns.
15494
15495         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
15496         (SI_SHLHI): Ditto.
15497         (SI_SHL): Ditto.
15498         (SI_SHLI): Ditto.
15499         (SI_ROTH): Ditto.
15500         (SI_ROTHI): Ditto.
15501         (SI_ROT): Ditto.
15502         (SI_ROTI): Ditto.
15503         (SPU_RL_0): Ditto.
15504         (SPU_RL_1): Ditto.
15505         (SPU_RL_2): Ditto.
15506         (SPU_RL_3): Ditto.
15507         (SPU_RL_4): Ditto.
15508         (SPU_RL_5): Ditto.
15509         (SPU_RL_6): Ditto.
15510         (SPU_RL_7): Ditto.
15511         (SPU_SL_0): Ditto.
15512         (SPU_SL_1): Ditto.
15513         (SPU_SL_2): Ditto.
15514         (SPU_SL_3): Ditto.
15515         (SPU_SL_4): Ditto.
15516         (SPU_SL_5): Ditto.
15517         (SPU_SL_6): Ditto.
15518         (SPU_SL_7): Ditto.
15519
15520         * config/spu/spu.md (v): New iterator macro to add v for vector types.
15521         (floatunssidf2_internal): Change vector/vector shift names.
15522         (floatunsdidf2_internal): Ditto.
15523         (mulv8hi3): Ditto.
15524         (ashrdi3): Ditto.
15525         (ashrti3): Ditto.
15526         (cgt_df): Ditto.
15527         (cgt_v2df): Ditto.
15528         (dftsv): Ditto.
15529         (vashl<mode>3): Rename from ashl<mode>3.
15530         (vashr<mode>3): Rename from ashr<mode>3.
15531         (vlshr<mode>3): Rename from lshr<mode>3.
15532         (vrotl<mode>3): Rename from rotl<mode>3.
15533
15534 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
15535
15536         PR target/36224
15537         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
15538         multiply gives the wrong value when doing widening multiplies.
15539         (vec_widen_smult_lo_v4si): Ditto.
15540
15541 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
15542
15543         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
15544         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
15545         emit_library_call_value.
15546         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
15547         * tree.h (ECF_LIBCALL_BLOCK): Removed.
15548         * calls.c (initialize_argument_information, precompute_arguments,
15549         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
15550         (precompute_arguments): Removed flags parameter.
15551         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
15552
15553 2008-05-14  Richard Guenther  <rguenther@suse.de>
15554
15555         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
15556         Make sure to register the store if the use is a PHI_NODE.
15557
15558 2008-05-14  Olivier Hainque  <hainque@adacore.com>
15559
15560         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
15561         memory if the component is to be referenced in BLKmode according
15562         to get_inner_reference.
15563
15564 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
15565
15566         * calls.c (emit_library_call_value_1): Restore code clearing
15567         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
15568
15569 2008-05-14  Olivier Hainque  <hainque@adacore.com>
15570             Nicolas Roche  <roche@adacore.com>
15571
15572         * configure.ac: Add support for a "gcc_subdir" variable in
15573         config-lang.in, to denote a subdirectory where the language/GCC
15574         integration files are to be found.
15575         * configure: Regenerate.
15576
15577 2008-05-14  Ira Rosen  <irar@il.ibm.com>
15578
15579         PR tree-optimization/36098
15580         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
15581         value for the first load in the group in case of a gap.
15582         (vect_build_slp_tree): Check that there are no gaps in loads.
15583
15584 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
15585
15586         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
15587         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
15588         expand_copysign_bit, ): Change call to emit_no_conflict_block to
15589         emit_insn and remove unneeded code to construct extra args.
15590         (emit_no_conflict_block): Removed.
15591         * optabls.h: (emit_no_conflict_block): Removed.
15592         * cse.c (cse_extended_basic_block): Remove search for
15593         REG_NO_CONFLICT note.
15594         * global.c: Removed incorrect comment added in revision 117.
15595         * expr.c (convert_move): Change call to emit_no_conflict_block to
15596         emit_insn.
15597         * recog.c: Change comments so that they do not mention
15598         REG_NO_CONFLICT.
15599         * local_alloc.c (combine_regs): Removed last parameter.
15600         (no_conflict_p): Removed.
15601         (block_alloc): Removed note, no_conflict_combined_regno and set
15602         local vars. Removed all code to process REG_NO_CONFLICT blocks.
15603         (combine_regs): Removed already_dead and code to look for
15604         REG_NO_CONFLICT notes.
15605         * lower_subreg (remove_retval_note): Removed code to look for
15606         REG_NO_CONFLICT block.
15607         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
15608         (resolve_clobber): Remove code to process libcalls that have
15609         REG_NO_CONFLICT notes.
15610         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
15611         case.
15612         * combine.c (can_combine_p, distribute_notes):  Removed
15613         REG_NO_CONFLICT case.
15614         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
15615         to emit_insns.
15616         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
15617         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
15618         Ditto.
15619         * reg-notes.def (NO_CONFLICT): Removed.
15620
15621 2008-05-14  David S. Miller  <davem@davemloft.net>
15622
15623         * config/sparc/sparc.c (sparc_profile_hook): If
15624         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
15625         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
15626         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
15627
15628 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
15629
15630         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
15631
15632 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
15633
15634         PR target/36222
15635         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
15636         and op1 expansion before vector concat to have less live pseudos.
15637
15638 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
15639
15640         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
15641         ix86_expand_vector_set if supported.
15642
15643 2008-05-13  Diego Novillo  <dnovillo@google.com>
15644             Kenneth Zadeck  <zadeck@naturalbridge.com>
15645
15646         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
15647
15648         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
15649         phinodes_print_statistics, init_ssanames, fini_ssanames,
15650         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
15651         release_ssa_name, release_defs, replace_ssa_name_symbol,
15652         ssanames_print_statistics): Move ...
15653         * tree-flow.h: ... here.
15654         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
15655         Use FN instead of cfun.
15656         (make_ssa_name_fn): Rename from make_ssa_name.
15657         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
15658         * tree-flow-inline.h (make_ssa_name): Move from
15659         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
15660         * omp-low.c (expand_omp_parallel):
15661         * tree-flow-inline.h (redirect_edge_var_map_result):
15662         * tree-ssa.c (init_tree_ssa): Add argument FN.
15663         Use it instead of cfun.  Update all users.
15664
15665 2008-05-13  Tom Tromey  <tromey@redhat.com>
15666
15667         PR preprocessor/22168:
15668         * doc/cpp.texi (Top): Update menu.
15669         (Alternatives to Wrapper #ifndef): New node.
15670         (Other Directives): Document deprecation.
15671         (Obsolete Features): Remove menu.
15672         (Assertions): Merge node into Obsolete Features.
15673         (Obsolete once-only headers): Move earlier; rename to Alternatives
15674         to Wrapper #ifndef.
15675         * doc/cppopts.texi: Update.
15676         * c.opt (Wdeprecated): Enable for C and ObjC.
15677         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
15678         (C++ Dialect Options): Move -Wno-deprecated from here to...
15679         (Warning Options): ... here.
15680
15681 2008-05-13  Richard Guenther  <rguenther@suse.de>
15682
15683         PR middle-end/36227
15684         * fold-const.c (fold_sign_changed_comparison): Do not allow
15685         changes in pointer-ness.
15686
15687 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
15688
15689         PR target/24713
15690         * config/sh/sh.c (sh_expand_prologue): Don't clear
15691         RTX_FRAME_RELATED_P for push insns.
15692
15693 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
15694
15695         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
15696
15697 2008-05-12  Anatoly Sokolov <aesok@post.ru>
15698
15699         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
15700         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
15701         Use 'machine->is_leaf' instead of 'leaf_func_p'.
15702
15703 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
15704
15705         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
15706         (*vec_concatv4sf_sse): This.
15707         (*sse2_concatv2si): Renamed to ...
15708         (*vec_concatv2si_sse2): This.
15709         (*sse1_concatv2si): Renamed to ...
15710         (*vec_concatv2si_sse): This.
15711         (*vec_concatv2di_rex): Renamed to ...
15712         (*vec_concatv2di_rex64): This.
15713         (*vec_concatv2si_sse4_1): New.
15714         (*vec_concatv2di_rex64_sse4_1): Likewise.
15715
15716 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
15717
15718         PR rtl-optimization/36111
15719         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
15720         that was created for swappable operands.
15721
15722 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
15723
15724         PR ada/36001
15725         * Makefile.in: Substitute GNATMAKE and GNATBIND.
15726         * configure.ac: Add call to ACX_PROG_GNAT.
15727
15728 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
15729
15730         * optc-gen.awk: Fix comment typo.
15731
15732 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
15733
15734         * pretty-print.c (pp_integer_with_precision): Use
15735         HOST_LONG_LONG_FORMAT.
15736
15737 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
15738
15739         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
15740
15741 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
15742
15743         * config/i386/i386.c (bdesc_ptest): Removed.
15744         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
15745         (bdesc_args): Add __builtin_ia32_ptestz128,
15746         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
15747         (ix86_init_mmx_sse_builtins): Updated.
15748         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
15749         (ix86_expand_builtin): Updated.
15750
15751 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
15752
15753         * tree-cfg.c (valid_fixed_convert_types_p): New function.
15754         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
15755
15756 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
15757
15758         * value-prof.c (interesting_stringop_to_profile): Do not
15759         return early for BUILT_IN_MEMPCPY.
15760
15761 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
15762
15763         * calls.c (expand_call): Don't use callgraph to increase
15764         preferred_stack_boundary.
15765
15766         * cgraph.h (cgraph_rtl_info): Use unsigned on
15767         preferred_incoming_stack_boundary.
15768
15769         * final.c (rest_of_clean_state): Use unsigned on
15770         preferred_stack_boundary.
15771
15772 2008-05-09  Tom Tromey  <tromey@redhat.com>
15773
15774         PR preprocessor/22231:
15775         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
15776         proceeding.
15777
15778 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
15779
15780         PR tree-optimization/36129
15781         * tree-ssa-ccp.c: Include value-prof.h.
15782         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
15783         built-in function was folded to a constant.
15784         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
15785
15786 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
15787             Sebastian Pop  <sebastian.pop@amd.com>
15788
15789         * tree-scalar-evolution.c: Document instantiate_scev.
15790         (instantiate_parameters_1): Renamed instantiate_scev_1.
15791         Don't use the same loop for instantiation_loop and evolution_loop.
15792         (instantiate_scev): New.
15793         (instantiate_parameters): Moved...
15794         (resolve_mixers): Update call to instantiate_scev_1 to pass the
15795         same loop twice.  Maintains the semantics for this function.
15796         * tree-scalar-evolution.h (instantiate_scev): Declare.
15797         (instantiate_parameters): ...here.  Now static inline.
15798         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
15799         instead of resolve_mixers.
15800
15801 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
15802
15803         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
15804
15805 2008-05-09  Tomas Bily  <tbily@suse.cz>
15806
15807         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
15808         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
15809         * tree-ssa-structalias.c (get_constraint_for): Likewise.
15810         * c-common.c (c_common_truthvalue_conversion): Likewise.
15811         * tree-object-size.c (compute_object_offset): Likewise.
15812         * tree-inline.c (estimate_num_insns_1): Likewise.
15813         * varasm.c (const_hash_1, compare_constant, copy_constant)
15814         (compute_reloc_for_constant, output_addressed_constants)
15815         (initializer_constant_valid_p): Likewise.
15816         * c-omp.c (check_omp_for_incr_expr): Likewise.
15817         * gimplify.c (gimplify_expr): Likewise.
15818         * c-typeck.c (c_finish_return): Likewise.
15819         * tree-vectorizer.c (supportable_widening_operation)
15820         (supportable_narrowing_operation): Likewise.
15821         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
15822         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
15823         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
15824         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
15825         (descr_info_loc): Likewise.
15826         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
15827         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
15828         (fold_unary): Likewise.
15829         * builtins.c (get_pointer_alignment): Likewise.
15830         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
15831         (instantiate_parameters_1): Likewise.
15832         * tree.c (expr_align, stabilize_reference): Likewise.
15833         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
15834         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
15835         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
15836         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
15837         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
15838         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
15839         Likewise.
15840         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
15841         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
15842         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
15843         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
15844         (forward_propagate_comparison)
15845         (tree_ssa_forward_propagate_single_use_vars): Likewise.
15846         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
15847         * emit-rtl.c (component_ref_for_mem_expr)
15848         (set_mem_attributes_minus_bitpos): Likewise.
15849         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
15850         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
15851         Likewise.
15852         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
15853         (build_function_call, pointer_diff, build_compound_expr)
15854         (c_finish_return): Likewise.
15855         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
15856         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
15857         Likewise.
15858         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
15859         * expr.c (is_aligning_offset): Likewise.
15860         * tree-ssa-alias.c (is_escape_site): Likewise.
15861         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
15862         (check_all_va_list_escapes): Likewise.
15863         * tree-ssa-loop-ivopts.c (determine_base_object)
15864         (determine_common_wider_type): Likewise.
15865         * dojump.c (do_jump): Likewise.
15866         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
15867         * tree-gimple.c (is_gimple_cast): Likewise.
15868         * fold-const.c (decode_field_reference, )
15869         (fold_sign_changed_comparison, fold_unary, fold_comparison)
15870         (fold_binary): Likewise.
15871         * tree-ssa-alias-warnings.c (find_alias_site_helper)
15872         (already_warned_in_frontend_p): Likewise.
15873         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
15874         * tree.c (really_constant_p, get_unwidened): Likewise.
15875         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
15876         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
15877         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
15878         Likewise.
15879         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
15880         CONVERT_EXPR_P.
15881         (CONVERT_EXPR_P): Define.
15882         (CASE_CONVERT): Define.
15883
15884 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
15885
15886         PR middle-end/36117
15887         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
15888         (delete_unmarked_insns): When deleting a call, call
15889         delete_unreachable_blocks.
15890         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
15891         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
15892
15893 2008-05-08  Richard Guenther  <rguenther@suse.de>
15894
15895         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
15896         (-ftree-salias): Likewise.
15897         (salias-max-implicit-fields): Remove param documentation.
15898         (salias-max-array-elements): Likewise.
15899         * tree-pass.h (pass_create_structure_vars): Remove.
15900         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
15901         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
15902         * tree-ssa-alias.c (create_structure_vars): Remove.
15903         (gate_structure_vars): Likewise.
15904         (pass_create_structure_vars): Likewise.
15905         (gate_build_alias): Likewise.
15906         (pass_build_alias): Adjust to run always and dump the function.
15907         * common.opt (ftree-salias): Hide.
15908         * passes.c (init_optimization_passes): Remove
15909         pass_create_structure_vars, adjust comment.
15910         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
15911         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
15912         * opts.c (decode_options): Do not set flag_tree_salias.
15913         (common_handle_option): Add OPT_ftree_salias to the backward
15914         compatibility section.
15915
15916 2008-05-08  Richard Guenther  <rguenther@suse.de>
15917
15918         * tree-flow-inline.h (var_can_have_subvars): Move ...
15919         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
15920         * tree-flow.h (var_can_have_subvars): Remove.
15921         (push_fields_onto_fieldstack): Remove.
15922         (sort_fieldstack): Likewise.
15923         (struct fieldoff): Move ...
15924         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
15925         alias_set and base_for_components fields.
15926         (sort_fieldstack): Make static.
15927         (push_fields_onto_fieldstack): Likewise.  Remove code that
15928         handles anything but RECORD_TYPEs.  Remove alias_set and
15929         base_for_components handling.
15930         (create_variable_info_for): Adjust.
15931
15932 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
15933
15934         * common.opt (Wframe-larger-than=): Shorten the help message
15935         to one line.
15936         * doc/invoke.texi (Wframe-larger-than=): Add more description.
15937
15938 2008-05-08  Rafael Espíndola  <espindola@google.com>
15939
15940         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
15941         trap.
15942         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
15943         trap and that both operands are gimple values.
15944         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
15945         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
15946         is a fp operation.
15947
15948 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
15949
15950         * read-rtl.c (join_c_conditions): Return the first string if the
15951         two strings are equal.
15952
15953 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
15954
15955         * gensupport.h (pred_data): Add a "num_codes" field.
15956         (add_predicate_code): Declare.
15957         * gensupport.c (add_predicate_code): New function.
15958         (std_pred_table): Add an "allows_const_p" field.
15959         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
15960         Remove the (incomplete) list of such codes from the codes field.
15961         (init_predicate_table): Use add_predicate_code.  Add all
15962         RTX_CONST_OBJs if allows_const_p is true.
15963         * genrecog.c (process_define_predicate): Use add_predicate_code.
15964
15965 2008-05-08  David Daney  <ddaney@avtrex.com>
15966             Richard Sandiford  <rsandifo@nildram.co.uk>
15967
15968         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
15969         special case of constant zero operands.
15970         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
15971         old and new values.  Special case constant zero values.
15972         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
15973         fails.
15974         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
15975         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
15976
15977 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
15978
15979         PR target/36090
15980         * simplify-rtx.c (simplify_plus_minus): Create CONST of
15981         similar RTX_CONST_OBJ before CONST_INT.
15982
15983 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
15984
15985         * stmt.c (expand_stack_restore): Change sa mode if needed.
15986
15987 2008-05-08  Richard Guenther  <rguenther@suse.de>
15988
15989         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
15990         return type to bool.
15991         (ix86_sol10_return_in_memory): Likewise.
15992         (ix86_i386elf_return_in_memory): Likewise.
15993         (ix86_i386interix_return_in_memory): Likewise.
15994         * config/i386/i386.c (ix86_return_in_memory): Likewise.
15995         (ix86_sol10_return_in_memory): Likewise.
15996         (ix86_i386elf_return_in_memory): Likewise.
15997         (ix86_i386interix_return_in_memory): Likewise.
15998
15999 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
16000
16001         PR bootstrap/36180
16002         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
16003         fndecl argument.
16004         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
16005         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
16006         declared in front.
16007
16008 2008-05-08  Richard Guenther  <rguenther@suse.de>
16009
16010         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
16011         * tree-data-ref.h (struct dr_alias): Remove subvars field.
16012         (DR_SUBVARS): Remove.
16013         * tree-dfa.c (dump_subvars_for): Remove.
16014         (debug_subvars_for): Likewise.
16015         (dump_variable): Do not dump subvars.
16016         (remove_referenced_var): Do not remove subvars.
16017         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
16018         (lookup_subvars_for_var): Remove.
16019         (get_subvars_for_var): Likewise.
16020         (get_subvars_at): Likewise.
16021         (get_first_overlapping_subvar): Likewise.
16022         (overlap_subvar): Likewise.
16023         * tree-flow.h (subvar_t): Remove.
16024         (struct var_ann_d): Remove subvars field.
16025         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
16026         argument.  Remove special handling of SFTs.
16027         (compute_tag_properties): Likewise.
16028         (set_initial_properties): Likewise.
16029         (compute_call_clobbered): Likewise.
16030         (count_mem_refs): Likewise.
16031         (compute_memory_partitions): Likewise.
16032         (compute_flow_insensitive_aliasing): Likewise.
16033         (setup_pointers_and_addressables): Likewise.
16034         (new_type_alias): Likewise.
16035         (struct used_part): Remove.
16036         (used_portions): Likewise.
16037         (struct used_part_map): Likewise.
16038         (used_part_map_eq): Likewise.
16039         (used_part_map_hash): Likewise.
16040         (free_used_part_map): Likewise.
16041         (up_lookup): Likewise.
16042         (up_insert): Likewise.
16043         (get_or_create_used_part_for): Likewise.
16044         (create_sft): Likewise.
16045         (create_overlap_variables_for): Likewise.
16046         (find_used_portions): Likewise.
16047         (create_structure_vars): Likewise.
16048         * tree.def (STRUCT_FIELD_TAG): Remove.
16049         * tree.h (MTAG_P): Adjust.
16050         (struct tree_memory_tag): Remove base_for_components and
16051         unpartitionable flags.
16052         (struct tree_struct_field_tag): Remove.
16053         (SFT_PARENT_VAR): Likewise.
16054         (SFT_OFFSET): Likewise.
16055         (SFT_SIZE): Likewise.
16056         (SFT_NONADDRESSABLE_P): Likewise.
16057         (SFT_ALIAS_SET): Likewise.
16058         (SFT_UNPARTITIONABLE_P): Likewise.
16059         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
16060         (union tree_node): Remove sft field.
16061         * alias.c (get_alias_set): Remove special handling of SFTs.
16062         * print-tree.c (print_node): Remove handling of SFTs.
16063         * tree-dump.c (dequeue_and_dump): Likewise.
16064         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
16065         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
16066         * tree-predcom.c (set_alias_info): Do not set subvars.
16067         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
16068         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
16069         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
16070         (add_vars_for_offset): Remove.
16071         (add_virtual_operand): Remove special handling of SFTs.
16072         (add_call_clobber_ops): Likewise.
16073         (add_call_read_ops): Likewise.
16074         (get_asm_expr_operands): Likewise.
16075         (get_modify_stmt_operands): Likewise.
16076         (get_expr_operands): Likewise.
16077         (add_to_addressable_set): Likewise.
16078         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
16079         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
16080         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
16081         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
16082         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
16083         (tree_node_structure): Likewise.
16084         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
16085         handling of SFTs.
16086         (find_what_p_points_to): Likewise.
16087
16088 2008-05-08  Sa Liu  <saliu@de.ibm.com>
16089
16090         * config/spu/spu.md: Fixed subti3 pattern.
16091
16092 2008-05-08  Richard Guenther  <rguenther@suse.de>
16093
16094         PR middle-end/36154
16095         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
16096         sure to create a representative for trailing arrays for PTA.
16097
16098 2008-05-08  Richard Guenther  <rguenther@suse.de>
16099
16100         PR middle-end/36172
16101         * fold-const.c (operand_equal_p): Two objects which types
16102         differ in pointerness are not equal.
16103
16104 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
16105
16106         * calls.c (compute_argument_block_size): Add argument tree fndecl.
16107         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
16108         (emit_library_call_value_1): Add new variable fndecl initialized by
16109         NULL_TREE. It should be the decl type of orgfun, but this information
16110         seems not to be available here, so it uses the default calling abi.
16111         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
16112         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
16113         by TARGET_RETURN_IN_MEMORY.
16114         * config/i386/i386-interix.h: Likewise.
16115         * config/i386/i386.h: Likewise.
16116         * config/i386/i386elf.h: Likewise.
16117         * config/i386/ptx4-i.h: Likewise.
16118         * config/i386/sol2-10.h: Likewise.
16119         * config/i386/sysv4.h: Likewise.
16120         * config/i386/vx-common.h: Likewise.
16121         * config/cris/cris.h: Removed #if 0 clause.
16122         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
16123         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
16124         argument.
16125         (ix86_sol10_return_in_memory): Likewise.
16126         (ix86_i386elf_return_in_memory): New.
16127         (ix86_i386interix_return_in_memory): New.
16128         * config/mt/mt-protos.h (mt_return_in_memory): New.
16129         * config/mt/mt.c: Likewise.
16130         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
16131         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
16132         * config/bfin/bfin.h: Likewise.
16133         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
16134         argument.
16135         * config/bfin/bfin.c: Likewise.
16136         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
16137         * config/alpha/unicosmk.h: Likewise.
16138         * config/i386/cygming.h: Likewise.
16139         * config/iq2000/iq2000.h: Likewise.
16140         * config/mips/mips.h: Likewise.
16141         * config/mn10300/mn10300.h: Likewise.
16142         * config/rs6000/rs6000.h: Likewise.
16143         * config/score/score.h: Likewise.
16144         * config/spu/spu.h: Likewise.
16145         * config/v850/v850.h: Likewise.
16146         * defaults.h: Likewise.
16147         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
16148         * expr.c (emit_block_move): Adjust use of
16149         OUTGOING_REG_PARM_STACK_SPACE.
16150         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
16151         OUTGOING_REG_PARM_STACK_SPACE.
16152         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
16153
16154 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
16155
16156         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
16157         on OMP_RETURN for OMP_FOR.
16158
16159         PR debug/35896
16160         * dwarf2out.c (dw_expand_expr, common_check): Removed.
16161         (fortran_common): New function.
16162         (gen_variable_die): Call fortran_common instead of common_check,
16163         adjust for it returning tree instead of rtx.  Formatting.
16164
16165 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
16166
16167         PR rtl/7335
16168         PR rtl/33826
16169         * see.c (see_copy_insn): Copy new pure const attributes for new call.
16170         * c-decl.c (merge_decls): Ditto.
16171         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
16172         to RTL_CONST_OR_PURE_CALL_P.
16173         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
16174         Initialized DECL_LOOPING_CONST_PURE.
16175         (process_call_operands): Set tree_side_effects properly.
16176         * tree.h (TREE_READONLY_DECL_P): Removed.
16177         (DECL_IS_PURE): Renamed to DECL_PURE_P.
16178         (DECL_LOOPING_OR_CONST_P): New macro.
16179         (struct tree_function_decl): Added looping_const_or_pure_p.
16180         (ECF_*) Renumbered.
16181         (ECF_LOOPING_OR_CONST_P): New macro.
16182         * rtlanal.c (pure_const_p): Removed.
16183         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
16184         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
16185         to RTL_CONST_CALL_P.
16186         * ipa-pure-const.c (pure_const_state_e): Added looping field.
16187         (check_decl, check_tree, check_call, scan_function): Initialize
16188         looping.
16189         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
16190         (static_execute): Set looping true for recursive functions.
16191         Undo setting state to IPA_NEITHER for recursive functions.
16192         * cse.c (cse_insn):
16193         * ifcvt.c (noce_can_store_speculate_p): Changed
16194         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or
16195         RTL_CONST_OR_PURE_CALL_P.
16196         * dse.c (scan_insn): Ditto.
16197         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
16198         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
16199         RTL_CONST_OR_PURE_CALL_P.
16200         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
16201         pure_call_p to RTL_CONST_CALL_P.
16202         * gimplify.c (gimplify_call_expr): Clear side effects for
16203         non-looping pure and constant calls.
16204         * calls.c (emit_call_1): Set rtl flags from ecf flags.
16205         (flags_from_decl_or_type): Set ecf flags from decl flags.
16206         (initialize_argument_information): Turn off
16207         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
16208         Change const to pure if callee_copies is true rather than just
16209         turning off const.
16210         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
16211         way of marking pure calls.
16212         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
16213         Remove hack that was supposed to fix pr7335 and remove old
16214         way of marking pure calls.
16215         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
16216         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
16217         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
16218         RTL_CONST_OR_PURE_CALL_P.
16219         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
16220         * loop-invariant.c (find_exits, find_invariant_bb): Changed
16221         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
16222         * sched-deps.c (schedule_analyze): Ditto.
16223         * rtl.h (struct rtx_def): Use call field, unchanging field, and
16224         return_val field of calls to represent pure and const function info.
16225         (CONST_OR_PURE_CALL_P): Deleted macro.
16226         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
16227         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
16228         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
16229         TREE_READONLY.
16230         * tree-optimize.c (execute_fixup_cfg): Added test for
16231         ECF_LOOPING_CONST_OR_PURE.
16232         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
16233         DECL_PURE_P.
16234         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
16235         effects for looping pure or const calls.
16236         (verify_gimple_expr): Added verification code.
16237         * config/alpha/alpha.c (alpha_legitimize_address,
16238         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
16239         RTL_CONST_CALL_P.
16240         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
16241         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
16242         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
16243         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
16244         RTL_CONST_OR_PURE_CALL_P.
16245         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
16246         and const calls to be deleted.
16247
16248 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
16249
16250         PR target/35714
16251         * config/i386/mmx.md (mmx_subv2sf3): New expander.
16252         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
16253         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
16254         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
16255         to handle nonimmediate operands.
16256         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
16257         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
16258         to handle nonimmediate operands.
16259         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
16260         (mmx_pmulhrwv4hi3): New expander.  Use
16261         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
16262         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
16263         (sse2_umulv1siv1di3): New expander.  Use
16264         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
16265         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
16266         (mmx_eq<mode>3): New expander.  Use
16267         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
16268         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
16269         (mmx_uavgv8qi3): New expander.  Use
16270         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
16271         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
16272         (mmx_uavgv4hi3): New expander.  Use
16273         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
16274
16275         * config/i386/sse.md
16276         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
16277         to handle nonimmediate operands.
16278         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
16279         to handle nonimmediate operands.
16280         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
16281         to handle nonimmediate operands.
16282         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
16283         to handle nonimmediate operands.
16284         (sse2_unpckhpd_exp): New expander.  Use
16285         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
16286         (sse2_unpcklpd_exp): New expander.  Use
16287         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
16288         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
16289         to handle nonimmediate operands.
16290         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
16291         to handle nonimmediate operands.
16292         (*sse2_<plusminus_insn><mode>3): Rename from
16293         sse2_<plusminus_insn><mode>3 insn pattern.
16294         (sse2_<plusminus_insn><mode>3): New expander.  Use
16295         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
16296         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
16297         (sse2_umulv2siv2di3): New expander.  Use
16298         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
16299         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
16300         (sse4_1_mulv2siv2di3): New expander.  Use
16301         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
16302         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
16303         (sse2_pmaddwd): New expander.  Use
16304         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
16305         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
16306         (sse2_eq<mode>3): New expander.  Use
16307         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
16308         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
16309         (sse4_1_eqv2di3): New expander.  Use
16310         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
16311         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
16312         (sse2_uavgv16qi3): New expander.  Use
16313         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
16314         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
16315         (sse2_uavgv16qi3): New expander.  Use
16316         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
16317         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
16318         (sse2_uavgv8hi3): New expander.  Use
16319         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
16320         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
16321         (ssse3_pmulhrswv8hi3): New expander.  Use
16322         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
16323         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
16324         (ssse3_pmulhrswv4hi3): New expander.  Use
16325         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
16326
16327         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
16328         (<sse>_vmmul<mode>3): Ditto.
16329         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
16330         (divv2df3): Ditto.
16331         (ssse3_pmaddubsw128): Use register_operand for operand 1.
16332         (ssse3_pmaddubsw): Ditto.
16333
16334         * config/i386/i386.c (struct_builtin_description)
16335         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
16336         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
16337         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
16338         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
16339         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
16340         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
16341         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
16342         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
16343         (ix86_fixup_binary_operands): Assert that src1
16344         and src2 must have the same mode when swapped.
16345         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
16346         and ix86_binary_operator_ok.  Do not force operands in registers
16347         when optimizing.
16348
16349 2008-05-07  Jan Hubicka  <jh@suse.cz>
16350
16351         * cgraph.c (dump_cgraph_node): Update.
16352         * cgraph.h (cgraph_local_info): Break out inline summary.
16353         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
16354         hook.
16355         * ipa-inline (inline_summary): New accestor function.
16356         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
16357         cgraph_decide_inlining, compute_inline_parameters): Update.
16358         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
16359
16360 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
16361
16362         Cleanup ColdFire scheduling support and add V4 pipeline model.
16363
16364         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
16365         (define_attr cpu): Add cfv4 value.
16366         (define_attr type, define_attr type1): Merge into a single 'type'
16367         attribute.  Update all uses.
16368         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
16369         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
16370         Update all uses.
16371         (define_attr opx_mem, define_attr opy_mem): Remove.
16372         (define_attr op_mem): Clean up, update comment.
16373         (define_attr size): Use specific values instead of general int.
16374         (define_attr guess, define_attr split): Remove.  Update all uses.
16375         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
16376         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
16377         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
16378         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
16379         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
16380         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
16381         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
16382         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
16383         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
16384         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
16385         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
16386         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
16387         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
16388         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
16389         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
16390         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
16391         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
16392         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
16393         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
16394         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
16395         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
16396         Update or set attributes.
16397         (stack_tie): New fake instruction.
16398
16399         * config/m68k/m68k.h (TUNE_CFV4): New macro.
16400         (m68k_sched_attr_size): Update declaration.
16401         (m68k_sched_attr_type2): Remove.
16402         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
16403         Declare new bypass predicates.
16404
16405         * config/m68k/m68k.c (m68k_sched_issue_rate,
16406         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
16407         implementations.
16408         (TARGET_SCHED_ISSUE_RATE,
16409         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
16410         (override_options): Handle scheduling for ColdFire V4 core.
16411         (m68k_expand_prologue): Emit stack_tie.
16412         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
16413         'OP_TYPE_FPN'.  Update all uses.
16414         (sched_guess_p): Remove.
16415         (sched_address_type): Handle symbolic addresses.
16416         (sched_get_operand): New static function.
16417         (sched_operand_type): Merge into sched_attr_op_type.
16418         (sched_attr_op_type): Handle FP registers, handle quick constants,
16419         update.
16420         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
16421         (m68k_sched_attr_size): Update.  Move logic to ...
16422         (sched_get_attr_size_int): New static function.
16423         (sched_get_opxy_mem_type): New static function.
16424         (m68k_sched_attr_op_mem): Update.
16425         (m68k_sched_attr_type2): Remove.
16426         (sched_cfv4_bypass_data): New static variable.
16427         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
16428         (m68k_sched_issue_rate): Implement scheduler hook.
16429         (struct _sched_ib: enabled_p): New field.
16430         (m68k_sched_variable_issue): Update.  Handle V4.
16431         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
16432         sched_dump_class_func_t, sched_dump_split_class,
16433         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
16434         sched_dump_dfa_class, m68k_sched_dump): Remove.
16435         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
16436         hook.
16437         (m68k_sched_init_global): Remove statisctics dumping, introduce
16438         sanity check that all instructions have pipeline reservations.  Handle
16439         ColdFire V4 core.
16440         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
16441         Handle ColdFire V4 core.
16442         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
16443         New static functions.
16444         (m68k_sched_address_bypass_p): New bypass predicate.
16445         (sched_get_indexed_address_scale): New static function.
16446         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
16447
16448         * cf.md: Update comments.
16449         (define_attr type2): Remove.  Use 'type' attribute instead.
16450         Update all uses.
16451         (cf_ib): Rename to cfv123_ib.  Update all uses.
16452         (cf_oep): Rename to cfv123_oep.  Update all uses.
16453         (cf_chr): Rename to cfv123_chr.  Update all uses.
16454         (cf_mem): Rename to cfv123_mem.  Update all uses.
16455         (cf_mac): Move to more appropriate place.
16456         (cfv123_guess): New automaton and cpu_unit.
16457         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
16458         Update uses of 'size' attribute.  Handle before reload scheduling.
16459         (cfv123_guess): New dummy reservation for unhandled instructions.
16460         (cfv4_*): Pipeline description of ColdFire V4 core.
16461         (ignore): New reservation to handle 'ignore' type.
16462
16463 2008-05-07  Ian Lance Taylor  <iant@google.com>
16464
16465         PR middle-end/36013
16466         * gimplify.c (find_single_pointer_decl_1): Don't look through
16467         indirections.
16468         (find_single_pointer_decl): Adjust comments.
16469
16470 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
16471
16472         PR middle-end/36137
16473         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
16474         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
16475
16476         PR middle-end/36106
16477         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
16478         integral type rather than floating point, then VIEW_CONVERT_EXPR
16479         to the floating point type.
16480
16481 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
16482
16483         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
16484         TFmode op0 to register.
16485
16486 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
16487
16488         * c-decl.c (grokdeclarator): Comment typo.
16489
16490 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
16491
16492         * tree-flow.h: Remove prototype for computed_goto_p.
16493         * tree-cfg.c (computed_goto_p): Make static.
16494
16495 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
16496
16497         PR target/35657
16498         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
16499         (contains_aligned_value_p): This.  Handle _Decimal128.
16500         (ix86_function_arg_boundary): Only align _Decimal128 to its
16501         natural boundary and handle it properly.
16502
16503 2008-05-06  Martin Jambor  <mjambor@suse.cz>
16504
16505         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
16506         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
16507         (ipcp_method_set_orig_node): Removed.
16508         (ipcp_cval_get_cvalue_type): Removed.
16509         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
16510         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
16511         (ipcp_cval_set_cvalue_type): Removed.
16512         (ipcp_cval_get_cvalue): Removed.
16513         (ipcp_cval_set_cvalue): Removed.
16514         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
16515         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
16516         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
16517         (ipcp_cval_meet): Renamed to ipa_lattice_meet
16518         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
16519         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
16520         (ipcp_get_ith_lattice): Changed parameters.
16521         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
16522         (ipcp_lattice_from_jfunc): Changed parameters.
16523         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
16524         (ipcp_method_cval_print): Added temporary variable info.
16525         (ipcp_redirect): Removed already unused local variable caller.
16526         (ipcp_redirect): New temporary variable orig_callee_info
16527         (ipcp_redirect): Removed newly unused local variable callee.
16528         (ipcp_redirect): Removed (a bit confusing) local variable type.
16529         (ipcp_insert_stage): Added local variable info.
16530         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters
16531         renamed too
16532         (ipcp_formal_create): Removed.
16533         (ipcp_method_cval_set): Removed.
16534         (ipcp_propagate_stage): Renamed lattice variables.
16535         (ipcp_method_cval_set_cvalue_type): Removed.
16536         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
16537         (ipcp_print_all_lattices): Changed printed strings to refer to
16538         lattices rather than cvals.
16539         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
16540         (ipcp_propagate_const): Changed formal parameters.
16541         (build_const_val): Changed formal parameters.
16542         (ipcp_insert_stage): Removed useless variable cvalue
16543         (build_const_val): Changed formal parameters.
16544         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
16545         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
16546         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
16547         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
16548         (ipcp_print_func_profile_counts): Changed string from "method" to
16549         "function"
16550         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
16551         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
16552         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
16553         (ipcp_structures_print): Renamed to ipcp_print_all_structures
16554         (ipcp_profile_print): Renamed to ipcp_print_profile_data
16555         (ipcp_lat_is_const): Changed parameters and made inline.
16556         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
16557         (ipcp_redirect): Renamed to ipcp_need_redirect_p
16558         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using
16559         the predicate condition directly
16560         (ipcp_propagate_stage): Added local variable args. Removed local
16561         variable callee.  (Both are mere code simplifications.)
16562         (ipcp_method_dont_insert_const): Renamed to
16563         ipcp_node_not_modifiable_p.
16564         (ipcp_node_not_modifiable_p): Made inline.
16565         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
16566         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
16567         (ipcp_print_all_lattices): Removed variable cvalue
16568         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
16569         Updated comments.
16570
16571 2008-05-06  Olivier Hainque  <hainque@adacore.com>
16572
16573         * tree-sra.c (try_instantiate_multiple_fields): Early return
16574         if field has POINTER_TYPE.
16575
16576 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
16577
16578         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
16579         by using 'q' specifier for instruction.
16580         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
16581
16582 2008-05-06  Anatoly Sokolov <aesok@post.ru>
16583
16584         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
16585         Change mode of zero_extract from QImode to HImode.
16586         (sign bit tests peepholes): (Ditto.).
16587
16588 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
16589
16590         * config/i386/mmx.md: Remove double backslashes from asm templates.
16591         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
16592         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
16593         to handle nonimmediate operands.
16594         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
16595         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
16596         to handle nonimmediate operands.
16597         (*mmx_<code>v2sf3_finite): New insn pattern.
16598         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
16599         (mmx_<code>v2sf3): New expander.  Use
16600         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
16601         (mmx_<plusminus_insn><mode>3): New expander.  Use
16602         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
16603         (*mmx_<plusminus_insn><mode>3): New insn pattern.
16604         (mmx_add<mode>3): Removed.
16605         (mmx_ssadd<mode>3): Ditto.
16606         (mmx_usadd<mode>3): Ditto.
16607         (mmx_sub<mode>3): Ditto.
16608         (mmx_sssub<mode>3): Ditto.
16609         (mmx_ussub<mode>3): Ditto.
16610         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
16611         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
16612         to handle nonimmediate operands.
16613         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
16614         insn pattern.
16615         (mmx_smulv4hi3_highpart): New expander.  Use
16616         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
16617         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
16618         insn pattern.
16619         (mmx_umulv4hi3_highpart): New expander.  Use
16620         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
16621         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
16622         (mmx_<code>v4hi3): New expander.  Use
16623         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
16624         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
16625         (mmx_<code>v8qi3): New expander.  Use
16626         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
16627         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
16628         (mmx_<code><mode>3): New expander.  Use
16629         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
16630
16631 2008-05-05  Jan Hubicka  <jh@suse.cz>
16632
16633         PR tree-optimization/36118
16634         * passes.c (pass_init_dump_file): Fix dump header.
16635
16636 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
16637
16638         PR middle-end/36141
16639         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
16640         VCE for function decls.
16641
16642 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
16643
16644         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
16645
16646 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
16647
16648         * config/i386/i386.md (sat_plusminus): New.
16649         (plusminus_insn): Likewise.
16650         (plusminus_mnemonic): Likewise.
16651         (addsub): Removed.
16652         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
16653         (*<addsub><mode>3_cc_overflow): Renamed to ...
16654         (*<plusminus_insn><mode>3_cc_overflow): This.
16655         (*<addsub>si3_zext_cc_overflow): Renamed to ...
16656         (*<plusminus_insn>si3_zext_cc_overflow): This.
16657
16658         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
16659         (<plusminus_insn><mode>3): This.
16660         (*<addsub><mode>3): Renamed to ...
16661         (*<plusminus_insn><mode>3): This.
16662         (<sse>_vm<addsub><mode>3): Renamed to ...
16663         (<sse>_vm<plusminus_insn><mode>3): This.
16664         (sse3_h<addsub>v4sf3): Renamed to ...
16665         (sse3_h<plusminus_insn>v4sf3): This.
16666         (sse3_h<addsub>v2df3): Renamed to ...
16667         (sse3_h<plusminus_insn>v2df3): This.
16668         (<plusminus_insn><mode>3): New.
16669         (*<plusminus_insn><mode>3): Likewise.
16670         (sse2_<plusminus_insn><mode>3): Likewise.
16671         (add<mode>): Removed.
16672         (*add<mode>3): Likewise.
16673         (sse2_ssadd<mode>3): Likewise.
16674         (sse2_usadd<mode>3): Likewise.
16675         (sub<mode>3): Likewise.
16676         (*sub<mode>3): Likewise.
16677         (sse2_sssub<mode>3): Likewise.
16678         (sse2_ussub<mode>3): Likewise.
16679
16680 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
16681
16682         * gthr-single.h: Add in required interface elements as per gthr.h.
16683         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
16684         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
16685         Generalize UNUSED macro.
16686         (__gthread_once): Add.
16687         (__gthread_key_create): Add.
16688         (__gthread_key_delete): Add.
16689         (__gthread_getspecific): Add.
16690         (__gthread_setspecific): Add.
16691
16692 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
16693
16694         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
16695         the same size types for the indirect reference on the rhs, then
16696         create a VCE.
16697
16698 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
16699
16700         * config/i386/i386.md
16701         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
16702         one insn template instead of template series.
16703         (*xordi_1_rex64): Ditto.
16704         (*xordi_2_rex64): Ditto.
16705
16706 2008-05-05  Ira Rosen  <irar@il.ibm.com>
16707
16708         PR tree-optimization/36119
16709         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
16710         in case of SLP.
16711
16712 2008-06-04  Jan Hubicka  <jh@suse.cz>
16713
16714         tree-optimization/36100
16715         * tree-pass.h (pass_O0_always_inline): Declare.
16716         * ipa-inline.c (inline_transform): Remove dead code.
16717         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
16718         pass_O0_always_inline): New.
16719         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
16720
16721 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
16722
16723         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
16724         mnemonic in this_param move for TARGET_64BIT.
16725
16726 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
16727
16728         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
16729         (*strmovsi_rex_1): Ditto.
16730         (*strsetsi_1): Ditto.
16731         (*strsetsi_rex_1): Ditto.
16732
16733         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
16734         adddicc expanders using SWI mode iterator.
16735
16736 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
16737
16738         PR target/36121
16739         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
16740         argument handling.
16741
16742 2008-05-04  David S. Miller  <davem@davemloft.net>
16743
16744         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
16745         (sparc*-*-linux*): Use linux.h in tm_file.
16746         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
16747         compiler defaulting to 32-bit.
16748         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
16749         no longer needed.
16750         * config/sparc/linux.h: Remove definitions now obtained
16751         properly from linux.h
16752         * config/sparc/linux64.h: Likewise.
16753         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
16754         don't want this setting for 32-bit builds in a biarch compiler.
16755         * doc/install.texi: Add sparc-linux to list of targets
16756         supporting --enable-targets=all.
16757
16758 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
16759
16760         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
16761
16762 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
16763
16764         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
16765         after V4SI_FTYPE_V8HI.
16766         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
16767         case V4SI_FTYPE_V2DF.
16768
16769 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
16770
16771         * doc/invoke.texi (max-flow-memory-locations): Removed.
16772         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
16773
16774 2008-05-03  Richard Guenther  <rguenther@suse.de>
16775
16776         PR middle-end/34973
16777         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
16778
16779 2008-05-02  David S. Miller  <davem@davemloft.net>
16780
16781         * config.gcc (need_64bit_hwint): Document libcpp dependency.
16782
16783 2008-05-02  Simon Baldwin <simonb@google.com>
16784
16785         PR bootstrap/36108
16786         * c-common.h (warn_array_subscript_range): Removed.
16787         * c-common.c (warn_array_subscript_range): Ditto.
16788         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
16789         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
16790
16791 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
16792
16793         * config/i386/i386.c (ix86_special_builtin_type): New.
16794         (bdesc_special_args): Likewise.
16795         (ix86_expand_special_args_builtin): Likewise.
16796         (ix86_init_mmx_sse_builtins): Updated.
16797         (ix86_expand_builtin): Updated.
16798         (ix86_expand_store_builtin): Removed.
16799         (ix86_expand_unop_builtin): Likewise.
16800
16801         * config/i386/mm3dnow.h (__v2sf): Moved to ...
16802         * config/i386/mmintrin.h (__v2sf): Here.
16803
16804         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
16805         const __v2sf.
16806         (_mm_loadl_pi): Likewise.
16807         (_mm_storeh_pi): Replace __v2si with __v2sf.
16808         (_mm_storel_pi): Likewise.
16809
16810         * doc/extend.texi: Correct __builtin_ia32_loadhps,
16811         __builtin_ia32_loadlps, __builtin_ia32_storehps,
16812         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
16813         __builtin_ia32_loadlpd.
16814
16815 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
16816
16817         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
16818         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
16819         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
16820         (ix86_init_mmx_sse_builtins): Updated.
16821         (ix86_expand_args_builtin): Likewise.
16822         (ix86_expand_builtin): Likewise.
16823         (ix86_expand_unop1_builtin): Renamed to ...
16824         (ix86_expand_unop_vec_merge_builtin): This.
16825
16826 2008-05-01  Jan Hubicka  <jh@suse.cz>
16827
16828         PR bootstrap/36100
16829         * ipa-inline.c (inline_generate_summary): Make static.
16830         (inline_transform): Do not call inlining at -O0; make static.
16831         * passes.c (execute_todo): Add sanity check.
16832         (execute_one_ipa_transform_pass): Execute proper flags.
16833
16834 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
16835
16836         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
16837         (DECL_NONADDRESSABLE_P): Likewise.
16838         * alias.c (record_component_aliases): Fix comment.
16839
16840 2008-05-01  Simon Baldwin <simonb@google.com>
16841
16842         * c-common.h (warn_array_subscript_range): New function.
16843         * c-common.c (warn_array_subscript_range): Ditto.
16844         * tree-vrp.c (check_array_ref): Corrected code to agree with
16845         comment, ignoring only arrays of size 0 or size 1.
16846         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
16847
16848 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
16849
16850         * config/i386/i386.c (ix86_builtin_type): Replace
16851         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
16852         (bdesc_args): Updated.
16853         (ix86_init_mmx_sse_builtins): Likewise.
16854         (ix86_expand_args_builtin): Likewise.
16855
16856         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
16857         with __v1di.
16858
16859         * doc/extend.texi: Correct __builtin_ia32_palignr.
16860
16861 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
16862
16863         PR target/36095
16864         * config/i386/i386.c (bdesc_crc32): Removed.
16865         (ix86_expand_crc32): Likewise.
16866         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
16867         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
16868         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
16869         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
16870         UINT_FTYPE_UINT_UCHAR.
16871         (bdesc_args): Updated. Add crc32 builtins.
16872         (ix86_init_mmx_sse_builtins): Updated.
16873         (ix86_expand_args_builtin): Updated to support subreg.
16874
16875         * doc/extend.texi: Correct __builtin_ia32_crc32di.
16876
16877 2008-05-01  Jan Hubicka  <jh@suse.cz>
16878
16879         * tree-pass.h (opt_pass): Add IPA_PASS.
16880         (varpool_node, cgraph_node): Forward declare.
16881         (ipa_opt_pass): Define.
16882         (pass_ipa_inline): Turn into ipa_opt_pass.
16883         (pass_apply_inline): Remove.
16884         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
16885         (apply_inline): Turn into ....
16886         (inline_transform): ... this one.
16887         (inline_generate_summary): New function.
16888         (pass_apply_inline): Remove.
16889         * function.h (ipa_opt_pass): Forward declare structure; typedef;
16890         vector.
16891         (struct function): Add ipa_transforms_to_apply.
16892         * passes.c (register_one_dump_file): Work on IPA_PASS.
16893         (init_optimization_passes): Remove pass_inline_parameters and
16894         pass_apply_inline.
16895         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
16896         (execute_one_pass) ... here; apply transforms when possible.
16897         (add_ipa_transform_pass, execute_ipa_summary_asses,
16898         execute_one_ipa_transform_pass): New.
16899         (execute_ipa_pass_list): Update for IPA_PASS type.
16900
16901 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
16902
16903         * config/i386/i386.c (ix86_builtin_type): Add
16904         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
16905         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
16906         (bdesc_args): Add SSE4a builtins.
16907         (ix86_init_mmx_sse_builtins): Updated.
16908         (ix86_expand_args_builtin): Likewise.
16909         (ix86_expand_builtin): Likewise.
16910
16911 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
16912
16913         * config/i386/i386.c (ix86_builtin_type): Add
16914         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
16915         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
16916         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
16917         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
16918         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
16919         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
16920         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
16921         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
16922         and DI_FTYPE_DI_DI_INT.
16923         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
16924         (ix86_init_mmx_sse_builtins): Updated.
16925         (ix86_expand_args_builtin): Likewise.
16926         (ix86_expand_builtin): Likewise.
16927         (ix86_expand_binop_imm_builtin): Removed.
16928
16929         * doc/extend.texi: Correct __builtin_ia32_palignr128.
16930
16931 2008-04-30  Richard Guenther  <rguenther@suse.de>
16932
16933         PR tree-optimization/32921
16934         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
16935
16936 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
16937
16938         * config/arm/arm.c (arm_unwind_emit): Use
16939         crtl->all_throwers_are_sibcalls instead of
16940         cfun->all_throwers_are_sibcalls.
16941         (arm_output_fn_unwind): Likewise.
16942         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
16943         instead of cfun->uses_pic_offset_table.
16944         (frv_expand_prologue): Likewise.
16945         (frv_frame_pointer_required): Likewise.
16946         (frv_expand_fdpic_call): Likewise.
16947         (frv_emit_movsi): Likewise.
16948         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
16949         cfun->returns_pcc_struct instead of
16950         current_function_returns_pcc_struct.
16951         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
16952         instead of cfun->calls_eh_return.
16953         (m32c_pushm_popm): Likewise.
16954         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
16955         "extern" declaration.
16956
16957 2008-04-30  Richard Guenther  <rguenther@suse.de>
16958
16959         PR tree-optimization/21636
16960         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
16961         constant address.
16962         (evaluate_stmt): Print the likely value.
16963         (ccp_visit_stmt): Avoid excessive vertical spacing.
16964
16965 2008-04-30  Rafael Espíndola  <espindola@google.com>
16966
16967         * builtins.c (fold_call_expr): Return realret.
16968         * tree-ssa-threadedge.c
16969         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
16970         __builtin_object_size.
16971
16972 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
16973
16974         * gcc.c (wrapper_string): New variable.
16975         (insert_wrapper): New function.
16976         (execute): New option -wrapper.
16977         * doc/invoke.texi (Overall Options): New driver option -wrapper.
16978
16979 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
16980
16981         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
16982         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
16983         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
16984         from...
16985         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
16986         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
16987         config/rs6000/e500crtres64gprctr.asm,
16988         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
16989         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
16990         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
16991         config/rs6000/e500crtsav64gprctr.asm,
16992         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
16993         config/rs6000/e500crtsavg64gprctr.asm: New files.
16994         * config/rs6000/t-ppccomm: Add build rules for new files.
16995         (LIB2FUNCS_STATIC_EXTRA): Add new files.
16996         * config/rs6000/t-netbsd: Add build rules for new files.
16997         (LIB2FUNCS_STATIC_EXTRA): New variable.
16998         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
16999         (CRTSAVRES_DEFAULT_SPEC): Likewise.
17000         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
17001
17002 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
17003
17004         * config/i386/i386.c (ix86_builtin_type): Add
17005         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
17006         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
17007         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
17008         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
17009         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
17010         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
17011         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
17012         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
17013         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
17014         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
17015         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
17016         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
17017         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
17018         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
17019         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
17020         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
17021         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
17022         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
17023         V1DI_FTYPE_V2SI_V2SI.
17024         (bdesc_2arg): Moved to ...
17025         (bdesc_args): Here.
17026         (ix86_init_mmx_sse_builtins): Updated.
17027         (ix86_expand_args_builtin): Updated.  Take a pointer
17028         to const struct builtin_description.  Handle comparison
17029         builtin functions.
17030         (ix86_expand_sse_compare): Take a new argument for swapping operands.
17031         (ix86_expand_builtin): Updated.
17032
17033         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
17034         (ssse3_pmaddubsw128): This.
17035         (ssse3_pmaddubswv4hi3): Renamed to ...
17036         (ssse3_pmaddubsw): This.
17037
17038         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
17039         (__builtin_ia32_packssdw128): Likewise.
17040         (__builtin_ia32_packuswb128): Likewise.
17041         (__builtin_ia32_pmaddubsw): Likewise.
17042         (__builtin_ia32_pmaddubsw128): Likewise.
17043
17044 2008-04-30  Richard Guenther  <rguenther@suse.de>
17045
17046         PR tree-optimization/14847
17047         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
17048         (recognize_bits_test): Use it.
17049         (recognize_single_bit_test): Likewise.
17050
17051 2008-04-30  Martin Jambor  <mjambor@suse.cz>
17052
17053         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
17054         instead of setting number of formal parameters to zero.
17055         (ipcp_init_stage): Do not set the number of actual parameters to zero
17056         either.
17057         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
17058         which are called with variable number of arguments.
17059         (ipcp_insert_stage): Explicitely skipping all nodes which are
17060         called with variable number of arguments.
17061         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible
17062         number of parameters.
17063
17064         * ipa-prop.h (struct ipa_node_params): Added flag
17065         called_with_var_arguments
17066         (ipa_set_param_count): Added.  Changed sole setter to use it.
17067         (ipa_get_param_count): Added.  All readers of param_count
17068         converted to use it instead.
17069         (ipa_set_called_with_variable_arg): Added.
17070         (ipa_is_called_with_var_arguments): Added.
17071         (ipa_get_ith_param): Added.  All readers of param_decls converted
17072         to use it instead.
17073         (ipa_set_cs_argument_count): Added, sole writer to argument_count
17074         changed to use it.
17075         (ipa_get_cs_argument_count): Added, all readers of argument_count
17076         changed to cal it.
17077         (ipa_get_ith_jump_func): Added. Accessors of jump values changed
17078         to use it.
17079
17080         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
17081         (struct ipcp_lattice): Renamed cval_type to type
17082         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
17083
17084         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
17085         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
17086         (ipcp_insert_stage): Changed the type of variable cvalue to tree
17087         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
17088         (build_const_val): Changed the type of parameter cvalue to tree
17089         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
17090         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
17091
17092         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called
17093         constant
17094
17095         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
17096         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
17097         (ipa_add_method): Renamed to ipa_push_func_to_list
17098         (ipa_remove_method): Renamed to ipa_pop_func_from_list
17099         (ipa_callsite_param_count): Removed.
17100         (ipa_callsite_param_count_set): Removed.
17101         (ipa_callsite_param): Removed.
17102         (ipa_callsite_callee): Removed.
17103         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
17104         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
17105         (ipa_method_formal_count): Removed.
17106         (ipa_method_formal_count_set): Removed.
17107         (ipa_method_get_tree): Removed.
17108         (ipa_method_tree_map_create): Removed.
17109         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
17110         (ipa_create_param_decls_array): Creates the array itself
17111         (ipa_create_param_decls_array): Temporary variable info instead of
17112         a few dereferences.
17113         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
17114         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
17115         (get_type): Removed.
17116         (ipa_jf_get_info_type): Removed.
17117         (ipa_node_create): Renamed to ipa_create_node_params
17118         (ipa_free): Renamed to ipa_free_all_node_params
17119         (ipa_nodes_create): Renamed to ipa_create_all_node_params
17120         (ipa_edges_create): Renamed to ipa_create_all_edge_args
17121         (ipa_edges_free): Renamed to ipa_free_all_edge_args
17122         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
17123         (ipa_free_all_node_params): Deallocation to jump_functions moved to
17124         ipa_free_all_edge_args
17125         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
17126         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
17127         (ipa_create_methodlist_node): Removed.
17128         (ipa_methodlist_method): Removed.
17129         (ipa_methodlist_method_set): Removed.
17130         (ipa_methodlist_next_method): Removed.
17131         (ipa_methodlist_next_method_set): Removed.
17132         (ipa_method_is_modified): Removed.
17133         (ipa_method_modify_create): Removed.
17134         (ipa_method_modify_init): Temporary variable info instead of a few
17135         dereferences.
17136         (ipa_detect_param_modifications): Temporary variable info instead of
17137         a few dereferences.
17138         (ipa_compute_jump_functions): Temporary variable info instead of
17139         a few dereferences.
17140         (ipa_method_modify_set): Removed.
17141         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
17142         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather
17143         than craph_node as the first parameter.
17144         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
17145         (ipa_method_modify_init): Removed.
17146         (ipa_compute_jump_functions): Added a temp variable instead of
17147         repeatadly dereferencing the cgraph_edge.aux pointer
17148         (ipa_callsite_param_set_type): Removed.
17149         (ipa_compute_jump_functions): i renamed to index and moved to
17150         an inner block
17151         (ipa_callsite_param_set_info_type_formal): Removed.
17152         (ipa_callsite_param_set_info_type): Removed.
17153         (ipa_callsite_param_map_create): Removed.
17154         (ipa_callsite_tree): Removed.
17155         (ipa_callsite_caller): Removed.
17156         (ipa_pop_func_from_list): return_method removed to return_func
17157
17158         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
17159         prefixed all values with IPA_. Changed all users.
17160         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN,
17161         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF
17162         and FORMAL_IPATYPE IPA_PASS_THROUGH.
17163         (union parameter_info): Renamed to jump_func_value.
17164         (union jump_func_value): Renamed value to constant
17165         (struct ipa_jump_func): Renamed info_type to value
17166         (struct ipa_node): Renamed to ipa_node_params
17167         (struct ipa_node_params): Renamed ipa_arg_num to param_count
17168         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
17169         (struct ipa_node_params): Renamed ipa_mod to modified_flags
17170         (struct ipa_edge): Renamed to ipa_edge_args
17171         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
17172         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
17173         (struct ipa_methodlist): Renamed to ipa_func_list
17174         (struct ipa_func_list): method_p renamed to node, next_method
17175         renamed to next
17176         (ipa_methodlist_p): Removed, switched all users to struct pointer
17177         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
17178
17179 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
17180
17181         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
17182         (rs6000_emit_epilogue): Use backchain to restore only when we
17183         have a large frame.  Make use of frame pointer to restore if we
17184         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
17185
17186 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
17187
17188         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
17189         Add mode to zero_extract.
17190         (sign bit tests peepholes): (Ditto.).
17191
17192 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
17193
17194         * config/i386/i386.c (ix86_builtins): Replace Prescott New
17195         Instructions in comments with SSE3.
17196         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
17197         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
17198         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
17199         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
17200         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
17201         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
17202         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
17203         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
17204         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
17205         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
17206         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
17207         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
17208         (bdesc_sse_args): Renamed to ...
17209         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
17210         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
17211         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
17212         IX86_BUILTIN_FABSQ.
17213         (bdesc_1arg): Moved to ...
17214         (bdesc_args): Here.
17215         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
17216         Instructions in comments with SSE3.
17217         (ix86_expand_sse_operands_builtin): Renamed to ...
17218         (ix86_expand_args_builtin): This.  Updated.
17219         (ix86_expand_unop1_builtin): Update comments.
17220         (ix86_expand_builtin): Updated.
17221
17222 2008-04-29  Richard Guenther  <rguenther@suse.de>
17223
17224         PR tree-optimization/36078
17225         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
17226         Update virtual SSA form after cleaning up the CFG.
17227
17228 2008-04-29  Richard Guenther  <rguenther@suse.de>
17229
17230         PR middle-end/15255
17231         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
17232
17233 2008-04-29  Richard Guenther  <rguenther@suse.de>
17234
17235         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
17236         (compute_may_aliases): Do not call finalize_ref_all_pointers.
17237         (compute_flow_insensitive_aliasing): Do not treat
17238         PTR_IS_REF_ALL pointers special.
17239         (get_smt_for): Likewise.
17240         (may_alias_p): Re-structure.
17241         (is_escape_site): A ref-all pointer conversion is not an escape site.
17242         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
17243         PTR_IS_REF_ALL pointers special.
17244         * tree-ssa-structalias.h (struct alias_info): Remove
17245         ref_all_symbol_mem_tag field.
17246         (PTR_IS_REF_ALL): Remove.
17247
17248 2008-04-29  Richard Guenther  <rguenther@suse.de>
17249
17250         PR middle-end/36077
17251         * fold-const.c (extract_muldiv_1): In combining division constants
17252         make sure to never overflow.
17253
17254 2008-04-29  Nick Clifton  <nickc@redhat.com>
17255
17256         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
17257
17258 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17259
17260         PR bootstrap/35169
17261         * optc-gen.awk: Work around HP-UX/IA awk bug.
17262
17263 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
17264
17265         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
17266         2008-04-25 commit.
17267
17268 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
17269
17270         PR target/36073
17271         * config/i386/i386.md
17272         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
17273         Change operand 1 predicate to nonimmediate_operand.
17274
17275 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
17276
17277         PR debug/36060
17278         * dwarf2out.c (struct die_struct): Mark as chain_circular through
17279         die_sub field.
17280         * gengtype.c (walk_type, write_func_for_structure): Handle
17281         chain_circular.
17282         * doc/gty.texi: Document chain_circular.
17283
17284 2008-04-28  Richard Guenther  <rguenther@suse.de>
17285
17286         PR tree-optimization/36066
17287         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
17288         SCEV and loop.
17289
17290 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
17291
17292         PR target/36064
17293         * config/i386/i386.md
17294         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
17295         Use match_scratch instead of match_operand for operands 3 and 4.
17296
17297 2008-04-27  Richard Guenther  <rguenther@suse.de>
17298
17299         PR tree-optimization/18754
17300         PR tree-optimization/34223
17301         * tree-pass.h (pass_complete_unrolli): Declare.
17302         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
17303         loop size before and after unconditionally of UL_NO_GROWTH in effect.
17304         Rewrite loop into loop closed SSA form if it is not already.
17305         (tree_unroll_loops_completely): Re-structure to iterate over
17306         innermost loops with intermediate CFG cleanups.
17307         Unroll outermost loops only if requested or the code does not grow
17308         doing so.
17309         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
17310         loops are available.
17311         (tree_vectorize): Instead do so here.
17312         (tree_complete_unroll): Also unroll outermost loops.
17313         (tree_complete_unroll_inner): New function.
17314         (gate_tree_complete_unroll_inner): Likewise.
17315         (pass_complete_unrolli): New pass.
17316         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
17317         uses outside of the loop.
17318         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
17319         form if it is available.
17320         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
17321         * passes.c (init_optimization_passes): Schedule complete inner
17322         loop unrolling pass before the first CCP pass after final inlining.
17323
17324 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
17325
17326         * targhooks.h (default_emutls_var_fields,
17327         default_emutls_var_init): Declare.
17328         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
17329         * target.h (struct gcc_target): Add struct emutls member.
17330         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
17331         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
17332         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
17333         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
17334         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
17335         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
17336         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
17337         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
17338         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
17339         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
17340         emit debug information.
17341         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
17342         * varasm.c: Include targhooks.h.
17343         (emutls_object_section, emutls_tmpl_section): New.
17344         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
17345         (EMUTLS_SEPARATOR): New.
17346         (prefix_name): New.
17347         (get_emutls_object_name): New.
17348         (default_emutls_var_fields): New, broken out of ...
17349         (get_emutls_object_type): ... here.  Adjust to use target hooks.
17350         (get_emutls_init_templ_addr): Adjust to use target hooks.
17351         (emutls_decl): Adjust to use target hooks.
17352         (emutls_finish): Likewise.
17353         (default_emutls_var_init): New, broken out of ...
17354         (assemble_variable): ... here.  Adjust to use target hooks.
17355         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
17356         SECCAT_EMUTLS_TMPL.
17357         * c-common.c (handle_section_attribute): Prevent overriding
17358         sections for emulated tls with special sections.
17359         * config/i386/i386.c (x86_64_elf_select_section): Add
17360         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
17361         (x86_64_elf_unique_section): Likewise.
17362         * config/vxworks.c: Include tree.h.
17363         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
17364         (vxworks_override_options): Set TLS scheme.
17365         * doc/tm.texi (Emulated TLS): New node.
17366
17367 2008-04-26  Simon Baldwin <simonb@google.com>
17368
17369         PR c/35652
17370         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
17371         with propagated string constants.
17372
17373 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
17374
17375         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
17376         constraint for operand 2 when operand 0 is memory operand.
17377         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
17378         operand 0 is memory operand.
17379         (fix_trunc<mode>_i387_with_temp): Ditto.
17380         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
17381         operand 2 when operand 1 is memory operand.
17382         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
17383         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
17384         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
17385         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
17386         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
17387         operands 2,3 and 4 when operand 1 is memory operand.
17388         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
17389         is memory operand.
17390         (fistdi2_floor_with_temp): Ditto.
17391         (fist<mode>2_floor_with_temp): Ditto.
17392         (fistdi2_ceil_with_temp): Ditto.
17393         (fist<mode>2_ceil_with_temp): Ditto.
17394         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
17395
17396 2008-04-26  David Daney  <ddaney@avtrex.com>
17397
17398         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
17399         unspec_volitile.
17400         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
17401         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
17402         UNSPEC_UPDATE_GOT_VERSION): Renumber.
17403         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
17404         (compare_and_swap_12): New insn.
17405         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
17406         * config/mips/mips.c (mips_force_binary): New function.
17407         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
17408         (mips_expand_compare_and_swap_12): New function.
17409         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
17410
17411 2008-04-25  Jan Hubicka  <jh@suse.cz>
17412
17413         PR testsuite/35843
17414         * cfgexpand.c (pass_expand): Turn into RTL pass.
17415         * passes.c (execute_one_pass): Do pass typechecking after execution.
17416         * tree-pass.h (pass_expand): Turn into RTL pass.
17417
17418         * function.h (struct rtl_data): Move here fields
17419         accesses_prior_frames, calls_eh_return, saves_all_registers,
17420         has_nonlocal_goto, has_asm_statement, is_thunk,
17421         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
17422         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
17423         arg_pointer_save_area_init from struct function; turn into bool.
17424         (struct function): Move
17425         calls_eh_return, saves_all_registers, has_nonlocal_goto,
17426         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
17427         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
17428         tail_call_emit, arg_pointer_save_area_init
17429         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
17430         (current_function_returns_struct, current_function_returns_pcc_struct,
17431         current_function_calls_setjmp, current_function_calls_alloca,
17432         current_function_accesses_prior_frames,
17433         current_function_calls_eh_return, current_function_is_thunk,
17434         current_function_stdarg, current_function_profile,
17435         current_function_limit_stack, current_function_uses_pic_offset_table,
17436         current_function_uses_const_pool, current_function_has_nonlocal_label,
17437         current_function_saves_all_registers,
17438         current_function_has_nonlocal_goto,
17439         current_function_has_asm_statement): Remove accesor macros.
17440         * ra-conflict.c (global_conflicts): Update.
17441         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
17442         (suitable_for_tail_call_opt_p): Update.
17443         * builtins.c (expand_builtin_return_addr): Update.
17444         (expand_builtin_setjmp_setup): Update.
17445         (expand_builtin_nonlocal_goto): Update.
17446         * final.c (final_start_function): Update.
17447         (profile_function): Update.
17448         (leaf_function_p): Update.
17449         (only_leaf_regs_used): Update.
17450         * df-scan.c (df_get_exit_block_use_set): Update.
17451         * dojump.c (clear_pending_stack_adjust): Update.
17452         * tree-stdarg.c (gate_optimize_stdarg): Update.
17453         * gimple-low.c (lower_function_body): Update.
17454         * global.c (compute_regsets): Update.
17455         (global_alloc): Update.
17456         * dwarf2out.c (dwarf2out_begin_prologue): Update.
17457         * expr.c (expand_assignment): Update.
17458         * dse.c (dse_step0): Update.
17459         (dse_step1): Update.
17460         * c-decl.c (store_parm_decls): Update.
17461         * local-alloc.c (combine_regs): Update.
17462         (find_free_reg): Update.
17463         * function.c (assign_parms_augmented_arg_list): Update.
17464         (assign_parm_find_data_types): Update.
17465         (assign_parms): Update.
17466         (allocate_struct_function): Update.
17467         (expand_function_start): Update.
17468         (expand_function_end): Update.
17469         (get_arg_pointer_save_area): Update.
17470         (thread_prologue_and_epilogue_insns): Update.
17471         (rest_of_match_asm_constraints): Update.
17472         * stor-layout.c (variable_size): Update.
17473         * gcse.c (gcse_main): Update.
17474         (bypass_jumps): Update.
17475         * gimplify.c (gimplify_function_tree): Update.
17476         * calls.c (emit_call_1): Update.
17477         (expand_call): Update.
17478         * bt-load.c (compute_defs_uses_and_gen): Update.
17479         * except.c (sjlj_assign_call_site_values): Update.
17480         (sjlj_emit_function_enter): Update.
17481         (can_throw_external): Update.
17482         (set_nothrow_function_flags): Update.
17483         (expand_builtin_unwind_init): Update.
17484         (expand_eh_return): Update.
17485         (convert_to_eh_region_ranges): Update.
17486         (output_function_exception_table): Update.
17487         * emit-rtl.c (gen_tmp_stack_mem): Update.
17488         * cfgexpand.c (expand_used_vars): Update.
17489         (tree_expand_cfg): Update.
17490         * cfgcleanup.c (rest_of_handle_jump): Update.
17491         * explow.c (allocate_dynamic_stack_space): Update.
17492         * varasm.c (assemble_start_function): Update.
17493         (force_const_mem): Update.
17494         (mark_constant_pool): Update.
17495         * tree-optimize.c (tree_rest_of_compilation): Update.
17496         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
17497         * tree-cfg.c (notice_special_calls): Update.
17498         (is_ctrl_altering_stmt): Update.
17499         (tree_can_make_abnormal_goto): Update.
17500         (tree_purge_dead_abnormal_call_edges): Update.
17501         * config/alpha/predicates.md: Update.
17502         * config/alpha/alpha.c (alpha_sa_mask): Update.
17503         (alpha_sa_size): Update.
17504         (alpha_does_function_need_gp): Update.
17505         (alpha_expand_prologue): Update.
17506         (alpha_start_function): Update.
17507         (alpha_output_function_end_prologue): Update.
17508         (alpha_expand_epilogue): Update.
17509         * config/frv/frv.c (frv_stack_info): Update.
17510         (frv_expand_epilogue): Update.
17511         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
17512         (s390_register_info): Update.
17513         (s390_frame_info): Update.
17514         (s390_init_frame_layout): Update.
17515         (s390_can_eliminate): Update.
17516         (save_gprs): Update.
17517         * config/spu/spu.c (spu_split_immediate): Update.
17518         (need_to_save_reg): Update.
17519         (spu_expand_prologue): Update.
17520         (spu_expand_epilogue): Update.
17521         * config/sparc/sparc.md: Update.
17522         * config/sparc/sparc.c (eligible_for_return_delay): Update.
17523         (sparc_tls_got): Update.
17524         (legitimize_pic_address): Update.
17525         (sparc_emit_call_insn): Update.
17526         (sparc_expand_prologue): Update.
17527         (output_return): Update.
17528         (print_operand): Update.
17529         (sparc_function_ok_for_sibcall): Update.
17530         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
17531         * config/m32r/m32r.md: Update.
17532         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
17533         (m32r_compute_frame_size): Update.
17534         (m32r_expand_prologue): Update.
17535         (m32r_expand_epilogue): Update.
17536         (m32r_legitimize_pic_address): Update.
17537         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
17538         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
17539         * config/i386/i386.c (ix86_frame_pointer_required): Update.
17540         (gen_push): Update.
17541         (ix86_save_reg): Update.
17542         (ix86_compute_frame_layout): Update.
17543         (ix86_expand_prologue): Update.
17544         (ix86_expand_epilogue): Update.
17545         * config/sh/sh.c (output_stack_adjust): Update.
17546         (calc_live_regs): Update.
17547         (sh5_schedule_saves): Update.
17548         (sh_expand_prologue): Update.
17549         (sh_expand_epilogue): Update.
17550         (sh_setup_incoming_varargs): Update.
17551         (sh_allocate_initial_value): Update.
17552         (sh_get_pr_initial_val): Update.
17553         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
17554         * config/sh/sh.md (label:): Update.
17555         * config/avr/avr.c (out_movhi_mr_r): Update.
17556         * config/crx/crx.h (enum): Update.
17557         * config/xtensa/xtensa.h (along): Update.
17558         * config/stormy16/stormy16.c Update.
17559         (xstormy16_compute_stack_layout): Update.
17560         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
17561         (fr30_expand_prologue): Update.
17562         * config/cris/cris.c (cris_conditional_register_usage): Update.
17563         (cris_reg_saved_in_regsave_area): Update.
17564         (cris_initial_frame_pointer_offset): Update.
17565         (cris_simple_epilogue): Update.
17566         (cris_expand_prologue): Update.
17567         (cris_expand_epilogue): Update.
17568         (cris_expand_pic_call_address): Update.
17569         (cris_asm_output_symbol_ref): Update.
17570         (cris_asm_output_label_ref): Update.
17571         * config/cris/cris.md Update.
17572         * config/iq2000/iq2000.c (compute_frame_size): Update.
17573         (iq2000_expand_epilogue): Update.
17574         * config/mt/mt.h (save_direction): Update.
17575         * config/mn10300/mn10300.c (mn10300_function_value): Update.
17576         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
17577         (ia64_secondary_reload_class): Update.
17578         * config/m68k/m68k.c (m68k_save_reg): Update.
17579         (m68k_expand_prologue): Update.
17580         (m68k_expand_epilogue): Update.
17581         (legitimize_pic_address): Update.
17582         * config/rs6000/rs6000.c (rs6000_got_register): Update.
17583         (first_reg_to_save): Update.
17584         (first_altivec_reg_to_save): Update.
17585         (compute_vrsave_mask): Update.
17586         (compute_save_world_info): Update.
17587         (rs6000_stack_info): Update.
17588         (spe_func_has_64bit_regs_p): Update.
17589         (rs6000_ra_ever_killed): Update.
17590         (rs6000_emit_eh_reg_restore): Update.
17591         (rs6000_emit_allocate_stack): Update.
17592         (rs6000_emit_prologue): Update.
17593         (rs6000_emit_epilogue): Update.
17594         (rs6000_output_function_epilogue): Update.
17595         (output_profile_hook): Update.
17596         (rs6000_elf_declare_function_name): Update.
17597         * config/rs6000/rs6000.h (rs6000_args): Update.
17598         * config/rs6000/rs6000.md: Update.
17599         * config/mcore/mcore.c (mcore_expand_prolog): Update.
17600         * config/arc/arc.c (arc_output_function_epilogue): Update.
17601         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
17602         * config/darwin.c (machopic_function_base_name): Update.
17603         * config/score/score3.c (score3_compute_frame_size): Update.
17604         (rpush): Update.
17605         (rpop): Update.
17606         (score3_epilogue): Update.
17607         * config/score/score7.c (score7_compute_frame_size): Update.
17608         (score7_prologue): Update.
17609         (score7_epilogue): Update.
17610         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
17611         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
17612         * config/arm/arm.c (use_return_insn): Update.
17613         (require_pic_register): Update.
17614         (arm_load_pic_register): Update.
17615         (arm_compute_save_reg0_reg12_mask): Update.
17616         (arm_compute_save_reg_mask): Update.
17617         (thumb1_compute_save_reg_mask): Update.
17618         (output_return_instruction): Update.
17619         (arm_output_function_prologue): Update.
17620         (arm_output_epilogue): Update.
17621         (arm_get_frame_offsets): Update.
17622         (arm_expand_prologue): Update.
17623         (thumb_pushpop): Update.
17624         (thumb_exit): Update.
17625         (thumb1_expand_prologue): Update.
17626         (thumb1_expand_epilogue): Update.
17627         (arm_unwind_emit): Update.
17628         (arm_output_fn_unwind): Update.
17629         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
17630         * config/arm/arm.md: Update.
17631         * config/pa/pa.md: Update.
17632         * config/pa/pa.c (legitimize_pic_address): Update.
17633         (compute_frame_size): Update.
17634         (hppa_expand_prologue): Update.
17635         (hppa_expand_epilogue): Update.
17636         (borx_reg_operand): Update.
17637         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
17638         (HARD_REGNO_RENAME_OK): Update.
17639         * config/mips/mips.c (mips_global_pointer): Update.
17640         (mips_save_reg_p): Update.
17641         (mips_compute_frame_info): Update.
17642         (mips_frame_pointer_required): Update.
17643         (mips_expand_prologue): Update.
17644         (mips_expand_epilogue): Update.
17645         (mips_can_use_return_insn): Update.
17646         (mips_reorg_process_insns): Update.
17647         * config/v850/v850.c (compute_register_save_size): Update.
17648         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
17649         * config/mmix/mmix.c (along): Update.
17650         (mmix_expand_epilogue): Update.
17651         * config/bfin/bfin.c (legitimize_pic_address): Update.
17652         (must_save_p): Update.
17653         (stack_frame_needed_p): Update.
17654         (add_to_reg): Update.
17655         (bfin_expand_prologue): Update.
17656         * stmt.c (expand_asm_operands): Update.
17657         * reload1.c (reload): Update.
17658         (init_elim_table): Update.
17659
17660 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
17661
17662         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
17663
17664 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
17665
17666         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
17667         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
17668         (mov<mode>): Removed.
17669         (*movv4sf_internal): Likewise.
17670         (*movv2df_internal): Likewise.
17671
17672 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
17673
17674         * config.gcc (crx-*-elf): Remove deprecation.
17675
17676 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
17677
17678         * config/i386/cygming-crtend.c (register_frame_ctor): Register
17679         __gcc_deregister_frame with atexit.
17680         (deregister_frame_dtor): Remove.
17681
17682 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
17683             Nathan Sidwell  <nathan@codesourcery.com>
17684
17685         * config/rs6000/rs6000.opt (mspe): Remove Var property.
17686         (misel): Likewise.
17687         * config/rs6000/rs6000.h (rs6000_spe): Declare.
17688         (rs6000_isel): Likewise.
17689         * config/rs6000/rs6000.c (rs6000_spe): New variable.
17690         (rs6000_isel): New variable.
17691         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
17692
17693 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
17694
17695         PR c++/35758
17696         * c-common.c (handle_vector_size_attribute): Call
17697         lang_hooks.types.reconstruct_complex_type instead of
17698         reconstruct_complex_type.
17699         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
17700         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
17701         * langhooks.h (struct lang_hooks_for_types): Add
17702         reconstruct_complex_type hook.
17703         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
17704         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
17705
17706 2008-04-24  Richard Guenther  <rguenther@suse.de>
17707
17708         * c-common.h (check_builtin_function_arguments): Declare.
17709         * c-common.c (validate_nargs): New function.
17710         (check_builtin_function_arguments): Likewise.
17711         * c-typeck.c (build_function_call): Call
17712         check_builtin_function_arguments.
17713         * builtins.c (fold_builtin_classify): Remove error reporting code.
17714         (fold_builtin_unordered_cmp): Likewise.
17715         (fold_builtin_1): Likewise.
17716         (fold_builtin_n): Likewise.
17717
17718 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
17719
17720         PR tree-optimization/36008
17721         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
17722         the original op1, rather than delta by step.
17723
17724 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
17725             Sebastian Pop  <sebastian.pop@amd.com>
17726
17727         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
17728         eliminate_local_variables_stmt, eliminate_local_variables,
17729         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
17730         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
17731         of code delimited by two edges in the CFG.
17732         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
17733         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
17734         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate
17735         the case of parallelisation of reductions.
17736         (expr_invariant_in_region_p): New.
17737
17738         * tree-flow.h (gather_blocks_in_sese_region): Declared.
17739         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
17740
17741 2008-04-24  Ira Rosen  <irar@il.ibm.com>
17742             Richard Guenther  <rguenther@suse.de>
17743
17744         PR tree-optimization/36034
17745         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
17746         incapable of dealing with loads with gaps.
17747
17748 2008-04-24  Rafael Espíndola  <espindola@google.com>
17749
17750         * tree-flow.h (vrp_evaluate_conditional): Change signature.
17751         * tree-ssa-propagate.c (fold_predicate_in): Update call to
17752         vrp_evaluate_conditional.
17753         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
17754         (vrp_evaluate_conditional): Split the cond argument.
17755         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
17756         (simplify_stmt_for_jump_threading): Update call to
17757         vrp_evaluate_conditional.
17758
17759 2008-04-24  Ira Rosen  <irar@il.ibm.com>
17760
17761         PR tree-optimization/35982
17762         * tree-vect-analyze.c (vect_check_interleaving): Check that the
17763         interleaved data-refs are of the same type.
17764
17765 2008-04-24  Danny Smith  <dannysmith@users.net>
17766
17767         * c-format.c (check_format_info_main): Use strncmp rather than a
17768         magic prefix to handle multichar length specs.
17769         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
17770         Don't prefix "I64" and "I32" with '\0'.
17771
17772 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
17773
17774         PR target/36015
17775         * config/i386/i386.c (init_cumulative_args): Don't pass anything
17776         in registers for -m32 only if stdarg_p (fntype).
17777
17778 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
17779
17780         PR rtl-optimization/36006
17781         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
17782         temp to op0 in order to avoid invalid rtx sharing.
17783
17784 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
17785
17786         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
17787         check TREE_INVARIANT.
17788         * tree-gimple.c (is_gimple_address): New.
17789         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
17790         * tree-gimple.h (is_gimple_address): New.
17791         * tree.h (decl_address_invariant_p): New.
17792         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
17793         (build_string): Likewise.
17794         (decl_address_invariant_p): New, from is_gimple_invariant_address.
17795         (tree_invariant_p_1): Likewise.
17796         (save_expr): Use it.
17797         (tree_invariant_p): New.
17798         (skip_simple_arithmetic): Use it.
17799         (stabilize_reference_1): Use it.
17800         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
17801         simplify.
17802         (build1_stat): Drop code to compute TREE_INVARIANT.
17803         (build2_stat): Drop code to compute TREE_INVARIANT.
17804         (build3_stat): Drop code to compute TREE_INVARIANT.
17805         (build4_stat): Drop code to compute TREE_INVARIANT.
17806         (build5_stat): Drop code to compute TREE_INVARIANT.
17807         (build7_stat): Drop code to compute TREE_INVARIANT.
17808         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
17809         * tree.h (struct tree_base): Remove invariant_flag.
17810         (TREE_INVARIANT): Remove.
17811         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
17812         (fold_builtin_expect): Check TREE_CONSTANT.
17813         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
17814         * c-tree.h (c_expr_to_decl): Drop third parameter.
17815         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
17816         (build_c_cast): Don't set TREE_INVARIANT.
17817         (pop_init_level): Don't set TREE_INVARIANT.
17818         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
17819         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
17820         TREE_CONSTANT.
17821         (gimplify_init_constructor): Don't set TREE_INVARIANT.
17822         (gimplify_addr_expr): Adjust comment.
17823         * tree-mudflap.c (mf_build_string):
17824         * print-tree.c (print_node): Don't print TREE_INVARIANT.
17825         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
17826         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
17827         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
17828         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
17829         * langhooks.h (struct lang_hooks): Drop third parameter from
17830         expr_to_decl.
17831
17832 2008-04-23  Richard Guenther  <rguenther@suse.de>
17833
17834         PR tree-optimization/27799
17835         PR tree-optimization/32921
17836         PR tree-optimization/32624
17837         * tree-ssa-structalias.c (merge_smts_into): Only merge the
17838         SMTs aliases and the tag itself into the solution.
17839         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
17840         merge the points-to solution back into the SMT aliases.
17841         (may_alias_p): Use alias_set_subset_of instead of
17842         aliases_conflict_p.  A pointer which points to
17843         memory with alias set zero may access any variable.
17844
17845 2008-04-23  Richard Guenther  <rguenther@suse.de>
17846
17847         * alias.c (alias_set_subset_of): Correctly handle asking
17848         if zero is a subset of an alias set with zero child.
17849         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
17850         (compute_flow_insensitive_aliasing): Correctly walk all
17851         pointers.  Do not unnecessarily union sets.
17852
17853 2008-04-23  Richard Guenther  <rguenther@suse.de>
17854
17855         PR middle-end/36021
17856         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
17857
17858 2008-04-22  Tomas Bily  <tbily@suse.cz>
17859
17860         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
17861         unreachable case.
17862         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
17863         NON_LVALUE_EXPR.
17864         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
17865         * tree-ssa-structalias.c (get_constraint_for): Likewise.
17866         * tree-inline.c (estimate_num_insns_1): Likewise.
17867         * varasm.c (const_hash_1, compare_constant, copy_constant)
17868         (compute_reloc_for_constant, output_addressed_constants): Likewise.
17869         * emit-rtl.c (component_ref_for_mem_expr)
17870         (set_mem_attributes_minus_bitpos): Likewise.
17871         * expr.c (highest_pow2_factor, expand_expr_real_1, )
17872         (is_aligning_offset): Likewise.
17873         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
17874         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
17875         * dojump.c (do_jump): Likewise.
17876         * builtins.c (get_pointer_alignment, get_memory_rtx)
17877         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
17878         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
17879
17880 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
17881
17882         PR rtl-optimization/36017
17883         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
17884         expanding the library call.
17885
17886 2008-04-22  Ian Lance Taylor  <iant@google.com>
17887
17888         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
17889         than size_in_bytes.
17890
17891 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
17892
17893         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
17894         of LR/CTR moves for Power6.
17895
17896 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
17897
17898         PR middle-end/36003
17899         * passes.c (init_optimization_passes): Remove
17900         pass_fast_rtl_byte_dce.
17901
17902 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
17903
17904         PR target/29096
17905         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
17906         builtin functions to generate faster code.
17907         (_mm_cvtpu16_ps): Ditto.
17908         (_mm_cvtpi32x2_ps): Ditto.
17909
17910 2008-04-22  Nick Clifton  <nickc@redhat.com>
17911
17912         * common.opt (ftree-loop-distribution): Add Optimization
17913         attribute.
17914
17915         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
17916         (frv_expand_builtin_va_start): Likewise.
17917
17918         * config/arm/arm.c (thumb_find_work_register): Fix location of
17919         argument register count.
17920
17921 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
17922
17923         Support scheduling for ColdFire V1 and V3 microarchitecture.
17924         Improve scheduling of multiplication instructions.
17925
17926         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
17927         (mac): New instruction attribute.
17928         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
17929         (m68k_sched_mac): New variable.
17930         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
17931         Handle cfv1 and cfv3.
17932         (max_insn_size): New static variable.
17933         (struct _sched_ib): New type.
17934         (sched_ib): New static variable.
17935         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
17936         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
17937         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
17938         Update.
17939         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
17940         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
17941         new variables.  Update.
17942         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
17943         Add modeling of cfv3 instruction buffer.  Update.
17944         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
17945         * config/m68k/m68k.h (TUNE_CFV3): New macro.
17946         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
17947         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
17948         a particular reservation applies to.
17949         (type2): Reorganize attribute values.  Rename alu to alu_reg,
17950         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
17951         to mul_l and mul_w.
17952         (cf_ib_*): Simplify description of instruction buffer.
17953         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
17954         (cf_mem): Split into cf_mem1 and cf_mem2.
17955         (cf_v2_move_??): Rename to cfv12_alu_??.
17956         (cf_v2_move_l_??): Rename to cfv12_omove_??.
17957         (cf_v2_mul_??): Remove reservations.
17958         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
17959         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
17960         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
17961         appropriate place.
17962         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
17963         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
17964         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
17965         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
17966         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
17967         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
17968         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
17969         expansions of the above reservations for instructions of sizes
17970         1, 2 and 3 words.
17971
17972 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
17973
17974         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
17975
17976 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
17977
17978         * coverage.c: Include tree-pass.h.
17979         (coverage_counter_alloc): Print da_file_name to the dump file.
17980
17981 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
17982
17983         * sbitmap.c (sbitmap_range_empty_p): New function.
17984         * sbitmap.h (sbitmap_range_empty_p): New function.
17985         * bitmap.h: Now includes obstack.h.
17986
17987 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
17988             Kenneth Zadeck  <zadeck@naturalbridge.com>
17989
17990         * dbgcnt.def (ra_byte_scan): Added.
17991         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
17992         when the last hit happens for a counter.
17993         * timevar.def (TV_DF_BYTE_LR): New variable.
17994         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
17995         * passes.c (pass_fast_rtl_byte_dce): New pass.
17996         * fwprop.c (update_df): Added mode to call df_ref_create.
17997         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
17998         DF_REF_EXTRACT_OFFSET.
17999         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN,
18000         DF_BYTE_LR_OUT, df_byte_lr): New macro.
18001         (df_mm): New enum.
18002         (df_ref_extract): Added mode field.
18003         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
18004         DF_REF_EXTRACT_OFFSET.
18005         (DF_REF_EXTRACT_MODE): New macro.
18006         (df_byte_lr_bb_info): New structure.
18007         (df_print_byte_regset, df_compute_accessed_bytes,
18008         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
18009         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
18010         df_byte_lr_simulate_uses,
18011         df_byte_lr_simulate_artificial_refs_at_top,
18012         df_byte_lr_simulate_artificial_refs_at_end,
18013         df_compute_accessed_bytes): New function.
18014         (df_ref_create): Add parameter.
18015         (df_byte_lr_get_bb_info): New inline function.
18016         * df-scan.c (df_ref_record, df_uses_record,
18017         df_ref_create_structure): Added mode parameter.
18018         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1,
18019         df_defs_record, df_uses_record, df_get_conditional_uses,
18020         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
18021         df_entry_block_defs_collect, df_exit_block_uses_collect):
18022         Added mode parameter to calls to df_ref_record, df_uses_record,
18023         df_ref_create_structure.
18024         (df_ref_equal_p, df_ref_compare): Added test for modes.
18025         (df_ref_create_structure): Added code to set mode.  Renamed
18026         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
18027         DF_REF_EXTRACT_OFFSET.
18028         * df-core.c (df_print_byte_regset): New function.
18029         * df-byte-scan.c: New file.
18030         * df-problems.c (df_rd_transfer_function): Removed unnecessary
18031         calls to BITMAP_FREE.
18032         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
18033         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
18034         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info,
18035         df_byte_lr_check_regs, df_byte_lr_expand_bitmap,
18036         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
18037         df_byte_lr_local_compute, df_byte_lr_init,
18038         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
18039         df_byte_lr_transfer_function, df_byte_lr_free,
18040         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
18041         df_byte_lr_add_problem, df_byte_lr_simulate_defs,
18042         df_byte_lr_simulate_uses,
18043         df_byte_lr_simulate_artificial_refs_at_top,
18044         df_byte_lr_simulate_artificial_refs_at_end): New function.
18045         * dce.c (byte_dce_process_block): New function.
18046         (dce_process_block): au is now passed in rather than computed
18047         locally.  Changed loops that look at artificial defs to not look
18048         for conditional or partial ones, because there never are any.
18049         (fast_dce): Now is able to drive byte_dce_process_block or
18050         dce_process_block depending on the kind of dce being done.
18051         (rest_of_handle_fast_dce): Add parameter to fast_dce.
18052         (rest_of_handle_fast_byte_dce): New function.
18053         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
18054         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
18055
18056 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
18057
18058         PR fortran/35019
18059         * gcc.h: Added fortran options that take arguments to
18060         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
18061         macros.
18062
18063 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
18064
18065         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
18066         scalarization if on the LHS and not a full access.
18067
18068 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18069
18070         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
18071
18072 2008-04-18  Rafael Espíndola  <espindola@google.com>
18073
18074         * tree-vrp.c (find_case_label_index): Fix the binary search.
18075         (find_case_label_range): New.
18076         (vrp_visit_switch_stmt): Use find_case_label_range.
18077         (simplify_switch_using_ranges): Use find_case_label_range.
18078
18079 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
18080
18081         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
18082         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
18083
18084 2008-04-18  Tom Tromey  <tromey@redhat.com>
18085
18086         PR libcpp/15500:
18087         * doc/cpp.texi (Implementation-defined behavior): Mention
18088         -finput-charset.
18089
18090 2008-04-18  Ian Lance Taylor  <iant@google.com>
18091
18092         * fold-const.c (pointer_may_wrap_p): New static function.
18093         (fold_comparison): Add another test for pointer overflow.  Use
18094         pointer_may_wrap_p to disable some false positives.
18095
18096 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
18097
18098         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
18099         (fname_as_string): Match updated cpp_interpret_string prototype.
18100         (fix_string_type): Support char16_t* and char32_t*.
18101         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
18102         derivative) nodes.  Register as builtin if C++0x.
18103         (c_parse_error): Support CPP_CHAR{16,32}.
18104         * c-common.h (RID_CHAR16, RID_CHAR32): New elements.
18105         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
18106         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
18107         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
18108         CTI_CHAR32_ARRAY_TYPE>: New elements.
18109         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
18110         char32_type_node, signed_char32_type_node, char16_array_type_node,
18111         char32_array_type_node): New defines.
18112         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
18113         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
18114         (lex_string): Support CPP_STRING{16,32}, match updated
18115         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
18116         (lex_charconst): Support CPP_CHAR{16,32}.
18117         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
18118         and CPP_STRING{16,32}.
18119
18120 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
18121
18122         PR bootstrap/35457
18123         * aclocal.m4: Regenerate.
18124         * configure: Regenerate.
18125
18126 2008-04-18  Jan Hubicka  <jh@suse.cz>
18127
18128         * except.c (dw2_size_of_call_site_table,
18129         sjlj_size_of_call_site_table): Use vector API for call_site_record.
18130
18131         * cgraphbuild.c (build_cgraph_edges): Update.
18132         * tree-pass.h: Update comment.
18133         * final.c (leaf_function_p): Update.
18134         (leaf_renumber_regs): Update.
18135         (rest_of_clean_state): Update.
18136         * omp-low.c (expand_omp_parallel): Update.
18137         * ipa-reference.c (analyze_function): Update.
18138         * reorg.c (find_end_label): Update.
18139         (optimize_skip): Update.
18140         (fill_simple_delay_slots): Update.
18141         (fill_simple_delay_slots): Update.
18142         (make_return_insns): Update.
18143         (dbr_schedule): Update.
18144         * gimple-low.c (record_vars_into): Update.
18145         * cfgbuild.c (make_edges): Update.
18146         * function.c (assign_stack_local): Update.
18147         (assign_parm_adjust_stack_rtl): Update.
18148         (locate_and_pad_parm): Update.
18149         (allocate_struct_function): Do not initialize stack_alignment_needed
18150         and preferred_stack_boundary here.
18151         (stack_protect_prologue): Update.
18152         (stack_protect_epilogue): Update.
18153         (expand_function_start): Initialize stack_alignment_needed,
18154         preferred_stack_boundary and max_jumptable_ents.
18155         (expand_function_end): Update.
18156         (free_after_compilation): Do not NULLify epilogue_delay_list.
18157         * function.h (struct rtl_data): Add stack_protect_guard,
18158         stack_alignment_needed,
18159         preferred_stack_boundary, epilogue_delay_list.
18160         (struct function): Remove value_histograms, stack_alignment_needed,
18161         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
18162         last_label_uid,
18163         unexpanded_var_list, stack_protect_guard.
18164         (current_function_epilogue_delay_list): Remove.
18165         * ipa-type-escape.c (analyze_function): Update.
18166         * gimplify.c (pop_gimplify_context): Update comment.
18167         * calls.c (expand_call): Update.
18168         (emit_library_call_value_1): Update.
18169         * except.c (set_nothrow_function_flags): Update.
18170         * cfgexpand.c (get_decl_align_unit): Update.
18171         (create_stack_guard): Update.
18172         (estimated_stack_frame_size): Update.
18173         (expand_used_vars): Update.
18174         (tree_expand_cfg): Free histogram earliers, init expansion variables.
18175         * explow.c (allocate_dynamic_stack_space): Update.
18176         * tree-ssa-live.c (remove_unused_locals): Update.
18177         * varasm.c (mark_constant_pool): Update.
18178         * tree-inline.c (remap_decls): Update.
18179         (initialize_cfun): Update.
18180         (declare_return_variable): Update.
18181         (inline_forbidden_p): Update.
18182         (expand_call_inline): Update.
18183         (declare_inline_vars): Update.
18184         (tree_function_versioning): Update.
18185         * tree-flow.h (value_histograms): New.
18186         (VALUE_HISTOGRAMS): New macro.
18187         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
18188         last_label_uid.
18189         * tree-cfg.c (set_bb_for_stmt): Update.
18190         (replace_by_duplicate_decl): Update.
18191         (move_block_to_fn): Update.
18192         (new_label_mapper): Update.
18193         (dump_function_to_file): Update.
18194         * ipa-struct-reorg.c (build_data_structure): Update.
18195         * cfgrtl.c (print_rtl_with_bb): Update.
18196         * reload1.c (reload): Update.
18197         (reload): Update.
18198         * config/i386/i386.c (setup_incoming_varargs_64,
18199         ix86_compute_frame_layout): Update.
18200         * config/arc/arc.c (arc_output_function_epilogue): Update.
18201
18202 2008-04-18  Marius Strobl <marius@FreeBSD.org>
18203
18204         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
18205         for FreeBSD as well.
18206         * gthr-posix95.h: Likewise.
18207
18208 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
18209
18210         PR rtl-optimization/35838
18211         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
18212         out the byte offset of the first subreg.
18213
18214 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
18215
18216         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
18217         to split_ti instead of three separate calls with single member arrays.
18218         (subti3 splitter): Ditto.
18219         (adddi3 splitter): Ditto with split_di.
18220         (subdi3 splitter): Ditto.
18221         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
18222         two separate calls with single member arrays.  Swap match_dup
18223         operands 1 and 2 to better fit into the array.
18224         (negdi2 splitter): Ditto with split_di.
18225         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
18226         two separate calls with single member arrays.  Swap match_dup operands
18227         6 and 7 to better fit into the array.
18228
18229 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
18230
18231         * config/i386/i386.c (sse_builtin_type): New.
18232         (bdesc_sse_args): Likewise.
18233         (bdesc_sse_3arg): Removed.
18234         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
18235         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
18236         IX86_BUILTIN_ROUNDPS.
18237         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
18238         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
18239         IX86_BUILTIN_ROUNDPS.
18240         (ix86_expand_sse_4_operands_builtin): Removed.
18241         (ix86_expand_sse_operands_builtin): New.
18242         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
18243         and CODE_FOR_sse4_1_roundps.
18244         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
18245         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
18246
18247 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
18248
18249         PR target/35907
18250         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
18251         regs before frame pop when needed.  If use_backchain_to_restore_sp
18252         then load backchain into a temp reg to restore vr and vrsave.  Add
18253         code to restore vr after frame pop if possible.
18254
18255 2008-04-17  Richard Guenther  <rguenther@suse.de>
18256
18257         * tree-vn.c (expressions_equal_p): Do not check type
18258         equality or compatibility before calling operand_equal_p.
18259         * fold-const.c (operand_equal_p): Check equivalence of
18260         integer constants before bailing out due to signedness or
18261         precision differences.
18262         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
18263         spurious differences in type qualification.  Ignore types
18264         for COMPONENT_REFs at all.
18265
18266 2008-04-17  Christian Bruel  <christian.bruel@st.com>
18267
18268         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
18269         msw_skip comparison.
18270
18271 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
18272
18273         PR c/35739
18274         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
18275         reg type.
18276
18277         PR tree-optimization/35899
18278         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
18279         rather than TREE_OPERAND.
18280
18281 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
18282
18283         PR target/35944
18284         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
18285         temporary registers.  Change operand predicate to general_operand.
18286         (remainderxf3): Ditto.
18287
18288 2008-04-16  Richard Guenther  <rguenther@suse.de>
18289
18290         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
18291         * tree-affine.c (aff_combination_expand): Look through some
18292         conversions.
18293
18294 2008-04-15  Doug Kwan  <dougkwan@google.com>
18295
18296         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
18297         for hex printing.
18298         * tree-pretty-print.c (dump_generic_node): Ditto.
18299         * final.c (output_addr_const): Ditto.
18300         * dwarf2out.c (output_cfi): Ditto.
18301         * c-pretty-print.c (pp_c_integer_constant): Ditto.
18302         * print-rtl.c (print_rtx): Ditto.
18303         * print-tree.c (print_node_brief, print_node): Ditto.
18304         * c-common.c (match_case_to_enum_1): Ditto.
18305         * sched-vis.c (print_value): Ditto.
18306         * config/i386/i386.c (print_operand): Cast to long unsigned int
18307         for hex printing.
18308
18309 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
18310         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
18311         MS Windows VirtualProtect function.
18312
18313 2008-04-15  Jan Hubicka  <jh@suse.cz>
18314
18315         * gengtype.c (write_root): Param_is argument is OK.
18316         * expr.c (expand_expr_real_1): Update call of get_exception_*.
18317         * function.h: Include varray.h
18318         (rtl_eh): New stucture based on except.c one.
18319         (call_site_record): New forward declaration and vector type.
18320         * calls.c (emit_call_1): Do not call
18321         note_current_region_may_contain_throw.
18322         * except.c (eh_status): Remove cur_region, try_region since they are
18323         unused.
18324         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
18325         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
18326         sjlj_fc, sjlj_exit_after to rth_eh in function.h.
18327         Remove call_site_data_used, call_site_data_size.
18328         Turn call_site_record into vector in function.h.
18329         (note_current_region_may_contain_throw): Remove.
18330         (get_exception_pointer, get_exception_filter): Do not take struct
18331         function argument; update.
18332         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
18333         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
18334         build_post_landing_pads, dw2_build_landing_pads,
18335         sjlj_assign_call_site_values, sjlj_mark_call_sites,
18336         sjlj_emit_function_enter, sjlj_emit_function_enter,
18337         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
18338         sjlj_build_landing_pads, finish_eh_generation,
18339         remove_exception_handler_label, remove_eh_handler,
18340         maybe_remove_eh_handler, add_reachable_handler,
18341         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
18342         add_action_record, collect_one_action_chain, add_call_site,
18343         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
18344         sjlj_output_call_site_table, output_function_exception_table,
18345         * except.h (note_current_region_may_contain_throw): Remove
18346         (get_exception_pointer, get_exception_filter): Do not take struct
18347         function argument.
18348         * Makefile.in (GTFILES): Put varargs before struct function.
18349
18350 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
18351
18352         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
18353         punt for STRING_CST.
18354         (get_constraint_for): Deal with STRING_CST here instead.
18355
18356 2008-04-15  Richard Guenther  <rguenther@suse.de>
18357
18358         * tree-ssa-propagate.c (substitute_and_fold): Substitute
18359         statements in a basic-block with a backward walk.  Do not
18360         substitute into dead statements but instead remove those.
18361
18362 2008-04-15  Richard Guenther  <rguenther@suse.de>
18363
18364         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
18365         to zero, thus disable creation of SFTs.
18366
18367 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
18368
18369         * tree-predcom.c (suitable_reference_p): Return false if the
18370         reference can throw.
18371
18372 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
18373
18374         PR c/35751
18375         * c-decl.c (finish_decl): If extern or static var has variable
18376         size, set TREE_TYPE (decl) to error_mark_node.
18377
18378 2008-04-15  Rafael Espíndola  <espindola@google.com>
18379
18380         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
18381         variable arg1.
18382
18383 2008-04-15  Richard Guenther  <rguenther@suse.de>
18384
18385         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
18386         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
18387         (visit_reference_op_load): Do walk vuse-vdef chains on
18388         vn_reference_lookup.
18389         (visit_reference_op_store): But do not here.
18390         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
18391         vn_reference_lookup.
18392         (vn_lookup_with_vuses): But do so here.
18393
18394 2008-04-14  Ian Lance Taylor  <iant@google.com>
18395
18396         * fold-const.c (fold_overflow_warning): Remove assertion.
18397
18398 2008-04-15  Ben Elliston  <bje@au.ibm.com>
18399
18400         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
18401         temp1 local variables.
18402
18403 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
18404
18405         PR target/35661
18406         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
18407         ".text.unlikely" section as executable.
18408
18409 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
18410
18411         * config/ia64/ia64.c (rtx_needs_barrier): Handle
18412         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
18413         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
18414         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
18415         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
18416         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
18417         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
18418
18419 2008-04-14  Ian Lance Taylor  <iant@google.com>
18420
18421         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
18422         * fold-const.c (fold_comparison): If appropriate, test
18423         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
18424         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
18425         reassociating a pointer type.
18426         * doc/invoke.texi (Optimize Options): Document that
18427         -fstrict-overflow applies to pointer wraparound.
18428
18429 2008-04-13  Jan Hubicka  <jh@suse.cz>
18430
18431         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
18432
18433 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
18434
18435         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
18436         we are going to "save the world".
18437
18438 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
18439
18440         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
18441         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
18442         operand 0 constraint, not "=".
18443
18444 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
18445
18446         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
18447
18448 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
18449
18450         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
18451         of size of positions_needed * CHAR_BIT.
18452
18453 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
18454
18455         PR middle-end/35897
18456         * dse.c (store_info): Change positions_needed to unsigned
18457         HOST_WIDE_INT.
18458         (lowpart_bitmask): New.
18459         (record_store): Cast to unsigned HOST_WIDE_INT for
18460         positions_needed.  Assert width <= size of positions_needed *
18461         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
18462         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
18463         lowpart_bitmask to set mask.
18464
18465 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
18466
18467         * config/bfin/constraints.md: New file.
18468         * config/bfin/bfin.md: Include it.
18469         (adddi3): Use satisfies_constraint functions instead of the old macros.
18470         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
18471         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
18472         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
18473         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
18474         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
18475         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
18476         EXTRA_CONSTRAINT): Delete.
18477         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
18478         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
18479         of the old macros.
18480         * config/bfin/bfin.c: Include "tm-constrs.h".
18481         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
18482         Use satisfies_constraint functions instead of the old macros.
18483         * doc/md.texi (Blackfin Constraints): Update file name reference.
18484
18485 2008-04-11  Richard Guenther  <rguenther@suse.de>
18486
18487         PR tree-optimization/35869
18488         * tree-vrp.c (execute_vrp): Move switch statement update after
18489         jump threading.  Schedule another cfg cleanup run.
18490
18491 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
18492
18493         PR c/35744
18494         * attribs.c (decl_attributes): Return early on errorneous node.
18495
18496 2008-04-10  Oleg Ryjkov  <olegr@google.com>
18497
18498         * tree.h (struct tree_base): Added a new flag default_def_flag.
18499         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
18500
18501 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
18502
18503         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
18504
18505 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18506
18507         PR target/35768
18508         * pa.md: Define mode iterator P.  Define mode attribute dwc.
18509         (dcacheflush): Update pattern to use iterator P and attribute dwc.
18510         (icacheflush): Likewise.
18511         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
18512         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
18513
18514 2008-04-11  Ben Elliston  <bje@au.ibm.com>
18515
18516         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
18517
18518 2008-04-10  Rafael Espíndola  <espindola@google.com>
18519
18520         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
18521         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
18522         (extract_range_from_expr): The same.
18523
18524 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
18525
18526         * config/mips/mips.md (GPR2): New mode iterator.
18527         (seq): Add comment.
18528         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
18529         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
18530         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
18531         Rewrite these to take two modes, the mode of comparison and the
18532         mode of the destination.
18533         * config/mips/mips.c (mips_expand_scc): Instead of having
18534         paradoxical subreg as destination, expand "narrowing" scc if mode
18535         of comparison is SI and target is requested in DI mode.
18536         (mips_emit_int_order_test): Update comment.  Make mode of
18537         comparison match CMP0 rather than TARGET.  When creating inverse
18538         target use mode of TARGET.
18539
18540 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
18541
18542         * gcov-dump.c (tag_summary): Only print summaries for the first
18543         GCOV_COUNTERS_SUMMABLE counters.
18544
18545 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
18546
18547         * config/i386/i386.md (absneg): New code iterator.
18548         (absnegprefix): New code attribute.
18549         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
18550         patterns using absneg code iterator.
18551         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
18552         using absneg code iterator.
18553         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
18554         *neg<mode>2 patterns using absneg code iterator.
18555         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
18556         *negextendsfdf2 patterns using absneg code iterator.
18557         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
18558         *negextendsfxf2 patterns using absneg code iterator.
18559         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
18560         *negextendsfdf2 patterns using absneg code iterator.
18561         * config/i386/sse.md (<code><mode>2): Macroize expander from
18562         abs<mode>2 and neg<mode>2 patterns using absneg code iterator.
18563
18564 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
18565
18566         * config/s390/s390.h: Remove the remains of the recent search
18567         & replace action of current_function_outgoing_args_size.
18568
18569 2008-04-10  Ira Rosen  <irar@il.ibm.com>
18570
18571         PR tree-optimization/35821
18572         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
18573         NEW_STMT_LIST is not NULL.
18574
18575 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
18576
18577         PR libstdc++/35597
18578         * toplev.c (process_options): Remove -ffunction-sections debugging
18579         warning.
18580
18581 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
18582
18583         PR middle-end/PR28690
18584         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
18585         than gen_rtx_fmt_ee to perform more canonicalizations.
18586
18587 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18588
18589         PR driver/35665
18590         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
18591
18592 2008-04-09  Richard Guenther  <rguenther@suse.de>
18593
18594         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
18595         (dump_function_to_file): Dump function arguments with types.
18596
18597 2008-04-08  Richard Guenther  <rguenther@suse.de>
18598
18599         * fold-const.c (fold_widened_comparison): Do not allow
18600         sign-changes that change the result.
18601
18602 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
18603
18604         PR target/35839
18605         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
18606         kinds of indirect references.
18607
18608 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
18609
18610         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
18611         GNU Fortran language string.
18612
18613 2008-04-08  Rafael Espíndola  <espindola@google.com>
18614
18615         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
18616         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
18617         * tree.h (tree_call_nonnegative_warnv_p): New.
18618
18619 2008-04-08  Jan Hubicka  <jh@suse.cz>
18620
18621         * function.c (free_after_compilation): Clear out regno_reg_rtx
18622         pointer.
18623
18624 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
18625
18626         Revert
18627         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
18628
18629         PR middle-end/PR28690
18630         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
18631         same precedence as REG_POINTER and MEM_POINTER operands.
18632
18633 2008-04-08  Richard Guenther  <rguenther@suse.de>
18634
18635         PR middle-end/35834
18636         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
18637         for adding index to base.
18638
18639 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
18640
18641         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
18642         (MINGW_ENABLE_EXECUTE_STACK): New.
18643         (IN_LIBGCC2): For libgcc include windows.h file for
18644         function declarations.
18645
18646 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
18647
18648         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
18649         and tem2 if tem1 is not a REG or MULT.
18650
18651 2008-04-08  Jan Hubicka  <jh@suse.cz>
18652
18653         * function.h (incomming_args): Break out of struct function.
18654         (function_subsections): Break out of struct function.
18655         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
18656         return_rtx and hard_reg_initial_vals from struct function.
18657         Kill inl_max_label_num.
18658         (current_function_pops_args, current_function_args_info,
18659         current_function_args_size, current_function_args_size,
18660         current_function_pretend_args_size,
18661         current_function_outgoing_args_size,
18662         current_function_internal_arg_pointer, current_function_return_rtx):
18663         Kill compatibility accestor macros.
18664         * builtins.c (expand_builtin_apply_args_1): Update.
18665         (expand_builtin_next_arg): Update.
18666         * df-scan.c (df_get_call_refs): Update.
18667         * dbxout.c (dbxout_function_end): Update.
18668         * dwarf2out.c (dwarf2out_switch_text_section): Update.
18669         (output_line_info): Update.
18670         (secname_for_decl): Update.
18671         (dwarf2out_var_location): Update.
18672         * function.c (free_after_compilation): Update.
18673         (assign_parm_find_stack_rtl): Update.
18674         (assign_parms): Update.
18675         (expand_dummy_function_end): Update.
18676         (expand_function_end): Update.
18677         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
18678         (expand_call): Update.
18679         (emit_library_call_value_1): Update.
18680         (store_one_arg): Update.
18681         * varasm.c (initialize_cold_section_name): Update.
18682         (unlikely_text_section): Update.
18683         (unlikely_text_section_p): Update.
18684         (assemble_start_function): Update.
18685         (assemble_end_function): Update.
18686         (default_section_type_flags): Update.
18687         (switch_to_section): Update.
18688         * integrate.c (set_decl_abstract_flags): Update.
18689         (get_hard_reg_initial_val): Update.
18690         (has_hard_reg_initial_val): Update.
18691         (allocate_initial_values): Update.
18692         * resource.c (init_resource_info): Update.
18693         * config/alpha/alpha.c (NUM_ARGS): Update.
18694         (direct_return): Update.
18695         (alpha_va_start): Update.
18696         (alpha_sa_size): Update.
18697         (alpha_initial_elimination_offset): Update.
18698         (alpha_expand_prologue): Update.
18699         (alpha_start_function): Update.
18700         (alpha_expand_epilogue): Update.
18701         (unicosmk_initial_elimination_offset):
18702         * config/alpha/alpha.md (call expander): Update.
18703         * config/s390/s390.c (s390_register_info): Update.
18704         (s390_register_info): Update.
18705         (s390_frame_info): Update.
18706         (s390_initial_elimination_offset): Update.
18707         (s390_build_builtin_va_list): Update.
18708         (s390_va_start): Update.
18709         * config/spu/spu.c (direct_return): Update.
18710         (spu_expand_prologue): Update.
18711         (spu_initial_elimination_offset): Update.
18712         (spu_build_builtin_va_list): Update.
18713         (spu_va_start): Update.
18714         * config/sparc/sparc.c (sparc_init_modes): Update.
18715         (sparc_compute_frame_size): Update.
18716         (function_value): Update.
18717         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
18718         * config/i386/i386.md (return expander): Update.
18719         * config/i386/i386.c (ix86_va_start): Update.
18720         (ix86_can_use_return_insn_p): Update.
18721         (ix86_compute_frame_layout): Update.
18722         (ix86_expand_epilogue): Update.
18723         * config/sh/sh.c (output_stack_adjust): Update.
18724         (calc_live_regs): Update.
18725         (sh_expand_prologue): Update.
18726         (sh_builtin_saveregs): Update.
18727         (sh_va_start): Update.
18728         (initial_elimination_offset): Update.
18729         (sh_allocate_initial_value): Update.
18730         (sh_function_ok_for_sibcall): Update.
18731         (sh_get_pr_initial_val): Update.
18732         * config/sh/sh.md (return expander): Update.
18733         * config/avr/avr.c (frame_pointer_required_p): UPdate.
18734         * config/crx/crx.c (crx_compute_frame): UPdate.
18735         (crx_initial_elimination_offset): UPdate.
18736         * config/xtensa/xtensa.c (compute_frame_size): Update
18737         (xtensa_builtin_saveregs): Update.
18738         (xtensa_va_start): Update.
18739         (order_regs_for_local_alloc): Update.
18740         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
18741         (xstormy16_expand_builtin_va_start): Update.
18742         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
18743         * config/m68hc11/m68hc11.md (return expanders): Update.
18744         * config/m68hc11/m68hc11.c (expand_prologue): Update.
18745         (expand_epilogue): Update.
18746         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
18747         (cris_simple_epilogue): Update.
18748         (cris_expand_prologue): Update.
18749         (cris_expand_epilogue): Update.
18750         * config/iq2000/iq2000.c (iq2000_va_start): Update.
18751         (compute_frame_size): Update.
18752         * config/mt/mt.c (mt_compute_frame_size): Update.
18753         * config/mn10300/mn10300.c (expand_prologue): Update.
18754         (expand_epilogue): Update.
18755         (initial_offset): Update.
18756         (mn10300_builtin_saveregs):
18757         * config/mn10300/mn10300.md (return expander): Update.
18758         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
18759         (ia64_initial_elimination_offset): Update.
18760         (ia64_initial_elimination_offset): Update.
18761         (ia64_expand_prologue): Update.
18762         * config/m68k/m68k.md (return expander): Update.
18763         * config/rs6000/rs6000.c (rs6000_va_start): Update.
18764         (rs6000_stack_info): Update.
18765         * config/mcore/mcore.c (layout_mcore_frame): Update.
18766         (mcore_expand_prolog): Update.
18767         * config/arc/arc.c (arc_compute_frame_size): Update.
18768         * config/score/score3.c (score3_compute_frame_size): Update.
18769         * config/score/score7.c (score7_compute_frame_size): Update.
18770         * config/arm/arm.c (use_return_insn): Update.
18771         (thumb_find_work_register): Update.
18772         (arm_compute_save_reg_mask): Update.
18773         (arm_output_function_prologue): Update.
18774         (arm_output_epilogue): Update.
18775         (arm_size_return_regs): Update.
18776         (arm_get_frame_offsets): Update.
18777         (arm_expand_prologue): Update.
18778         (thumb_exit): Update.
18779         (thumb_unexpanded_epilogue): Update.
18780         (thumb1_output_function_prologue): Update.
18781         * config/pa/pa.md (return expander): Update.
18782         * config/pa/pa.c (compute_frame_size): Update.
18783         (hppa_builtin_saveregs): Update.
18784         * config/mips/mips.c (mips_va_start): Update.
18785         (mips16_build_function_stub): Update.
18786         (mips_compute_frame_info): Update.
18787         (mips_restore_gp): Update.
18788         (mips_output_function_prologue): Update.
18789         (mips_expand_prologue): Update.
18790         * config/v850/v850.c (compute_frame_size): Update.
18791         (expand_prologue): * config/mmix/mmix.c (along): update.
18792         (mmix_initial_elimination_offset): update.
18793         (mmix_reorg): update.
18794         (mmix_use_simple_return): update.
18795         (mmix_expand_prologue): update.
18796         (mmix_expand_epilogue): Update.
18797         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
18798         (emit_link_insn): Update.
18799
18800 2008-04-08  Anatoly Sokolov <aesok@post.ru>
18801
18802         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define
18803         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL
18804         instructions.
18805         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for
18806         atmega103 device.
18807
18808 2008-04-07  Jan Hubicka  <jh@suse.cz>
18809
18810         * function.h (rtl): Rename to x_rtl.
18811         (crtl): New define.
18812         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
18813         frame_offset, stack_check_probe_note, arg_pointer_save_area,
18814         used_temp_slots avail_temp_slots, temp_slot_level,
18815         nonlocal_goto_handler_labels): Update accesstors.
18816         (rtl): New global variable.
18817         (struct function): Move some fileds to rtl_data.
18818         (get_arg_pointer_save_area): Update prototype.
18819         * builtins.c (expand_builtin_setjmp_receiver): Update call of
18820         get_arg_pointer_save_area.
18821         * expr.c (init_expr): Update
18822         * function.c (get_frame_size): Update
18823         (assign_stack_local): Update
18824         (expand_function_end): Update.
18825         (get_art_pointer_save_area): Update
18826         * function.h
18827         * emit-rtl.c (rtl): Declare.
18828         (regno_reg_rtx): Declare.
18829         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
18830         Update.
18831         (gen_reg_rtx): Update.
18832         * varasm.c (n_deferred_constatns): Update accestor.
18833         (init_varasm_status): Do not allocate varasm_status.
18834         (force_const_mem, get_pool_size, output_constant_pool): Update.
18835         * stmt.c (force_label_rtx): Do not use x_ prefixes.
18836         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
18837         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
18838         * sparc/sparc.h (INIT_EXPANDERS): Update.
18839         * ia64/ia64.h (INIT_EXPANDERS): Update.
18840
18841 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
18842
18843         * reload.c (push_secondary_reload): Add missing break to for loop.
18844
18845 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
18846
18847         PR middle-end/PR28690
18848         * rtlanal.c: Update copyright years.
18849         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
18850         as REG_POINTER and MEM_POINTER operands.
18851         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
18852         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
18853         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
18854         * gcse.c: Update copyright years.
18855         (pre_delete): Call gen_reg_rtx_and_attrs.
18856         (hoist_code): Likewise.
18857         (build_store_vectors): Likewise.
18858         (delete_store): Likewise.
18859         * loop-invariant.c (move_invariant_reg): Likewise.
18860         Update copyright years.
18861
18862 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
18863
18864         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
18865         control string instead of quoted.
18866
18867 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
18868
18869         * doc/rtl.texi: Rewrite of subreg section.
18870
18871 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
18872
18873         PR/35842
18874         * config/i386/i386.c (legitimize_pic_address): Add treating
18875         of dllimport SYM_REF's.
18876         (legitimize_dllimport_symbol): Add prototype.
18877
18878 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
18879
18880         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
18881         reference in constructor with non self-referential type.
18882
18883 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
18884
18885         Removal of Return with Depressed Stack Pointer support
18886         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
18887         (ECF_SP_DEPRESSED): Likewise.
18888         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
18889         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
18890         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
18891         (expand_call): Do not test ECF_SP_DEPRESSED.
18892         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
18893         * function.c (keep_stack_depressed): Delete.
18894         (handle_epilogue_set): Likewise.
18895         (update_epilogue_consts): Likewise.
18896         (emit_equiv_load): Likewise.
18897         (thread_prologue_and_epilogue_insns): Remove support for Return with
18898         Depressed Stack Pointer.
18899         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
18900
18901 2008-04-06  Richard Guenther  <rguenther@suse.de>
18902
18903         PR tree-optimization/35400
18904         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
18905         information from SSA_NAMEs.
18906
18907 2008-04-06  Anatoly Sokolov <aesok@post.ru>
18908
18909         * config/avr/avr.h (avr_mega_p): Remove declaration.
18910         (AVR_MEGA): Remove macro.
18911         * config/avr/avr.c (avr_mega_p): Remove variable.
18912         (avr_override_options): Remove inicializion of avr_mega_p.
18913         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
18914         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
18915         (avr_jump_mode): (Ditto.).
18916         (avr_output_progmem_section_asm_op): (Ditto.).
18917         (avr_asm_init_sections): (Ditto.).
18918         (avr_asm_init_sections): (Ditto.).
18919         (avr_rtx_costs): (Ditto.).
18920         * config/avr/avr.md: (Ditto.).
18921         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of
18922         '__AVR_MEGA__'.
18923
18924 2008-04-06  Richard Guenther  <rguenther@suse.de>
18925
18926         PR tree-optimization/35842
18927         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
18928         is_gimple_invariant_address.
18929
18930 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
18931
18932         * gcc.c (default_compilers): Sync Fortran extensions list with
18933         that in fortran/lang-specs.h.
18934         * doc/invoke.texi: Likewise.
18935         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
18936         * dwarf2out.c (gen_compile_unit_die): Likewise.
18937
18938 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
18939
18940         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
18941
18942 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
18943
18944         PR target/12329
18945         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
18946         attribute is used for nested functions.
18947
18948 2008-04-05  Jan Hubicka  <jh@suse.cz>
18949
18950         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
18951
18952         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
18953         letter argument.
18954         (dump_files): Update.
18955         (enable_rtl_dump_file): Do not accept letter argument.
18956         * tree-pass.h (dump_file_info): Remove letter argument.
18957         * toplev.c (decode_d_option): Update -da handling.
18958         * toplev.h (enable_rtl_dump_file): Update prototype.
18959         * passes.c (register_one_dump_file): Do not accept IPA argument; work
18960         it out based on pass type.
18961         (register_dump_files_1): Likewise.
18962         (init_optimization_passes): Update register_one_dump_file calls.
18963         (execute_one_pass): Sanity check that IPA passes are called at IPA
18964         level and RTL passes at RTL level.
18965         (execute_pass_list): IPA pass can not be after or subpass of
18966         GIMPLE/RTL pass.
18967         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
18968         disallov RTL subpasses of IPA subpasses.
18969
18970 2008-04-05  Ben Elliston  <bje@au.ibm.com>
18971
18972         * tree-cfg.c (need_fake_edge_p): Return false for calls to
18973         builtins that return exactly once and do not throw. Cache call to
18974         call_expr_flags.
18975
18976 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
18977
18978         PR rtl-optimization/34916
18979         PR middle-end/35519
18980         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
18981         between instruction pairs.
18982
18983 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
18984
18985         * doc/invoke.texi: Document -mbitops for SH.
18986         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
18987         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
18988         * config/sh/sh.c (print_operand): Add %t operand code.
18989         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
18990         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
18991         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
18992         (extendqihi2): Likewise.
18993         (movqi_i): Likewise.
18994         (insv): Use bset, bclr and bst instructions for SH2A if possible.
18995         (extv): Use bld instruction for SH2A if possible.
18996         (extzv): Likewise.
18997         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
18998         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
18999         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
19000         (bset.b, bclr.b): Define peepholes.
19001         * config/sh/sh.opt (mbitops): New option.
19002
19003 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
19004
19005         PR target/35620
19006         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
19007         and view convert expression.
19008
19009 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
19010
19011         PR target/35364
19012         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
19013
19014 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
19015
19016         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
19017
19018         * config/i386/cpuid.h (bit_AES): New.
19019         (bit_PCLMUL): Likewise.
19020
19021         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
19022         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
19023         SSE2 if AES or PCLMUL is enabled.
19024         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
19025         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
19026         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
19027         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
19028         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
19029         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
19030         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
19031         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
19032         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
19033         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
19034         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
19035         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
19036         __builtin_ia32_aeskeygenassist128 and
19037         __builtin_ia32_pclmulqdq128.
19038         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
19039         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
19040         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
19041
19042         * config/i386/i386.h (TARGET_AES): New.
19043         (TARGET_PCLMUL): Likewise.
19044         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
19045
19046         * config/i386/i386.md (UNSPEC_AESENC): New.
19047         (UNSPEC_AESENCLAST): Likewise.
19048         (UNSPEC_AESDEC): Likewise.
19049         (UNSPEC_AESDECLAST): Likewise.
19050         (UNSPEC_AESIMC): Likewise.
19051         (UNSPEC_AESKEYGENASSIST): Likewise.
19052         (UNSPEC_PCLMUL): Likewise.
19053
19054         * config/i386/i386.opt (maes): New.
19055         (mpclmul): Likewise.
19056
19057         * config/i386/sse.md (aesenc): New pattern.
19058         (aesenclast): Likewise.
19059         (aesdec): Likewise.
19060         (aesdeclast): Likewise.
19061         (aesimc): Likewise.
19062         (aeskeygenassist): Likewise.
19063         (pclmulqdq): Likewise.
19064
19065         * config/i386/wmmintrin.h: New.
19066
19067         * doc/extend.texi: Document AES and PCLMUL built-in function.
19068
19069         * doc/invoke.texi: Document -maes and -mpclmul.
19070
19071 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
19072
19073         * function.c (free_after_parsing): Replace with
19074         cxx_push_function_context from C++ front-end.
19075         (allocate_struct_function): Don't call langhook.
19076         * langhooks.h (struct lang_hooks_for_functions): Delete.
19077         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
19078         member "function".
19079         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
19080         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
19081         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
19082         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
19083         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
19084         remove LANG_HOOKS_FUNCTION_INITIALIZER.
19085         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
19086
19087         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
19088         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
19089
19090 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
19091
19092         PR c/35440
19093         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
19094         for all types.
19095
19096 2008-04-04  Richard Guenther  <rguenther@suse.de>
19097
19098         PR middle-end/35823
19099         * fold-const.c (optimize_minmax_comparison): Use the correct
19100         type for the constant in the simplified comparison.
19101
19102 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
19103
19104         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
19105         Pass L2 size as "--param l2-cache-size" to the compiler.
19106         (decode_l2_cache): New function to decode L2 cache parameters using
19107         0x8000006 extended cpuid function.
19108         (detect_caches_amd): Determine parameters of L2 cache using
19109         decode_l2_caches function.
19110         (decode_caches_intel): Decode L2 cache parameters.
19111         (detect_caches_intel): Determine L2 cache parameters using
19112         decode_caches_intel and decode_l2_caches functions.
19113
19114 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
19115
19116         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
19117         secondary input reload for subword loads from the constant pool.
19118
19119 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
19120
19121         PR target/35713
19122         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
19123           constants of the appropriate size for runtime calculations.
19124
19125         PR c/35712
19126         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
19127           decimal-float literal constant zero.
19128
19129 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
19130
19131         PR c/35738
19132         * c-parser.c (c_parser_omp_atomic): Call
19133         default_function_array_conversion on the RHS.
19134
19135         PR middle-end/35818
19136         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
19137         call is_variable_sized if decl has incomplete type.
19138
19139 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
19140
19141         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
19142
19143 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
19144
19145         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
19146         iterators.
19147         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
19148         (sgt<u>): Merge sgt and sgtu into new expander.
19149         (sgt, sgtu): Remove expanders.
19150         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
19151         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
19152         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
19153         *sgtu_<mode>_mips16 into new pattern.
19154         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
19155         (sge<u>): Merge sge and sgeu into new expander.
19156         (sge, sgeu): Remove expanders.
19157         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
19158         new pattern.
19159         (*sge_<mode>, second *sge_<mode>): Remove patterns.
19160         (slt<u>): Merge slt and sltu into new expander.
19161         (slt, sltu): Remove expanders.
19162         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
19163         (*slt_<mode>, *sltu_<mode>): Remove patterns.
19164         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
19165         *sltu_<mode>_mips16 into new pattern.
19166         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
19167         (sle<u>): Merge sle and sleu into new expander.
19168         (sle, sleu): Remove expanders.
19169         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
19170         (*sle_<mode>, *sleu_<mode>): Remove patterns.
19171         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
19172         *sleu_<mode>_mips16 into new pattern.
19173         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
19174
19175 2008-04-03  Jan Hubicka  <jh@suse.cz>
19176
19177         PR tree-optimization/35795
19178         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
19179         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
19180         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
19181         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
19182         * score/score3.c (score3_output_mi_thunk): Likewise.
19183         * score/score7.c (score7_output_mi_thunk): Likewise.
19184         * mips/mips.c (mips_output_mi_thunk): Likewise.
19185
19186 2008-04-03  Richard Guenther  <rguenther@suse.de>
19187
19188         * tree-vrp.c (extract_range_from_unary_expr): Handle all
19189         conversions.  Simplify code.
19190
19191 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
19192
19193         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
19194
19195 2008-04-03  Tom Tromey  <tromey@redhat.com>
19196             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
19197
19198         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
19199         * config/bfin/t-bfin-linux (generated_files): Add
19200         linux-sysroot-suffix.h.
19201         * doc/install.texi (Prerequisites): Require make 3.80.
19202         * doc/sourcebuild.texi (Front End Directory): Document new
19203         variable.
19204         * Makefile.in (generated_files): New variable.
19205         (ALL_HOST_OBJS): New variable.
19206         ($(ALL_HOST_OBJS)): New target.
19207
19208 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
19209
19210         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
19211         (remap_block): Call id->transform_lang_insert_block instead
19212         of langhook.
19213         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
19214         Set id.transform_lang_insert_block to NULL.
19215         (clone_body): Move to cp/optimize.c
19216         * tree-inline.h (struct copy_body_data): Change
19217         transform_lang_insert_block to function pointer.
19218         (copy_generic_body, copy_decl_no_change): Export.
19219         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
19220         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
19221         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
19222
19223         * c-tree.h (insert_block): Kill.
19224         * c-decl.c (insert_block): Kill.
19225
19226 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
19227
19228         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
19229         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
19230         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
19231         argument.
19232         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
19233         argument, call {push,pop}_function_context from here.
19234         * c-parser.c: Use c_{push,pop}_function_context.
19235
19236         * function.c (push_function_context_to): Move meat ...
19237         (push_function_context): ... here.  Simplify.
19238         * function.c (pop_function_context_from): Move meat ...
19239         (pop_function_context): ... here.  Simplify.
19240         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
19241         leave_nested).
19242         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
19243         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
19244         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
19245         * tree.h (push_function_context_to, pop_function_context_from): Remove.
19246
19247 2008-04-03  Ben Elliston  <bje@au.ibm.com>
19248
19249         * expmed.c (extract_force_align_mem_bit_field): Remove.
19250
19251 2008-04-03  Richard Guenther  <rguenther@suse.de>
19252
19253         PR middle-end/35800
19254         * expr.h (try_casesi): Adjust prototype.
19255         * expr.c (try_casesi): Take fallback label as extra parameter.
19256         Use that for gen_casesi if default_label is NULL.
19257         * stmt.c (expand_case): Pass fallback label to try_casesi,
19258         make sure to fill gaps with a fallback label if default_label
19259         is not present.
19260
19261 2008-04-03  Dominique d'Humières <dominiq@lps.ens.fr>
19262
19263         PR target/35801
19264         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
19265
19266 2008-04-03  Ben Elliston  <bje@au.ibm.com>
19267
19268         * expmed.c (extract_split_bit_field): Remove if (0) code.
19269         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
19270         (do_ds_constraint): Likewise.
19271
19272 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
19273
19274         * doc/cppopts.texi (-dU): Document.
19275         * c-common.h (flag_dump_macros): Update comment.
19276         * c-opts.c (handle_OPT_d): Handle -dU.
19277         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
19278         dump_queued_macros, cb_used_define, cb_used_undef): New.
19279         (init_pp_output): Handle -dU.
19280         (cb_line_change): Call dump_queued_macros.
19281         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
19282
19283 2008-04-02  Anatoly Sokolov <aesok@post.ru>
19284
19285         * config/avr/predicates.md (io_address_operand): New predicate.
19286         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
19287         * config/avr/avr.c (avr_io_address_p): Remove function.
19288         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of
19289         'avr_io_address_p' function.
19290         (out_movhi_r_mr): (Ditto.).
19291         (out_movqi_mr_r): (Ditto.).
19292         (out_movhi_mr_r): (Ditto.).
19293         (avr_address_cost): (Ditto.).
19294
19295 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
19296
19297         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
19298         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
19299         in 32bit mode when XMM registers are available to avoid store
19300         forwarding stalls.
19301         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
19302         corresponding post-reload splitters.
19303
19304 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
19305
19306         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
19307         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
19308         __builtin_ia32_roundss.
19309         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
19310         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
19311         __builtin_ia32_roundss.
19312         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
19313         IX86_BUILTIN_SHUFPD here.
19314
19315 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
19316
19317         * config/i386/i386.md (plogic): New.
19318         (plogicprefix): Likewise.
19319
19320         * config/i386/mmx.md (mmx_<code><mode>3): New.
19321         (mmx_and<mode>3): Removed.
19322         (mmx_ior<mode>3): Likewise.
19323         (mmx_xor<mode>3): Likewise.
19324
19325         * config/i386/sse.md (<code><mode>3): New.
19326         (*<code><mode>3): Likewise.
19327         (*<code><mode>3): Likewise.
19328         (<code><mode>3): Likewise.
19329         (*sse_<code><mode>3): Likewise.
19330         (*sse2_<code><mode>3): Likewise.
19331         (<code>tf3): Likewise.
19332         (*<code>tf3): Likewise.
19333         (and<mode>3): Likewise.
19334         (*and<mode>3): Likewise.
19335         (ior<mode>3): Removed.
19336         (*ior<mode>3): Likewise.
19337         (xor<mode>3): Likewise.
19338         (*xor<mode>3): Likewise.
19339         (*and<mode>3): Likewise.
19340         (*ior<mode>3): Likewise.
19341         (*xor<mode>3): Likewise.
19342         (and<mode>3): Likewise.
19343         (*sse_and<mode>3): Likewise.
19344         (*sse2_and<mode>3): Likewise.
19345         (andtf3): Likewise.
19346         (*andtf3): Likewise.
19347         (ior<mode>3): Likewise.
19348         (*sse_ior<mode>3): Likewise.
19349         (*sse2_ior<mode>3): Likewise.
19350         (iortf3): Likewise.
19351         (*iortf3): Likewise.
19352         (xor<mode>3): Likewise.
19353         (*sse_xor<mode>3): Likewise.
19354         (*sse2_xor<mode>3): Likewise.
19355         (xortf3): Likewise.
19356         (*xortf3): Likewise.
19357
19358 2008-04-02  Richard Guenther  <rguenther@suse.de>
19359
19360         PR tree-optimization/14495
19361         PR tree-optimization/34793
19362         * tree-vrp.c (struct switch_update): New structure.
19363         (to_remove_edges, to_update_switch_stmts): New VECs.
19364         (simplify_switch_using_ranges): New function.  Remove not taken
19365         case labels and edges.
19366         (simplify_stmt_using_ranges): Call it.
19367         (identify_jump_threads): Mark edges we have queued for removal
19368         so we don't thread them.
19369         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
19370         case label vector.
19371         * tree-cfg.c (group_case_labels): Deal with missing default label.
19372         (tree_verify_flow_info): Allow missing default label.
19373         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
19374         (emit_case_nodes): Likewise.
19375         (expand_case): Do not rely on the default label to be present.
19376         * expr.c (try_casesi): Deal with NULL default_label.
19377         (do_tablejump): Likewise.
19378
19379 2008-04-02  Richard Guenther  <rguenther@suse.de>
19380
19381         PR tree-optimization/14495
19382         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
19383         SWITCH_EXPR here ...
19384         (vrp_visit_switch_stmt): ... but here (new function).
19385         (find_case_label_index): New helper function.
19386         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
19387
19388 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
19389
19390         * fwprop.c: Fix ISO-C99ism.
19391
19392 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
19393
19394         PR bootstrap/35752
19395         * Makefile.in (objdir): Set it here.
19396         * configure.ac: Not here.  Find dynamic linker characteristics.
19397         * exec-tool.in: Use them.
19398         * aclocal.m4: Regenerate.
19399         * configure: Regenerate.
19400
19401 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
19402
19403         * expr.c (expand_var): Delete it.
19404         * expr.h (expand_var): Delete prototype.
19405         * function.c (expand_function_start): Use expand_decl instead.
19406         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
19407         langhook.
19408
19409 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
19410
19411         PR rtl-optimization/35542
19412         * fwprop.c (forward_propagate_and_simplify): Replace
19413         loc_reg_mentioned_in_p with reg_mentioned_p.
19414
19415 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
19416
19417         PR rtl-optimization/35281
19418         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
19419         (propagate_rtx_1): Handle PR_HANDLE_MEM.
19420         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
19421         (varying_mem_p): Move above propagate_rtx.
19422         (all_uses_available_at): Do not check MEMs.
19423
19424 2008-04-02  Rafael Espíndola  <espindola@google.com>
19425
19426         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
19427         (register_edge_assert_for_2): Split the cond argument.
19428         (register_edge_assert_for_1): Adjust for the change in
19429         register_edge_assert_for_2.
19430         (register_edge_assert_for): Split the cond argument.
19431         (find_switch_asserts): Adjust for the change in
19432         register_edge_assert_for.
19433
19434 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
19435
19436         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
19437         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
19438         offsets for 64-bit mingw.
19439         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
19440         abi for x86_64-pc-mingw.
19441
19442 2008-04-02  Richard Guenther  <rguenther@suse.de>
19443
19444         * tree-vrp.c (extract_range_from_assert): Make sure to not
19445         produce range min/max with TREE_OVERFOW set.
19446         If merging a anti-range and a range keep the anti-range if
19447         the range covers all values of the type.
19448         (register_edge_assert_for_2): Only allow sign-changing
19449         conversions in detecting canonical range checks.  Also
19450         register an assert for the unsigned name if useful.
19451
19452         PR tree-optimization/35787
19453         * tree-vrp.c (vrp_val_max): New function.
19454         (vrp_val_min): Likewise.
19455         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
19456         (vrp_val_is_min): Likewise.
19457         (supports_overflow_infinity): Use vrp_val_{min,max}.
19458         (negative_overflow_infinity): Likewise.
19459         (positive_overflow_infinity): Likewise.
19460         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
19461         (is_positive_overflow_infinity): Likewise.
19462         (is_overflow_infinity): Likewise.
19463         (avoid_overflow_infinity): Use vrp_val_{min,max} and
19464         vrp_val_is_{min,max}.
19465         (set_and_canonicalize_value_range): Canonicalize anti-ranges
19466         to ranges if possible.  Avoid empty ranges.
19467
19468 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19469
19470         PR middle-end/35705
19471         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
19472         the expression is a function address.
19473
19474 2008-04-01  George Helffrich  <george@gcc.gnu.org>
19475
19476         PR fortran/35154, fortran/23057
19477         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
19478         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
19479         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
19480         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
19481         in common.
19482         (dbxout_syms): Check for COMMON-based symbol and wrap in
19483         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
19484         in bracket for efficiency.
19485
19486         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
19487         using DW_TAG_common_block + member offset.
19488         (add_pubname_string): New function.
19489         (dw_expand_expr): New function to find block name and offset for
19490         COMMON var.
19491         (common_check): New function to check whether symbol in Fortran COMMON.
19492         (gen_variable_die): If COMMON, use DW_TAG_common_block.
19493
19494 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
19495
19496         PR c/35436
19497         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
19498
19499 2008-04-02  Ben Elliston  <bje@au.ibm.com>
19500
19501         * config/v850/v850.md (casesi): Remove if (0) code.
19502         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
19503         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
19504
19505 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
19506
19507         * config/i386/i386.md (rex64suffix): New mode attribute.
19508         (floathi<mode>2): Disable expander for SSE math.
19509         (*floathi<mode>2_1): New insn insn_and_split pattern.
19510         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
19511         corresponding post-reload splitters.
19512         (*floathi<mode>2_i387): New macroized insn pattern.
19513         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
19514         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
19515         insn_and_split pattern.
19516         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
19517         New macroized instruction patterns and corresponding post-reload
19518         splitters.
19519         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
19520         and corresponding post-reload splitters.
19521         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
19522         New macroized instruction patterns.
19523         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
19524         macroized instruction patterns and corresponding post-reload splitters.
19525         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
19526         corresponding post-reload splitters.
19527         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
19528         New macroized instruction patterns.
19529         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
19530         corresponding post-reload splitters.
19531         (*floatsi<mode>2_i387): New macroized instruction patterns.
19532
19533 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
19534
19535         * config/i386/i386.md (smaxmin): New.
19536         (umaxmin): Likewise.
19537         (maxminiprefix): Likewise.
19538         (maxminfprefix): Likewise.
19539         (<code><mode>3): Likewise.
19540         (smin<mode>3): Removed.
19541         (smax<mode>3): Likewise.
19542
19543         * config/i386/mmx.md (mmx_<code>v2sf3): New.
19544         (mmx_<code>v4hi3): Likewise.
19545         (mmx_<code>v8qi3): Likewise.
19546         (mmx_smaxv2sf3): Removed.
19547         (mmx_sminv2sf3): Likewise.
19548         (mmx_umaxv8qi3): Likewise.
19549         (mmx_smaxv4hi3): Likewise.
19550         (mmx_uminv8qi3): Likewise.
19551         (mmx_sminv4hi3): Likewise.
19552
19553         * config/i386/sse.md (<addsub><mode>3): New.
19554         (*<addsub><mode>3): Likewise.
19555         (<sse>_vm<addsub><mode>3): Likewise.
19556         (<maxmin><mode>3): Likewise.
19557         (*<maxmin><mode>3_finite): Likewise.
19558         (*<maxmin><mode>3): Likewise.
19559         (<sse>_vm<maxmin><mode>3): Likewise.
19560         (sse3_h<addsub>v4sf3): Likewise.
19561         (sse3_h<addsub>v2df3): Likewise.
19562         (<maxmin>v16qi3): Likewise.
19563         (*<maxmin>v16qi3): Likewise.
19564         (<maxmin>v8hi3): Likewise.
19565         (*<maxmin>v8hi3): Likewise.
19566         (*sse4_1_<maxmin><mode>3): Likewise.
19567         (*sse4_1_<maxmin><mode>3): Likewise.
19568         (add<mode>3): Removed.
19569         (*add<mode>3): Likewise.
19570         (<sse>_vmadd<mode>3): Likewise.
19571         (sub<mode>3): Likewise.
19572         (*sub<mode>3): Likewise.
19573         (<sse>_vmsub<mode>3): Likewise.
19574         (smin<mode>3): Likewise.
19575         (*smin<mode>3_finite): Likewise.
19576         (*smin<mode>3): Likewise.
19577         (<sse>_vmsmin<mode>3): Likewise.
19578         (smax<mode>3): Likewise.
19579         (*smax<mode>3_finite): Likewise.
19580         (*smax<mode>3): Likewise.
19581         (<sse>_vmsmax<mode>3): Likewise.
19582         (sse3_haddv4sf3): Likewise.
19583         (sse3_haddv2df3): Likewise.
19584         (sse3_hsubv4sf3): Likewise.
19585         (sse3_hsubv2df3): Likewise.
19586         (umaxv16qi3): Likewise.
19587         (*umaxv16qi3): Likewise.
19588         (smaxv8hi3): Likewise.
19589         (*smaxv8hi3): Likewise.
19590         (*sse4_1_smax<mode>3): Likewise.
19591         (*sse4_1_umax<mode>3): Likewise.
19592         (uminv16qi3): Likewise.
19593         (*uminv16qi3): Likewise.
19594         (sminv8hi3): Likewise.
19595         (*sminv8hi3): Likewise.
19596         (*sse4_1_smin<mode>3): Likewise.
19597         (*sse4_1_umin<mode>3): Likewise.
19598
19599 2008-04-01  Rafael Espíndola  <espindola@google.com>
19600
19601         * tree-cfg.c (verify_expr): remove in_phi.
19602         (verify_stmt): Don't call walk_tree with verify_expr. Use
19603         is_gimple_min_invariant instead of is_gimple_val.
19604
19605 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
19606
19607         * doc/include/gpl_v3.texi: Update for manpage generation.
19608         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
19609         gpl.texi.
19610         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
19611         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
19612         gpl_v3.texi instead of gpl.texi.
19613         (gpl.pod): New.
19614
19615 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
19616
19617         PR pch/13675
19618         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
19619
19620 2008-04-01  Rafael Espíndola  <espindola@google.com>
19621
19622         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
19623         (extract_code_and_val_from_cond): Use
19624         extract_code_and_val_from_cond_with_ops.
19625
19626 2008-04-01  Jan Hubicka  <jh@suse.cz>
19627
19628         * function.c (free_after_compilation): Free epilogue_delay_list.
19629         (prepare_function_start): Assert that previous compilation was freed.
19630
19631 2008-04-01  Jan Hubicka  <jh@suse.cz>
19632             Jim Wilson  <wilson@tuliptree.org>
19633             Andreas Tobler <andreast@gcc.gnu.org>
19634
19635         PR middle-end/35781
19636         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
19637         rtl.emit instead cfun->emit.
19638         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
19639         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
19640
19641 2008-04-01  Ben Elliston  <bje@au.ibm.com>
19642
19643         * doc/c-tree.texi (Function Basics): Fix grammatical error.
19644
19645 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
19646
19647         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
19648         New options
19649         (fprofile-use): Add var flag_profile_use
19650         * coverage.c (coverage_begin_output): Do not open a gcno file for
19651         output only if -ftest-coverage is set.
19652         Do not add getpwd() to gcda file path.
19653         (build_gcov_info): Check the new flag
19654         flag_profile_datafile_relative_path.
19655         (coverage_init): Use profile_data_prefix.
19656         Read profile counter only if flag_profile_use is set.
19657         * opts.c (common_handle_option): New option fprofile-use=,
19658         fprofile-dir=, fprofile-generate=.
19659         * toplev.c (profile_data_prefix): New variable definition.
19660         * toplev.h (profile_data_prefix): New declaration.
19661         * doc/invoke.tex (Option Summary, Optimization Options):
19662         Add new options.
19663
19664 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
19665
19666         * varasm.c (output_constant_pool_1): In LABEL_REF check,
19667         use tmp consistently.
19668
19669         PR target/35695
19670         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
19671         * config/ia64/ia64.c (rtx_needs_barrier): Handle
19672         UNSPEC_FR_RECIP_APPROX_RES.
19673         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
19674
19675 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
19676
19677         PR c/35750
19678         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
19679
19680 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
19681
19682         PR middle-end/30186
19683         * fold-const.c (fold_indirect_ref_1): Support accessing non first
19684         element of the vector via a pointer.
19685
19686 2008-03-31  Ian Lance Taylor  <iant@google.com>
19687
19688         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
19689
19690 2008-03-31  Jan Hubicka  <jh@suse.cz>
19691
19692         * builtins.c (expand_builtin_setjmp_receiver): Update call of
19693         get_arg_pointer_save_area.
19694         * expr.c (init_expr): Just clear out rtl.expr.
19695         * function.c (free_after_compilation): Clear out whole RTL structure.
19696         (get_func_frame_size): Merge into ...
19697         (get_frame_size): ... this one.
19698         (assign_stack_local_1): Merge into ...
19699         (assign_stack_local): ... this one.
19700         (expand_function_end): Update call of get_arg_pointer_save_area.
19701         (get_art_pointer_save_area): Remove cfun argument.
19702         * function.h (emit_status): regno_pointer_align does not need length
19703         attribute. Move x_regno_reg_rtx to ...
19704         (regno_reg_rtx): ... new global array.
19705         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
19706         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
19707         apply_args_value, forced_labels, stack_pointer_delta):
19708         Update accestors.
19709         (struct varasm_status): Move here from varasm.c
19710         (struct rtl_data): New. Move here some fields from struct function.
19711         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
19712         frame_offset, stack_check_probe_note, arg_pointer_save_area,
19713         used_temp_slots avail_temp_slots, temp_slot_level,
19714         nonlocal_goto_handler_labels): Update accesstors.
19715         (rtl): New global variable.
19716         (struct function): Move some fileds to rtl_data.
19717         (get_arg_pointer_save_area): Update prototype.
19718         * emit-rtl.c (rtl): Declare.
19719         (regno_reg_rtx): Declare.
19720         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
19721         Update.
19722         (gen_reg_rtx): Update.
19723         (init_virtual_regs): Do not tate emit_status argument.
19724         (init_emit): Do not allocate emit.
19725         * varasm.c (varasm_statuc): Move to function.h.
19726         (n_deferred_constatns): Update accestor.
19727         (init_varasm_status): Do not allocate varasm_status.
19728         (force_const_mem, get_pool_size, output_constant_pool): Update.
19729         * stmt.c (force_label_rtx): Do not use x_ prefixes.
19730         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
19731
19732 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
19733
19734         PR rtl-optimization/35729
19735         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
19736         references.
19737
19738 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
19739
19740         PR target/32000
19741         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
19742         load/store if memory is unaligned.
19743         (*movti_rex64): Likewise.
19744
19745         * config/i386/predicates.md (misaligned_operand): New.
19746
19747 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
19748
19749         PR tree-opt/35431
19750         * tree-ssa-phiopt.c (conditional_replacement): Return early for
19751         complex types.
19752
19753 2008-03-31  Jan Beulich  <jbeulich@novell.com>
19754
19755         * config/ia64/constraints.md: Add 'j' constraint.
19756         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
19757         (movdi_internal): Likewise.
19758
19759 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
19760
19761         PR c/35748
19762         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
19763
19764 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
19765
19766         PR target/35757
19767         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
19768         proper error message for the third argument on blendpd and
19769         blendps.
19770
19771         * config/i386/sse.md (blendbits): New.
19772         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
19773
19774 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
19775
19776         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
19777
19778 2008-03-30  Richard Guenther  <rguenther@suse.de>
19779
19780         PR middle-end/31023
19781         * fold-const.c (fold_sign_changed_comparison): Do leave
19782         conversions to base-types alone.
19783
19784 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
19785
19786         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
19787         the link register if one altivec register is be saved.
19788
19789 2008-03-30  Ben Elliston  <bje@au.ibm.com>
19790
19791         * final.c (final_scan_insn): Remove if (0) code.
19792
19793 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
19794
19795         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
19796
19797 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
19798
19799         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
19800         of V4SFmode to ix86_binary_operator_ok.
19801
19802 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
19803
19804         * config/i386/i386.c (override_options): Initialize
19805         ix86_veclib_handler to ix86_veclibabi_svml when
19806         -mveclibabi=svml is used.
19807         (ix86_veclibabi_svml): New function for SVML ABI style
19808         vectorization support.
19809         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
19810
19811 2008-03-28  Rafael Espíndola  <espindola@google.com>
19812
19813         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
19814         (tree_binary_nonnegative_warnv_p): Make it public.
19815         (tree_single_nonnegative_warnv_p): Make it public.
19816         (tree_invalid_nonnegative_warnv_p): Make it public.
19817         (tree_unary_nonzero_warnv_p): Make it public.
19818         (tree_binary_nonzero_warnv_p): Make it public
19819         (tree_single_nonzero_warnv_p): Make it public.
19820         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
19821         (extract_range_from_binary_expr): Split the expr argument.
19822         (extract_range_from_unary_expr): Split the expr argument.
19823         (extract_range_from_comparison): Split the expr argument.
19824         (extract_range_from_expr): Use the new aux functions.
19825         (vrp_evaluate_conditional_warnv): Use
19826         vrp_evaluate_conditional_warnv_with_ops.
19827         * tree.h (tree_unary_nonzero_warnv_p): Declare.
19828         (tree_binary_nonzero_warnv_p): Declare.
19829         (tree_single_nonzero_warnv_p): Declare.
19830         (tree_expr_nonzero_warnv_p): Declare.
19831         (tree_unary_nonnegative_warnv_p): Declare.
19832         (tree_binary_nonnegative_warnv_p): Declare.
19833         (tree_single_nonnegative_warnv_p): Declare.
19834         (tree_invalid_nonnegative_warnv_p): Declare.
19835
19836 2008-03-28  Richard Guenther  <rguenther@suse.de>
19837
19838         PR tree-optimization/30317
19839         PR tree-optimization/30911
19840         PR tree-optimization/34793
19841         * tree-vrp.c (set_and_canonicalize_value_range): New function.
19842         (struct assert_locus_d): New member EXPR.
19843         (register_new_assert_for): Add EXPR parameter to support
19844         ASSERT_EXPR <name, expr OP limit>.
19845         (register_edge_assert_for_1): Adjust callers.
19846         (find_assert_locations): Likewise.
19847         (process_assert_insertions_for): Build condition from expression.
19848         (extract_range_from_assert): Handle ASSERT_EXPRs
19849         of the form ASSERT_EXPR <name, expr OP limit>.
19850         (register_edge_assert_for_2): New helper registering
19851         asserts for comparisons.  Recognize range tests of the form
19852         (unsigned)i - CST1 OP CST2.
19853         (register_edge_assert_for_1): Use it.
19854         (register_edge_assert_for): Likewise.
19855         (needs_overflow_infinity): Integer sub-types
19856         do not need overflow infinities.
19857         (vrp_val_is_max): The extreme values of integer sub-types
19858         are those of the base type.
19859         (vrp_val_is_min): Likewise.
19860         * tree.def (ASSERT_EXPR): Document extra allowed conditional
19861         expressions.
19862
19863 2008-03-28  Nick Clifton  <nickc@redhat.com>
19864
19865         PR target/31110
19866         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
19867         Return GENERAL_REGS for stack adjustment reloads.
19868
19869 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
19870
19871         PR target/31334
19872         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
19873         const_vector when all the vectors are constant.
19874
19875 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
19876
19877         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
19878         comparisons.
19879         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
19880         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
19881         (scc_sf): New.
19882         (s<code>_sf): Use new scc_sf attribute for opcode names.
19883
19884 2008-03-27  Tom Tromey  <tromey@redhat.com>
19885
19886         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
19887         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
19888         config/spu/t-spu-elf, config/i386/t-interix,
19889         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
19890         config/i386/x-darwin, config/i386/x-mingw32,
19891         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
19892         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
19893         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
19894         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
19895         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
19896         config/rs6000/x-darwin, config/rs6000/t-rs6000,
19897         config/score/t-score-elf, config/arm/t-strongarm-pe,
19898         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
19899         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
19900         Revert automatic dependency patch.
19901
19902 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
19903
19904         PR target/35657
19905         * config/i386/i386.c (ix86_function_arg_boundary): Align
19906         decimal floating point to its natural boundary.
19907
19908 2008-03-27  Richard Guenther  <rguenther@suse.de>
19909
19910         PR middle-end/35716
19911         * fold-const.c (fold_comparison): Restrict distinct decl
19912         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
19913         solely rely on operand_equal_p.
19914
19915 2008-03-27  Richard Guenther  <rguenther@suse.de>
19916
19917         PR c/32511
19918         * c-common.c (handle_weak_attribute): Reject combination of
19919         weak and inline.
19920
19921 2008-03-27  Richard Guenther  <rguenther@suse.de>
19922
19923         PR tree-optimization/32810
19924         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
19925         conversions from DECL_INITIAL.
19926         (fold_const_aggregate_ref): Likewise from constructor elements.
19927
19928 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
19929
19930         * tree-affine.h (aff_combination_expand): Declare.
19931         (get_inner_reference_aff): Likewise.
19932         * tree-affine.c (aff_combination_expand): Split out from
19933         tree_to_aff_combination_expand.
19934         (get_inner_reference_aff): New function.
19935         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
19936         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
19937         (struct lim_aux_data): sm_done field removed.
19938         (mem_ref_loc_p, mem_ref_locs_p): New types.
19939         (struct mem_ref): Added id, stored, accesses_in_loop,
19940         indep_loop, dep_loop, indep_ref, dep_ref fields.
19941         Removed is_stored, locs and next fields.
19942         (memory_accesses): New variable.
19943         (movement_possibility): Do not allow moving statements
19944         that store to memory.
19945         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
19946         New functions.
19947         (determine_max_movement): For statements with memory references,
19948         find the outermost loop in that the reference is independent.
19949         (move_computations_stmt): Mark the virtual operands for renaming.
19950         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
19951         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
19952         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
19953         add_vop_ref_mapping, create_vop_ref_mapping_loop,
19954         create_vop_ref_mapping, analyze_memory_references,
19955         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
19956         get_all_locs_in_loop, ref_always_accessed_p,
19957         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
19958         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
19959         store_motion_loop, store_motion): New functions.
19960         (struct vop_to_refs_elt): New type.
19961         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
19962         memref_hash, memref_eq, hoist_memory_references): Rewritten.
19963         (schedule_sm): Replaced by...
19964         (execute_sm): ... this.
19965         (determine_lsm_ref, hoist_memory_references,
19966         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
19967         find_more_ref_vops, free_mem_ref, free_mem_refs,
19968         determine_lsm_loop, determine_lsm): Removed.
19969         (tree_ssa_lim_finalize): Free data structures used by store motion.
19970         (tree_ssa_lim): Call analyze_memory_references.  Use
19971         store_motion instead of determine_lsm.
19972
19973 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
19974
19975         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
19976         rename tmake_file to m68hc11/t-m68hc11.
19977         (mcore): Set inhibit_libc to true.
19978         * config.host (alpha*-dec-*vms*): Set extra_programs.
19979         (interix3*): Don't use host_xmake_file.
19980         * configure.ac: Let config.gcc override inhibit_libc.
19981         * configure: Regenerate.
19982
19983         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
19984         * config/t-openbsd-thread: Remove commented out lines.
19985
19986         * config/x-interix: Remove.
19987
19988         * config/m68hc11/t-m68hc11-gas: Rename to...
19989         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
19990
19991         * config/mcore/t-mcore: Remove T_CFLAGS.
19992         * config/mcore/t-mcore-pe: Likewise.
19993
19994 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
19995
19996         * configure.ac: Replace custom __GNU_SOURCE test with
19997         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
19998         * aclocal.m4: Regenerate.
19999         * configure: Regenerate.
20000         * config.in: Regenerate.
20001
20002 2008-03-27  Richard Guenther  <rguenther@suse.de>
20003
20004         * fold-const.c (target.h): Include.
20005         (fold_comparison): Fold comparison of addresses of decls
20006         that bind locally or of constants.  Consolidate address folding code.
20007         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
20008         results from fold_binary_to_constant.
20009         (compare_values_warnv): Likewise.
20010
20011 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
20012
20013         PR middle-end/35429
20014         * fold-const.c (fold_truthop): Check for integeral types when folding
20015         a == 0 && b == 0 and a != 0 || b != 0 .
20016
20017 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
20018
20019         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
20020
20021 2008-03-26  Andreas Schwab  <schwab@suse.de>
20022
20023         * doc/invoke.texi: Fix use of @item vs. @itemx.
20024
20025 2008-03-26  Tom Tromey  <tromey@redhat.com>
20026
20027         * Makefile.in (build/gensupport.o, build/print-rtl.o,
20028         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
20029         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
20030         build/gencodes.o, build/genconditions.o, build/genconfig.o,
20031         build/genconstants.o, build/genemit.o, build/genextract.o,
20032         build/genflags.o, build/genmddeps.o, build/genopinit.o,
20033         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
20034         options.h.
20035
20036 2008-03-26  Richard Guenther  <rguenther@suse.de>
20037
20038         Revert
20039         2008-03-26  Richard Guenther  <rguenther@suse.de>
20040
20041         * fold-const.c (target.h): Include.
20042         (fold_comparison): Fold comparison of addresses of two decls
20043         that bind locally.  Consolidate address folding code.
20044
20045 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20046
20047         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
20048         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
20049         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
20050         dconstsqrt2, dconstthird, dconste and/or dconst10.
20051         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
20052         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
20053         dconstsqrt2, dconste): Delete.
20054         (init_emit_once): Likewise.  Simplify initializing dconstm1.
20055         Constify variable.
20056         * real.c (get_real_const): New.
20057         * real.h (dconst3, dconst10, dconstm2, dconstthird,
20058         dconstsqrt2, dconste): Delete.
20059         (real_value_const, get_real_const): New.
20060
20061 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
20062
20063         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
20064
20065         * config/i386/i386.c (ix86_function_arg_boundary): Check
20066         BIGGEST_ALIGNMENT instead of 128.
20067         (setup_incoming_varargs_64): Likewise.
20068
20069 2008-03-26  Tom Tromey  <tromey@redhat.com>
20070
20071         * Makefile.in (DEPFILES): Add missing '/'.
20072
20073 2008-03-26  Richard Guenther  <rguenther@suse.de>
20074
20075         * fold-const.c (target.h): Include.
20076         (fold_comparison): Fold comparison of addresses of two decls
20077         that bind locally.  Consolidate address folding code.
20078
20079 2008-03-26  Nick Clifton  <nickc@redhat.com>
20080
20081         PR target/31232
20082         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
20083         not allow INT+INT as a legitimate addressing mode.
20084
20085 2008-03-26  Richard Guenther  <rguenther@suse.de>
20086
20087         * tree-flow.h (widen_bitfield): Remove declaration.
20088         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
20089         (widen_bitfield): Remove function.
20090         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
20091         code.
20092
20093 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
20094
20095         PR target/31558
20096         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
20097         error_mark_node's.
20098
20099 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
20100
20101         PR rtl-optimization/35232
20102         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
20103         (forget_old_reloads_1, forget_marked_reloads): Don't clear
20104         reg_reloaded_call_part_clobbered here.
20105         (reload_regs_reach_end_p): New function.
20106         (reload_reg_rtx_for_input): New variable.
20107         (reload_reg_rtx_for_output): Likewise.
20108         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
20109         when reassigning a pseudo register.  Load reloadreg from
20110         reload_reg_rtx_for_input, moving the mode and register
20111         calculation to...
20112         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
20113         instead of the original when deciding whether an input reload
20114         would be a no-op or whether an output reload can be deleted.
20115         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
20116         when setting up new_spill_reg_store.  Load it from
20117         reload_reg_rtx_for_output, moving the mode and register
20118         calculation to...
20119         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
20120         instead of the original when deciding whether an output reload
20121         would be a no-op.  Do the same when modifying insn notes.
20122         Use rtx_equal_p instead of == to compare the registers.
20123         (inherit_piecemeal_p): Take a mode and two register numbers
20124         as argument.
20125         (emit_reload_insns): Clear new_spill_reg_store for every hard
20126         register in the reload register.  Remove spill registers
20127         from reg_reloaded_valid before considering whether to record
20128         inheritance information for them.  Use reload_reg_rtx_for_output
20129         instead of reg_rtx when recording output reloads.  Use
20130         reload_reg_rtx_for_input instead of reg_rtx when recording
20131         input reloads.  Set or clear reg_reloaded_call_part_clobbered
20132         at the same time as setting reg_reloaded_valid.
20133         (delete_output_reload): Add a new_reload_reg parameter and use it
20134         instead of rld[j].reg_rtx.
20135         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
20136         calls accordingly.
20137
20138 2008-03-25  Tom Tromey  <tromey@redhat.com>
20139
20140         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
20141         (build/genattr.o): Likewise.
20142         (build/genattrtab.o): Likewise.
20143         (build/gencodes.o): Likewise.
20144         (build/genconfig.o): Likewise.
20145         (build/genconstants.o): Likewise.
20146         (build/genemit.o): Likewise.
20147         (build/genextract.o): Likewise.
20148         (build/genflags.o): Likewise.
20149
20150 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
20151
20152         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
20153         instead of size_int for integer types.
20154         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
20155         to match type of MINUS_EXPR.
20156
20157 2008-03-25  Tom Tromey  <tromey@redhat.com>
20158
20159         * configure: Rebuilt.
20160         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
20161         Makefile.
20162
20163 2008-03-25  Tom Tromey  <tromey@redhat.com>
20164
20165         * config/x-solaris (host-solaris.o): Update.
20166         * config/x-linux (host-linux.o): Update.
20167         * config/x-hpux (host-hpux.o): Update.
20168         * config/x-darwin (host-darwin.o): Update.
20169         * config/v850/t-v850e (v850-c.o): Update.
20170         * config/v850/t-v850 (v850-c.o): Update.
20171         * config/t-vxworks (vxworks.o): Update.
20172         * config/t-sol2 (sol2-c.o, sol2.o): Update.
20173         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
20174         * config/spu/t-spu-elf (spu-c.o): Update.
20175         (spu.o): Remove.
20176         * config/sh/t-symbian (sh-c.o): Update.
20177         (symbian.o): Update.
20178         * config/sh/t-sh (sh-c.o): Update.
20179         * config/score/t-score-elf (score7.o, score3.o): Update.
20180         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
20181         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
20182         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
20183         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
20184         (rs6000.o): Remove.
20185         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
20186         * config/m32c/t-m32c (m32c-pragma.o): Update.
20187         * config/ia64/t-ia64 (ia64-c.o): Update.
20188         * config/i386/x-mingw32 (host-mingw32.o): Update.
20189         * config/i386/x-i386 (driver-i386.o): Update.
20190         * config/i386/x-darwin (host-i386-darwin.o): Update.
20191         * config/i386/x-cygwin (host-cygwin.o): Update.
20192         * config/i386/t-nwld (nwld.o): Update.
20193         * config/i386/t-netware (netware.o): Update.
20194         * config/i386/t-interix (winnt.o): Update.
20195         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
20196         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
20197         msformat-c.o): Update.
20198         * config/bfin/t-bfin-linux (generated_files): Add
20199         linux-sysroot-suffix.h.
20200         * config/arm/t-wince-pe (pe.o): Update.
20201         * config/arm/t-strongarm-pe (pe.o): Update.
20202         * config/arm/t-pe (pe.o): Update.
20203         * config/arm/t-arm (arm-c.o): Update.
20204         * doc/install.texi (Prerequisites): Require make 3.80.
20205         * Makefile.in: Remove .o targets.
20206         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
20207         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
20208         (simple_generated_h, simple_generated_c): Move earlier.
20209         (generated_files): New variable.
20210         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
20211         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
20212         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
20213         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
20214         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
20215         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
20216         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
20217         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
20218         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
20219         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
20220         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
20221         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
20222         (.c.o): Remove.
20223         (COMPILE.base, COMPILE): New variables.
20224         (%.o): New pattern rule.
20225         (ALL_HOST_OBJS): New variable.
20226         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
20227         (dummy-checksum.o, cc1-checksum.o): Remove.
20228         (DRIVER_SHLIB): New variable.
20229         (DRIVER_DEFINES): Use it.
20230         (gencondmd.c): Move out of build/.
20231         (s-conditions): Update.
20232         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
20233         (ALL_BUILD_OBJS): Likewise.
20234         (build/%.o): Use BUILDCOMPILE.
20235         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
20236         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
20237         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
20238         build/gencheck.o, build/gencodes.o, build/genconditions.o,
20239         build/genconfig.o, build/genconstants.o, build/genemit.o,
20240         build/genextract.o, build/genflags.o, build/genmddeps.o,
20241         build/genopinit.o, build/genoutput.o, build/genpeep.o,
20242         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
20243         build/gen-protos.o, build/scan.o, build/fix-header.o,
20244         build/scan-decls.o): Simplify.
20245         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
20246         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
20247         prefix.o, toplev.o): Reduce to variable setting.
20248         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
20249         ($(out_object_file), gcc-options.o): New targets.
20250         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
20251         * configure: Rebuilt.
20252         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
20253         * doc/sourcebuild.texi (Front End Directory): Document new variable.
20254
20255 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
20256
20257         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
20258         complain when we hit an error, return ERROR_MARK_NODE.
20259
20260 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
20261
20262         * config/sh/constraints.md (Pso, Psz): New constraints.
20263         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
20264         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
20265
20266 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
20267
20268         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
20269         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
20270
20271 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
20272
20273         * config/sh/sh.md (prefetch): Add condition for SH2A target.
20274         (prefetch_sh2a): New.
20275
20276 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
20277             Naveen.H.S  <naveen.hs@kpitcummins.com>
20278
20279         * config/sh/constraints.md (I28): New constraint.
20280         * config/sh/sh.c (broken_move): Add support for movi20s.
20281         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
20282
20283 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
20284             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
20285             Naveen.H.S  <naveen.hs@kpitcummins.com>
20286
20287         * config/sh/sh.c (SH_ATTRIBUTES): Define.
20288         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
20289         (print_operand): Handle resbank in %@ operand code.
20290         (sh_encode_section_info): New.
20291         (push_regs): Add conditions for resbank.
20292         (sh_expand_epilogue): Likewise.
20293         (sh_insert_attributes): Likewise.
20294         (sh_attribute_table): Likewise.
20295         (sh_handle_resbank_handler_attribute): New.
20296         (sh2a_handle_function_vector_handler_attribute): New.
20297         (sh2a_is_function_vector_call): New.
20298         (sh2a_get_function_vector_number): New.
20299         (sh2a_function_vector_p): New.
20300         (sh_cfun_resbank_handler_p): New.
20301         * config/sh/sh.md (calli): Emit jsr/n if possible.
20302         (calli_tbr_rel): New.
20303         (calli_pcrel): Emit jsr/n if possible.
20304         (return_i): Emit rts/n if possible.
20305         (call_valuei_tbr_rel): New.
20306         (call_valuei_pcrel): Add condition for SH2A target.
20307         (call_value): Likewise.
20308         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
20309         (sh2a_get_function_vector_number): Likewise.
20310         (sh2a_is_function_vector_call): Likewise.
20311         * doc/extend.texi: Document TBR relative addressing of SH2A.
20312         (resbank): Add description for SH2A.
20313
20314 2008-03-24  Richard Guenther  <rguenther@suse.de>
20315
20316         PR c/22371
20317         * gimplify.c (gimplify_modify_expr): For frontend type-correct
20318         pointer assignments change conversions according to middle-end rules.
20319         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
20320         * configure.ac: Include type checking in yes.
20321         * configure: Regenerate.
20322
20323 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
20324
20325         * diagnostic.c (diagnostic_count_diagnostic): Delete.
20326         (diagnostic_report_diagnostic): Update. Handle ICEs here.
20327
20328 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
20329
20330         * gthr-vxworks.h (UNUSED): Define.
20331
20332 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
20333
20334         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
20335
20336 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
20337
20338         * doc/extend.texi (Function Attributes): Add missing comma in the
20339         example of the "alloc_size" attribute.
20340
20341 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
20342
20343         Revert:
20344         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
20345
20346         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
20347         32bit host.
20348
20349         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
20350
20351         PR target/35496
20352         * stor-layout.c (update_alignment_for_field): Set minimum alignment
20353         of the underlying type of a MS bitfield layout to the natural
20354         alignment of the type.
20355
20356         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
20357
20358         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
20359         to their natural alignment to avoid store forwarding stalls.
20360
20361 2008-03-22  Richard Guenther  <rguenther@suse.de>
20362
20363         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
20364         For PHI nodes verify the address is invariant.
20365         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
20366         (get_symbol_constant_value): Use is_gimple_min_invariant.
20367         (maybe_fold_stmt_indirect): Likewise.
20368
20369 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
20370
20371         PR rtl-optimization/33927
20372         * Makefile.in (dse.o): Depend on $(TM_P_H).
20373         * expr.h (extract_low_bits): Declare.
20374         * expmed.c (extract_low_bits): New function.
20375         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
20376         * dse.c: Include tm_p.h.
20377         (find_shift_sequence): Remove the read_reg argument and return the
20378         read value.  Emit the instructions instead of returning them.
20379         Iterate on new_mode rather than calculating it each time.
20380         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
20381         source to NEW_MODE and extract_low_bits to convert the shifted
20382         value to READ_MODE.
20383         (replace_read): Allow the load and store to have different mode
20384         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
20385         or extraction instructions before trying the replacement.  Update
20386         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
20387
20388 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
20389
20390         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
20391         to their natural alignment to avoid store forwarding stalls.
20392
20393 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
20394
20395         PR target/27946
20396         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
20397         encouraging but not allowing gprs for input;
20398         change the input constraint to !f#r.
20399         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
20400         gprs for output;
20401         change the output constraint to !f#r.
20402
20403 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
20404
20405         PR target/13958
20406         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
20407         corresponding post-reload splitters.
20408         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
20409         when x87 FP math is selected.
20410         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
20411         New function prototype.
20412         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
20413         unreachable function to ease macroization of insn patterns.
20414
20415 2008-03-21  Martin Jambor  <mjambor@suse.cz>
20416
20417         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
20418         reference dumps if ddr is NULL or dependence is unknown.
20419
20420 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
20421
20422         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
20423         unsigned extension into account.
20424         (ATOMIC_COMPARE_AND_SWAP): Likewise.
20425         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
20426         Do computations on a scratch register.
20427
20428 2008-03-21  Richard Guenther  <rguenther@suse.de>
20429
20430         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
20431         Use is_gimple_min_invariant instead of TREE_INVARIANT.
20432         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
20433         * tree-ssa-dom.c (record_equality): Likewise.
20434         * tree-inline.c (copy_body_r): Likewise.
20435         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
20436         TREE_INVARIANT.
20437
20438 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
20439
20440         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
20441         as 'delete_unused' argument.
20442
20443 2008-03-20  Richard Guenther  <rguenther@suse.de>
20444
20445         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
20446         special casing of constant qualifiers.
20447         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
20448         care about them in general.
20449         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
20450         regardless of their type.
20451         (fold_stmt_r): Forcefully fold *& if we end up with that.
20452
20453 2008-03-20  Paul Brook  <paul@codesourcery.com>
20454
20455         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
20456         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
20457         linker flags.
20458         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
20459         definition.
20460         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
20461         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
20462
20463 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
20464
20465         * common.opt (Wmudflap): New option.
20466         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
20467         (mx_register_decls): Likewise.
20468         (mudflap_finish_file): Likewise.
20469         * doc/invoke.texi: Document -Wno-mudflap.
20470
20471 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
20472
20473         * c-format.c (replace_format_name_to_system_name): New.
20474         (cmp_attribs): New.
20475         (convert_format_name_to_system_name): New.
20476         (decode_format_attr): Add use of convert_format_name_to_system_name.
20477         (format_types_orig): Add gnu_ prefix to names.
20478         (check_format_info_main): Special treating of \0 escaped names for
20479         supporting multi-character format specifiers as I32, I64.
20480         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
20481         (gnu_target_overrides_format_attributes): New.
20482         * c-format.h: Add structure target_ovr_attr to hold
20483         system specific formatter names.
20484         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
20485         msformat-c.o file to c_target_objs and cxx_target_objs.
20486         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
20487         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
20488         (TARGET_N_FORMAT_TYPES): New.
20489         * config/i386/msformat-c.c: New.
20490         * config/i386/t-cygming: Add build rule for msformat-c.o.
20491         * doc/extend.texi: Add new format names gnu_* and ms_* and
20492         further details.
20493         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
20494
20495 2008-03-20  Ira Rosen  <irar@il.ibm.com>
20496
20497         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
20498         optimizations turned on under -O3.
20499         (ftree-vectorize): Add that the flag is turned on with -O3.
20500
20501 2008-03-20  Ben Elliston  <bje@au.ibm.com>
20502
20503         * regmove.c (try_auto_increment): Fix spelling error in comment.
20504         * final.c (final_scan_insn): Likewise.
20505
20506 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
20507
20508         PR target/14552
20509         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
20510         allocator preferences for "y" and "r" class registers.
20511         ("*mov<mode>_internal"): Ditto.
20512         ("*movv2sf_internal_rex64"): Ditto.
20513         ("*movv2sf_internal"): Ditto.
20514
20515 2008-03-19  Michael Matz  <matz@suse.de>
20516
20517         PR middle-end/35616
20518         * calls.c (expand_call): Check overlap of arguments with call
20519         address for sibcalls.
20520
20521 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
20522
20523         PR target/35496
20524         * stor-layout.c (update_alignment_for_field): Set minimum alignment
20525         of the underlying type of a MS bitfield layout to the natural
20526         alignment of the type.
20527
20528 2008-03-19  Jan Hubicka  <jh@suse.cz>
20529
20530         PR other/35094
20531         * toplev.c (decode_d_option): Handle all CPP flags.
20532         * tree-vrp.c: Update tree_pass descriptors.
20533         * regrename.c: Update tree_pass descriptors.
20534         * fwprop.c: Update tree_pass descriptors.
20535         * doc/invoke.texi: Remove documentation of dropped -d? flags.
20536         * tree-into-ssa.c: Update tree_pass descriptors.
20537         * tree-dump.c: Update tree_pass descriptors.
20538         * tree-complex.c: Update tree_pass descriptors.
20539         * tree-dump.h: Update tree_pass descriptors.
20540         * see.c: Update tree_pass descriptors.
20541         * cgraphbuild.c: Update tree_pass descriptors.
20542         * tracer.c: Update tree_pass descriptors.
20543         * tree-loop-distribution.c: Update tree_pass descriptors.
20544         * cgraph.c: Update tree_pass descriptors.
20545         * postreload-gcse.c: Update tree_pass descriptors.
20546         * postreload.c: Update tree_pass descriptors.
20547         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
20548         * tree-tailcall.c: Update tree_pass descriptors.
20549         * tree-pass.h (tree_opt_pass): Rename to ...
20550         (opt_pass) ... this one; add "type" field and remove letter field.
20551         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
20552         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
20553         all_lowering_passes): Update declaration.
20554         * ipa-cp.c: Update tree_pass descriptors.
20555         * final.c: Update tree_pass descriptors.
20556         * omp-low.c: Update tree_pass descriptors.
20557         * tree-ssa-dse.c: Update tree_pass descriptors.
20558         * ipa-reference.c: Update tree_pass descriptors.
20559         * tree-ssa-uncprop.c: Update tree_pass descriptors.
20560         * auto-inc-dec.c: Update tree_pass descriptors.
20561         * reorg.c: Update tree_pass descriptors.
20562         * cgraphunit.c: Update tree_pass descriptors.
20563         * tree-ssa-copyrename.c: Update tree_pass descriptors.
20564         * tree-ssa-ccp.c: Update tree_pass descriptors.
20565         * df-core.c: Update tree_pass descriptors.
20566         * mode-switching.c: Update tree_pass descriptors.
20567         * tree-nomudflap.c: Update tree_pass descriptors.
20568         * modulo-sched.c: Update tree_pass descriptors.
20569         * ipa-pure-const.c: Update tree_pass descriptors.
20570         * cse.c: Update tree_pass descriptors.
20571         * web.c: Update tree_pass descriptors.
20572         * tree-stdarg.c: Update tree_pass descriptors.
20573         * tree-ssa-math-opts.c: Update tree_pass descriptors.
20574         * tree-ssa-dom.c: Update tree_pass descriptors.
20575         * tree-nrv.c: Update tree_pass descriptors.
20576         * tree-ssa-alias.c: Update tree_pass descriptors.
20577         * loop-init.c: Update tree_pass descriptors.
20578         * gimple-low.c: Update tree_pass descriptors.
20579         * ipa-inline.c: Update tree_pass descriptors.
20580         * tree-ssa-sink.c: Update tree_pass descriptors.
20581         * global.c: Update tree_pass descriptors.
20582         * ifcvt.c: Update tree_pass descriptors.
20583         * jump.c: Update tree_pass descriptors.
20584         * predict.c: Update tree_pass descriptors.
20585         * tree-ssa-loop.c: Update tree_pass descriptors.
20586         * recog.c: Update tree_pass descriptors.
20587         * dse.c: Update tree_pass descriptors.
20588         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
20589         * tree-eh.c: Update tree_pass descriptors.
20590         * regmove.c: Update tree_pass descriptors.
20591         * local-alloc.c
20592         * function.c: Update tree_pass descriptors.
20593         * tree-vectorizer.c: Update tree_pass descriptors.
20594         * gcse.c: Update tree_pass descriptors.
20595         * ipa-type-escape.c: Update tree_pass descriptors.
20596         * tree-if-conv.c: Update tree_pass descriptors.
20597         * init-regs.c: Update tree_pass descriptors.
20598         * ipa.c: Update tree_pass descriptors.
20599         * tree-ssa-phiopt.c: Update tree_pass descriptors.
20600         * rtl-factoring.c: Update tree_pass descriptors.
20601         * lower-subreg.c: Update tree_pass descriptors.
20602         * bt-load.c: Update tree_pass descriptors.
20603         * tree-dfa.c: Update tree_pass descriptors.
20604         * except.c: Update tree_pass descriptors.
20605         * emit-rtl.c: Update tree_pass descriptors.
20606         * cfgexpand.c: Update tree_pass descriptors.
20607         * tree-cfgcleanup.c: Update tree_pass descriptors.
20608         * cfgcleanup.c: Update tree_pass descriptors.
20609         * tree-ssa-pre.c: Update tree_pass descriptors.
20610         * tree-sra.c: Update tree_pass descriptors.
20611         * tree-mudflap.c: Update tree_pass descriptors.
20612         * tree-ssa-copy.c: Update tree_pass descriptors.
20613         * cfglayout.c: Update tree_pass descriptors.
20614         * tree-ssa-forwprop.c: Update tree_pass descriptors.
20615         * tree-ssa-dce.c: Update tree_pass descriptors.
20616         * tree-ssa.c: Update tree_pass descriptors.
20617         * regclass.c: Update tree_pass descriptors.
20618         * integrate.c: Update tree_pass descriptors.
20619         * tree-optimize.c: Update tree_pass descriptors.
20620         * tree-ssa-phiprop.c: Update tree_pass descriptors.
20621         * tree-object-size.c: Update tree_pass descriptors.
20622         * combine.c: Update tree_pass descriptors.
20623         * tree-outof-ssa.c: Update tree_pass descriptors.
20624         * bb-reorder.c: Update tree_pass descriptors.
20625         * stack-ptr-mod.c: Update tree_pass descriptors.
20626         * var-tracking.c: Update tree_pass descriptors.
20627         * tree-profile.c: Update tree_pass descriptors.
20628         * tree-vect-generic.c: Update tree_pass descriptors.
20629         * reg-stack.c: Update tree_pass descriptors.
20630         * sched-rgn.c: Update tree_pass descriptors.
20631         * tree-ssa-structalias.c: Update tree_pass descriptors.
20632         * tree-cfg.c: Update tree_pass descriptors.
20633         * passes.c (current_pass): Update declaration.
20634         (finish_optimization_passes): Update.
20635         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
20636         (register_one_dump_file, register_dump_files_1, next_pass_1):
20637         Update arguments.
20638         (init_optimization_passes): Update handling of new types.
20639         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
20640         * ipa-struct-reorg.c: Update tree_pass descriptors.
20641         * tree-ssa-reassoc.c: Update tree_pass descriptors.
20642         * combine-stack-adj.c: Update tree_pass descriptors.
20643         * cfgrtl.c: Update tree_pass descriptors.
20644         * dce.c: Update tree_pass descriptors.
20645         * tree-ssanames.c: Update tree_pass descriptors.
20646
20647 2008-03-19  Richard Guenther  <rguenther@suse.de>
20648
20649         PR middle-end/35609
20650         * tree-ssa.c (walk_data): New structure.
20651         (warn_uninitialized_var): If not always_executed warn with "maybe"
20652         instead of "is".
20653         (execute_early_warn_uninitialized): Compute post-dominators.
20654         Initialize always_executed before processing each basic block.
20655
20656 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
20657
20658         PR target/35504
20659         * config/i386/i386.c (x86_this_parameter): Calculate correct location
20660         of "this" pointer when "regparm = N" or "fastcall" is in effect.
20661
20662 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20663
20664         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
20665
20666 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
20667
20668         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
20669         is true.
20670         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
20671         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
20672         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
20673         target after ignore has been set, and move there also the commputation
20674         of subtarget and original_target.
20675         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
20676         (LANG_HOOKS_INITIALIZER): Remove it.
20677         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
20678
20679 2008-03-18  Richard Guenther  <rguenther@suse.de>
20680
20681         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
20682         found an expression with constants, note that in the VN for the lhs.
20683         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
20684         fold them to constants if possible.  Run cleanup_cfg if done so.
20685         (execute_pre): Return todo.
20686         (do_pre): Likewise.
20687         (execute_fre): Likewise.
20688         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
20689         of constants.
20690         (get_prop_source_stmt): Look through pointer conversions.
20691
20692 2008-03-18  Jan Hubicka  <jh@suse.cz>
20693
20694         * tree-pretty-print.c: Include predict.h.
20695         (dump_generic_node): Dump predictor.
20696         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
20697         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
20698         * gimple-low.c (lower_stmt): Likewise.
20699         * expr.c (expand_expr_real): Likewise.
20700         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
20701         them.
20702         (build_predict_expr, build_predict_expr): New.
20703         * predict.h (predictor_name, build_predict_expr): Update.
20704         * c-typeck.c (c_finish_bc_stmt): Add prediction.
20705         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
20706         * predict.def (PRED_CONTINUE): Update hitrate.
20707         * tree.def (PREDICT_EXPR): Define.
20708         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
20709         do not handle BIND_EXPR.
20710         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
20711         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
20712         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
20713         operands.
20714
20715 2008-03-18  Michael Matz  <matz@suse.de>
20716
20717         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
20718
20719 2008-03-18  Richard Guenther  <rguenther@suse.de>
20720
20721         * tree-gimple.h (is_gimple_invariant_address): Declare.
20722         (is_gimple_constant): Likewise.
20723         * tree-gimple.c (is_gimple_constant): New function.
20724         (is_gimple_invariant_address): Likewise.
20725         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
20726         and is_gimple_invariant_address.
20727         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
20728         previous change.
20729         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
20730         an addressable base.
20731
20732 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
20733
20734         PR middle-end/35611
20735         * gimplify.c (gimplify_expr): Gimplify second operand of
20736         OMP_ATOMIC_LOAD.
20737
20738 2008-03-17  Richard Guenther  <rguenther@suse.de>
20739
20740         PR tree-optimization/19637
20741         * fold-const.c (fold_unary): Remove restrictions of removing
20742         intermediate pointer-conversions (P2)(P1)P0.
20743         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
20744         conversion to void pointer.
20745         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
20746
20747 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
20748
20749         PR debug/31510
20750         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
20751         emulated thread local variables.
20752
20753 2008-03-16  Richard Guenther  <rguenther@suse.de>
20754
20755         PR middle-end/35607
20756         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
20757         expand TREE_INVARIANT operations that are not gimple invariant.
20758
20759 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
20760
20761         * doc/extend.texi (Alignment): Say that the ABI controls
20762         the __alignof__ for non-strict-alignment targets rather
20763         than being a recommendation.
20764
20765 2008-03-15  Paul Brook  <paul@codesourcery.com>
20766
20767         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
20768         annotations.
20769         (arm_output_fn_unwind): Mark functions that can not be unwound.
20770
20771 2008-03-15  Paul Brook  <paul@codesourcery.com>
20772
20773         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
20774         extension instructions.
20775
20776 2008-03-15  Richard Guenther  <rguenther@suse.de>
20777
20778         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
20779         and fold constant aggregate refs.
20780         (fold_const_aggregate_ref): Handle string constants
20781         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
20782         (evaluate_stmt): Simplify now that ccp_fold folds constant
20783         aggregate refs.
20784
20785 2008-03-15  Paul Brook  <paul@codesourcery.com>
20786
20787         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
20788         (extzv): Use gen_extzv_t2.
20789         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
20790
20791 2008-03-15  Richard Guenther  <rguenther@suse.de>
20792
20793         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
20794         (fold_const_aggregate_ref): Likewise.
20795         (get_value): Return NULL if we don't have any values.
20796         (ccp_finalize): Set const_val to NULL after freeing it.
20797         * tree-flow.h (get_symbol_constant_value): Declare.
20798         (fold_const_aggregate_ref): Likewise.
20799         * tree-ssa-sccvn.c (try_to_simplify): Use them.
20800
20801 2008-03-15  Richard Guenther  <rguenther@suse.de>
20802
20803         PR middle-end/35593
20804         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
20805         to not produce negative array indices if not allowed.  Add
20806         parameter to indicate that.
20807         (maybe_fold_offset_to_component_ref): Allow negative array
20808         indices only for the first member of a structure.
20809         (maybe_fold_offset_to_reference): Allow negative array indices.
20810         (maybe_fold_stmt_addition): Likewise.
20811
20812 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
20813             Anatoly Sokolov <aesok@post.ru>
20814
20815         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
20816         (avr_arch): Add ARCH_AVR6.
20817         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
20818         (initial_elimination_offset): Initialize and use 'avr_pc_size'
20819         instead of fixed value 2.
20820         (print_operand_address): Use gs() asm specifier instead of pm().
20821         (avr_assemble_integer): (Ditto.).
20822         (avr_output_addr_vec_elt): (Ditto.).
20823         (print_operand): Handle "!" code.
20824         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add
20825         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
20826         (AVR_HAVE_EIJMP_EICALL): Define.
20827         (AVR_3_BYTE_PC): Redefine.
20828         (AVR_2_BYTE_PC): (Ditto.).
20829         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
20830         (LINK_SPEC): Add atmega2560 and atmega2561.
20831         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561
20832         (crtm2561.o).
20833         * config/avr/avr.md (call_insn): Use eicall instead of icall
20834         for 3 byte PC devices.
20835         (call_value_insn): (Ditto.).
20836         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
20837         (indirect_jump): Use only for for 2 byte PC devices.
20838         (*tablejump): (Ditto.).
20839         (*indirect_jump_avr6): Add insn.
20840         (*tablejump_rjmp): Don't use for 3 byte PC devices.
20841         * config/avr/libgcc.S (__prologue_saves__): Use eijmp
20842         instead of ijmp for 3 byte PC devices.
20843         (__tablejump2__): (Ditto.).
20844         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
20845         (MULITLIB_DIRNAMES): (Ditto.).
20846         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
20847
20848 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
20849
20850         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
20851         "sse2_umulsidi3".  Use V1DI mode for operand 0.
20852         ("mmx_psadbw"): Use V1DI mode for operand 0.
20853         * config/i386/i386-modes.def (V1SI): New vector mode.
20854         * config/i386/i386.c (struct builtin_description)
20855         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
20856         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
20857         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
20858         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
20859         v1di_ftype_v8qi_v8qi type.
20860         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
20861
20862         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
20863         __builtin_ia32_pmuludq]: Fix the mode of return value.
20864
20865 2008-03-15  Richard Guenther  <rguenther@suse.de>
20866
20867         PR middle-end/35595
20868         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
20869         being a PHI_NODE.
20870
20871 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
20872
20873         * doc/invoke.texi (Option Summary, Xtensa Options): Document
20874         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
20875         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
20876         unless TARGET_SERIALIZE_VOLATILE is enabled.
20877         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
20878         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
20879         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
20880
20881 2008-03-14  Richard Guenther  <rguenther@suse.de>
20882
20883         PR tree-optimization/34172
20884         * tree-flow.h (refs_may_alias_p): Declare.
20885         (get_single_def_stmt): Likewise.
20886         (get_single_def_stmt_from_phi): Likewise.
20887         (get_single_def_stmt_with_phi): Likewise.
20888         * tree-dfa.c (refs_may_alias_p): New function.
20889         (get_single_def_stmt): Likewise.
20890         (get_single_def_stmt_from_phi): Likewise.
20891         (get_single_def_stmt_with_phi): Likewise.
20892         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
20893         (vn_reference_lookup_1): New helper function.
20894         (vn_reference_lookup): Walk the virtual use-def chain to
20895         continue searching for a match if the def does not alias the
20896         reference we are looking for.
20897
20898 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
20899
20900         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
20901         archive and Perzl.  Update The Written Word listing.
20902
20903 2008-03-14  Richard Guenther  <rguenther@suse.de>
20904
20905         PR tree-optimization/34043
20906         PR tree-optimization/33989
20907         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
20908         when doing FRE.
20909         (bitmap_find_leader): Use extra argument to verify dominance
20910         relationship inside a basic-block.
20911         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
20912         (find_leader_in_sets): Adjust.
20913         (create_component_ref_by_pieces): Take extra argument for
20914         dominance check, handle lookup failures.
20915         (find_or_generate_expression): Likewise.
20916         (create_expression_by_pieces): Likewise.
20917         (insert_into_preds_of_block): Adjust.
20918         (create_value_expr_from): If asked for, verify all operands
20919         are in the blocks AVAIL_OUT set.
20920         (make_values_for_stmt): Check for SSA_NAMEs that are life
20921         over an abnormal edge.
20922         (compute_avail): Remove such check.
20923         (do_SCCVN_insertion): New function.
20924         (eliminate): If we do not find a leader suitable for replacement
20925         insert a replacement expression from SCCVN if available.
20926         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
20927         (struct vn_ssa_aux): Add needs_insertion flag.
20928         * tree-ssa-sccvn.c (may_insert): New global flag.
20929         (copy_reference_ops_from_ref): Value-number union member access
20930         based on its size, not type and member if insertion is allowed.
20931         (visit_reference_op_load): For a weak match from union type
20932         punning lookup a view-converted value and insert a SSA_NAME
20933         for that value if that is not found.
20934         (visit_use): Make dumps shorter.  Do not disallow value numbering
20935         SSA_NAMEs that are life over an abnormal edge to constants.
20936         (free_scc_vn): Release inserted SSA_NAMEs.
20937         (run_scc_vn): New flag to specify whether insertion is allowed.
20938         Process SSA_NAMEs in forward order.
20939         * tree-ssa-loop-im.c (for_each_index): Handle invariant
20940         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
20941         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
20942         pointer type to/from integral types that do not change the
20943         precision to regular conversions.
20944
20945 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
20946
20947         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
20948         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
20949         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
20950         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
20951         input arguments and the mode of return value.  Built-in functions
20952         that operate on whole 64-bit MMX register now use V1DI mode.
20953
20954 2008-03-13  Alon Dayan  <alond@il.ibm.com>
20955             Olga Golovanevsky  <olga@il.ibm.com>
20956
20957         PR tree-optimization/35041
20958         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
20959         to locate the right position in a statement.
20960
20961 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
20962
20963         PR target/34000
20964         PR target/35553
20965         * config/i386/xmmintrin.h:  Change all static inline functions to
20966         extern inline and add __gnu_inline__ attribute.
20967         * config/i386/bmintrin.h: Ditto.
20968         * config/i386/smmintrin.h: Ditto.
20969         * config/i386/tmmintrin.h: Ditto.
20970         * config/i386/mmintrin-common.h: Ditto.
20971         * config/i386/ammintrin.h: Ditto.
20972         * config/i386/emmintrin.h: Ditto.
20973         * config/i386/pmmintrin.h: Ditto.
20974         * config/i386/mmintrin.h: Ditto.
20975         * config/i386/mm3dnow.h: Ditto.
20976
20977 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
20978
20979         PR middle-end/35185
20980         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
20981         (lower_omp_2): New function.
20982         (lower_omp_1, lower_omp): Rewritten.
20983
20984 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
20985
20986         PR 35054
20987         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
20988         with the phrase "Microsoft Windows compilers".
20989         (Push/Pop Macro Pragmas): New subsection. Document
20990         #pragma push_macro and pragma pop_macro.
20991
20992 2008-03-12  Paul Brook  <paul@codesourcery.com>
20993
20994         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
20995
20996 2008-03-12  Paul Brook  <paul@codesourcery.com>
20997
20998         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
20999         (thumb2_alusi3_short): Exclude PLUS and MINUS.
21000         (thumb2_addsi_shortim): Rename ...
21001         (thumb2_addsi_short): ... to this.  Allow register operands.
21002         (thumb2_subsi_short): New pattern.
21003         (thumb2_one_cmplsi2_short,
21004         thumb2_negsi2_short): New patterns and peepholes.
21005
21006 2008-03-12  Paul Brook  <paul@codesourcery.com>
21007
21008         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
21009
21010 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
21011
21012         * config/i386/i386.md (int_cond): New code iterator.
21013         (fp_cond): Ditto.
21014         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
21015         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
21016         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
21017         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
21018         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
21019         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
21020         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
21021         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
21022
21023 2008-03-12  Paul Brook  <paul@codesourcery.com>
21024
21025         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
21026         instead of {arm,thumb}_compute_save_reg_mask.
21027         (output_return_instruction): Ditto.
21028         (thumb_unexpanded_epilogue): Ditto.
21029         (thumb1_expand_prologue): Ditto.
21030         (thumb1_output_function_prologue): Ditto.
21031         (arm_set_return_address): Ditto.
21032         (thumb_set_return_address): Ditto.
21033         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
21034         regs to achieve stack alignment.
21035         (thumb1_compute_save_reg_mask): Fix compiler warning.
21036         (arm_output_epilogue): Use offsets->saved_regs_mask.
21037         Adjust stack pointer by poping call clobered registers.
21038         (arm_expand_prologue): Use offsets->saved_regs_mask.
21039         Adjust stack pointer by pushing extra registers.
21040         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
21041
21042 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
21043
21044         PR tree-opt/35422
21045         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
21046         conversion to the operands of a multiplication.
21047
21048 2008-03-12  Richard Guenther  <rguenther@suse.de>
21049
21050         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
21051         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
21052         * timevar.def (TV_TREE_PHIPROP): Add.
21053         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
21054         pass description.  Use TV_TREE_PHIPROP.
21055         * tree-ssa-forwprop.c: Remove phiprop code.
21056
21057 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
21058
21059         PR middle-end/35549
21060         * omp-low.c (maybe_lookup_decl): Constify first argument.
21061         (use_pointer_for_field): Change last argument from bool to
21062         omp_context *.  Disallow shared copy-in/out in nested
21063         parallel if decl is shared in outer parallel too.
21064         (build_outer_var_ref, scan_sharing_clauses,
21065         lower_rec_input_clauses, lower_copyprivate_clauses,
21066         lower_send_clauses, lower_send_shared_vars): Adjust callers.
21067
21068 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
21069             Ira Rosen  <irar@il.ibm.com>
21070
21071         * tree-vectorizer.c (free_stmt_vec_info): New function.
21072         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
21073         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
21074         * tree-vectorizer.h (free_stmt_vec_info): Declare.
21075         * tree-vect-transform.c (vectorizable_conversion): Free
21076         vec_oprnds0 if it was allocated.
21077         (vect_permute_store_chain): Remove unused VECs.
21078         (vectorizable_store): Free VECs that are allocated in the..
21079         function.
21080         (vect_transform_strided_load, vectorizable_load): Likewise.
21081         (vect_remove_stores): Simplify the code.
21082         (vect_transform_loop): Move code to vect_remove_stores().
21083         Call vect_remove_stores() and free_stmt_vec_info().
21084
21085 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21086
21087         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
21088         TARGET_HPUX.  Revise comment.
21089         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
21090         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
21091         Use sr4 variant of `be' instruction when not generating PIC code.
21092         (attr_length_call): Adjust for above change.
21093
21094 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
21095
21096         * ipa-reference.c (static_execute): Remove module_statics_const and
21097         associated setting code.
21098
21099 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
21100
21101         PR target/35540
21102         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
21103         predicate for operand 1.
21104         (paritysi2_cmp): Use register_operand predicate for operand 2.
21105         Use earlyclobber modifier for operand 1.  Remove support for
21106         memory operands.
21107         (paritydi2_cmp): Use register_operand predicate for operand 3.
21108         Use earlyclobber modifier for operand 1.  Remove support for
21109         memory operands.
21110
21111 2008-03-11  Paul Brook  <paul@codesourcery.com>
21112             Vladimir Prus  <vladimir@codesourcery.com>
21113
21114         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
21115         (arm_compute_save_reg0_reg12_mask): Always
21116         check if register 11 must be saved.  Always safe hard frame pointer
21117         when frame_pointer_needeed.
21118         (arm_compute_save_reg_mask): Save IP and PC
21119         only with apcs frames.
21120         (arm_output_epilogue): Adjust Thumb2 codepath to
21121         be also invoked and work for ARM non-apcs frames.
21122         (arm_expand_prologue): Don't bother saving IP
21123         for non-apcs frame, since it's not clobbered by
21124         prologue code.  Implement non-apcs frame
21125         layout.
21126
21127 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
21128
21129         PR rtl-optimization/35281
21130         * expr.c (convert_move): Use a new pseudo for the intermediate
21131         from_mode->word_mode result.
21132
21133 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
21134
21135         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
21136         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
21137         * toplev.c (compile_file): Don't call it.
21138
21139 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
21140
21141         PR middle-end/35526
21142         * expr.c (store_expr): Call emit_block_move if the mode
21143         of "temp" RTX is BLKmode.
21144
21145 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
21146             Richard Guenther  <rguenther@suse.de>
21147
21148         PR tree-optimization/31358
21149         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
21150         the step with a NULL_TREE.
21151         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
21152         to sizetype if type is a pointer type.
21153         (add_candidate_1): Don't convert the base and step to
21154         the generic type if the orginal type is a pointer type.
21155         (add_iv_value_candidates): Use sizetype for the step
21156         if type is a pointer type.
21157         (cand_value_at): Likewise.
21158         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
21159         for pointer types.
21160         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
21161         Don't convert the tem affine to the type.
21162         (add_elt_to_tree): Use sizetype for the step if a pointer.
21163         Use POINTER_PLUS_EXPR for pointers.
21164         (aff_combination_to_tree): Use sizetype for the step if a
21165         pointer.
21166
21167 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
21168
21169         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
21170         Remove commutativity hint.
21171
21172 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
21173
21174         PR c/35438
21175         PR c/35439
21176         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
21177         errorneous type.  Check that v is a VAR_DECL.
21178
21179         PR middle-end/35099
21180         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
21181
21182 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
21183
21184         PR tree-optimization/35494
21185         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
21186         may be overriden at link and run time.
21187
21188 2008-03-10  Richard Guenther  <rguenther@suse.de>
21189
21190         PR tree-optimization/34677
21191         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
21192         (poolify_tree): Likewise.
21193         (modify_expr_template): Likewise.
21194         (poolify_modify_stmt): Likewise.
21195         (insert_fake_stores): Handle all component-ref style stores
21196         in addition to INDIRECT_REF.  Also handle complex types.
21197         Do not poolify the inserted load.
21198         (realify_fake_stores): Do not rebuild the tree but only
21199         make it a SSA_NAME copy.
21200         (init_pre): Remove initialzation of modify_expr_template.
21201         Do not allocate modify_expr_node_pool.
21202         (fini_pre): Do not free modify_expr_node_pool.
21203
21204 2008-03-10  Paul Brook  <paul@codesourcery.com>
21205
21206         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
21207         to avoid conflicts.
21208
21209 2008-03-10  Paul Brook  <paul@codesourcery.com>
21210             Mark Shinwell  <shinwell@codesourcery.com>
21211
21212         * config/arm/cortex-r4.md: New.
21213         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
21214         insn attributes.
21215         * config/arm/arm.md: Include cortex-r4.md.
21216         (insn): Add smmls, sdiv and udiv values.
21217         (generic_sched): Don't use generic scheduling for Cortex-R4.
21218         (arm_issue_rate): New function.
21219         (TARGET_SCHED_ISSUE_RATE): Define.
21220
21221 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
21222
21223         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
21224
21225 2008-03-10  Richard Guenther  <rguenther@suse.de>
21226
21227         * tree-ssa-pre.c (get_sccvn_value): Simplify.
21228         (compute_avail): Do not add stmt uses to AVAIL_OUT.
21229
21230 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
21231
21232         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
21233         Set default to true.
21234
21235 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
21236
21237         * c.opt (Wsynth): Deprecate.
21238         * doc/invoke.texi (Option Summary, Warning Options): Document
21239         -Wno-format-contains-nul.
21240
21241 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
21242
21243         PR target/35496
21244         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
21245         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
21246
21247 2008-03-09  Ira Rosen  <irar@il.ibm.com>
21248
21249         * config/rs6000/rs6000.c (builtin_description): Rename vector
21250         left shift operations.
21251         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
21252         (altivec_vsl<VI_char>): Rename to ...
21253         (ashl<mode>3): ... new name.
21254         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
21255         gen_ashlv4si3.
21256         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
21257
21258 2008-03-08  Richard Guenther  <rguenther@suse.de>
21259
21260         * coverage.h (tree_coverage_counter_addr): Declare.
21261         * coverage.c (tree_coverage_counter_addr): New function.
21262         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
21263         before using again.
21264         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
21265         (tree_gen_one_value_profiler): Likewise.
21266         (tree_gen_ic_profiler): Likewise.
21267         (tree_gen_average_profiler): Likewise.
21268         (tree_gen_ior_profiler): Likewise.
21269
21270 2008-03-08  Richard Guenther  <rguenther@suse.de>
21271
21272         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
21273         (vn_binary_op_insert): Likewise.
21274         (vn_unary_op_lookup): Likewise.
21275         (vn_unary_op_insert): Likewise.
21276         (vn_nary_op_lookup): Declare.
21277         (vn_nary_op_insert): Likewise.
21278         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
21279         and binary hashes, use a single obstack for unary_op_pool
21280         and binary_op_pool.
21281         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
21282         a single struct vn_nary_op_s.  Store tree code length and
21283         a variable number of operands.
21284         (struct vn_reference_op_struct): Remove unused op2.
21285         (vn_reference_op_eq): Do not compare op2.
21286         (vn_reference_op_compute_hash): Do not compute hash of op2.
21287         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
21288         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
21289         with vn_nary_op_compute_hash.
21290         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
21291         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
21292         vn_nary_op_lookup.
21293         (vn_unary_op_insert, vn_binary_op_insert): Replace with
21294         vn_nary_op_insert.
21295         (visit_unary_op): Call nary functions.
21296         (visit_binary_op): Likewise.
21297         (process_scc): Adjust for struct vn_tables_s changes.
21298         (allocate_vn_table): Likewise.
21299         (free_vn_table): Likewise.
21300         * tree-vn.c (vn_add): Call nary functions.
21301         (vn_lookup): Likewise.
21302
21303 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
21304
21305         PR target/35498
21306         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
21307         wdst back after sync_compare_and_swapqhi_internal.
21308
21309 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
21310
21311         PR target/22152
21312         * config/i386/i386-modes.def (V1DI): New vector mode.
21313         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
21314         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
21315         (MMXMODE248): Ditto.
21316         (MMXMODE): Add V1DI mode.
21317         (mmxvecsize): Change DI mode to V1DI mode.
21318         ("mov<mode>): Use MMXMODEI8 mode iterator.
21319         ("*mov<mode>_internal_rex64"): Ditto.
21320         ("*mov<mode>_internal"): Ditto.
21321         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
21322         ("mmx_sub<mode>3"): Ditto.
21323         ("mmx_adddi3"): Remove insn pattern.
21324         ("mmx_subdi3"): Ditto.
21325         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
21326         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
21327         ("mmx_ashl<mode>3"): Ditto.
21328         ("mmx_lshrdi3"): Remove insn pattern.
21329         ("mmx_ashldi3"): Ditto.
21330         * config/i386/i386.c (classify_argument): Handle V1DImode.
21331         (function_arg_advance_32): Ditto.
21332         (function_arg_32): Ditto.
21333         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
21334         mmx_addv1di3 insn pattern.
21335         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
21336         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
21337         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
21338         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
21339         Remove definitions of built-in functions.
21340         (V1DI_type_node): New node.
21341         (v1di_ftype_v1di_int): Ditto.
21342         (v1di_ftype_v1di_v1di): Ditto.
21343         (v2si_ftype_v2si_si): Ditto.
21344         (v4hi_ftype_v4hi_di): Remove node.
21345         (v2si_ftype_v2si_di): Ditto.
21346         (ix86_init_mmx_sse_builtins): Handle V1DImode.
21347         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
21348         Redefine builtins using def_builtin_const with *_ftype_*_int node.
21349         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
21350         Add new builtins using def_builtin_const.
21351         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
21352         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
21353         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
21354         * config/i386/mmintrin.h (__v1di): New typedef.
21355         (_mm_add_si64): Cast arguments to __v1di type.
21356         (_mm_sub_si64): Ditto.
21357         (_mm_sll_pi16): Cast __count to __v4hi type.
21358         (_mm_sll_pi32): Cast __count to __v2si type.
21359         (_mm_sll_si64): Cast arguments to __v1di type.
21360         (_mm_srl_pi16): Cast __count to __v4hi type.
21361         (_mm_srl_pi32): Cast __count to __v2si type.
21362         (_mm_srl_si64): Cast arguments to __v1di type.
21363         (_mm_sra_pi16): Cast __count to __v4hi type.
21364         (_mm_sra_pi32): Cast __count to __v2si type.
21365         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
21366         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
21367         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
21368         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
21369         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
21370         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
21371         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
21372         (_mm_srai_pi32): Use __builtin_ia32_psradi.
21373         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
21374         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
21375         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
21376         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
21377
21378 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
21379
21380         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
21381
21382 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
21383
21384         PR target/35373
21385         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
21386         reg+const addressing for Altivec modes.  Don't generate reg+reg
21387         addressing for TFmode or TDmode quantities.
21388
21389 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
21390
21391         * c-common.c (vector_types_convertible_p): Call langhook
21392         instead of comptypes.
21393
21394 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
21395
21396         PR tree-opt/35402
21397         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
21398         integral and scalar float variables which have a
21399         NULL DECL_INITIAL.
21400
21401 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
21402
21403         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
21404         dwarf_register_span hook when emitting unwind information for
21405         register-to-memory saves.
21406         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
21407         (rs6000_frame_related): Remove call to spe_synthesize_frame.
21408
21409 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
21410
21411         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
21412         for the same VAR_DECL.
21413
21414 2008-03-06  Tom Tromey  <tromey@redhat.com>
21415
21416         * treelang: Delete.
21417         * doc/standards.texi (Standards): Don't mention treelang.
21418         * doc/invoke.texi (Overall Options): Don't mention treelang.
21419         * doc/install.texi (Prerequisites): Don't mention bison or
21420         treelang.
21421         (Configuration): Don't mention treelang.
21422         (Building): Likewise.
21423         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
21424
21425 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
21426
21427         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
21428         word-extractions out of a multi-word object.
21429
21430 2008-03-06  Richard Guenther  <rguenther@suse.de>
21431
21432         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
21433         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
21434         result type and precision.
21435         * expr.c (get_inner_reference): Set unsignedp based on the result
21436         type of BIT_FIELD_REF.
21437         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
21438         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
21439         (try_instantiate_multiple_fields): Likewise.  Use the correct type
21440         for BIT_FIELD_REF.
21441         (sra_build_assignment): Likewise.
21442         (sra_build_elt_assignment): Likewise.
21443         (sra_explode_bitfield_assignment): Likewise.
21444         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
21445         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
21446         set BIT_FIELD_REF_UNSIGNED.
21447         (vectorizable_load): Likewise.
21448
21449 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
21450
21451         * cse.c (cse_extended_basic_block): Invalidate artificial defs
21452         at bb start.
21453
21454 2008-03-06  Richard Guenther  <rguenther@suse.de>
21455
21456         * alias.c (struct alias_set_entry): Move has_zero_child field
21457         to pack with alias_set.
21458
21459 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
21460
21461         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
21462         32bit host.
21463
21464 2008-03-05  Ian Lance Taylor  <iant@google.com>
21465
21466         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
21467
21468 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
21469
21470         * fwprop.c (update_df): Support width and offset parameters of
21471         df_ref_create.
21472         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
21473         global_conflicts): Change DF_REF_EXTRACT to either
21474         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
21475         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
21476         * df-scan.c (df_ref_record, df_defs_record,
21477         df_ref_create_structure, df_def_record_1, df_uses_record,
21478         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
21479         df_bb_refs_collect, df_entry_block_defs_collect,
21480         df_exit_block_uses_collect): Support new width and offset fields.
21481         (ref_extract_pool): New storage pool.
21482         (df_free_ref): New function.
21483         (df_reg_chain_unlink, df_free_collection_rec,
21484         df_sort_and_compress_refs): Call df_free_ref.
21485         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
21486         of df_ref_extract.
21487         (df_ref_create_structure): Allocate df_ref_extract if offset and
21488         width fields are used.
21489         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
21490         (df_uses_record): Get offset and width from ZERO_EXTRACT
21491         and SIGN_EXTRACT.
21492         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
21493         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
21494         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
21495         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
21496         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
21497         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
21498         (df_ref_extract): New structure.
21499         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
21500         (df_ref_create): Add width and offset parameters.
21501
21502 2008-03-05  Richard Guenther  <rguenther@suse.de>
21503
21504         * tree-ssa-structalias.c (get_constraint_for_component_ref):
21505         Use ranges_overlap_p.
21506         (offset_overlaps_with_access): Rename
21507         to ranges_overlap_p and move ...
21508         * tree-flow-inline.h (ranges_overlap_p): ... here.
21509
21510         * tree.h (get_inner_reference, handled_component_p): Update
21511         comments.
21512
21513         * tree.h (record_component_aliases, get_alias_set,
21514         alias_sets_conflict_p, alias_sets_must_conflict_p,
21515         objects_must_conflict_p): Move declarations ...
21516         * alias.h (record_component_aliases, get_alias_set,
21517         alias_sets_conflict_p, alias_sets_must_conflict_p,
21518         objects_must_conflict_p): ... here.
21519         Include coretypes.h.
21520         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
21521
21522 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
21523
21524         * cfg.c: Include tree-flow.h.
21525         (remove_edge_raw): Call redirect_edge_var_map_clear.
21526         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
21527         * tree-flow-inline.h (redirect_edge_var_map_def): New.
21528         (redirect_edge_var_map_result): New.
21529         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
21530         PENDING_STMT use with redirect_edge_var_map_*.
21531         * tree-ssa.c (edge_var_maps): New definition.
21532         (redirect_edge_var_map_add): New.
21533         (redirect_edge_var_map_clear): New.
21534         (redirect_edge_var_map_dup): New.
21535         (redirect_edge_var_map_vector): New.
21536         (redirect_edge_var_map_destroy): New.
21537         (ssa_redirect_edge): Replace PENDING_STMT use with
21538         redirect_edge_var_map_*.
21539         (flush_pending_stmts): Same.
21540         (delete_tree_ssa): Destroy edge var map.
21541         * tree-flow.h (struct _edge_var_map): New.
21542         Define edge_var_map vector type.
21543         Declare redirect_edge_var_map_* prototypes.
21544         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
21545         * tree-cfg.c (reinstall_phi_args): Replace
21546         PENDING_STMT use with redirect_edge_var_map_*.
21547
21548 2008-03-05  Richard Guenther  <rguenther@suse.de>
21549
21550         PR tree-optimization/35472
21551         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
21552         whose single use_stmt has a overlapping set of loaded and
21553         stored symbols as that use_stmt might be a noop assignment then.
21554
21555 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
21556
21557         * gthr-rtems.h: Implement __gthread_mutex_destroy.
21558
21559 2008-03-05  Richard Guenther  <rguenther@suse.de>
21560
21561         PR c++/35336
21562         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
21563         should be constants.
21564         * tree-cfg.c (verify_expr): Verify it.
21565         * fold-const.c (fold_truthop): Remove code generating
21566         BIT_FIELD_REFs of structure bases.
21567         (fold_binary): Likewise.
21568         (fold_ternary): Position and size of BIT_FIELD_REFs are
21569         always host integers.
21570         (make_bit_field_ref): Remove.
21571         (optimize_bit_field_compare): Remove.
21572         (all_ones_mask_p): Remove.
21573
21574 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
21575
21576         PR gcc/33009
21577         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
21578         (split_block_and_df_analyze): New. Split basic block and rebuild
21579         dataflow.
21580         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
21581         SPLIT_BLOCK.
21582         (split_pattern_seq): Likewise.
21583         (erase_matching_seqs): Likewise.
21584         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
21585
21586 2008-03-04  Geoff Keating  <geoffk@apple.com>
21587
21588         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
21589         declaration and code.
21590         (tree_invalid_nonnegative_warnv_p): Likewise.
21591
21592 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
21593
21594         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
21595         examples.  Truncate option-names then causing overfull hbox.
21596
21597 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21598
21599         PR target/35222
21600         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
21601         on hpux10.
21602         * configure: Rebuilt.
21603
21604 2008-03-04  Rafael Espíndola  <espindola@google.com>
21605
21606         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
21607         (tree_unary_nonnegative_warnv_p): New.
21608         (tree_binary_nonnegative_warnv_p): New.
21609         (tree_single_nonnegative_warnv_p): New.
21610         (tree_invalid_nonnegative_warnv_p): New.
21611         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
21612
21613 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
21614
21615         PR 28322
21616         * opts.c (handle_option): Postpone 'unknown option' errors only for
21617         warning options.
21618
21619 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
21620
21621         PR target/35453
21622         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
21623         (_SIDD_XXX): This.
21624
21625 2008-03-04  Rafael Espíndola  <espindola@google.com>
21626
21627         * fold-const.c (tree_unary_nonzero_warnv_p): New.
21628         (tree_binary_nonzero_warnv_p): New.
21629         (tree_single_nonzero_warnv_p): New.
21630         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
21631
21632 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
21633
21634         PR middle-end/35456
21635         * fold-const.c (fold_cond_expr_with_comparison): Prevent
21636         transformations for modes that have signed zeros.
21637         * ifcvt.c (noce_try_abs): Ditto.
21638
21639 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
21640
21641         * config/i386/i386.c (override_options): Force
21642         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
21643
21644 2008-03-04  Jan Hubicka  <jh@suse.cz>
21645
21646         PR c++/35262
21647         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
21648         in last commit.
21649
21650 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
21651
21652         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
21653         label to probe the stack.
21654
21655 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
21656
21657         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
21658         (__gthr_win32_mutex_destroy): Declare.
21659         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
21660         __gthr_win32_mutex_destroy.
21661         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
21662
21663 2008-03-03  Jan Hubicka  <jh@suse.cz>
21664
21665         PR c++/35262
21666         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
21667         aggressive on inlining cold calls.
21668
21669 2008-03-03  Richard Guenther  <rguenther@suse.de>
21670
21671         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
21672         struct copies into the expression table.
21673         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
21674         (try_to_simplify): Likewise.
21675         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
21676         integral and pointer arguments which do not change the
21677         precision to NOP_EXPRs.
21678         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
21679         VIEW_CONVERT_EXPR case.
21680
21681 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
21682
21683         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
21684         defined in a loop at depth 0 is invariant.
21685         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
21686         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
21687         be called at loop depth 0.
21688
21689 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
21690
21691         PR driver/35420
21692         * gcc.c (process_command): Update copyright notice dates.
21693         * gcov.c (print_version): Likewise.
21694         * gcov-dump.c (print_version): Likewise.
21695         * mips-tfile.c (main): Likewise.
21696         * mips-tdump.c (main): Likewise.
21697
21698 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
21699
21700         PR 24924
21701         * c-common.c (flag_permissive): Delete.
21702         (constant_expression_warnings): Check flags first.
21703         (constant_expression_error): New.
21704         * c-common.h (flag_permissive): Delete.
21705         (constant_expression_error): Declare.
21706         * flags.h (flag_permissive): Declare. Update description.
21707         * diagnostic.c (pedwarn): Update.
21708         (permerror): New.
21709         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
21710         (permissive_error_kind): New.
21711         * toplev.c (flag_permissive): Define. Update description.
21712         * toplev.h (permissive_error_kind): Declare.
21713         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
21714         (pedwarn_c90): Use pedantic_warning_kind.
21715         * c-opts.c (c_common_post_options): flag_permissive does not affect
21716         flag_pedantic_errors.
21717
21718 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
21719
21720         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
21721         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
21722         __absvsi2, __absvDI2): Use unsigned arithmetic.
21723
21724 2008-03-02  Andi Kleen  <ak@suse.de>
21725             Richard Guenther  <rguenther@suse.de>
21726
21727         * struct-equiv.c: Remove file.
21728         * cfg_cleanup.c (condjump_equiv_p): Remove.
21729         * Makefile.in (OBJS-common): Remove struct-equiv.o.
21730         (struct-equiv.o): Remove rule.
21731         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
21732         insns_match_p, struct_equiv_block_eq, struct_equiv_init,
21733         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
21734
21735 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
21736
21737         * ifcvt.c (noce_process_if_block): Try to handle only the then
21738         block if the else block exists but isn't suitable.
21739
21740 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
21741
21742         PR gcc/35063
21743         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
21744         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
21745         regression from previous patch.
21746
21747 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
21748
21749         PR gcc/35063
21750         * gthr.h: Add __gthread_mutex_destroy as a function that must be
21751         implemented.
21752         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
21753         * gthr-single.h (__gthread_mutex_destroy): Likewise.
21754         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
21755         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
21756         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
21757         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
21758         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
21759         (__gthread_mutex_destroy_function): Rename to
21760         __gthread_mutex_destroy.
21761         * gthr-dce.h (__gthread_mutex_destroy): Call
21762         pthread_mutex_destroy.
21763         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
21764         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
21765         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
21766
21767 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
21768
21769         * df-scan.c (df_ref_chain_change_bb): Simplify.
21770         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
21771         set_block_for_insn if there's any change.
21772         * df.h ((df_insn_change_bb): Fix prototype.
21773         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
21774         df_insn_change_bb, don't call set_block_for_insn.
21775         * emit-rtl.c (reorder_insns): Likewise.
21776         * haifa-sched.c (move_insn): Likewise.
21777
21778 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
21779
21780         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
21781
21782 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
21783
21784         * tree-flow-inline.h (next_readonly_imm_use): Return
21785         NULL_USE_OPERAND_P after the end.
21786
21787 2008-03-01  Richard Guenther  <rguenther@suse.de>
21788
21789         PR tree-optimization/35411
21790         * tree-sra.c (sra_build_assignment): Split conversion to
21791         final type to a separate statement if we are not assigning
21792         to a register.
21793
21794 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
21795
21796         * fold-const.c (fold_convertible_p): Correct the logic to follow
21797         that in fold_convert().
21798
21799 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
21800
21801         PR c++/35315
21802         * tree-inline.c (build_duplicate_type): When we make a
21803         duplicate type, make it unique in the canonical types system.
21804
21805 2008-02-29  Tom Tromey  <tromey@redhat.com>
21806
21807         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
21808         input_file_stack_history, input_file_stack_restored): Remove.
21809         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
21810         * input.h (struct file_stack): Remove.
21811         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
21812         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
21813         Likewise.
21814         * diagnostic.h (struct diagnostic_context) <last_module>: Change
21815         type.
21816         (diagnostic_last_module_changed): Add 'map' argument.
21817         (diagnostic_set_last_function): Likewise.
21818         * diagnostic.c (undiagnostic_report_current_module): Iterate using
21819         line map, not input_file_stack.
21820         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
21821
21822 2008-02-29  Paul Brook  <paul@codesourcery.com>
21823
21824         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
21825
21826 2008-02-29  Paul Brook  <paul@codesourcery.com>
21827
21828         * config/arm/ieee754-df.S (muldf3): Use RET macros.
21829
21830 2008-02-29  Richard Guenther  <rguenther@suse.de>
21831
21832         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
21833         vn_lookup_or_add.
21834         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
21835         value for comparing for a store match.
21836         (simplify_unary_expression): Do nothing for SSA_NAMEs.
21837         (try_to_simplify): Do not do a full-blown reference lookup.
21838
21839 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
21840
21841         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
21842         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
21843
21844         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
21845
21846 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
21847
21848         * tree-loop-linear.c (try_interchange_loops): Compare memory access
21849         strides against cache sizes.
21850
21851 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
21852
21853         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
21854         constant to fpul.
21855
21856 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
21857
21858         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
21859         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
21860         is smaller than the original promoted value.
21861         (simplify_subreg): If OP is a SUBREG, try to preserve its
21862         SUBREG_PROMOTED_VAR_P information.
21863
21864 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
21865
21866         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
21867         (VN_INFO_GET): Allocate new objects on the obstack.
21868         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
21869         for rpo_numbers_temp, for consistency.
21870         (free_scc_vn): Free the obstack.
21871
21872 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
21873
21874         * doc/invoke.texi: Document -ftree-loop-distribution.
21875         * tree-loop-distribution.c: New.
21876         * tree-pass.h (pass_loop_distribution): New.
21877         * graphds.h (struct graph): Add htab_t indices.
21878         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
21879         * tree-vectorizer.c (rename_variables_in_loop): Extern.
21880         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
21881         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
21882         * tree-data-ref.c (debug_data_dependence_relations): New.
21883         (dump_data_dependence_relation): Also print data references.
21884         (free_data_ref): Extern.
21885         (same_access_functions): Moved...
21886         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
21887         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
21888         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
21889         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
21890         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
21891         (stmts_from_loop): Skip LABEL_EXPR.
21892         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
21893         New.
21894         (build_rdg): Initialize rdg->indices htab.
21895         (free_rdg, stores_from_loop, ref_base_address,
21896         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
21897         have_similar_memory_accesses_1, ref_base_address_1,
21898         remove_similar_memory_refs): New.
21899         * tree-data-ref.h: Depend on tree-chrec.h.
21900         (debug_data_dependence_relations, free_data_ref): Declared.
21901         (same_access_functions): ... here.
21902         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
21903         New.
21904         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
21905         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
21906         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
21907         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
21908         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
21909         rdg_vertex_for_stmt): Declared.
21910         (struct rdg_edge): Add level.
21911         (RDGE_LEVEL): New.
21912         (free_rdg, stores_from_loop, remove_similar_memory_refs,
21913         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
21914         Declared.
21915         (rdg_has_similar_memory_accesses): New.
21916         * tree-vect-analyze.c: Remove unused static decls.
21917         * lambda.h (dependence_level): New.
21918         * common.opt (ftree-loop-distribution): New.
21919         * tree-flow.h (mark_virtual_ops_in_bb,
21920         slpeel_tree_duplicate_loop_to_edge_cfg,
21921         rename_variables_in_loop): Declared.
21922         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
21923         (OBJS-common): Add tree-loop-distribution.o.
21924         (tree-loop-distribution.o): New rule.
21925         * tree-cfg.c (mark_virtual_ops_in_bb): New.
21926         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
21927         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
21928
21929 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
21930
21931         PR target/33963
21932         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
21933         other than structures and unions.
21934
21935 2008-02-28  Richard Guenther  <rguenther@suse.de>
21936
21937         Revert:
21938         2008-02-26  Richard Guenther  <rguenther@suse.de>
21939
21940         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
21941         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
21942         (lookup_decl_from_uid): Declare.
21943         (remove_decl_from_map): Likewise.
21944         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
21945         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
21946         (decl_for_uid_map): New global hashtable mapping DECL_UID
21947         to the decl tree.
21948         (init_ttree): Allocate it.
21949         (insert_decl_to_uid_decl_map): New helper function.
21950         (make_node_stat): Insert new decls into the map.
21951         (copy_node_stat): Likewise.
21952         (lookup_decl_from_uid): New function.
21953         (remove_decl_from_map): Likewise.
21954         (print_decl_for_uid_map_statistics): New helper.
21955         (dump_tree_statistics): Call it.
21956
21957         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
21958         (referenced_var_iterator): Adjust.
21959         (FOR_EACH_REFERENCED_VAR): Adjust.
21960         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
21961         (num_referenced_vars): Adjust.
21962         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
21963         (first_referenced_var): Remove.
21964         (end_referenced_vars_p): Likewise.
21965         (next_referenced_var): Likewise.
21966         (referenced_var_iterator_set): New helper function.
21967         * tree-dfa.c (referenced_var_lookup): Adjust.
21968         (referenced_var_check_and_insert): Likewise.
21969         (remove_referenced_var): Likewise.
21970         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
21971         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
21972         (verify_call_clobbering): Likewise.
21973         (verify_memory_partitions): Likewise.
21974         (init_tree_ssa): Allocate bitmap instead of hashtable for
21975         referenced_vars.
21976         (delete_tree_ssa): Adjust.
21977         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
21978         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
21979         (compute_tag_properties): Likewise.
21980         (set_initial_properties): Likewise.
21981         (find_partition_for): Likewise.
21982         (update_reference_counts): Likewise.
21983         (dump_may_aliases_for): Likewise.
21984         * tree-ssa-operands.c (add_virtual_operand): Likewise.
21985         (add_call_clobber_ops): Likewise.
21986         (add_call_read_ops): Likewise.
21987         (get_asm_expr_operands): Likewise.
21988         * tree-into-ssa.c (dump_decl_set): Likewise.
21989         (update_ssa): Likewise.
21990         * tree-sra.c (scan_function): Likewise.
21991         (decide_instantiations): Likewise.
21992         (scalarize_parms): Likewise.
21993         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
21994         (dsa_named_for): Likewise.
21995         * tree-ssa-structalias.c (update_alias_info): Likewise.
21996         (merge_smts_into): Likewise.
21997
21998 2008-02-27  David Daney  <ddaney@avtrex.com>
21999
22000         PR target/34409
22001         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
22002         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
22003         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
22004         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
22005         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
22006
22007 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
22008
22009         PR target/25477
22010         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
22011         (BUILT_IN_NEXTTOWARD): Remove.
22012         (BUILT_IN_NEXTTOWARDF): Ditto.
22013         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
22014         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
22015
22016 2008-02-27  Tom Tromey  <tromey@redhat.com>
22017
22018         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
22019         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
22020
22021 2008-02-27  Jan Beulich  <jbeulich@novell.com>
22022
22023         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
22024         update the respective field on newdecl.
22025
22026 2008-02-27  Revital Eres  <eres@il.ibm.com>
22027
22028         PR rtl-optimization/34999
22029         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
22030         crossing edges that ends with a call insn.
22031         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
22032         call insn and clear the EDGE_CROSSING flag of the crossing edge
22033         when fixing fallthru edges.
22034
22035 2008-02-27  Richard Guenther  <rguenther@suse.de>
22036
22037         PR middle-end/35390
22038         * fold-const.c (fold_unary): Return the correct argument,
22039         converted to the result type.
22040
22041 2008-02-27  Richard Guenther  <rguenther@suse.de>
22042
22043         PR middle-end/34971
22044         * expr.c (expand_expr_real_1): Assert on rotates that operate
22045         on partial modes.
22046         * fold-const.c (fold_binary): Use the types precision, not the
22047         bitsize of the mode if folding rotate expressions.  Build rotates
22048         only for full modes.
22049
22050 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
22051
22052         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
22053         and CPP_PRAGMA_EOL.
22054         * c-pragma.c (pragma_ns_name): New typedef.
22055         (registered_pp_pragmas): New variable.
22056         (c_pp_lookup_pragma): New function.
22057         (c_register_pragma_1): If flag_preprocess_only, do nothing
22058         for non-expanded pragmas, for expanded ones push pragma's
22059         namespace and name into registered_pp_pragmas vector.
22060         (c_invoke_pragma_handler): Register OpenMP pragmas even when
22061         flag_preprocess_only, don't register GCC pch_preprocess
22062         pragma if flag_preprocess_only.
22063         * c-opts.c (c_common_init): Call init_pragma even if
22064         flag_preprocess_only.
22065         * c-pragma.c (c_pp_lookup_pragma): New prototype.
22066         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
22067         cpp_register_pragma if flag_preprocess_only.
22068
22069 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22070
22071         PR c/28800
22072         * c-parser.c (c_parser_translation_unit): Warn for empty
22073         translation unit, not empty source file.
22074
22075 2008-02-26  Paul Brook  <paul@codesourcery.com>
22076
22077         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
22078         operand for Thumb-2.
22079         * config/arm/arm.h (reg_class): Add CORE_REGS.
22080         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
22081         (BASE_REG_CLASS): Use CORE_REGS.
22082         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
22083         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
22084         (REGNO_OK_FOR_INDEX_P): Exclude SP.
22085         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
22086         ARM_REGNO_OK_FOR_INDEX_P.
22087         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
22088         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
22089         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
22090         (ldm/stm peepholes): Ditto.
22091         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
22092         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
22093         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
22094         * config/arm/constraints.md: Enable "k" constraint on ARM.
22095
22096 2008-02-27  Ben Elliston  <bje@au.ibm.com>
22097
22098         * config/rs6000/rs6000.c: Annotate cache line size field in all
22099         instances of struct processor_costs.
22100
22101 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
22102
22103         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
22104         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
22105         jump_bypass): New counters.
22106         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
22107         * dce.c (gate_ud_dce): Same.
22108         (gate_fast_dce): Same.
22109         * dse.c (gate_dse1): New function.
22110         (gate_dse2): New function.
22111         (gate_dse): Merge results of new gate functions.
22112         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
22113         (gate_handle_jump_bypass): Add dbg_cnt.
22114         (gate_handle_gcse): Add dbg_cnt.
22115         * ifcvt.c (gate_handle_if_conversion): Same.
22116         (gate_handle_if_after_combine): Same.
22117         (gate_handle_if_after_reload): Same.
22118         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
22119
22120 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
22121
22122         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
22123         line sizes.
22124         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
22125
22126 2008-02-26  Jason Merrill  <jason@redhat.com>
22127
22128         PR c++/35315
22129         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE
22130         alone if it's the naming decl for the type's main variant.
22131
22132 2008-02-26  Tom Tromey  <tromey@redhat.com>
22133
22134         * system.h (USE_MAPPED_LOCATION): Poison.
22135         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
22136         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
22137         (make_goto_expr_edges): Likewise.
22138         (remove_bb): Likewise.
22139         (execute_warn_function_return): Likewise.
22140         * basic-block.h (struct edge_def) <goto_locus>: Change type to
22141         location_t.
22142         * c-common.c (fname_decl): Remove old location code.
22143         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
22144         location code.
22145         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
22146         variant.
22147         (ASM_INPUT_SOURCE_LOCATION): Likewise.
22148         (gen_rtx_ASM_INPUT): Likewise.
22149         (gen_rtx_ASM_INPUT_loc): Likewise.
22150         (get_rtx_asm_OPERANDS): Remove.
22151         * cfglayout.c (insn_locators_alloc): Remove old location code.
22152         (set_curr_insn_source_location): Likewise.
22153         (curr_insn_locator): Likewise.
22154         * print-tree.c (print_node): Remove old location code.
22155         * tree-mudflap.c (mf_varname_tree): Remove old location code.
22156         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
22157         * cfgexpand.c (expand_gimple_cond_expr): Don't use
22158         location_from_locus.
22159         (construct_exit_block): Remove old location code.
22160         * emit-rtl.c (force_next_line_note): Remove old location code.
22161         * profile.c (branch_prob): Remove old location code.
22162         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
22163         LOC_LINE): Remove old-location variants.
22164         * langhooks.c (lhd_print_error_function): Remove old location
22165         code.
22166         * configure, config.in: Rebuilt.
22167         * configure.ac (--enable-mapped-location): Remove.
22168         * c-decl.c (c_init_decl_processing): Remove old location code.
22169         (finish_function): Likewise.
22170         * recog.c (decode_asm_operands): Remove old location code.
22171         * c-pch.c (c_common_read_pch): Remove old location code.
22172         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
22173         variants.
22174         * gimple-low.c (lower_function_body): Remove old location code.
22175         * toplev.c (unknown_location): Remove.
22176         (push_srcloc): Remove old-location variant.
22177         (process_options): Remove old location code.
22178         (lang_dependent_init): Likewise.
22179         * input.h (UNKNOWN_LOCATION): Move definition.
22180         (location_t): Undeprecate.
22181         (source_locus): Remove.
22182         (location_from_locus): Remove.
22183         (struct location_s): Remove.
22184         Remove all old-location code.
22185         (input_line, input_filename): Remove.
22186         * final.c (final_scan_insn): Remove old location code.
22187         * diagnostic.c (diagnostic_build_prefix): Remove
22188         USE_MAPPED_LOCATION test.
22189         * tree.h (gimple_stmt) <locus>: Now a location_t.
22190         (tree_exp) <locus>: Likewise.
22191         (DECL_IS_BUILTIN): Remove old-location variant.
22192         (annotate_with_file_line, annotate_with_locus): Likewise.
22193         (expr_locus, set_expr_locus): Update.
22194         * tree.c (build1_stat): Remove old location code.
22195         (last_annotated_node): Remove.
22196         (annotate_with_file_line): Remove old-location variant.
22197         (annotate_with_locus): Likewise.
22198         (expr_location): Remove old location code.
22199         (set_expr_location): Likewise.
22200         (expr_has_location): Likewise.
22201         (expr_locus): Likewise.
22202         (set_expr_locus): Likewise.
22203         (expr_filename): Don't use location_from_locus.
22204         (expr_lineno): Likewise.
22205         * rtl-error.c (location_for_asm): Remove old location code.
22206         * c-lex.c (cb_line_change): Remove old location code.
22207         (fe_file_change): Likewise.
22208         (cb_def_pragma): Likewise.
22209         (c_lex_with_flags): Likewise.
22210         * gengtype.c (do_typedef): Don't special-case location types.
22211         (define_location_structures): Remove.
22212         (main): Don't call define_location_structures.
22213         * tree-pretty-print.c (dump_implicit_edges): Remove old location
22214         code.
22215
22216 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
22217
22218         PR 26264
22219         * builtins.def (BUILT_IN_STDARG_START): Remove.
22220         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
22221         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
22222         * tree-inline.c (inline_forbidden_p_1): Likewise.
22223
22224 2008-02-26  Richard Guenther  <rguenther@suse.de>
22225
22226         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
22227         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
22228         (lookup_decl_from_uid): Declare.
22229         (remove_decl_from_map): Likewise.
22230         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
22231         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
22232         (decl_for_uid_map): New global hashtable mapping DECL_UID
22233         to the decl tree.
22234         (init_ttree): Allocate it.
22235         (insert_decl_to_uid_decl_map): New helper function.
22236         (make_node_stat): Insert new decls into the map.
22237         (copy_node_stat): Likewise.
22238         (lookup_decl_from_uid): New function.
22239         (remove_decl_from_map): Likewise.
22240         (print_decl_for_uid_map_statistics): New helper.
22241         (dump_tree_statistics): Call it.
22242
22243         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
22244         (referenced_var_iterator): Adjust.
22245         (FOR_EACH_REFERENCED_VAR): Adjust.
22246         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
22247         (num_referenced_vars): Adjust.
22248         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
22249         (first_referenced_var): Remove.
22250         (end_referenced_vars_p): Likewise.
22251         (next_referenced_var): Likewise.
22252         (referenced_var_iterator_set): New helper function.
22253         * tree-dfa.c (referenced_var_lookup): Adjust.
22254         (referenced_var_check_and_insert): Likewise.
22255         (remove_referenced_var): Likewise.
22256         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
22257         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
22258         (verify_call_clobbering): Likewise.
22259         (verify_memory_partitions): Likewise.
22260         (init_tree_ssa): Allocate bitmap instead of hashtable for
22261         referenced_vars.
22262         (delete_tree_ssa): Adjust.
22263         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
22264         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
22265         (compute_tag_properties): Likewise.
22266         (set_initial_properties): Likewise.
22267         (find_partition_for): Likewise.
22268         (update_reference_counts): Likewise.
22269         (dump_may_aliases_for): Likewise.
22270         * tree-ssa-operands.c (add_virtual_operand): Likewise.
22271         (add_call_clobber_ops): Likewise.
22272         (add_call_read_ops): Likewise.
22273         (get_asm_expr_operands): Likewise.
22274         * tree-into-ssa.c (dump_decl_set): Likewise.
22275         (update_ssa): Likewise.
22276         * tree-sra.c (scan_function): Likewise.
22277         (decide_instantiations): Likewise.
22278         (scalarize_parms): Likewise.
22279         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
22280         (dsa_named_for): Likewise.
22281         * tree-ssa-structalias.c (update_alias_info): Likewise.
22282         (merge_smts_into): Likewise.
22283
22284 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
22285
22286         PR 34351
22287         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
22288         * c-opts.c (c_common_handle_option): Wall enables
22289         Wvolatile-register-var.
22290         * common.opt: Move Wvolatile-register-var to...
22291         * c.opt: ...here.
22292
22293 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
22294
22295         * common.opt (Wlarger-than=): New.
22296         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
22297         -Wlarger-than=.
22298         * opts.c (common_handle_option): Handle -Wlarger-than=.
22299         * optc-gen.awk: Likewise.
22300         * opth-gen.awk: Likewise.
22301         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
22302         * tree-optimize.c (tree_rest_of_compilation): Likewise.
22303
22304 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
22305
22306         * c-common.c (match_case_to_enum_1): Add appropriate
22307         OPT_W* parameter to warning.
22308         (c_do_switch_warnings): Likewise.
22309         * c-typeck.c (warning_init): Add one more parameter following
22310         'warning' function.
22311         (push_init_level): Update call to warning_init.
22312         (pop_init_level): Likewise.
22313         (add_pending_init): Likewise.
22314         (output_init_element: Likewise.
22315
22316 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
22317
22318         PR 28322
22319         * toplev.c (toplev_main): If there are warnings or error, print
22320         errors for ignored options.
22321         * opts.c (ignored_options): New static variable.
22322         (postpone_unknown_option_error): New.
22323         (print_ignored_options): New.
22324         (handle_option): Postpone errors for unknown -Wno-* options.
22325         * opts.h (print_ignored_options): Declare.
22326
22327 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
22328
22329         * config/mips/mips.md (loadgp_blockage, blockage): Change type
22330         to "ghost".
22331
22332 2008-02-25  Richard Guenther  <rguenther@suse.de>
22333
22334         Revert:
22335         2008-02-25  Richard Guenther  <rguenther@suse.de>
22336
22337         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
22338         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
22339         (lookup_decl_from_uid): Declare.
22340         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
22341         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
22342         (decl_for_uid_map): New global hashtable mapping DECL_UID
22343         to the decl tree.
22344         (init_ttree): Allocate it.
22345         (insert_decl_to_uid_decl_map): New helper function.
22346         (make_node_stat): Insert new decls into the map.
22347         (copy_node_stat): Likewise.
22348         (lookup_decl_from_uid): New function.
22349         (print_decl_for_uid_map_statistics): New helper.
22350         (dump_tree_statistics): Call it.
22351
22352         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
22353         (referenced_var_iterator): Adjust.
22354         (FOR_EACH_REFERENCED_VAR): Adjust.
22355         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
22356         (num_referenced_vars): Adjust.
22357         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
22358         (first_referenced_var): Remove.
22359         (end_referenced_vars_p): Likewise.
22360         (next_referenced_var): Likewise.
22361         (referenced_var_iterator_set): New helper function.
22362         * tree-dfa.c (referenced_var_lookup): Adjust.
22363         (referenced_var_check_and_insert): Likewise.
22364         (remove_referenced_var): Likewise.
22365         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
22366         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
22367         (verify_call_clobbering): Likewise.
22368         (verify_memory_partitions): Likewise.
22369         (init_tree_ssa): Allocate bitmap instead of hashtable for
22370         referenced_vars.
22371         (delete_tree_ssa): Adjust.
22372         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
22373         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
22374         (compute_tag_properties): Likewise.
22375         (set_initial_properties): Likewise.
22376         (find_partition_for): Likewise.
22377         (update_reference_counts): Likewise.
22378         (dump_may_aliases_for): Likewise.
22379         * tree-ssa-operands.c (add_virtual_operand): Likewise.
22380         (add_call_clobber_ops): Likewise.
22381         (add_call_read_ops): Likewise.
22382         (get_asm_expr_operands): Likewise.
22383         * tree-into-ssa.c (dump_decl_set): Likewise.
22384         (update_ssa): Likewise.
22385         * tree-sra.c (scan_function): Likewise.
22386         (decide_instantiations): Likewise.
22387         (scalarize_parms): Likewise.
22388         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
22389         (dsa_named_for): Likewise.
22390         * tree-ssa-structalias.c (update_alias_info): Likewise.
22391         (merge_smts_into): Likewise.
22392
22393 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
22394
22395         PR fortran/29549
22396         * doc/invoke.texi (-fcx-limited-range): Document new option.
22397         * toplev.c (process_options): Handle -fcx-fortran-rules.
22398         * common.opt: Add documentation for -fcx-fortran-rules.
22399
22400 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
22401
22402         PR c/35162
22403         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
22404         actual behaviour and C99.
22405
22406 2008-02-26  Ben Elliston  <bje@au.ibm.com>
22407
22408         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
22409         (ASM_CPU_POWER6_SPEC): Likewise.
22410         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
22411         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
22412         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
22413
22414 2008-02-25  Richard Guenther  <rguenther@suse.de>
22415
22416         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
22417         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
22418         (lookup_decl_from_uid): Declare.
22419         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
22420         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
22421         (decl_for_uid_map): New global hashtable mapping DECL_UID
22422         to the decl tree.
22423         (init_ttree): Allocate it.
22424         (insert_decl_to_uid_decl_map): New helper function.
22425         (make_node_stat): Insert new decls into the map.
22426         (copy_node_stat): Likewise.
22427         (lookup_decl_from_uid): New function.
22428         (print_decl_for_uid_map_statistics): New helper.
22429         (dump_tree_statistics): Call it.
22430
22431         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
22432         (referenced_var_iterator): Adjust.
22433         (FOR_EACH_REFERENCED_VAR): Adjust.
22434         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
22435         (num_referenced_vars): Adjust.
22436         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
22437         (first_referenced_var): Remove.
22438         (end_referenced_vars_p): Likewise.
22439         (next_referenced_var): Likewise.
22440         (referenced_var_iterator_set): New helper function.
22441         * tree-dfa.c (referenced_var_lookup): Adjust.
22442         (referenced_var_check_and_insert): Likewise.
22443         (remove_referenced_var): Likewise.
22444         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
22445         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
22446         (verify_call_clobbering): Likewise.
22447         (verify_memory_partitions): Likewise.
22448         (init_tree_ssa): Allocate bitmap instead of hashtable for
22449         referenced_vars.
22450         (delete_tree_ssa): Adjust.
22451         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
22452         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
22453         (compute_tag_properties): Likewise.
22454         (set_initial_properties): Likewise.
22455         (find_partition_for): Likewise.
22456         (update_reference_counts): Likewise.
22457         (dump_may_aliases_for): Likewise.
22458         * tree-ssa-operands.c (add_virtual_operand): Likewise.
22459         (add_call_clobber_ops): Likewise.
22460         (add_call_read_ops): Likewise.
22461         (get_asm_expr_operands): Likewise.
22462         * tree-into-ssa.c (dump_decl_set): Likewise.
22463         (update_ssa): Likewise.
22464         * tree-sra.c (scan_function): Likewise.
22465         (decide_instantiations): Likewise.
22466         (scalarize_parms): Likewise.
22467         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
22468         (dsa_named_for): Likewise.
22469         * tree-ssa-structalias.c (update_alias_info): Likewise.
22470         (merge_smts_into): Likewise.
22471
22472 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
22473
22474         PR target/35258
22475         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
22476         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
22477         * alias.h (nonoverlapping_memrefs_p): Likewise.
22478
22479 2008-02-25  Jan Beulich  <jbeulich@novell.com>
22480
22481         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
22482         * config/i386/netware-libgcc.exp: Add __bswap?i2,
22483         __emultls_get_address, __emultls_register_common,
22484         __floatundi?f, and _Unwind_GetIPInfo.
22485         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
22486         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
22487         (gen_regparm_prefix): Likewise.
22488         (i386_nlm_encode_section_info): Sync with
22489         config/i386/winnt.c:i386_pe_encode_section_info().
22490         (i386_nlm_maybe_mangle_decl_assembler_name): New.
22491         i386_nlm_mangle_decl_assembler_name): New.
22492         (netware_override_options): New.
22493         * config/i386/netware.h (netware_override_options): Declare.
22494         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
22495         (i386_nlm_mangle_decl_assembler_name): Declare.
22496         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
22497
22498 2008-02-25  Ben Elliston  <bje@au.ibm.com>
22499
22500         PR other/32948
22501         * c-decl.c (grokdeclarator): Remove unused local variables
22502         `typedef_type' and `type_as_written'.
22503         * bb-reorder.c
22504         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
22505         unused local variable `has_hot_blocks'.
22506         (fix_crossing_conditional_branches): Remove unused local variable
22507         `prev_bb'.
22508
22509 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
22510
22511         PR middle-end/19984
22512         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
22513         using DEF_C99_BUILTIN.
22514         (BUILT_IN_NANF): Ditto.
22515         (BUILT_IN_NANL): Ditto.
22516
22517 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
22518             Revital Eres  <eres@il.ibm.com>
22519
22520         * modulo-sched.c (calculate_must_precede_follow): Address TODO
22521         regarding the order of two dependent insns in the same row.
22522
22523 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
22524
22525         * stor-layout.c (layout_decl): Do not bump the alignment of a
22526         bit-field to more than byte alignment if it is packed.
22527
22528 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
22529
22530         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
22531         e300c2 and e300c3.
22532
22533 2008-02-24  Diego Novillo  <dnovillo@google.com>
22534
22535         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
22536
22537         PR 33738
22538         * tree-vrp.c (vrp_evaluate_conditional): With
22539         -Wtype-limits, emit a warning when comparing against a
22540         constant outside the natural range of OP0's type.
22541         * c.opt (Wtype-limits): Move ...
22542         * common.opt (Wtype-limits): ... here.
22543
22544 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
22545
22546         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
22547         * config/rs6000/e300c2c3.md: New file.
22548         * config/rs6000/rs6000.c (processor_costs): Add new costs for
22549         e300c2 and e300c3.
22550         (rs6000_override_options): Add e300c2 and e300c3 cases to
22551         processor_target_table. Do not allow usage of Altivec or Spe
22552         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
22553         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
22554         * config/rs6000/rs6000.h (processor_type): Add
22555         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
22556         (ASM_CPU_SPEC): Add e300c2 and e300c3.
22557         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
22558         and ppce300c3. Include e300c2c3.md.
22559
22560 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
22561
22562         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
22563         instead of TARGET_STRICT_ALIGN.
22564
22565 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
22566
22567         * explow.c (memory_address): Assert that the generated address is
22568         valid.
22569
22570 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
22571
22572         PR target/25477
22573         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
22574         * config/darwin-ppc-ldouble-patch.def: New file.
22575         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
22576         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
22577         SUBTARGET_INIT_BUILTINS if defined.
22578         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
22579         New functions.
22580
22581 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
22582
22583         PR rtl-opt/33512
22584         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
22585         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
22586
22587 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
22588
22589         PR pch/35027
22590         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
22591         file" warning condtional on -Winvalid-PCH.
22592
22593 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
22594
22595         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
22596
22597 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
22598
22599         PR target/22076
22600         PR target/34256
22601         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
22602         prevent reload from using MMX registers.
22603         (*mov<mode>_internal): Ditto.
22604         (*movv2sf_internal_rex64): Ditto.
22605         (*movv2sf_internal): Ditto.
22606
22607 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22608
22609         PR documentation/31569
22610         * doc/install.texi2html: Use makeinfo --no-number-sections.
22611
22612 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
22613
22614         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
22615         ensure that we can address an entire entity > 8 bytes.  Don't
22616         generate reg+reg addressing for such data.
22617
22618 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
22619
22620         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
22621         strings when optimizing for size, unless the target cares about
22622         alignment.
22623
22624 2008-02-22  Tom Tromey  <tromey@redhat.com>
22625
22626         * regclass.c (current_pass): Remove declaration.
22627
22628 2008-02-22  Anatoly Sokolov <aesok@post.ru>
22629
22630         * config/avr/libgcc.S (__RAMPZ__): Define.
22631         (__do_copy_data): Add for devices with 128KB code memory.
22632
22633 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
22634
22635         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
22636         Use spe_abi.
22637         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
22638
22639 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
22640
22641         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
22642         GENNONACR_REGS.
22643
22644 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22645
22646         PR c/19999
22647         * c-typeck.c (build_binary_op): Warn about floating point
22648         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
22649
22650 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
22651
22652         PR target/34526
22653         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
22654         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
22655         add vrsave.
22656         (rs6000_override_options): Set altivec_abi as default, not override,
22657         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
22658         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
22659         is used; use new member spe_abi.
22660         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
22661         spe_abi and altivec_abi.
22662
22663 2008-02-22  Tomas Bily  <tbily@suse.cz>
22664
22665         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
22666
22667 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22668
22669         PR bootstrap/35273
22670         * config.build (build_file_translate): Set to `CMD //c' only if
22671         it works.
22672         * Makefile.in (build_file_translate): Improve comment.
22673
22674 2008-02-21  Jan Hubicka  <jh@suse.cz>
22675
22676         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
22677         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
22678         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
22679
22680 2008-02-21  Michael Matz  <matz@suse.de>
22681
22682         PR target/35264
22683         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
22684
22685 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
22686
22687         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
22688         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
22689         as insn constraint.
22690         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
22691         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
22692         SSE_VEC_FLOAT_MODE_P as insn constraint.
22693         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
22694         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
22695         sse4a_movntdf using MODEF mode iterator.
22696         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
22697         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
22698         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
22699         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
22700         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
22701         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
22702         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
22703
22704 2008-02-21  Richard Guenther  <rguenther@suse.de>
22705
22706         * tree.def (PAREN_EXPR): New tree code.
22707         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
22708         and PAREN_EXPR.
22709         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
22710         * expr.c (expand_expr_real_1): Likewise.
22711         * tree-inline.c (estimate_num_insns_1): Likewise.
22712         * tree-complex.c (expand_complex_move): Likewise.
22713         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
22714         as plain x.
22715
22716 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
22717
22718         PR target/35225
22719         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
22720
22721 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
22722
22723         PR target/35190
22724         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
22725
22726         * config/sh/sh.c (find_barrier): Don't go past
22727         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
22728
22729 2008-02-20  DJ Delorie  <dj@redhat.com>
22730
22731         * config/h8300/h8300.md (insv): Force source operand to be a register.
22732
22733         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
22734         as a jump, not as a plain insn.
22735
22736 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
22737
22738         * doc/invoke.texi (Warning Options): Add new option
22739         -Wframe-larger-than=.
22740         (-Wframe-larger-than): Document.
22741
22742         * flags.h (warn_frame_larger_than, frame_larger_than_size):
22743         Add declarations for new option variables.
22744
22745         * final.c (final_start_function): Check the frame size
22746         before emission and issue a Wframe-larger-than warning.
22747
22748         * opts.c (warn_frame_larger_than, frame_larger_than_size):
22749         Add definitions for new option variables.
22750         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
22751
22752         * common.opt (Wframe-larger-than=): New option.
22753
22754 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
22755
22756         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
22757         (<sse>_div<mode>3): Ditto.
22758         (<sse>_vmdiv<mode>3): Ditto.
22759         (<sse>_vmsqrt<mode>2): Ditto.
22760         (*smax<mode>3): Ditto.
22761         (sse5_frcz<mode>2): Ditto.
22762         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
22763         as insn constraint.
22764
22765 2008-02-20  Richard Guenther  <rguenther@suse.de>
22766
22767         PR middle-end/35265
22768         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
22769         be happy with INTEGRAL_TYPE_P.
22770
22771 2008-02-20  Richard Guenther  <rguenther@suse.de>
22772
22773         * fold-const.c (split_tree): Associate floatig-point expressions
22774         if flag_associative_math is set.
22775
22776 2008-02-20  Richard Guenther  <rguenther@suse.de>
22777
22778         * tree.h (fold_real_zero_addition_p): Declare.
22779         * fold-const.c (fold_real_zero_addition_p): Export.
22780         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
22781         floating-point operations with zero and one.
22782
22783 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
22784
22785         * doc/install.texi: Correct references to CFLAGS, replacing them
22786         with BOOT_CFLAGS.  Document flags used during bootstrap for
22787         target libraries.
22788
22789 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
22790
22791         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
22792         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
22793         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
22794         insn constraint.
22795         (smin<mode>3): Ditto from similar patterns.
22796         (smax<mode>3): Ditto.
22797         (*ieee_smin<mode>3): Ditto.
22798         (*ieee_smax<mode>3): Ditto.
22799         * config/i386/sse.md (sse): New mode attribute.
22800         (mov<mode>): Macroize expander from movv4sf and movv2df using
22801         SSEMODEF2P mode iterator.
22802         (<sse>_movnt<mode>): Ditto from similar patterns. Use
22803         SSE_VEC_FLOAT_MODE_P as insn constraint.
22804         (storent<mode>): Ditto.
22805         (storent<mode>): Macroize expander from storentsf and storentdf using
22806         MODEF mode iterator.
22807         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
22808         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
22809         (abs<mode>2): Ditto from similar patterns.
22810         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
22811         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
22812         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
22813         (<sse>_vmsqrt<mode>2): Ditto.
22814         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
22815         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
22816         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
22817         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
22818         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
22819         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
22820         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
22821         insn constraint.
22822         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
22823         iterator and SSE_FLOAT_MODE_P as insn constraint.
22824         (<sse>_ucomi): Ditto from similar patterns.
22825         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
22826         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
22827         SSE_VEC_FLOAT_MODE_P as insn constraint.
22828         (vcond<mode>): Ditto from similar patterns.
22829         (and<mode>3, *and<mode>3): Ditto.
22830         (<sse>_nand<mode>3): Ditto.
22831         (ior<mode>3, *ior<mode>3): Ditto.
22832         (xor<mode>3, *xor<mode>3): Ditto.
22833         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
22834         iterator and SSE_FLOAT_MODE_P as insn constraint.
22835         (*nand<mode>3): Ditto from similar patterns.
22836         (*ior<mode>3): Ditto.
22837         (*xor<mode>3): Ditto.
22838
22839 2008-02-20  Ira Rosen  <irar@il.ibm.com>
22840
22841         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
22842         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
22843         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
22844
22845 2008-02-19  Jan Hubicka  <jh@suse.cz>
22846
22847         * predict.c (tree_bb_level_predictions): Remove variable next
22848         mistakely introduced by previous commit.
22849
22850 2008-02-19  Jan Hubicka  <jh@suse.cz>
22851
22852         * predict.c (predict_paths_leading_to): Rewrite.
22853         (predict_paths_for_bb): New.
22854         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
22855
22856 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22857
22858         PR bootstrap/35218
22859         * Makefile.in (build_file_translate): New.
22860         (gcc-vers.texi): Use it for translating $(abs_srcdir).
22861         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
22862         * configure.ac (build_file_translate): Substitute it.
22863         * configure: Regenerate.
22864
22865 2008-02-19  Jan Hubicka  <jh@suse.cz>
22866
22867         PR rtl-optimization/34408
22868         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
22869         invalid sharing.
22870
22871 2008-02-19  Jan Hubicka  <jh@suse.cz>
22872
22873         PR middle-end/28779
22874         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
22875         call_expr.
22876
22877 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
22878
22879         PR Ada/35186
22880         * config/i386/i386-modes.def: Revert the last DI alignment
22881         change until Ada people can look into it.
22882
22883 2008-02-19  Nick Clifton  <nickc@redhat.com>
22884
22885         * opts.c (print_specific_help): Fix typo in --help text.
22886
22887 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
22888
22889         PR target/35239
22890         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
22891         32-bit inline asm without asm alternatives for host GCC < 3.0.
22892
22893 2008-02-19  Richard Guenther  <rguenther@suse.de>
22894
22895         PR tree-optimization/34989
22896         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
22897         Allow propagation to INDIRECT_REF if we can simplify only.
22898
22899 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
22900
22901         * c-common.c (warn_for_collisions_1): Use appropriate option when
22902         warning.
22903
22904 2008-02-19  Nick Clifton  <nickc@redhat.com>
22905
22906         PR other/31349
22907         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
22908         (handle_options): Fix indentation.
22909         (print_filtered_help): If no language-specific options were
22910         displayed tell the user how to list all the options supported by
22911         the language's front-end.
22912         (print_specific_help): Fix indentation and remove duplicate line.
22913         (common_handle_option): Handle the -v option.
22914         For --help enable the display of undocumented options if the -v
22915         switch has been included on the command line.
22916         For --help= check for overlaps in the arguments between the option
22917         classes and the language names and issue a warning when they
22918         cannot be disambiguated.
22919         * c.opt (v): Pass on to the common option handler.
22920
22921 2008-02-19  Revital Eres  <eres@il.ibm.com>
22922
22923         * modulo-sched.c (sms_schedule): Change dump message when
22924         create_ddg function fails.
22925         (try_scheduling_node_in_cycle): Rename row to cycle.
22926         (print_partial_schedule): Rename CYCLE to ROW.
22927
22928 2008-02-19  Christian Bruel  <christian.bruel@st.com>
22929             Zdenek Dvorak  <ook@ucw.cz>
22930
22931         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
22932
22933 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
22934
22935         PR target/33555
22936         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
22937         (*x86_movdicc_0_m1_se): Ditto.
22938
22939 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
22940
22941         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
22942         (CMPtype): Define as __gcc_CMPtype.
22943         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
22944         (CMPtype): Define as __gcc_CMPtype.
22945
22946 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
22947
22948         Support valgrind 3.3 for --enable-checking=valgrind.
22949         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
22950         here.
22951         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
22952         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
22953         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
22954         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
22955         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
22956         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
22957         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
22958         respectively.
22959         * ggc-zone.c: Similar.
22960         * ggc-page.c: Similar.
22961
22962 2008-02-19  Paul Brook  <paul@codesourcery.com>
22963
22964         PR target/35071
22965         * config/arm/ieee754-df.S: Fix do_it typo.
22966         * config/arm/ieee754-sf.S: Fix do_it typo.
22967
22968 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
22969
22970         PR target/35189
22971         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
22972         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
22973         (OPTION_MASK_ISA_SSE_SET): Likewise.
22974         (OPTION_MASK_ISA_SSE2_SET): Likewise.
22975         (OPTION_MASK_ISA_SSE3_SET): Likewise.
22976         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
22977         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
22978         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
22979         (OPTION_MASK_ISA_SSE4_SET): Likewise.
22980         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
22981         (OPTION_MASK_ISA_SSE5_SET): Likewise.
22982         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
22983         (OPTION_MASK_ISA_MMX_UNSET): Updated.
22984         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
22985         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
22986         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
22987         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
22988         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
22989         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
22990         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
22991         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
22992         (OPTION_MASK_ISA_SSE4): Removed.
22993         (ix86_handle_option): Turn on bits in ix86_isa_flags and
22994         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
22995         (override_options): Don't turn on implied SSE/MMX bits in
22996         ix86_isa_flags.
22997
22998 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
22999
23000         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
23001         32bit host.
23002
23003 2008-02-18  Joey Ye  <joey.ye@intel.com>
23004
23005         PR middle-end/34921
23006         * tree-nested.c (insert_field_into_struct): Set type alignment
23007         to field alignment if the former is less than the latter.
23008
23009 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
23010
23011         * BASE-VER: Set to 4.4.0.
23012
23013 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
23014
23015         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
23016         * doc/cfg.texi: Likewise.
23017         * doc/extend.texi: Likewise.
23018         * doc/gty.texi: Likewise.
23019         * doc/invoke.texi: Likewise.
23020         * doc/loop.texi: Likewise.
23021         * doc/md.texi: Likewise.
23022         * doc/passes.texi: Likewise.
23023         * doc/rtl.texi: Likewise.
23024         * doc/sourcebuild.texi: Likewise.
23025         * doc/tm.texi: Likewise.
23026         * doc/tree-ssa.texi: Likewise.
23027
23028 2008-02-17  Richard Guenther  <rguenther@suse.de>
23029
23030         PR middle-end/35227
23031         * tree-complex.c (init_parameter_lattice_values): Handle parameters
23032         without default definition.
23033
23034 2008-02-17  Richard Guenther  <rguenther@suse.de>
23035
23036         PR tree-optimization/35231
23037         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
23038         if A | B != 1.
23039
23040 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
23041
23042         Revert:
23043         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
23044         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
23045         libgcc_cmp_return mode.
23046
23047 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
23048
23049         PR c/28368
23050         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
23051
23052 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
23053
23054         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
23055         multilibs.
23056
23057 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23058
23059         * doc/c-tree.texi: Use `@.' where appropriate.
23060         * doc/extend.texi: Likewise.
23061         * doc/install.texi: Likewise.
23062         * doc/invoke.texi: Likewise.
23063         * doc/loop.texi: Likewise.
23064         * doc/makefile.texi: Likewise.
23065         * doc/md.texi: Likewise.
23066         * doc/passes.texi: Likewise.
23067         * doc/standards.texi: Likewise.
23068         * doc/tm.texi: Likewise.
23069
23070 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
23071
23072         PR middle-end/35196
23073         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
23074         in entry_bb.
23075         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
23076         rather than in entry_bb.
23077
23078 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
23079
23080         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
23081         libgcc_cmp_return mode.
23082
23083 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
23084
23085         PR middle-end/35130
23086         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
23087         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
23088
23089 2008-02-15  Richard Guenther  <rguenther@suse.de>
23090             Zdenek Dvorak  <ook@ucw.cz>
23091
23092         PR tree-optimization/35164
23093         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
23094         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
23095         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
23096         Only propagate addresses which do not have abnormal SSA_NAMEs
23097         in their operands.
23098
23099 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
23100
23101         PR target/35088
23102         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
23103
23104 2008-02-15  Jan Hubicka  <jh@suse.cz>
23105
23106         PR middle-end/35149
23107         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
23108
23109 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
23110
23111         PR middle-end/34621
23112         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
23113         when calculating alignment_pad.
23114
23115 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
23116
23117         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
23118         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
23119         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
23120         and STACK_BOUNDARY define.
23121
23122 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
23123
23124         PR preprocessor/35061
23125         * c-pragma.c (handle_pragma_pop_macro): Check that
23126         pushed_macro_table has been allocated.
23127
23128 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
23129
23130         PR middle-end/35136
23131         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
23132         (force_gimple_operand): Likewise.
23133         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
23134         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
23135         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
23136         (find_interesting_uses_address): Check addressability and alignment
23137         of the base expression only after substituting bases of IVs into it.
23138
23139 2008-02-14  Michael Matz  <matz@suse.de>
23140
23141         PR target/34930
23142         * function.c (instantiate_virtual_regs_in_insn): Reload address
23143         before falling back to reloading the whole operand.
23144
23145 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
23146
23147         * config/s390/s390.c (s390_mainpool_start): Emit the pool
23148         before the first section switch note.
23149
23150 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
23151
23152         * doc/bugreport.texi: Update copyright years.
23153         * doc/c-tree.texi: Likewise.
23154         * doc/cfg.texi: Likewise.
23155         * doc/cpp.texi: Likewise.
23156         * doc/cppinternals.texi: Likewise.
23157         * doc/fragments.texi: Likewise.
23158         * doc/frontends.texi: Likewise.
23159         * doc/gcc.texi: Likewise.
23160         * doc/gty.texi: Likewise.
23161         * doc/hostconfig.texi: Likewise.
23162         * doc/implement-c.texi: Likewise.
23163         * doc/libgcc.texi: Likewise.
23164         * doc/loop.texi: Likewise.
23165         * doc/makefile.texi: Likewise.
23166         * doc/options.texi: Likewise.
23167         * doc/passes.texi: Likewise.
23168         * doc/rtl.texi: Likewise.
23169         * doc/sourcebuild.texi: Likewise.
23170         * doc/standards.texi: Likewise.
23171         * doc/tree-ssa.texi: Likewise.
23172         * doc/trouble.texi: Likewise.
23173
23174         * doc/extend.texi: Use @: or add comma where appropriate.
23175         * doc/invoke.texi: Likewise.
23176         * doc/tm.texi: Likewise.
23177
23178 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
23179
23180         PR target/34393
23181         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
23182         to a reg.
23183
23184 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
23185
23186         * doc/md.texi (clz, ctz): Add reference.
23187         * doc/rtl.texi (clz, ctz): Likewise.
23188
23189 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23190
23191         PR other/35148
23192         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
23193         srcdir.
23194
23195 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
23196
23197         * config/s390/s390.c (struct constant_pool): New field
23198         emit_pool_after added.
23199         (s390_mainpool_start): Set the emit_pool_after flag according
23200         to the section switch notes.
23201         (s390_mainpool_finish): Consider emit_pool_after when emitting
23202         the literal pool at the end of the function.
23203         (s390_chunkify_start): Force literal pool splits at section
23204         switch notes.
23205
23206 2008-02-13  Michael Matz  <matz@suse.de>
23207
23208         PR debug/35065
23209         * var-tracking.c (clobber_variable_part): Correctly traverse the
23210         list.
23211
23212 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
23213
23214         PR 29673
23215         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
23216         Add -fdump-ipa-inline.
23217         * tree-dump.c (dump_files): Remove tree-inlined dump.
23218         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
23219
23220 2008-02-12  Richard Guenther  <rguenther@suse.de>
23221
23222         PR tree-optimization/35171
23223         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
23224         default defs.
23225
23226 2008-02-12  Richard Guenther  <rguenther@suse.de>
23227
23228         PR middle-end/35163
23229         * fold-const.c (fold_widened_comparison): Use get_unwidened in
23230         value-preserving mode.  Disallow final truncation.
23231
23232 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
23233
23234         PR middle-end/35136
23235         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
23236         code from here to...
23237         (force_gimple_operand): ...here.
23238
23239 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
23240
23241         PR c++/35144
23242         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
23243         non-compatible pointers.
23244         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
23245         different FIELD_DECLs, try harder by comparing field offsets, sizes
23246         and types.
23247
23248         PR inline-asm/35160
23249         * function.c (match_asm_constraints_1): Don't replace the same input
23250         multiple times.
23251
23252 2008-02-12  Anatoly Sokolov <aesok@post.ru>
23253
23254         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
23255         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
23256         (expand_epilogue): Restore RAMPZ register.
23257         * config/avr/avr.md (RAMPZ_ADDR): New constant.
23258
23259 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
23260
23261         * config/i386/cygwin.asm: (__alloca): Correct calling
23262         convention and alignment.
23263         (__chkstk): Force 8 byte stack alignment.
23264
23265 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
23266             Richard Guenther  <rguenther@suse.de>
23267
23268         PR tree-optimization/33992
23269         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
23270         the zero we compare against.
23271
23272 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
23273
23274         PR libfortran/35063
23275         * gthr-win32.h (__gthread_mutex_destroy_function): New function
23276         to CloseHandle after unlocking to prevent accumulation of handle
23277         count.
23278
23279 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23280
23281         PR middle_end/34150
23282         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
23283         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
23284         and update LABEL_NUSES during and after reload.
23285
23286 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
23287
23288         PR middle-end/34627
23289         * combine.c (simplify_if_then_else): Make sure the comparison is
23290         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
23291
23292 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
23293
23294         PR bootstrap/35051
23295         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
23296         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
23297         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
23298         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
23299         * tree.h (get_type_static_bounds): Likewise.
23300
23301 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23302
23303         * doc/invoke.texi (Option Summary, C++ Dialect Options)
23304         (Objective-C and Objective-C++ Dialect Options, Warning Options):
23305         Make -Wfoo language annotations match what the compiler outputs.
23306
23307 2008-02-08  Sa Liu  <saliu@de.ibm.com>
23308
23309         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu
23310         intrinsics spu_convts, spu_convtu, spu_convtf.
23311
23312 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
23313
23314         * doc/extend.texi (Function Attributes) <noinline>: Mention
23315         asm ("") as method to keep calls.
23316
23317 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
23318
23319         PR other/32754
23320         * doc/options.texi (Options): Replace references to opts.sh with
23321         optc-gen.awk.
23322         * opts-common.c: Likewise.
23323         * optc-gen.awk: Likewise.
23324
23325 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
23326
23327         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
23328
23329 2008-02-07  Richard Henderson  <rth@redhat.com>
23330
23331         PR rtl-opt/33410
23332         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
23333         EXPR_LIST for the REG_EQUAL instead of a comparison with a
23334         funny mode.
23335
23336 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
23337
23338         PR tree-optimization/35085
23339         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
23340         for operand entry oe2 in addition to operand entry oe3 in order to
23341         expose more opportunities for vectorizer sum reduction.
23342
23343 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23344
23345         PR other/35107
23346         * Makefile.in (LIBS): Remove $(GMPLIBS).
23347         (cc1-dummy, cc1): Add $(GMPLIBS).
23348
23349 2008-02-06  Jan Hubicka  <jh@suse.cz>
23350
23351         PR target/23322
23352         * i386.md (moddf_integer): Do not produce partial memory stalls for
23353         targets where it hurts.
23354
23355 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
23356
23357         PR target/35083
23358         * optabs.c (expand_float): Do not check for decimal modes when
23359         expanding unsigned integer through signed conversion.
23360
23361 2008-02-06  Nick Clifton  <nickc@redhat.com>
23362
23363         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
23364         inside the clobber with a match_operand and duplicated operand
23365         number in the constraint.
23366         (ineqbranchsi): Delete redundant comment.
23367
23368 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
23369
23370         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add
23371         builtin_define ("__USE_INIT_FINI__").
23372         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
23373         -msx multilibs.
23374         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
23375
23376 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23377
23378         PR documentation/30330
23379         * doc/invoke.texi (C++ Dialect Options)
23380         (Objective-C and Objective-C++ Dialect Options, Warning Options):
23381         For each warning option -Wfoo that allows -Wno-foo, ensure both
23382         -Wfoo and -Wno-foo are listed in the option index.  Fix index
23383         entry of -Wswitch-default, index -Wnormalized= including the
23384         `=', and -Wlarger-than-@var{len} including @var{len}.
23385
23386 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
23387
23388         * config/i386/i386.md (floatunssisf2): Use
23389         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
23390         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
23391         Macroize expander using MODEF mode iterator.
23392
23393 2008-02-05  Diego Novillo  <dnovillo@google.com>
23394
23395         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
23396
23397         PR 33738
23398         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
23399
23400 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23401
23402         PR other/35070
23403         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
23404
23405 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
23406
23407         PR target/35084
23408         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
23409         to indicate if a message should be generated.
23410         (init_cumulative_args): Updated.
23411         (function_value_32): Likewise.
23412
23413 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
23414
23415         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
23416
23417 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
23418
23419         PR target/35083
23420         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
23421         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
23422
23423 2008-02-04  Diego Novillo  <dnovillo@google.com>
23424
23425         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
23426
23427         PR 33738
23428         * tree-vrp.c (vrp_evaluate_conditional): With
23429         -Wtype-limits, emit a warning when comparing against a
23430         constant outside the natural range of OP0's type.
23431
23432 2008-02-04  Richard Guenther  <rguenther@suse.de>
23433
23434         PR middle-end/33631
23435         * expr.c (count_type_elements): Give for unions instead of
23436         guessing.
23437
23438 2008-02-04  Richard Guenther  <rguenther@suse.de>
23439
23440         PR middle-end/35043
23441         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
23442         to TYPE_DOMAINs base type instead of using bitsizetype here.
23443
23444 2008-02-03  Jason Merrill  <jason@redhat.com>
23445
23446         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
23447
23448 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23449
23450         PR other/29972
23451         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
23452         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
23453         (RS/6000 and PowerPC Options): Fix typos and markup.
23454         * doc/passes.texi (Tree-SSA passes): Likewise.
23455
23456 2008-02-02  Michael Matz  <matz@suse.de>
23457
23458         PR target/35045
23459         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
23460         from record_last_reg_set_info.
23461         (record_last_reg_set_info): Take an RTX argument, iterate over all
23462         constituent hardregs.
23463         (record_last_set_info, record_opr_changes): Change calls to
23464         new signature or to record_last_reg_set_info_regno.
23465
23466 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
23467
23468         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
23469
23470 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
23471
23472         PR rtl-optimization/34773
23473         * reg-notes.def (EQUAL): Mention significance of combination of
23474         REG_EQUAL and REG_RETVAL.
23475         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
23476         insn that has a REG_RETVAL.
23477
23478 2008-02-01  Roger Sayle  <roger@eyesopen.com>
23479
23480         PR bootstrap/33781
23481         * configure.ac (--enable-fixed-point): Disable unless explicitly
23482         requested on IRIX.
23483         * configure: Regenerate.
23484
23485 2008-02-01  Richard Guenther  <rguenther@suse.de>
23486
23487         PR other/35042
23488         * invoke.texi (-finline-limit): Remove no longer true parts
23489         of the documentation.  Note that there is no default value.
23490
23491 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
23492             Mark Mitchell  <mark@codesourcery.com>
23493             Ben Elliston  <bje@au.ibm.com>
23494
23495         PR c/29326
23496         * doc/extend.texi (Other Builtins): Document.
23497
23498 2008-01-31  Tom Browder <tom.browder@gmail.com>
23499
23500         * doc/c-tree.texi (Types): Fix grammar.
23501         (Expression trees): Ditto.
23502         * doc/passes.texi (Tree-SSA passes): Ditto.
23503
23504         * doc/configterms.texi (Configure Terms): Fix typo.
23505         * doc/cpp.texi (Common Predefined Macros): Ditto.
23506         * doc/md.texi (Machine Constraints): Ditto.
23507
23508         * doc/makefile.texi (Makefile): Add comma.
23509
23510 2008-01-31  Tom Browder  <tom.browder@gmail.com>
23511             Gerald Pfeifer  <gerald@pfeifer.com>
23512
23513         * doc/sourcebuild.texi (Front End): Remove references to CVS
23514         and CVSROOT/modules.
23515         (Texinfo Manuals): Replace reference to CVS by one to SVN.
23516         (Back End): Remove reference to CVS.
23517
23518 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
23519
23520         PR target/34900
23521         * config/mips/mips.c (gen_load_const_gp): New function, taking a
23522         comment from...
23523         (mips16_gp_pseudo_reg): ...here.
23524         * config/mips/mips.md (load_const_gp): Replace with...
23525         (load_const_gp_<mode>): ...this :P-based insn.
23526
23527 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
23528
23529         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
23530         options. Minor fixes.
23531         (-std): Move reference to standards closer to where language
23532         standards are first mentioned.
23533
23534 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
23535
23536         PR rtl-optimization/34995
23537         * reload.c (alternative_allows_const_pool_ref): Take an rtx
23538         parameter and return a bool.  If the rtx parameter is nonnull,
23539         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
23540         (find_reloads): Update call accordingly.  Pass the new operand
23541         if it needed no address reloads, otherwise pass null.
23542
23543 2008-01-30  Richard Henderson  <rth@redhat.com>
23544
23545         PR c/34993
23546         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
23547         for unbounded arrays.
23548
23549 2008-01-30  Silvius Rus  <rus@google.com>
23550
23551         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
23552
23553 2008-01-30  Jan Hubicka  <jh@suse.cz>
23554
23555         PR target/34982
23556         * i386.c (init_cumulative_args): Use real function declaration when
23557         calling locally.
23558
23559 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
23560
23561         PR rtl-optimization/34998
23562         * global.c (build_insn_chain): Treat non-subreg_lowpart
23563         SUBREGs of pseudos as clobbering all the words covered by the
23564         SUBREG, not just all the bytes.
23565         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
23566         original df_ref rather than an extract parameter.
23567         (global_conflicts): Update call accordingly.
23568
23569 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
23570
23571         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
23572         the overflow check to make it easier to read.
23573         (__fixtfdi): Change the type of the ll member in union
23574         long_double to UDItype_x.
23575
23576 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
23577
23578         PR middle-end/34969
23579         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
23580         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
23581         * tree-inline.c (fold_marked_statements): Call
23582         cgraph_update_edges_for_call_stmt if folding a call statement.
23583         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
23584         debug_generic_stmt calls, reset it back afterwards.
23585
23586         PR c/35017
23587         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
23588         static decls.
23589         * c-typeck.c (build_external_ref): Don't pedwarn about
23590         static vars in current function's scope.
23591
23592 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
23593
23594         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
23595
23596 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
23597
23598         PR c/35002
23599         * ipa-struct-reorg.c: Fix spelling.
23600         * params.def: Ditto.
23601
23602 2008-01-29  Richard Guenther  <rguenther@suse.de>
23603
23604         PR middle-end/35006
23605         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
23606         field.
23607         * tree-inline.c (remap_type): Increment remapping_type_depth
23608         around remapping types.
23609         (copy_body_r): Only add referenced variables if they are referenced
23610         from code, not types.
23611
23612 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
23613
23614         PR c++/34055
23615         PR c++/34103
23616         PR c++/34219
23617         PR c++/34606
23618         PR c++/34753
23619         PR c++/34754
23620         PR c++/34755
23621         PR c++/34919
23622         PR c++/34961
23623         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
23624         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
23625
23626 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
23627
23628         PR target/34412
23629         * config/avr/avr.c (expand_prologue): Use correct QI mode frame
23630         pointer for tiny stack.
23631
23632 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
23633
23634         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
23635
23636 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
23637
23638         * config/vx-common.h: Fix typo in comment.
23639
23640 2008-01-28  Ian Lance Taylor  <iant@google.com>
23641
23642         PR c++/34862
23643         PR c++/33407
23644         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
23645         coalesce pointers if they have different DECL_NO_TBAA_P values.
23646         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
23647         between variables with different DECL_NO_TBAA_P values.
23648
23649 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
23650
23651         PR 31535
23652         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
23653         are not legitimate small data references on SPE targets.
23654
23655 2008-01-28  David Daney  <ddaney@avtrex.com>
23656
23657         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
23658
23659 2008-01-28  David Daney  <ddaney@avtrex.com>
23660
23661         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
23662
23663 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
23664
23665         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
23666         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
23667         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
23668         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
23669         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
23670         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
23671         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
23672         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
23673
23674 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
23675
23676         * basic-block.h (condjump_equiv_p): Fix comment.
23677
23678 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
23679
23680         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
23681         print_generic_stmt_indented): Fix comment.
23682
23683 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
23684
23685         * configure.ac (__stack_chk_fail): Add detecion for availability
23686         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
23687         * configure: Regenerate.
23688
23689 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
23690
23691         PR middle-end/34688
23692         * final.c (output_addr_const): Handle TRUNCATE.
23693
23694 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
23695
23696         PR target/34711
23697         * tree-ssa-loop-ivopts.c (comp_cost): New type.
23698         (zero_cost, infinite_cost): New constants.
23699         (struct cost_pair): Change type of cost to comp_cost.
23700         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
23701         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
23702         New functions.
23703         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
23704         split_address_cost, ptr_difference_cost, difference_cost,
23705         get_computation_cost_at, get_computation_cost,
23706         determine_use_iv_cost_generic, determine_use_iv_cost_address,
23707         determine_use_iv_cost_condition, determine_use_iv_costs,
23708         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
23709         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
23710         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
23711         Change type of cost to comp_cost.
23712         (determine_iv_cost): Increase cost of non-original ivs, instead
23713         of decreasing the cost of original ones.
23714         (get_address_cost): Indicate the complexity of the addressing mode
23715         in comp_cost.
23716         (try_add_cand_for): Prefer using ivs not specific to some object.
23717         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
23718
23719 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
23720             Janis Johnson  <janis187@us.ibm.com>
23721
23722         PR target/34814
23723         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
23724         (TARGET_INSTANTIATE_DECLS): Likewise.
23725         * target.h (expand_to_rtl_hook): New target hook.
23726         (instantiate_decls): Likewise.
23727         * function.c (instantiate_decl): Make non-static.  Rename to...
23728         (instantiate_decl_rtl): ... this.
23729         (instantiate_expr): Use instantiate_decl_rtl.
23730         (instantiate_decls_1): Likewise.
23731         (instantiate_decls): Likewise.
23732         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
23733         * function.h (instantiate_decl_rtl): Add prototype.
23734         * cfgexpand.c (target.h): New include.
23735         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
23736         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
23737         (TARGET_INSTANTIATE_DECLS): Likewise.
23738         (TARGET_INITIALIZER): New target hooks added.
23739         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
23740         New prototype.
23741         * config/rs6000/rs6000.c (tree-flow.h): New include.
23742         (machine_function): Add sdmode_stack_slot field.
23743         (rs6000_alloc_sdmode_stack_slot): New function.
23744         (rs6000_instantiate_decls): Likewise.
23745         (rs6000_secondary_memory_needed_rtx): Likewise.
23746         (rs6000_check_sdmode): Likewise.
23747         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
23748         (TARGET_INSTANTIATE_DECLS): Likewise.
23749         (rs6000_hard_regno_mode_ok): Allow SDmode.
23750         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
23751         (rs6000_emit_move): Handle SDmode.
23752         (function_arg_advance): Likewise.
23753         (function_arg): Likewise.
23754         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
23755         SDmode var args for 32-bit compiles.
23756         (rs6000_secondary_reload_class): Handle SDmode.
23757         (rs6000_output_function_epilogue): Likewise.
23758         (rs6000_function_value): Simplify if statement.
23759         (rs6000_libcall_value): Likewise.
23760         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
23761         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
23762         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
23763         (movsd_hardfloat): New define_insn.
23764         (movsd_softfloat): Likewise.
23765         (movsd_store): Likewise.
23766         (movsd_load): Likewise.
23767         (extendsddd2): Likewise.
23768         (extendsdtd2): Likewise.
23769         (truncddsd2): Likewise.
23770         (movdd_hardfloat64): Fixup comment.
23771         (UNSPEC_MOVSD_LOAD): New constant.
23772         (UNSPEC_MOVSD_STORE): Likewise.
23773
23774 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
23775
23776         PR c++/34965
23777         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
23778         TRUTH_XOR_EXPR.
23779         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
23780         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
23781         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
23782         and TRUTH_XOR_EXPR.
23783
23784 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
23785
23786         PR target/34794
23787         * config.gcc: Separate AIX 5.3 from AIX 6.1.
23788         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
23789         __LONGDOUBLE128 too.
23790         * config/rs6000/aix61.h: New file.
23791
23792 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
23793
23794         PR rtl-optimization/34959
23795         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
23796         popcount and parity rtxes the same mode as their operand.
23797         Truncate or extend the result to the return value's mode
23798         if necessary.
23799
23800 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
23801
23802         PR target/34981
23803         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
23804         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
23805         to GOT_VERSION_REGNUM.
23806         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
23807         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
23808         * config/mips/mips.c (mips_emit_call_insn): New function.
23809         (mips_call_tls_get_addr): Call mips_expand_call directly.
23810         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
23811         emit_call_insn.
23812         (mips16_build_call_stub): Likewise.  Return the call insn or null.
23813         (mips_expand_call): Update the call to mips16_build_call_stub
23814         accordingly and a remove redundant condition.  Assert that MIPS16
23815         stubs do not use lazy binding.  Use mips_emit_call_insn and return
23816         the call insn.
23817         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
23818         TARGET_USE_GOT.
23819         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
23820         (mips_avoid_hazard): Remove hazard_set handling.
23821         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
23822         (UNSPEC_RESTORE_GP): ...this.
23823         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
23824         (FAKE_CALL_REGNO): Rename to...
23825         (GOT_VERSION_REGNUM): ...this.
23826         (type): Add "ghost" value.  Add an associated insn reservation.
23827         (hazard_set): Remove.
23828         (exception_receiver): Rename to...
23829         (restore_gp): ...this and update the unspec identifier accordingly.
23830         (exception_receiver, nonlocal_got_receiver): New expanders.
23831         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
23832         FAKE_CALL_REGNO.  Remove hazard_set attribute.
23833         (set_got_version, update_got_version): New patterns.
23834
23835 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
23836
23837         PR target/34970
23838         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
23839
23840 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
23841
23842         PR other/31955
23843         * doc/install.texi2html: Generate gcc-vers.texi.
23844
23845 2008-01-25  DJ Delorie  <dj@redhat.com>
23846
23847         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
23848
23849 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
23850
23851         * config/c4x: Remove directory.
23852         * config.gcc (crx-*, mt-*): Mark obsolete.
23853         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
23854         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
23855         sh-*-rtemscoff*): Remove cases.
23856         * defaults.h (C4X_FLOAT_FORMAT): Remove.
23857         * real.c (encode_c4x_single, decode_c4x_single,
23858         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
23859         c4x_extended_format): Remove.
23860         * real.h (c4x_single_format, c4x_extended_format): Remove.
23861         * doc/extend.texi (interrupt, naked): Remove mention of attributes
23862         on C4x.
23863         (Pragmas): Remove comment about c4x pragmas.
23864         * doc/install.texi (c4x): Remove target-specific instructions.
23865         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
23866         * doc/md.texi (Machine Constraints): Remove C4x documentation.
23867         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
23868         refer to C4x source files as examples.
23869         (C4X_FLOAT_FORMAT): Remove documentation.
23870
23871 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
23872
23873         * config/bfin/bfin.c (override_options): Reorder tests so that
23874         flag_pic gets enabled for -msep-data.
23875
23876 2008-01-25  Richard Guenther  <rguenther@suse.de>
23877
23878         PR middle-end/32244
23879         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
23880         to its bitfield precision if required.
23881
23882 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
23883
23884         PR middle-end/33880
23885         * tree-nested.c (walk_omp_for): New function.
23886         (convert_nonlocal_reference, convert_local_reference): Call
23887         walk_omp_for on OMP_FOR.
23888         (convert_call_expr): Call walk_body on OMP_FOR's
23889         OMP_FOR_PRE_INIT_BODY.
23890
23891 2008-01-25  Richard Guenther  <rguenther@suse.de>
23892
23893         PR tree-optimization/34966
23894         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
23895         default defs and PHI_NODEs we have to insert after the
23896         defining statement.
23897
23898 2008-01-24  Nick Clifton  <nickc@redhat.com>
23899
23900         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
23901         Provide a default definition.
23902         (LIBGCC2_UNITS_PER_WORD): Likewise.
23903
23904         * config/stormy16/stormy16.c: Include df.h for the prototype
23905         for df_regs_ever_live_p.
23906         (xstormy16_expand_builtin_va_start): Convert the stack offset
23907         into a component_ref and then use POINTER_PLUS_EXPR to add it
23908         to the incoming_virtual_args_rtx.
23909         (xstormy16_gimplify_va_arg_expr): Rename to
23910         xstormy16_gimplify_va_arg_expr.
23911         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
23912         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
23913         xstormy16_gimplify_va_arg_expr.
23914         Fix up some formatting issues.
23915
23916         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
23917         Move to predicates.md.
23918         (xs_hi_general_operand): Likewise.
23919         (xs_hi_nonmemory_operand): Likewise.
23920         * config/stormy16/predicates.md:
23921         (xstormy16_carry_plus_operand): New predicate.
23922         (xs_hi_general_operand): New predicate.
23923         (xs_hi_nonmemory_operand): New predicate.
23924         * config/stormy16/stormy16-protos.h:
23925         (xstormy16_carry_plus_operand): Delete prototype.
23926         (xs_hi_general_operand): Likewise.
23927         (xs_hi_nonmemory_operand): Likewise.
23928
23929         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
23930         modifiers as they are no longer needed and they can trigger
23931         reload spill failures.
23932
23933         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
23934         with a match_operand in order to help reload.
23935
23936         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
23937         constraint with 'e' for the 8th alternative as this version of
23938         the mov.w instruction only accepts the lower 8 registers.
23939
23940 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
23941
23942         PR target/34856
23943         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
23944         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
23945         vector elements.
23946
23947 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
23948
23949         PR middle-end/33333
23950         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
23951
23952 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
23953
23954         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
23955         New functions.
23956         (remove_structure): Update allocations list before removing structure.
23957
23958 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
23959
23960         * ipa-struct-reorg.c (is_safe_cond_expr,
23961         create_new_stmts_for_cond_expr): Use integer_zerop function,
23962         that recognize not only zero-pointer, but zero-integer too.
23963
23964 2008-01-25  Ben Elliston  <bje@au.ibm.com>
23965
23966         PR other/22232
23967         * fixproto: Escape "." in sed expression that strips leading "./".
23968
23969 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
23970
23971         PR driver/34904
23972         * gcc.c (SWITCH_OK): Removed.
23973         (SWITCH_LIVE): Changed to bit.
23974         (SWITCH_FALSE): Likewise.
23975         (SWITCH_IGNORE): Likewise.
23976         (switchstr): Change live_cond to unsigned int.
23977         (process_command): Replace SWITCH_OK with 0.
23978         (do_self_spec): Likewise.
23979         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
23980         (give_switch): Likewise.
23981         (used_arg): Likewise.
23982         (do_spec_1): Set the SWITCH_IGNORE bit.
23983         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
23984         bits.  Set the SWITCH_LIVE bit.
23985
23986 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
23987
23988         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
23989
23990 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
23991
23992         PR tree-optimization/34472
23993         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
23994         parameter to a "bool *" and set *DATA to false if there is
23995         an unsafe access.  Do not delete the structure here.
23996         (check_cond_exprs): Delete it here instead.
23997         (check_cond_exprs, exclude_cold_structs): Do not increase
23998         I when removing a structure.
23999
24000 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
24001
24002         PR target/34856
24003         * config/i386/i386.c (ix86_expand_vector_init): Consider only
24004         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
24005
24006 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
24007
24008         PR middle-end/34934
24009         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
24010         a fixed vector for stack.
24011
24012 2008-01-24  Ben Elliston  <bje@au.ibm.com>
24013
24014         PR c++/25701
24015         * doc/gcc.texi (Software development): Add a direntry for g++.
24016
24017 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
24018
24019         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
24020         stale and straggling -fforce-addr comments above.
24021
24022         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
24023         define.
24024         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
24025         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
24026
24027 2008-01-23  Michael Matz  <matz@suse.de>
24028
24029         PR debug/34895
24030         * dwarf2out.c (force_type_die): Use modified_type_die instead of
24031         gen_type_die.
24032
24033 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
24034
24035         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
24036         malloc result type.
24037
24038 2008-01-23 Anatoly Sokolov <aesok@post.ru>
24039
24040         * config/avr/avr.c (avr_current_arch): New variable.
24041         (avr_arch_types): Add 'avr31' and 'avr51' entries.
24042         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
24043         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
24044         (avr_override_options): Init 'avr_current_arch'.
24045         (base_arch_s): Move from here...
24046         * config/avr/avr.h (base_arch_s): ... here. Add new members
24047         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename
24048         'mega' to 'have_jmp_call'.
24049         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__",
24050         "__AVR_HAVE_RAMPZ__", "__AVR_HAVE_ELPM__" and "__AVR_HAVE_ELPMX__"
24051         macros.
24052         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51'
24053         architectures.
24054         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
24055         MULTILIB_MATCHES): Ditto.
24056
24057 2008-01-23  Richard Guenther  <rguenther@suse.de>
24058
24059         PR middle-end/31529
24060         * cgraphunit.c (cgraph_reset_node): Always mark the node
24061         not reachable if it is not queued already.
24062
24063 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
24064
24065         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
24066         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
24067         (cputype_selected): New static variable.
24068         (bfin_handle_option): Set it if -mcpu is used.
24069         (override_option): Select default set of workarounds if no cpu type
24070         selected on the command line.
24071         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
24072
24073         From  Michael Frysinger  <michael.frysinger@analog.com>
24074         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
24075         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
24076
24077         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
24078         for bf547, bf523, bf524, and bf526.
24079         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
24080         bf526.
24081         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
24082         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
24083         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
24084         __ADSPBF547__ and __ADSPBF54x__ for bf547.
24085         * doc/invoke.texi (Blackfin Options): Document that
24086         -mcpu now accept bf547, bf523, bf524, and bf526.
24087
24088 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
24089
24090         PR rtl-optimization/34628
24091         * combine.c (try_combine): Stop and undo after the first combination
24092         if an autoincrement side-effect on the first insn has effectively
24093         been lost.
24094
24095 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
24096
24097         PR target/34529
24098         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
24099         Offset addresses are not valid for Altivec or paired float modes.
24100
24101 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
24102
24103         PR c++/34607
24104         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
24105         if DECL_INITIAL (decl) is error_mark_node.
24106
24107         PR c++/34914
24108         * c-common.c (handle_vector_size_attribute): Only allow
24109         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
24110         the same way as pointer, array etc. types.
24111         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
24112
24113         PR c++/34917
24114         * tree.c (build_type_attribute_qual_variant): Call
24115         build_qualified_type if attributes are equal, but quals are not.
24116
24117 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
24118
24119         PR 32102
24120         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
24121         * flags.h (warn_strict_aliasing): Remove.
24122         (warn_strict_overflow): Remove.
24123         * opts.c (warn_strict_aliasing): Remove.
24124         (warn_strict_overflow): Remove.
24125         * c-opts.c (c_common_handle_option): -Wall only sets
24126         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
24127         (c_common_post_options): Give default values to -Wstrict-aliasing
24128         and -Wstrict-overflow if they are uninitialized.
24129         * common.opt (Wstrict-aliasing): Specify Var and Init.
24130         (Wstrict-overflow): Likewise.
24131
24132 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
24133
24134         PR rtl-optimization/26854
24135         PR rtl-optimization/34400
24136         PR rtl-optimization/34884
24137         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
24138         DF_RD->gen.
24139         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
24140         (df_rd_bb_info.expanded_lr_out): Deleted
24141         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
24142         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
24143         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
24144         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
24145         Removed code to allocate, initialize or free expanded_lr_out.
24146         (df_rd_bb_local_compute_process_def): Restructured to make more
24147         understandable.
24148         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
24149         sets if the sets are being trimmed.
24150
24151 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
24152
24153         PR bootstrap/32287
24154         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
24155         (as_vers): Likewise.
24156         * configure: Regenerated.
24157
24158 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
24159
24160         PR middle-end/33092
24161         * tree-pass.h (pass_build_alias): New pass.
24162         * tree-ssa-alias.c (gate_build_alias): New.
24163         (pass_build_alias): New.
24164         * passes.c (init_optimization_passes): Add pass_build_alias after
24165         pass_create_structure_vars.
24166
24167 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
24168
24169         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
24170         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
24171         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
24172         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
24173         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
24174         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
24175         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
24176         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
24177         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
24178         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
24179         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
24180         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
24181         * config/s390/s390.md (FP_ALL): New mode iterator.
24182         (_d): New mode attribute.
24183         ("*signbit<mode>2>"): Changed mode of first operand.
24184         ("isinf<mode>2"): Changed mode of first operand.
24185         ("*TDC_insn"): Adaptation for DFP modes.
24186
24187 2008-01-22  Ben Elliston  <bje@au.ibm.com>
24188
24189         * tree.c (check_qualified_type): Improve function description.
24190
24191 2008-01-21  Jason Merrill  <jason@redhat.com>
24192
24193         PR c++/34196
24194         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
24195         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
24196         if it is set.
24197
24198 2008-01-21  DJ Delorie  <dj@redhat.com>
24199
24200         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
24201         return zero.
24202
24203 2008-01-21  Richard Guenther  <rguenther@suse.de>
24204
24205         PR middle-end/34856
24206         * tree-cfg.c (verify_expr): Allow all invariant expressions
24207         instead of just constant class ones as reference argument.
24208         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
24209         like any other constant.
24210         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
24211
24212 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
24213
24214         * regmove.c (fixup_match_1): Update call crossed frequencies.
24215
24216 2008-01-21  Richard Guenther  <rguenther@suse.de>
24217
24218         PR c/34885
24219         * tree-inline.c (setup_one_parameter): Deal with mismatched
24220         types using a VIEW_CONVERT_EXPR.
24221
24222 2008-01-21  Alon Dayan  <alond@il.ibm.com>
24223             Olga Golovanevsky  <olga@il.ibm.com>
24224
24225         PR tree-optimization/34701
24226         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
24227         when the structure size is not a power of 2.
24228
24229 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
24230
24231         * doc/install.texi: Add doc for --enable-checking=df.
24232
24233 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
24234
24235         PR rtl-optimization/34808
24236         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
24237
24238 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
24239
24240         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
24241         input.
24242
24243 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
24244
24245         PR rtl-optimization/26854
24246         PR rtl-optimization/34400
24247         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
24248         DF_RD->gen.
24249         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
24250         (df_rd_bb_info.expanded_lr_out): New.
24251         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
24252         * loop_iv.c (iv_analysis_loop_init): Ditto.
24253         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
24254         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
24255         Added code to allocate, initialize or free expanded_lr_out.
24256         (df_rd_bb_local_compute_process_def): Restructured to make
24257         more understandable.
24258         (df_rd_confluence_n): Add code to do nothing with fake edges and
24259         code to no apply invalidate_by_call sets if the sets are being trimmed.
24260         (df_lr_local_finalize): Renamed to df_lr_finalize.
24261         (df_live_local_finalize): Renamed to df_live_finalize.
24262
24263 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
24264
24265         PR target/34831
24266         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
24267         deciding whether to use reciprocal instructions.
24268
24269 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
24270
24271         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
24272         dwarf2out_note_section_used if cold_text_section is NULL.
24273
24274 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
24275
24276         PR gcov-profile/34610
24277         * tree-cfg.c (make_edges): Mark both outgoing edges from
24278         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
24279         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
24280         from OMP_FOR and OMP_CONTINUE outgoing edges.
24281
24282         * tree-profile.c (tree_profiling): Return early if
24283         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
24284         at the end.
24285         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
24286         from cfun to child_cfun.
24287         * function.h (struct function): Add after_tree_profile bit.
24288
24289 2008-01-19 Anatoly Sokolov <aesok@post.ru>
24290
24291         * config/avr/avr.S (_exit): Disable interrupt.
24292
24293 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
24294             Steven Bosscher  <stevenb.gcc@gmail.com>
24295
24296         PR rtl-optimization/26854
24297         PR rtl-optimization/34400
24298         * df-problems.c (df_live_scratch): New scratch bitmap.
24299         (df_live_alloc): Allocate df_live_scratch when doing df_live.
24300         (df_live_reset): Clear the proper bitmaps.
24301         (df_live_bb_local_compute): Only process the artificial defs once
24302         since the order is not important.
24303         (df_live_init): Init the df_live sets only with the variables
24304         found live by df_lr.
24305         (df_live_transfer_function): Use the df_lr sets to prune the
24306         df_live sets as they are being computed.
24307         (df_live_free): Free df_live_scratch.
24308
24309 2008-01-18  Ian Lance Taylor  <iant@google.com>
24310
24311         * common.opt: Add fmerge-debug-strings.
24312         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
24313         flag_merge_debug_strings rather than flag_merge_constants.
24314         * doc/invoke.texi (Option Summary): Mention
24315         -fmerge-debug-strings.
24316         (Debugging Options): Document -fmerge-debug-strings.
24317
24318 2008-01-18  Ian Lance Taylor  <iant@google.com>
24319
24320         PR c++/33407
24321         * tree.h (DECL_IS_OPERATOR_NEW): Define.
24322         (struct tree_function_decl): Add new field operator_new_flag.
24323         * tree-inline.c (expand_call_inline): When inlining a call to
24324         operator new, force the return value to go into a variable, and
24325         set DECL_NO_TBAA_P on that variable.
24326         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
24327
24328 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
24329
24330         PR debug/34484
24331         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
24332         DWARF2_DEBUGGING_INFO.
24333         (dwarf2out_note_section_used): Ditto.  Add prototype.
24334         (have_multiple_function_sections, text_section_used,
24335         cold_text_section_used, *cold_text_sections): Move declarations
24336         before their uses.
24337
24338 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
24339
24340         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
24341         field and add signal_ra.
24342         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
24343         assignments to frame state pc.  Move end of stack check after
24344         MD_FALLBACK_FRAME_STATE_FOR.
24345         (uw_update_context_1): Use frame state signal_regs if set, instead
24346         of checking signal_frame flag.
24347         (uw_update_context): Use frame state signal_ra if set.
24348         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
24349         * config/xtensa/linux-unwind.h: New file.
24350
24351 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
24352
24353         * modulo-sched.c (get_sched_window): Fix comment typo.
24354
24355 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
24356
24357         PR tree-optimization/34648
24358         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
24359
24360 2008-01-17  Anatoly Sokolov <aesok@post.ru>
24361
24362         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
24363         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
24364
24365 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
24366
24367         PR rtl-optimization/34400
24368         * df-core.c (df_worklist_dataflow_overeager,
24369         df_worklist_dataflow_doublequeue): New functions.
24370         (df_worklist_dataflow): Two different worklist solvers.
24371         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
24372         New param.
24373
24374 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
24375
24376         PR testsuite/34821
24377         * doc/invoke.texi: Document the dependence on pthread for fopenmp
24378         and ftree-parallelize-loops.
24379
24380 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
24381
24382         PR rtl-optimization/34826
24383         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
24384
24385 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
24386
24387         * global.c (find_reg): Mark the eh regs as used if necessary.
24388         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
24389         * ra.h (struct allocno): no_eh_reg field added.  Changed
24390         no_stack_reg type to bitfield.
24391
24392 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
24393
24394         * tree.c (substitute_in_expr): Add missing 'break'.
24395
24396 2008-01-17  Richard Guenther  <rguenther@suse.de>
24397
24398         PR tree-optimization/34825
24399         * tree-ssa-math-opts.c (is_division_by): Do not recognize
24400         x / x as division to handle.
24401
24402 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24403
24404         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
24405         "-pthread" is specified.
24406         * pa-hpux11.h (LIB_SPEC): Likewise.
24407
24408 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
24409             Peter Bergner  <bergner@vnet.ibm.com>
24410
24411         PR rtl-optimization/33796
24412         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
24413
24414 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24415
24416         PR libgfortran/34699
24417         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
24418         static links.
24419         * pa-hpux10.h (LINK_SPEC): Likewise.
24420         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
24421
24422 2008-01-16  Richard Guenther  <rguenther@suse.de>
24423
24424         PR middle-end/32628
24425         * fold-const.c (fold_convert_const_int_from_int): Do not
24426         set overflow if that occured only because of a sign extension
24427         change when converting from/to a sizetype with the same
24428         precision and signedness.
24429
24430 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
24431
24432         PR debug/34249
24433         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
24434         location address to the correct place.  Update copyright year.
24435
24436 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
24437
24438         * lambda-code.c (lambda_transform_legal_p): Handle the case of
24439         no dependences in the dependence_relations vector.
24440
24441 2008-01-16  Jan Hubicka  <jh@suse.cz>
24442
24443         PR rtl-optimization/31396
24444         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
24445         * cfg.c (dump_reg_info): Print it.
24446         * regs.h (struct reg_info_t): add freq_calls_crossed.
24447         (REG_FREQ_CALLS_CROSSED): New macro.
24448         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
24449         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
24450         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
24451         regmove_optimize): Update call crossed frequencies.
24452         * local-alloc.c (struct qty): Add freq_calls_crossed.
24453         (alloc_qty): Copute freq_calls_crossed.
24454         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
24455         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
24456         * ra.h (struct allocno): Add freq_calls_crossed.
24457
24458 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
24459
24460         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
24461         libgomp when compiling with ftree-parallelize-loops.
24462         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
24463
24464 2008-01-16  Richard Guenther  <rguenther@suse.de>
24465
24466         PR tree-optimization/34769
24467         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
24468         * tree.c (int_cst_value): Instead make this function more
24469         permissive in what it accepts as valid input.  Document this
24470         function always sign-extends the value.
24471
24472 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
24473             Richard Guenther  <rguenther@suse.de>
24474
24475         PR c/34668
24476         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
24477         (gimple_fold_indirect_ref_rhs): ... this.
24478         (gimple_fold_indirect_ref): New function with foldings
24479         that preserve lvalueness.
24480         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
24481         * tree-flow.h (gimple_fold_indirect_ref): Declare.
24482         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
24483         to fold an INDIRECT_REF, fall back to the old use of
24484         fold_indirect_ref_1.
24485
24486 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
24487
24488         * tree-data-ref.c (subscript_dependence_tester_1): Call
24489         free_conflict_function.
24490         (compute_self_dependence): Same.
24491
24492 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
24493
24494         PR debug/34249
24495         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
24496         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
24497         function global.
24498         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
24499         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
24500         for DWARF2_UNWIND_INFO targets.
24501
24502 2008-01-16  Richard Guenther  <rguenther@suse.de>
24503
24504         PR c/34768
24505         * c-typeck.c (common_pointer_type): Do not merge inconsistent
24506         type qualifiers for function types.
24507
24508 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
24509
24510         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
24511         loop_iterator li from previous commit.
24512
24513 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
24514
24515         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
24516
24517 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
24518
24519         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
24520         (parallelize_loops): Don't parallelize irreducible components.
24521
24522 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
24523
24524         PR c++/24924
24525         * c-opts (c_common_post_options): Do not enable CPP
24526         flag_pedantic_errors by default.
24527
24528 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
24529
24530         PR rtl-optimization/31944
24531         * cse.c (remove_pseudo_from_table): New function.
24532         (merge_equiv_classes): Use above function to remove pseudo-registers.
24533         (invalidate): Likewise.
24534
24535 2008-01-13  Richard Guenther  <rguenther@suse.de>
24536
24537         PR middle-end/34601
24538         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
24539         instead of TYPE_MODE to deal with calls from expand_one_error_var.
24540
24541 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
24542
24543         * gcse.c (cprop_jump): Call validate_unshare_change instead of
24544         validate_change to unshare the source of the PC set.
24545
24546 2008-01-12  Jan Hubicka  <jh@suse.cz>
24547
24548         PR middle-end/32135
24549         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
24550         references above array bounds.  This might trigger bounds checks for
24551         pointers to arrays.
24552
24553 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
24554
24555         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
24556         new_replaceable_dependencies.
24557
24558 2008-01-12  Doug Kwan  <dougkwan@google.com>
24559
24560         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
24561         instead of OPT_Wreturn_type in warning due to ignored return type
24562         qualifiers.
24563         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
24564         options included in -Wextra.
24565         * c.opt: New option -Wignored_qualifiers.
24566         * doc/invoke.texi (Warning Options, -Wextra): Add new option
24567         -Wignore_qualifiers.
24568         (-Wignored-qualifiers): Document.
24569         (-Wreturn-type): Remove description of functionality now handled
24570         by -Wignored-qualifiers.
24571
24572 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
24573
24574         PR ada/33788
24575         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
24576         NOP_EXPR if it is between integral types with the same precision.
24577
24578 2008-01-12  Jan Hubicka  <jh@suse.cz>
24579
24580         PR other/28023
24581         * invoke.texi (max-inline-recursive-depth): Fix default value.
24582
24583 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
24584
24585         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
24586         correct type.
24587
24588 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
24589
24590         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
24591
24592 2008-01-11  James E. Wilson  <wilson@specifix.com>
24593
24594         PR target/26015
24595         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
24596
24597 2008-01-11  Anatoly Sokolov <aesok@post.ru>
24598
24599         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't
24600         save/restore frame pointer register and don't use 'call-prologues'
24601         optimization in function with "OS_task" attribute.
24602
24603 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
24604
24605         PR middle-end/31309
24606         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
24607         when copying to memory.
24608
24609 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
24610
24611         PR rtl-optimization/30905
24612         * cfgcleanup.c: Include dce.h
24613         (crossjumps_occured): New global variable.
24614         (try_crossjump_bb): Exit loop after finding a fallthru edge.
24615         If something changed, set crossjumps_occured to true.
24616         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
24617         Don't add/remove fake edges to exit here...
24618         (cleanup_cfg): ...but do it here, when crossjumping.
24619         Run a fast DCE when successful crossjumps occured in the latest
24620         iteration of try_optimize_cfg.
24621
24622 2008-01-11  Richard Guenther  <rguenther@suse.de>
24623
24624         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
24625         (struct vn_unary_op_s): Likewise.
24626         (vn_reference_insert): Free old reference on hash collision.
24627
24628 2008-01-10  Raksit Ashok  <raksit@google.com>
24629
24630         PR rtl-optimization/27971
24631         * combine.c (find_split_point): Split PLUS expressions which are
24632         inside a MEM rtx, and whose first operand is complex.
24633
24634 2008-01-10  DJ Delorie  <dj@redhat.com>
24635
24636         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
24637         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
24638         (m32c_hard_regno_ok): Call the underlying function.
24639
24640 2008-01-10  Richard Guenther  <rguenther@suse.de>
24641
24642         PR middle-end/34683
24643         * tree-cfg.c (tree_merge_blocks): Do not go through the
24644         full-blown folding and stmt updating path if we just deal
24645         with virtual operands.
24646         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
24647         test for abnormal SSA_NAMEs.
24648
24649 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
24650
24651         PR middle-end/34641
24652         * reload.c (push_reload): Add assertions.  All constants from
24653         reg_equiv_constant should have been used for replacing the respective
24654         pseudo earlier.
24655         (find_reloads_address): Invoke find_reloads_address_part for
24656         constant taken from the reg_equiv_constant array.
24657
24658 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
24659
24660         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
24661         field (valnum) the first in the struct.  Replace bools with
24662         unit bit fields.
24663
24664 2008-01-10  Richard Guenther  <rguenther@suse.de>
24665
24666         PR tree-optimization/34651
24667         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
24668         types and ordering for masking and converting.
24669
24670 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
24671
24672         PR tree-optimization/34017
24673         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
24674         also for PHI_NODE expressions.
24675
24676 2008-01-09  Jan Hubicka  <jh@suse.cz>
24677
24678         PR tree-optimization/34708
24679         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
24680         based on number of case labels.
24681         (init_inline_once): Remove switch_cost.
24682         * tree-inline.h (eni_weights_d): Remove switch_cost.
24683
24684 2008-01-09  Richard Guenther  <rguenther@suse.de>
24685         Andrew Pinski  <andrew_pinski@playstation.sony.com>
24686
24687         PR middle-end/30132
24688         * gimplify.c (gimplify_cond_expr): Do not create an addressable
24689         temporary if an rvalue is ok or an lvalue is not required.
24690
24691 2008-01-09  Richard Guenther  <rguenther@suse.de>
24692
24693         PR middle-end/34458
24694         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
24695         adjust return type.
24696
24697 2008-01-09  Richard Guenther  <rguenther@suse.de>
24698
24699         PR middle-end/34679
24700         * tree.c (host_integerp): Check for sizetype only if the
24701         type is an integer type.
24702
24703 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
24704
24705         PR debug/26364
24706         * opts.c (decode_options): Disable inlining of functions called
24707         once if not in unit-at-a-time mode.
24708
24709 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
24710
24711         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
24712
24713 2008-01-08  Richard Guenther  <rguenther@suse.de>
24714
24715         PR middle-end/31863
24716         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
24717         out early if the result will be unused.
24718
24719 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
24720
24721         PR target/34709
24722         Revert:
24723
24724         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
24725         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
24726         for TARGET_RECIP.
24727
24728 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
24729
24730         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
24731         for vectorization tuned.
24732
24733 2008-01-08  Richard Guenther  <rguenther@suse.de>
24734
24735         PR tree-optimization/34683
24736         * tree-ssa-operands.c (operand_build_cmp): Export.
24737         * tree-ssa-operands.h (operand_build_cmp): Declare.
24738         * tree-vn.c (vuses_compare): Remove.
24739         (sort_vuses): Use operand_build_cmp.
24740         (sort_vuses_heap): Likewise.
24741         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
24742         to re-use old VEC if available.  Do not sort already sorted VUSEs.
24743         (vdefs_to_vec): Do not sort already sorted VDEFs.
24744
24745 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
24746
24747         PR middle-end/34694
24748         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
24749
24750 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
24751
24752         PR target/34702
24753         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
24754         limitations of reciprocal sequences on x86 targets.
24755
24756 2008-01-08  Richard Guenther  <rguenther@suse.de>
24757
24758         PR tree-optimization/34683
24759         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
24760
24761 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
24762
24763         PR target/34622
24764         * config/darwin.c (darwin_mergeable_string_section): Don't use
24765         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
24766
24767 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
24768
24769         PR target/34682
24770         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
24771         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
24772         predicates of op0 and op1 to register_operand.
24773         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
24774         expander using X87MODEF mode iterator.  Change predicates of
24775         op0 and op1 to register_operand.
24776         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
24777         corresponding patterns and macroize using MODEF macro.  Change
24778         predicates of op0 and op1 to register_operand and remove
24779         "m" constraint. Disparage "r" alternative with "!".
24780         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
24781         macroize using X87MODEF macro.  Change predicates of op0 and op1
24782         to register_operand and remove "m" constraint.  Disparage "r"
24783         alternative with "!".
24784         (absneg splitter with memory operands): Remove.
24785         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
24786         patterns and macroize using X87MODEF mode iterator.
24787         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
24788         Change predicate of op1 to register_operand.
24789         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
24790         for memory operands.
24791
24792 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
24793
24794         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
24795
24796 2008-01-07  Richard Guenther  <rguenther@suse.de>
24797
24798         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
24799         fields.
24800
24801 2008-01-07  Richard Guenther  <rguenther@suse.de>
24802
24803         PR tree-optimization/34683
24804         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
24805         VOPs of the needed size to save memory.  Use VEC_quick_push
24806         to save compile-time.
24807         (vdefs_to_vec): Likewise.
24808
24809 2008-01-07  Sa Liu  <saliu@de.ibm.com>
24810
24811         * config/spu/spu.md (divdf3): Genetate inline code for double
24812         division.  The implementation doesn't handle INF or NAN, therefore it
24813         only applies when -ffinite-math-only is given.
24814
24815 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
24816
24817         PR libstdc++/34680
24818         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
24819         * doc/cpp.texi ([Common Predefined Macros]): Document.
24820
24821 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
24822
24823         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
24824         order to use commutative addition instead of subtraction.
24825
24826 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
24827             Mircea Namolaru  <namolaru@il.ibm.com>
24828             Vladimir Yanovsky  <yanov@il.ibm.com>
24829             Revital Eres  <eres@il.ibm.com>
24830
24831         PR tree-optimization/34263
24832         * tree-outof-ssa.c (process_single_block_loop_latch,
24833         contains_tree_r): New functions.
24834         (analyze_edges_for_bb): Call process_single_block_loop_latch
24835         function to empty single-basic-block latch block if possible.
24836
24837 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
24838
24839         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
24840         for TARGET_RECIP.
24841         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
24842
24843 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
24844
24845         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
24846
24847 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
24848
24849         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
24850
24851 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
24852
24853         PR tree-optimization/34618
24854         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
24855         flag from T.
24856
24857 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
24858
24859         PR target/34673
24860         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
24861         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
24862         Update copyright year.
24863
24864         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
24865         Update copyright year.
24866         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
24867         using NR fixup.
24868
24869 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
24870
24871         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
24872         edge does not point to current bb before changing need_assert.
24873
24874 2008-01-04  Richard Guenther  <rguenther@suse.de>
24875
24876         PR middle-end/34029
24877         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
24878         for verifying purposes if they are is_gimple_min_invariant.
24879
24880 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
24881
24882         PR tree-optimization/34448
24883         PR tree-optimization/34465
24884         * gimplify.c (gimplify_init_constructor): Add new parameter
24885         notify_temp_creation.  Use it.
24886         (gimplify_modify_expr_rhs): Take volatiles into account when
24887         optimizing constructors.
24888         Do not optimize constructors if gimplify_init_constructor will dump to
24889         memory.
24890         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
24891         * gcc.c-torture/compile/pr34448.c: New.
24892
24893 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
24894
24895         PR gcov-profile/34609
24896         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
24897         return_slot if result is TREE_ADDRESSABLE.
24898
24899 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
24900
24901         * config/mips/mips.md (sqrt_condition): Tweak comment.
24902         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
24903
24904 2008-01-03  Tom Tromey  <tromey@redhat.com>
24905
24906         PR c/34457
24907         * c-common.c (c_type_hash): Handle VLAs.
24908
24909 2008-01-03  Jan Hubicka  <jh@suse.cz>
24910
24911         PR tree-optimization/31081
24912         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
24913         0 when inlining and not inlining to first basic block.
24914         (remap_decl): When var is initialized to 0, don't set default_def.
24915         (expand_call_inline): Set entry_bb.
24916         * tree-inline.h (copy_body_data): Add entry_bb.
24917
24918 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
24919
24920         PR c++/34619
24921         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
24922         before returning.
24923
24924         PR tree-optimization/29484
24925         * tree-inline.c (inline_forbidden_p_2): New function.
24926         (inline_forbidden_p): Disallow inlining if some static var
24927         has an address of a local LABEL_DECL in its initializer.
24928         * doc/extend.texi (Labels as Values): Document &&foo behaviour
24929         vs. inlining.
24930
24931 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
24932
24933         PR tree-optimization/34635
24934         * tree-data-ref.c (add_other_self_distances): Make sure that the
24935         evolution step is constant.
24936
24937 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
24938
24939         PR middle-end/34608
24940         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
24941
24942 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
24943
24944         * tree-sra.c (scalarize_init): Insert the generate_element_init
24945         statements after the generate_element_zero statements.
24946
24947 2008-01-02  Richard Guenther  <rguenther@suse.de>
24948
24949         PR middle-end/34093
24950         PR middle-end/31976
24951         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
24952         for very large number of operands instead of ICEing.
24953
24954 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
24955
24956         PR target/34013
24957         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
24958         while stack probing.
24959
24960 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
24961
24962         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
24963         in C++0x mode.
24964
24965 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
24966
24967         PR libmudflap/26442
24968         * tree-mudflap.c (mx_register_decls): Guard warning by
24969         !DECL_ARTIFICIAL check.
24970
24971 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
24972
24973         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
24974         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
24975         sse5_perm<mode>): Fix constraints.