OSDN Git Service

7c380d35f032e3900796e866b9b37d73fe94c5fb
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-12-09  Martin Jambor  <mjambor@suse.cz>
2
3         * ipa-prop.h (struct ipa_parm_adjustment): New field alias_ptr_type.
4         * ipa-prop.c (ipa_modify_call_arguments): Use it.
5         * tree-sra.c (splice_param_accesses): Test that all accesses have the
6         same alias reference type.
7         (turn_representatives_into_adjustments): Set alias_ptr_type of the
8         adjustment.
9
10 2010-12-09  Martin Jambor  <mjambor@suse.cz>
11
12         PR middle-end/46734
13         * tree-sra.c (splice_param_accesses): Check that there are not
14         multiple ADDRESSABLE types.
15
16 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
17
18         * config/arc/arc.h (ASM_SPEC): Remove %{v}.
19         * config/bfin/bfin.h (ASM_SPEC): Remove %{v}.
20         * config/cris/cris.h (ASM_SPEC): Remove %{v:-v}.
21         * config/fr30/fr30.h (ASM_SPEC): Remove %{v}.
22         * config/frv/frv.h (ASM_SPEC): Remove %{v}.
23         * config/i386/linux.h (ASM_SPEC): Remove %{v}.
24         * config/i386/linux64.h (ASM_SPEC): Remove %{v}.
25         * config/i386/mingw-w64.h (ASM_SPEC): Remove %{v}.
26         * config/i386/sol2-10.h (ASM_SPEC): Remove %{v}.
27         * config/i386/vxworks.h (ASM_SPEC): Remove %{v}.
28         * config/i386/x86-64.h (ASM_SPEC): Remove %{v}.
29         * config/lm32/lm32.h (ASM_SPEC): Remove %{v}.
30         * config/m32r/m32r.h (ASM_SPEC): Remove %{v}.
31         * config/m68k/linux.h (ASM_SPEC): Remove %{v:-V}.
32         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{v}.
33         * config/mips/mips.h (ASM_SPEC): Remove %{v}.
34         * config/mips/vxworks.h (ASM_SPEC): Remove %{v}.
35         * config/pa/pa-linux.h (ASM_SPEC): Remove %{v:-V}.
36         * config/rs6000/freebsd.h (SVR4_ASM_SPEC): Remove %{v}.
37         * config/rs6000/linux64.h (ASM_SPEC): Remove %{v:-V}.
38         * config/rs6000/vxworks.h (ASM_SPEC): Remove %{v:-v}.
39         * config/sparc/openbsd64.h (ASM_SPEC): Remove %{v:-V}.
40         * config/svr4.h (SVR4_ASM_SPEC): Remove %{v:-V}.
41         * config/xtensa/elf.h (ASM_SPEC): Remove %{v}.
42         * config/xtensa/linux.h (ASM_SPEC): Remove %{v}.
43
44 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
45
46         * config/i386/openbsdelf.h (LINK_SPEC): Use %{r:} not %{r*:}.
47         * config/mips/openbsd.h (LINK_SPEC): Use %{r:} not %{r*:}.
48         * config/netbsd-aout.h (NETBSD_LINK_SPEC_AOUT): Use %{r:} not
49         %{r*:}.
50         * config/netbsd-elf.h (NETBSD_LINK_SPEC_ELF): Use %{r:} not
51         %{r*:}.
52         * config/sparc/openbsd64.h (LINK_SPEC): Use %{r:} not %{r*:}.
53         * config/vax/netbsd-elf.h (LINK_SPEC): Use %{r:} not %{r*:}.
54
55 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
56
57         * config/alpha/freebsd.h (LINK_SPEC): Don't use
58         %{!dynamic-linker:}.
59         * config/alpha/linux-elf.h (LINK_SPEC): Likewise.
60         * config/arm/freebsd.h (LINK_SPEC): Likewise.
61         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Likewise.
62         * config/bfin/linux.h (LINK_SPEC): Likewise.
63         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Likewise.
64         * config/frv/linux.h (LINK_SPEC): Likewise.
65         * config/i386/freebsd.h (LINK_SPEC): Likewise.
66         * config/i386/freebsd64.h (LINK_SPEC): Likewise.
67         * config/i386/linux.h (LINK_SPEC): Likewise.
68         * config/i386/linux64.h (LINK_SPEC): Likewise.
69         * config/i386/openbsdelf.h (LINK_SPEC): Likewise.
70         * config/ia64/freebsd.h (LINK_SPEC): Likewise.
71         * config/ia64/linux.h (LINK_SPEC): Likewise.
72         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
73         * config/m32r/linux.h (LINK_SPEC): Likewise.
74         * config/m68k/linux.h (LINK_SPEC): Likewise.
75         * config/microblaze/linux.h (LINK_SPEC): Likewise.
76         * config/mips/linux.h (LINK_SPEC): Likewise.
77         * config/mips/linux64.h (LINK_SPEC): Likewise.
78         * config/mips/openbsd.h (LINK_SPEC): Likewise.
79         * config/mn10300/linux.h (LINK_SPEC): Likewise.
80         * config/netbsd-elf.h (LINK_SPEC): Likewise.
81         * config/pa/pa-linux.h (LINK_SPEC): Likewise.
82         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC32,
83         LINK_OS_LINUX_SPEC64): Likewise.
84         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC,
85         LINK_OS_LINUX_SPEC, LINK_OS_GNU_SPEC, LINK_OS_NETBSD_SPEC):
86         Likewise.
87         * config/s390/linux.h (LINK_SPEC): Likewise.
88         * config/sh/linux.h (SUBTARGET_LINK_SPEC): Likewise.
89         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
90         * config/sparc/linux.h (LINK_SPEC): Likewise.
91         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
92         LINK_SPEC): Likewise.
93         * config/sparc/openbsd64.h (LINK_SPEC): Likewise.
94         * config/vax/linux.h (LINK_SPEC): Likewise.
95         * config/xtensa/linux.h (LINK_SPEC): Likewise.
96
97 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
98
99         * config/bfin/bfin.h (ASM_SPEC): Remove %{n} and %{T}.
100         * config/frv/frv.h (ASM_SPEC): Likewise.
101         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
102         * config/i386/sol2.h (ASM_SPEC): Likewise.
103         * config/m68k/linux.h (ASM_SPEC): Likewise.
104         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
105         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
106         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
107         * config/sol2.h (ASM_SPEC): Likewise.
108         * config/sparc/linux.h (ASM_SPEC): Likewise.
109         * config/sparc/linux64.h (ASM_SPEC): Likewise.
110         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
111         * config/sparc/sysv4.h (ASM_SPEC): Likewise.
112         * config/svr4.h (SVR4_ASM_SPEC): Likewise.
113
114 2010-12-09  Richard Guenther  <rguenther@suse.de>
115
116         * reginfo.c (struct subregs_of_mode_node): Remove.
117         (subregs_of_mode): Likewise.
118         (som_hash): Likewise.
119         (som_eq): Likewise.
120         (invalid_mode_changes): New bitmap.
121         (record_subregs_of_mode): Get subregs_of_mode argument.
122         Fill in invalid_mode_changes bitmap.
123         (find_subregs_of_mode): Get subregs_of_mode argument and pass
124         it through.
125         (init_subregs_of_mode): Adjust.
126         (finish_subregs_of_mode): Likewise.
127         (invalid_mode_change_p): Query invalid_mode_changes bitmap.
128
129 2010-12-09  Richard Guenther  <rguenther@suse.de>
130
131         * ira.c (ira): Do not call finish_subregs_of_mode.
132         * ira-costs.c (finish_costs): Call finish_subregs_of_mode.
133
134 2010-12-09  Richard Guenther  <rguenther@suse.de>
135
136         * rtl.h (invalid_mode_change_p): Adjust prototype.
137         * reginfo.c (invalid_mode_change_p): Remove from argument.
138         * ira-costs.c (print_allocno_costs): Adjust callers.
139         (find_costs_and_classes): Likewise.
140
141 2010-12-09  Jakub Jelinek  <jakub@redhat.com>
142
143         * config/s390/s390.md (*mov<mode>cc): Change lgoc and stgoc to
144         locg and stocg even in comment.
145         (sync_old_<atomic><mode>): Give mode to UNSPEC_VOLATILE.
146
147         PR target/41082
148         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Use stvx
149         instead of stve*x.
150         (altivec_expand_stv_builtin): For op0 use mode of operand 1 instead
151         of operand 0.
152         * config/rs6000/altivec.md (VI_scalar): New mode attr.
153         (altivec_stve<VI_char>x, *altivec_stvesfx): Use scalar instead of
154         vector mode for operand 0, put operand 1 into UNSPEC.
155
156 2010-12-09  Yao Qi  <yao@codesourcery.com>
157
158         * config/arm/arm.c (arm_preferred_rename_class): Implement targethook
159         PREFERRED_RENAME_CLASS.
160
161 2010-12-08  Ian Lance Taylor  <iant@google.com>
162
163         * doc/sourcebuild.texi (Front End): Remove reference to
164         snapshot-README and snapshot-index.html.
165
166 2010-12-08  Ian Lance Taylor  <iant@google.com>
167
168         * doc/sourcebuild.texi (Texinfo Manuals): Change update_web_docs
169         to update_web_docs_svn.
170         (Front End): Likewise.
171
172 2010-12-08  Iain Sandoe <iains@gcc.gnu.org>
173
174         gcc/config.gcc (with_cpu): Default i[34567]86-*-darwin* and
175         x86_64-*-darwin* to with_cpu:-core2.
176         gcc/config/i386/mmx.md (*mov<mode>_internal_rex64): Replace movq
177         with movd for darwin assembler.
178         gcc/config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
179         (*vec_concatv2di_rex64_sse): Ditto.
180
181 2010-12-08  Richard Guenther  <rguenther@suse.de>
182             Sebastian Pop  <sebastian.pop@amd.com>
183
184         PR tree-optimization/45230
185         PR tree-optimization/45231
186         PR tree-optimization/45370
187         * sese.c (rename_uses): Returns a bool.  Call
188         recompute_tree_invariant_for_addr_expr only on the RHS of a
189         GIMPLE_ASSIGN.
190         (graphite_copy_stmts_from_block): Call fold_stmt_inplace when
191         rename_uses returns true.
192         * tree-ssa-copy.c (replace_exp): Add a comment about calling
193         fold_stmt_inplace after replace_exp.
194
195 2010-12-08  Mike Stump  <mikestump@comcast.net>
196
197         PR debug/46749
198         * config/darwin.h (COLLECT_RUN_DSYMUTIL): Add.
199         (DSYMUTIL_SPEC): Use `linker' flags instead to handle lto better.
200         * config/darwin9.h (COLLECT_RUN_DSYMUTIL): Add.
201         (DSYMUTIL_SPEC): Use `linker' flags instead to handle lto better.
202         * collect2.c (post_ld_pass): Add.
203         (process_args): Add.
204         (maybe_run_lto_and_relink): Call post_ld_pass after ld.
205         (main): Likewise.  Call process_args.
206
207 2010-12-08  Jakub Jelinek  <jakub@redhat.com>
208
209         PR middle-end/46844
210         * regrename.c (check_new_reg_p): Add ATTRIBUTE_UNUSED to reg
211         parameter.
212
213 2010-12-08  Richard Earnshaw  <rearnsha@arm.com>
214
215         PR target/46631
216         * arm.c (thumb2_reorg): Also try to reduce <commutative_op> Rd, Rn, Rd
217         into a 16-bit instruction.
218
219 2010-12-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
220
221         PR middle-end/42694
222         * builtins.c (expand_builtin_pow_root): Don't optimize pow(x,y)
223         where y is 0.25, 1./6., or 0.75 if the target does not have a sqrt
224         instruction, but do optimize if y is 0.5 or 1./3. since that
225         changes an expensive call into a cheaper one.
226
227 2010-12-08  Richard Guenther  <rguenther@suse.de>
228
229         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use a shift
230         instead of a division to divide by BITS_PER_UNIT.
231
232 2010-12-08  Richard Guenther  <rguenther@suse.de>
233
234         * gimplify.c (gimple_tree_eq): Assert hashes are equal only
235         when checking is enabled.
236
237 2010-12-07  Andrey Belevantsev  <abel@ispras.ru>
238
239         PR target/43603
240         * haifa-sched.c (sched_create_recovery_edges): Update
241         dominator info.
242         * sel-sched-ir.c (maybe_tidy_empty_bb): Update dominator info
243         after deleting an empty block.
244         (tidy_control_flow): Also verify dominators.
245         (sel_remove_bb): Update dominator info after removing a block.
246         (sel_redirect_edge_and_branch_force): Assert that no unreachable
247         blocks will be created. Update dominator info.
248         (sel_redirect_edge_and_branch): Update dominator info when
249         basic blocks do not become unreachable.
250         (sel_remove_loop_preheader): Update dominator info. 
251
252 2010-12-07  Richard Guenther  <rguenther@suse.de>
253
254         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
255         Reset alignment information.
256         (bump_vector_ptr): Likewise.
257
258 2010-12-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
259
260         PR middle-end/46671
261         PR target/46685
262         * config/pa/pa.c (pa_function_section): New function.
263         (TARGET_ASM_FUNCTION_SECTION): Define.
264
265 2010-12-07  Ian Lance Taylor  <iant@google.com>
266             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
267
268         PR bootstrap/46810
269         * configure.ac: Disable AC_MSG_ERROR while looking for the C++
270         preprocessor.
271         * configure: Rebuild.
272
273 2010-12-07  Paul Koning  <ni1d@arrl.net>
274
275         * config/pdp11/pdp11.c (output_addr_const_pdp11): Output negative
276         values with sign rather than as unsigned.
277
278 2010-12-07  Paul Koning  <ni1d@arrl.net>
279
280         * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_SECTION): Define.
281         (pdp11_function_section): New function.
282
283 2010-12-07  Joseph Myers  <joseph@codesourcery.com>
284
285         * config/mcore/mcore.c Don't include assert.h.
286         (layout_mcore_frame, handle_structs_in_regs): Use gcc_assert.
287         * config/spu/spu.c: Don't include assert.h.
288         (spu_sms_res_mii): Use gcc_assert.
289
290 2010-12-07  Sebastian Pop  <sebastian.pop@amd.com>
291
292         PR tree-optimization/42327
293         * tree-data-ref.c (omega_setup_subscript): Call build_int_cst
294         instead of using integer_minus_one_node.
295
296 2010-12-07  Nathan Froyd  <froydnj@codesourcery.com>
297
298         PR c++/45330
299         * params.def (CXX_MAX_NAMESPACES_FOR_DIAGNOSTIC_HELP): New parameter.
300         * doc/invoke.texi (cxx-max-namespaces-for-diagnostic-help): Document.
301
302 2010-12-07  Richard Guenther  <rguenther@suse.de>
303
304         PR tree-optimization/46832
305         * tree-ssa-math-opts.c (execute_optimize_widening_mul): Check
306         that the call has a lhs.
307
308 2010-12-07  Yao Qi  <yao@codesourcery.com>
309
310         * Makefile.in: Add $(TARGET_H) to the regrename.o rule.
311         * regrename.c (struct du_head): Add new element length.
312         (sort_du_head, get_element, merge, merge_sort_comparison):
313         New functions of merge sort implementation to du_head list.
314         (regrename_optimize): Sort du_head linked list by length.
315         Iterate registers in a preferred-register-first order.
316         Move some code to ...
317         (check_new_reg_p): here.  New function.
318         (create_new_chain):  Initialize length.
319         (scan_rtx_reg): Increase length for non-debug insns.
320         * target.def: New hook preferred_rename_class.
321         * targhook.c (default_preferred_rename_class): New.
322         * targhook.h: Declare it.
323         * doc/tm.texi.in: New hook TARGET_PREFERRED_RENAME_CLASS.
324         * doc/tm.texi: Regenerate.
325
326 2010-12-07  Jakub Jelinek  <jakub@redhat.com>
327
328         PR debug/46799
329         * tree-parloops.c (separate_decls_in_region): Use UNKNOWN_LOCATION
330         instead of BUILTINS_LOCATION.
331         (create_loop_fn): Add LOC argument, pass it to build_decl instead of
332         BUILTINS_LOCATION.
333         (create_parallel_loop): Add LOC argument, use it for OMP clauses
334         and GIMPLE_*OMP* statements.
335         (gen_parallel_loop): Determine locus for the parallel loop, pass it
336         to create_loop_fn and create_parallel_loop.
337         * cfgexpand.c (gimple_expand_cfg): For builtin functions, call
338         set_curr_insn_source_location (UNKNOWN_LOCATION).
339
340 2010-12-07  Joern Rennecke  <amylaar@spamcop.net>
341             Richard Guenther  <rguenther@suse.de>
342
343         PR target/46737
344         * config/bfin/bfin.c (BB_AUX_INDEX): Cast to intptr_t.
345         (bfin_reorder_loops): Change type of index to intptr_t.
346
347 2010-12-07  Richard Guenther  <rguenther@suse.de>
348
349         PR tree-optimization/46726
350         * tree-inline.c (estimate_num_insns): Special case pow (x, 2.0).
351
352 2010-12-07  Richard Guenther  <rguenther@suse.de>
353
354         * tree-ssa-math-opts.c (execute_optimize_widening_mul): Unlink
355         virtual operands.
356
357 2010-12-07  Nicola Pero  <nicola.pero@meta-innovation.com>
358
359         * c-parser.c (c_parser_typeof_specifier): Removed special
360         treatment of objc_volatilized attribute for Objective-C.
361
362 2010-12-06  Vladimir Makarov  <vmakarov@redhat.com>
363
364         * ira.c (update_equiv_regs): Prohibit move insns if
365         pressure-sensitive scheduling was done.
366
367 2010-12-06  Nicola Pero  <nicola.pero@meta-innovation.com>
368
369         * c-parser.c (c_parser_for_statement): Use c_fully_fold() instead
370         of c_process_expr_stmt() for the iterating and collection
371         expressions of an Objective-C fast enumeration loop.
372
373 2010-12-06  Jakub Jelinek  <jakub@redhat.com>
374
375         PR debug/45997
376         * dwarf2out.c (modified_type_die): If both is_const_type and
377         is_volatile_type is set, start with DW_TAG_const_type or
378         DW_TAG_volatile_type depending on where we get qualified type
379         in the recursive call.
380
381         PR target/43897
382         * config/ia64/ia64.c (rtx_needs_barrier): Handle asm CLOBBER
383         as a store into that register.
384
385         PR tree-optimization/46528
386         PR debug/46338
387         * profile.c (branch_prob): Make sure last is never set to a debug
388         stmt.
389
390         PR debug/46771
391         * reginfo.c (init_subregs_of_mode): Don't call find_subregs_of_mode
392         on DEBUG_INSNs.
393
394         PR rtl-optimization/46777
395         * cfglayout.c (duplicate_insn_chain): Avoid duplicating
396         also barrier after tablejump.
397
398 2010-12-06  Joern Rennecke  <amylaar@spamcop.net>
399             Richard Henderson  <rth@redhat.com>
400
401         PR target/46740
402         * config/vax/vax.c (vax_output_int_move): Fold #if into if.
403
404 2010-12-06  Eric Botcazou  <ebotcazou@adacore.com>
405
406         * config/sparc/sol2.h (PUSHSECTION_FORMAT): Redefine unconditionally.
407         * config/sparc/sol2-gas.h (PUSHSECTION_FORMAT): Redefine.
408
409 2010-12-06  Joern Rennecke  <amylaar@spamcop.net>
410
411         PR target/46735
412         * config/frv/predicates.md (gpr_or_int12_operand): Use IN_RANGE.
413         (gpr_fpr_or_int12_operand, gpr_or_int10_operand): Likewise.
414         (int12_operand, int_2word_operand, uint16_operand): Likewise.
415         (fpr_or_int6_operand, int6_operand, int5_operand): Likewise.
416         (uint5_operand, uint4_operand): Likewise.
417         * config/frv/frv.h (IN_RANGE_P): Delete.
418         (GPR_P, FPR_P, CC_P, ICC_P, FCC_P, CR_P, ICR_P, FCR_P): Use IN_RANGE.
419         (ACC_P, ACCG_P, SPR_P, CONST_OK_FOR_I, CONST_OK_FOR_J): Likewise.
420         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
421         (CONST_OK_FOR_P): Likewise.
422         * config/frv/frv.md (*movqicc_internal2_int): Likewise.
423         (*movqicc_internal2_float, *movhicc_internal2_int): Likewise.
424         (*movhicc_internal2_float, *movsicc_internal2_int): Likewise.
425         (*movsicc_internal2_float, casesi): Likewise.
426         * config/frv/frv.c (frv_frame_offset_rtx): Likewise.
427         (frv_asm_output_mi_thunk, frv_legitimate_address_p_1): Likewise.
428         (frv_emit_movsi, output_move_single, frv_emit_cond_move): Likewise.
429         (frv_split_cond_move, frv_rtx_costs): Likewise.
430
431         PR target/46739
432         * config/mmix/mmix.c (mmix_intval): Split shift count.
433
434 2010-12-06  H.J. Lu  <hongjiu.lu@intel.com>
435
436         * config/i386/i386.c (m_COREI7): New.
437         (initial_ix86_tune_features): Turn on
438         X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL and
439         X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL for Core i7.
440
441 2010-12-06  H.J. Lu  <hongjiu.lu@intel.com>
442
443         * config.gcc: Allow corei7-avx for --with-arch/--with-cpu.
444
445         * config/i386/driver-i386.c (host_detect_local_cpu): Support
446         Sandy Bridge.
447
448         * config/i386/i386.c (override_options): Handle "corei7-avx".
449
450         * doc/invoke.texi: Document corei7-avx.
451
452 2010-12-06  Richard Guenther  <rguenther@suse.de>
453
454         PR tree-optimization/46806
455         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do not
456         coalesce different types.
457
458 2010-12-06  Richard Guenther  <rguenther@suse.de>
459
460         PR tree-optimization/46785
461         * tree-vect-loop.c (vect_is_simple_reduction_1): Also allow
462         call statements as operand definition.
463
464 2010-12-06  Mingjie Xing  <mingjie.xing@gmail.com>
465
466         * doc/tm.texi.in: Fix typo.
467         * doc/tm.texi: Regenerate.
468
469 2010-12-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
470
471         * config.gcc [hppa[12]*-*-hpux10*, hppa[12]*-*-hpux11*]: Fix typo in
472         last change.
473
474 2010-12-06  Nicola Pero  <nicola.pero@meta-innovation.com>
475
476         * c-family/c-common.h: Removed the declarations of all the objc_
477         callbacks, and moved them into c-objc.h.  Removed
478         objc_ivar_visibility_kind and moved it into c-objc.h.
479         * c-family/c-objc.h: New file.
480         * c-family/c-common.c: Include c-objc.h.
481         * c-family/c-format.c: Same change.
482         * c-family/stub-objc.c: Same change.
483         * c-decl.c: Include c-family/c-objc.h.
484         * c-parser.c: Same change.
485         * c-typeck.c: Same change.
486         * c-config-lang.in (gtfiles): Added c-family/c-objc.h.
487         * Makefile.in (c-decl.o): Depend on c-family/c-objc.h.
488         (c-parser.o): same change.
489         (c-typeck.o): Same change.
490         (c-family/c-format.o): Same change.
491         (c-family/stub-objc.o): Same change.
492         (c-family/c-common.o): Same change.
493         (PLUGIN_HEADERS): Added c-family/c-objc.h.
494
495 2010-12-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
496
497         * config.gcc [hppa[12]*-*-hpux10*, hppa[12]*-*-hpux11*]:  Ignore
498         --with-dwarf2 option.
499
500 2010-12-03  Jan Hubicka  <jh@suse.cz>
501
502         * lto-streamer-in.c (input_cfg): Fix pasto.
503
504 2010-12-03  Jan Hubicka  <jh@suse.cz>
505
506         * ipa.c (cgraph_externally_visible_p): Do not localize builtins
507         and functions with user asm defined names.
508         (varpool_externally_visible_p): Do not localize vars with user
509         asm defined names.
510
511 2010-12-03  Jan Hubicka  <jh@suse.cz>
512
513         * dwarf2asm.c (dw2_output_indirect_constant_1): Set DECL_ASSEMBLER_NAME
514         to prevent mangling with lto frontend.
515
516 2010-12-03  Jan Hubicka  <jh@suse.cz>
517
518         * Makefile.in (LTO_STREAMER_H): Add GCOV_IO_H.
519         * lto-cgraph.c (merge_profile_summaries): Fix thinko.
520
521 2010-12-03  Jan Hubicka  <jh@suse.cz>
522
523         PR tree-optimization/46760
524         * cgraph.c (cgraph_create_node): Initialize count_materialization_scale.
525         * cgraph.h (struct cgraph_node): Add count_materialization_scale.
526         * lto-cgraph.c (lto_output_edge): Fix assert.
527         (lto_output_node): Output count_materialization_scale.
528         (output_profile_summary): Output only runs and sum_max.
529         (input_node): Input count_materialization_scale.
530         (input_profile_summary): Read data into file specific gcov summary.
531         (merge_profile_summaries): New function.
532         (input_cgraph): Update call of input_profile_summary;
533         call merge_profile_summaries.
534         * lto-streamer-in.c (input_cfg): Add count_materialization_scale arg;
535         rescale counts at read in.
536         (intput_bb): Likewise.
537         (input_function): Update call of input_bb.
538         (lto_read_body): Update call of input_cfg.
539         * lto-streamer.h: Inlclude gcov-io.h
540         (lto_file_decl_data): Add gcov_ctr_summary.
541
542 2010-12-03  Dave Korn  <dave.korn.cygwin@gmail.com>
543
544         * doc/tm.texi.in (Cond. Exec. Macros): Rename node from this ...
545         (Cond Exec Macros): ... to this.
546         * doc/tm.texi: Regenerate.
547
548 2010-12-03  Jason Merrill  <jason@redhat.com>
549
550         PR debug/46123
551         * dwarf2out.c (gen_tagged_type_die): Don't put local types in
552         a declaration DIE.
553
554 2010-12-03  Nathan Froyd  <froydnj@codesourcery.com>
555
556         * config/arm/arm.c (arm_legitimate_index_p): Split
557         VALID_NEON_QREG_MODE and VALID_NEON_DREG_MODE cases.  Permit
558         slightly larger constants in the latter case.
559         (thumb2_legitimate_index_p): Likewise.
560
561 2010-12-03  Joseph Myers  <joseph@codesourcery.com>
562
563         * common.opt (N, Q, Qn, Qy, Z, n, r, s, t): New options.
564         * gcc.c (cc1_options): Add %{Qy:}.
565
566 2010-12-03  Joseph Myers  <joseph@codesourcery.com>
567
568         * gcc.c (LINK_COMMAND_SPEC): Don't handle -A, -d or -m.
569         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
570         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Likewise.
571
572 2010-12-03  Alexander Monakov  <amonakov@ispras.ru>
573
574         PR rtl-optimization/45354
575         * sel-sched-ir.c (jump_leads_only_to_bb_p): Rename to ...
576         (bb_has_removable_jump_to_p): This.  Update all callers. Make static.
577         Allow BBs ending with a conditional jump.  Forbid EDGE_CROSSING jumps.
578         * sel-sched-ir.h (jump_leads_only_to_bb_p): Delete prototype.
579
580 2010-12-03  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
581
582         * basic-block.h (struct edge_prediction): Remove forward
583         declaration.
584         * tree-flow.h (struct edge_prediction): Move from here...
585         * predict.c (struct edge_prediction): ...to here.
586         * cselib.h (struct elt_list): Move from here...
587         * cselib.c (struct elt_list): ...to here.
588
589 2010-12-02  Ian Lance Taylor  <iant@google.com>
590
591         * gcc.c (default_compilers): Add entry for ".go".
592         * common.opt: Add -static-libgo as a driver option.
593         * doc/install.texi (Configuration): Mention libgo as an option for
594         --enable-shared.  Mention go as an option for --enable-languages.
595         * doc/invoke.texi (Overall Options): Mention .go as a file name
596         suffix.  Mention go as a -x option.
597         * doc/frontends.texi (G++ and GCC): Mention Go as a supported
598         language.
599         * doc/sourcebuild.texi (Top Level): Mention libgo.
600         * doc/standards.texi (Standards): Add section on Go language.
601         Move references for other languages into their own section.
602         * doc/contrib.texi (Contributors): Mention that I contributed the
603         Go frontend.
604
605 2010-12-03  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
606
607         * tree.h (struct call_expr_arg_iterator_d): Remove GTY tag.
608         (const_call_expr_arg_iterator_d): Likewise.
609         (expanded_location): Likewise.
610         * c-tree.h (struct c_arg_tag_d): Likewise.
611         * dwarf2out.c (struct cfa_loc): Likewise.
612         (struct skeleton_chain_struct): Likewise.
613         * except.c (struct ttypes_filter): Likewise.
614         * cselib.h (struct cselib_val_struct): Likewise.
615         (elt_loc_list): Likewise.
616         (elt_list): Likewise.
617         * varasm.c (struct addr_const): Likewise.
618         * tree-flow.h (struct edge_prediction): Likewise.
619         (struct int_tree_map): Likewise.
620         (struct _edge_var_map): Likewise.
621
622 2010-12-02  H.J. Lu  <hongjiu.lu@intel.com>
623
624         PR target/46768
625         * config/i386/i386.c (initial_ix86_tune_features): Turn on
626         X86_TUNE_INTER_UNIT_MOVES for Core 2 and Core i7.
627
628 2010-12-02  H.J. Lu  <hongjiu.lu@intel.com>
629
630         * config.gcc: Allow corei7 for --with-arch=/--with-cpu=.
631
632 2010-12-02  Ian Lance Taylor  <iant@google.com>
633
634         * configure.ac: AC_DEFINE ENABLE_BUILD_WITH_CXX.  Check for C++
635         header files unordered_map, tr1/unordered_map, and ext/hash_map.
636         * configure, config.in: Rebuild.
637
638 2010-11-02  Eric Botcazou  <ebotcazou@adacore.com>
639
640         PR target/46685
641         * config/sparc/sparc.c (can_use_mov_pic_label_ref): New predicate.
642         (sparc_expand_move): Call it to decide whether to emit the special
643         mov{si,di}_pic_label_ref patterns.
644         (sparc_legitimize_pic_address): Call it to decide whether to emit
645         the regular PIC sequence for labels.  Fix long line.
646         (sparc_file_end): Set is_thunk for the PIC helper.
647
648 2010-12-02  Eric Botcazou  <ebotcazou@adacore.com>
649
650         * tree.c (build_range_type_1): Do not SET_TYPE_STRUCTURAL_EQUALITY
651         for a non-shared type.
652
653 2010-12-02  Sebastian Pop  <sebastian.pop@amd.com>
654
655         PR middle-end/45297
656         * tree-scalar-evolution.c (interpret_rhs_expr): Handle ADDR_EXPR
657         with MEM_REFs as POINTER_PLUS_EXPR.
658
659 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
660
661         * config/i386/linux.h, config/m32r/linux.h, config/m68k/linux.h,
662         config/sparc/linux.h, config/sparc/linux64.h: Remove comments
663         mentioning /lib/elf.
664
665 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
666
667         * config/bfin/bfin.h (LINK_SPEC): Remove %{b}.
668         * config/frv/frv.h (LINK_SPEC): Remove %{b}.
669         * config/i386/netware.h (LINK_SPEC): Remove %{b}.
670         * config/i386/nto.h (LINK_SPEC): Remove %{b}.
671         * config/lm32/uclinux-elf.h (LINK_SPEC): Remove %{b}.
672         * config/sol2.h (LINK_SPEC): Remove %{b}.
673         * config/svr4.h (LINK_SPEC): Remove %{b}.
674
675 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
676
677         * config/i386/freebsd.h (LINK_SPEC): Cut long comment.
678         * config/i386/linux.h (LINK_SPEC): Cut long comment.
679         * config/i386/netware.h (LINK_SPEC): Remove %{V}.
680         * config/m32r/linux.h (LINK_SPEC): Cut long comment.
681         * config/m68k/linux.h (LINK_SPEC): Cut long comment.
682         * config/sparc/linux.h (LINK_SPEC): Cut long comment.
683         (ASM_SPEC): Remove %{V} and %{v:%{!V:-V}}.
684         * config/sparc/linux64.h (LINK_SPEC): Cut long comment.
685         (ASM_SPEC): Remove %{V} and %{v:%{!V:-V}}.
686         * config/sparc/netbsd-elf.h (ASM_SPEC): Remove %{V} and
687         %{v:%{!V:-V}}.
688
689 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
690
691         * gcc.c (trad_capable_cpp, default_compilers): Don't handle
692         -ftraditional.
693
694 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
695
696         * config/alpha/freebsd.h (LINK_SPEC): Don't handle -Wl,.
697         * config/bfin/bfin.h (ASM_SPEC): Don't handle -Wa,.
698         * config/frv/frv.h (ASM_SPEC): Don't handle -Wa,.
699         * config/lm32/uclinux-elf.h (LINK_SPEC): Don't handle -Wl,.
700         * config/microblaze/microblaze.h (LINK_SPEC): Don't handle -Wl,.
701         * config/mn10300/linux.h (ASM_SPEC): Don't handle -Wa,.
702         * config/pa/pa-linux.h (ASM_SPEC): Don't handle -Wa,.
703         * config/rs6000/freebsd.h (SVR4_ASM_SPEC): Don't handle -Wa,.
704         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Don't handle -Wa,.
705         * config/rs6000/sysv4.h (LINK_SPEC): Don't handle -Wl,.
706         * config/rs6000/vxworks.h (ASM_SPEC): Don't handle -Wa,.
707         * config/sol2.h (ASM_SPEC): Don't handle -Wa,.
708         * config/sparc/linux.h (ASM_SPEC): Don't handle -Wa,.
709         * config/sparc/linux64.h (ASM_SPEC): Don't handle -Wa,.
710         * config/sparc/sp-elf.h (ASM_SPEC): Don't handle -Wa,.
711         * config/sparc/sysv4.h (ASM_SPEC): Don't handle -Wa,.
712         * config/svr4.h (SVR4_ASM_SPEC): Don't handle -Wa,.
713         * config/vxworks.h (VXWORKS_LINK_SPEC): Don't handle -Wl,.
714
715 2010-12-02  Paul Koning  <ni1d@arrl.net>
716
717         * config/pdp11/pdp11.c (output_jump): Map unsigned to signed
718         opcodes if CC_NO_OVERFLOW is set.
719         (notice_update_cc_on_set): Correct setting of CC0 as a side
720         effect; set CC_NO_OVERFLOW for cases where C flag is not
721         meaningful.
722
723 2010-12-02  Ian Lance Taylor  <iant@google.com>
724
725         * doc/install.texi (Configuration): Update default for
726         --with-boot-ldflags.
727
728 2010-12-02  Nathan Froyd  <froydnj@codesourcery.com>
729
730         PR c/45062
731         * c-decl.c (grokparms): Set arg_info->parms to NULL_TREE when
732         !funcdef_flag.
733
734 2010-12-02  Sebastian Pop  <sebastian.pop@amd.com>
735
736         PR tree-optimization/45199
737         * tree-data-ref.c (mem_write_stride_of_same_size_as_unit_type_p): New.
738         (stores_zero_from_loop): Call
739         mem_write_stride_of_same_size_as_unit_type_p.
740         * tree-data-ref.h (stride_of_unit_type_p): New.
741         * tree-loop-distribution.c (generate_memset_zero): Simplified.
742         Call stride_of_unit_type_p.
743         (build_rdg_partition_for_component): Do not call
744         rdg_flag_similar_memory_accesses when
745         flag_tree_loop_distribute_patterns is set.
746
747 2010-12-02  Richard Guenther  <rguenther@suse.de>
748
749         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Disregard
750         sign-changing conversions for induction detection.
751
752 2010-12-02  Richard Guenther  <rguenther@suse.de>
753
754         PR tree-optimization/46723
755         * tree-vect-loop.c (get_initial_def_for_induction): Strip
756         conversions from the induction evolution and apply it to
757         the result instead.
758         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Handle
759         assigns for induction defs.
760
761 2010-12-02  Richard Guenther  <rguenther@suse.de>
762
763         * value-prof.c (gimple_ic): Use stmt_ends_bb_p to detect
764         the case we need to split the edge and not the block.
765
766 2010-12-02  Bernd Schmidt  <bernds@codesourcery.com>
767
768         DFA model for Core 2 and Core i7 scheduling.
769
770         * config/i386/core2.md: New DFA model for Core 2 and Core i7.
771         * config/i386/i386.c (ix86_option_override_internal): Update entries
772         for Core 2 and Core i7.
773         (ix86_issue_rate): Set issue rate to 3 [be realistic].
774         * config/i386/i386.md: Include "core2.md".
775         (define_attr cpu): Add "corei7".
776
777 2010-12-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
778
779         Define tuning for Core 2 and Core i7.
780
781         * config/i386/i386-c.c (ix86_target_macros_internal): Update.
782         * config/i386/i386.c (core2_cost): Delete, use generic costs instead.
783         (m_CORE2): Replace with m_CORE2_{32,64}.
784         (m_CORE2I7{,_32,_64}): New macros.
785         (m_GENERIC32, m_GENERIC64): Update.
786         (initial_ix86_tune_features, x86_accumulate_outgoing_args,)
787         (x86_arch_always_fancy_math_387): Set m_CORE2I7_32 iff m_GENERIC32 and
788         set m_CORE2I7_64 iff m_GENERIC64.
789         (processor_target_table): Use generic costs for Core 2 and Core i7.
790         (ix86_option_override_internal): Update entries for Core 2 and Core i7.
791         (ix86_issue_rate): Remove entry for Core 2.
792         (ia32_multipass_dfa_lookahead, ix86_sched_init_global): Update.
793         * config/i386/i386.h (TARGET_CORE2_32, TARGET_CORE2_64): New macros.
794         (TARGET_CORE2): Update.
795         (PROCESSOR_CORE2_32, PROCESSOR_CORE2_64): New constants.
796         (PROCESSOR_CORE2): Remove.
797
798 2010-12-02  Richard Guenther  <rguenther@suse.de>
799
800         * lto-streamer.h (LTO_major_version): Bump to 2.
801
802 2010-12-02  Richard Guenther  <rguenther@suse.de>
803
804         PR lto/44871
805         * gimple.c (canonical_type_hash_cache): New hashtable.
806         (gimple_type_hash): Make a wrapper around ...
807         (gimple_type_hash_1): ... this.  Take gtc_mode argument.
808         (gimple_canonical_type_hash): Likewise.
809         (gtc_visit): Take a gtc_mode argument.
810         (gimple_types_compatible_p_1): Likewise. Do not compare struct
811         tag names or field names when computing canonical types.
812         (gimple_types_compatible_p): Adjust.
813         (visit): Take a gtc_mode argument.
814         (iterative_hash_gimple_type): Likewise.  Do not hash struct tag
815         names or field names when computing hashes of canonical types.
816         (gimple_register_canonical_type): Use gimple_canonical_type_hash
817         for the hash.
818         (print_gimple_types_stats): Dump stats of canonical_type_hash_cache.
819         (free_gimple_type_tables): Free canonical_type_hash_cache.
820
821 2010-12-02  Richard Guenther  <rguenther@suse.de>
822             Ira Rosen  <irar@il.ibm.com>
823
824         PR tree-optimization/46663
825         * tree-vect-patterns.c (vect_recog_pow_pattern): Check that
826         FUNCTION_DECL exists and that it's a builtin.
827
828 2010-12-02  Jie Zhang  <jie@codesourcery.com>
829
830         PR middle-end/46674
831         * varasm.c (compute_visible_aliases): Handle user set
832         assembler name.
833
834 2010-12-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
835
836         * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
837         thinko regarding setting -mno-<xxx> debug switches.
838         (rs6000_rtx_costs): Add FMA.  Delete old rtl based FMA costs.
839
840 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
841
842         * intl.c: Don't include tm.h.
843         * Makefile.in (intl.o): Don't depend on $(TM_H).
844
845 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
846
847         * graphite-sese-to-poly.c (analyze_drs_in_stmts): Fix set but
848         unused warning.
849         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
850
851 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
852
853         * graphite-sese-to-poly.c (analyze_drs): Removed.
854         (build_scop_drs): Do not call analyze_drs.
855         (analyze_drs_in_stmts): New.
856         (insert_stmts): New.
857         (insert_out_of_ssa_copy): Call analyze_drs_in_stmts.
858         (insert_out_of_ssa_copy_on_edge): Same.
859         (rewrite_close_phi_out_of_ssa): Call insert_stmts.
860         (rewrite_phi_out_of_ssa): Same.
861         (rewrite_cross_bb_scalar_dependence): Same.
862         (split_reduction_stmt): Move data references in the new basic blocks.
863         (translate_scalar_reduction_to_array_for_stmt): Call insert_stmts.
864
865 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
866
867         * sese.c (rename_uses): Do not handle ADDR_EXPR in LHS of assignments.
868
869 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
870
871         PR middle-end/45297
872         * graphite-poly.c (new_poly_bb): Returns a poly_bb_p.  Do not take
873         the reduction bool in parameter.  Clear PBB_IS_REDUCTION.  Set GBB_PBB.
874         * graphite-poly.h (new_poly_bb): Update declaration.
875         (gbb_from_bb): Moved here...
876         (pbb_from_bb): New.
877         * graphite-sese-to-poly.c (var_used_in_not_loop_header_phi_node):
878         Removed.
879         (graphite_stmt_p): Removed.
880         (try_generate_gimple_bb): Returns a gimple_bb_p.  Do not pass in
881         sbitmap reductions.  Always build a gimple_bb_p.  Do not call
882         new_poly_bb.
883         (build_scop_bbs_1): Do not pass in sbitmap reductions.
884         (build_scop_bbs): Same.
885         (gbb_from_bb): ... from here.
886         (add_conditions_to_constraints): Moved up.
887         (analyze_drs): New.
888         (build_scop_drs): Call analyze_drs.  Remove all the PBBs that do
889         not contain data references.
890         (new_pbb_from_pbb): New.
891         (insert_out_of_ssa_copy_on_edge): Call new_pbb_from_pbb after a
892         block is split.
893         (rewrite_close_phi_out_of_ssa): Update call to
894         insert_out_of_ssa_copy_on_edge.
895         (rewrite_reductions_out_of_ssa): Now static.
896         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
897         (split_pbb): New.
898         (split_reduction_stmt): Call split_pbb.
899         (translate_scalar_reduction_to_array): Pass in the scop, do not
900         pass in the sbitmap reductions.
901         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
902         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
903         (rewrite_commutative_reductions_out_of_ssa): Same.
904         (build_poly_scop): Call build_scop_bbs,
905         rewrite_commutative_reductions_out_of_ssa,
906         rewrite_reductions_out_of_ssa, and
907         rewrite_cross_bb_scalar_deps_out_of_ssa.  Move build_scop_drs
908         before scop_to_lst.
909         * graphite-sese-to-poly.h (rewrite_commutative_reductions_out_of_ssa):
910         Removed declaration.
911         (rewrite_reductions_out_of_ssa): Same.
912         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
913         (build_scop_bbs): Same.
914         * graphite.c (graphite_transform_loops): Do not initialize reductions.
915         Do not call build_scop_bbs,
916         rewrite_commutative_reductions_out_of_ssa,
917         rewrite_reductions_out_of_ssa, and
918         rewrite_cross_bb_scalar_deps_out_of_ssa.
919         * sese.h (struct gimple_bb): Add field pbb.
920         (GBB_PBB): New.
921
922 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
923
924         * graphite-sese-to-poly.c (handle_scalar_deps_crossing_scop_limits):
925         New.
926         (rewrite_cross_bb_scalar_deps): Pass in the scop.  Call
927         handle_scalar_deps_crossing_scop_limits.
928         (rewrite_cross_bb_scalar_deps_out_of_ssa): Create an empty BB
929         after the scop.  Update call to rewrite_cross_bb_scalar_deps.
930
931 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
932
933         * sese.c (rename_uses): Call recompute_tree_invariant_for_addr_expr
934         when replacing a constant in an ADDR_EXPR.
935
936 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
937
938         * graphite-blocking.c (lst_do_strip_mine_loop): Extra parameter
939         for the stride.
940         (lst_do_strip_mine): Same.
941         (scop_do_strip_mine): Same.
942         * graphite-poly.c (apply_poly_transforms): Update call to
943         scop_do_strip_mine.
944         * graphite-poly.h (scop_do_strip_mine): Update declaration.
945
946 2010-12-01  Jan Hubicka  <jh@suse.cz>
947
948         * tree.c (build_common_builtin_nodes): Do not initialize
949         BUILT_IN_PROFILE_FUNC_ENTER and BUILT_IN_PROFILE_FUNC_EXIT.
950         * builtins.c (expand_builtin_profile_func): Remove.
951         (expand_builtin): Do not handle BUILT_IN_PROFILE_FUNC_ENTER and
952         BUILT_IN_PROFILE_FUNC_EXIT.
953         * builtins.def (profile_func_enter, profile_func_exit): Remove stubs.
954         (__cyg_profile_func_enter, __cyg_profile_func_exit): New.
955         * gimplify.c (gimplify_function_tree): Reorganize code calling
956         profiling functions.
957
958 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
959
960         * opts.c: Expand comment on tm.h include.
961
962 2010-12-01  Yao Qi  <yao@codesourcery.com>
963
964         * config/arm/predicates.md ("vfp_register_operand"): Return true for
965         VFP_D0_D7_REGS classes.
966
967 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
968
969         * common.opt (flag_stack_check): New Variable entry.
970         (fcompare-debug-second): Use Var.
971         * flags.h (flag_compare_debug, flag_stack_check): Remove.
972         * opts.c (flag_compare_debug): Remove.
973         (common_handle_option): Don't handle OPT_fcompare_debug_second.
974         Set opts->x_flag_stack_check for OPT_fstack_check_.
975         * toplev.c (flag_stack_check): Remove.
976
977 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
978
979         * common.opt (main_input_filename, main_input_basename,
980         main_input_baselength): New Variable entries.  From toplev.c.
981         * final.c (output_quoted_string): Move from toplev.c.
982         * output.h (output_quoted_string): Move from toplev.h.
983         * opts-global.c (read_cmdline_options): Use gcc_options pointer to
984         access main_input_filename, main_input_baselength and
985         main_input_basename.
986         * targhooks.c: Include intl.h and opts.h.
987         (option_affects_pch_p, default_get_pch_validity): Move from
988         toplev.c.
989         * targhooks.h (option_affects_pch_p, default_get_pch_validity):
990         Move from toplev.h.
991         * toplev.c (main_input_filename, main_input_basename,
992         main_input_baselength): Move to common.opt.
993         (output_quoted_string): Move to final.c.
994         (warn_deprecated_use): Move to tree.c.
995         (option_affects_pch_p, default_get_pch_validity,
996         pch_option_mismatch, default_pch_valid_p): Move to targhooks.c.
997         * toplev.h (skip_leading_substring): Move to tree-dump.c.
998         (warn_deprecated_use): Move to tree.h.
999         (output_quoted_string): Move to output.h.
1000         (main_input_filename, main_input_basename, main_input_baselength):
1001         Move to common.opt.
1002         (default_get_pch_validity, default_pch_valid_p): Move to
1003         targhooks.c.
1004         * tree-dump.c (skip_leading_substring): Move from toplev.h.
1005         * tree.c (warn_deprecated_use): Move from toplev.c.
1006         * tree.h (warn_deprecated_use): Move from toplev.h.
1007         * c-typeck.c, config/alpha/alpha.c, config/arc/arc.c,
1008         config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
1009         config/cris/cris.c, config/crx/crx.c, config/fr30/fr30.c,
1010         config/frv/frv.c, config/h8300/h8300.c, config/ia64/ia64.c,
1011         config/iq2000/iq2000.c, config/lm32/lm32.c, config/m32c/m32c.c,
1012         config/m32r/m32r.c, config/m68hc11/m68hc11.c, config/m68k/m68k.c,
1013         config/mcore/mcore.c, config/mep/mep.c,
1014         config/microblaze/microblaze.c, config/mips/mips.c,
1015         config/mmix/mmix.c, config/mn10300/mn10300.c,
1016         config/moxie/moxie.c, config/pa/pa.c, config/pdp11/pdp11.c,
1017         config/picochip/picochip.c, config/s390/s390.c,
1018         config/score/score.c, config/sh/sh.c, config/sparc/sparc.c,
1019         config/spu/spu.c, config/stormy16/stormy16.c, config/v850/v850.c,
1020         config/vax/vax.c, config/xtensa/xtensa.c, gimple-low.c,
1021         graphite-sese-to-poly.c, plugin.c, tree-cfg.c, tree-inline.c,
1022         varasm.c, xcoffout.c: Don't include toplev.h.
1023         * Makefile.in (c-typeck.o, tree-inline.o, tree-cfg.o,
1024         gimple-low.o, graphite-sese-to-poly.o, targhooks.o, plugin.o,
1025         varasm.o, xcoffout.o): Update dependencies.
1026         * config/arm/t-arm (arm.o): Update dependencies.
1027         * config/spu/t-spu-elf (spu.o): Update dependencies.
1028
1029 2010-12-01  Richard Guenther  <rguenther@suse.de>
1030
1031         PR tree-optimization/46730
1032         * value-prof.c (gimple_ic): Always generate a separate merge BB.
1033
1034 2010-11-30  Ian Lance Taylor  <iant@google.com>
1035
1036         * config/i386/linux.h (ASM_SPEC): Pass -v as -v, not -V.  Remove
1037         all of %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*}.
1038         * config/i386/linux64.h (ASM_SPEC): Likewise.
1039         * config/i386/mingw-w64.h (ASM_SPEC): Likewise.
1040         * config/i386/sol2-10.h (ASM_SPEC) [USE_GAS]: Likewise.
1041         * config/i386/vxworks.h (ASM_SPEC): Likewise.
1042         * config/i386/x86-64.h (ASM_SPEC): Likewise.
1043         * config/i386/sol2.h (ASM_SPEC): Remove %{Wa,*:%*}.
1044         * config/i386/sol2-10.h (ASM_SPEC) [!USE_GAS]: Likewise.
1045
1046 2010-11-30  Nicola Pero  <nicola.pero@meta-innovation.com>
1047
1048         * c-decl.c (finish_function): Call objc_finish_function in
1049         Objective-C.
1050         * c-typeck.c (convert_for_assignment): Do not call
1051         objc_type_quals_match().
1052
1053 2010-11-30  Richard Guenther  <rguenther@suse.de>
1054
1055         PR tree-optimization/46722
1056         * tree-ssa-math-opts.c (convert_mult_to_fma): Get multiplication
1057         operands as arguments.
1058         (execute_optimize_widening_mul): Also handle power of two as
1059         multiplication.
1060
1061 2010-11-30  Dave Korn  <dave.korn.cygwin@gmail.com>
1062
1063         PR middle-end/46709
1064         * cgraphunit.c (process_function_and_variable_attributes): Fix
1065         cut'n'pasteo.
1066
1067 2010-11-30  Joseph Myers  <joseph@codesourcery.com>
1068
1069         * hwint.c:  New.  Extracted from toplev.c.
1070         * hwint.h (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
1071         Move from toplev.h.
1072         * toplev.c (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
1073         Move to hwint.c.
1074         * toplev.h (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
1075         Move to hwint.h.
1076         * builtins.c, combine.c, config/i386/winnt.c, double-int.c,
1077         explow.c, expmed.c, fold-const.c, ggc-page.c, ggc-zone.c, ifcvt.c,
1078         ipa-struct-reorg.c, ira-color.c, matrix-reorg.c, omp-low.c,
1079         real.c, recog.c, reload.c, rtlanal.c, simplify-rtx.c,
1080         stor-layout.c, tree-dfa.c, tree-ssa-alias.c,
1081         tree-ssa-loop-niter.c, tree-vect-data-refs.c,
1082         tree-vect-loop-manip.c, tree-vect-loop.c, tree-vect-stmts.c,
1083         tree-vrp.c: Don't include toplev.h.
1084         * genattrtab.c, genconditions.c, genemit.c, genextract.c,
1085         genoutput.c, genpeep.c, genpreds.c, genrecog.c: Don't include
1086         toplev.h in generated output.
1087         * Makefile.in (OBJS-common): Add hwint.o.
1088         Dependencies for above files changed to remove toplev.h.
1089         (hwint.o): New.
1090         (insn-attrtab.o, insn-emit.o, insn-extract.o, insn-output.o,
1091         insn-peep.o, insn-preds.o, insn-recog.o): Don't depend on
1092         toplev.h.
1093         * config/i386/t-cygming (winnt.o): Don't depend on toplev.h.
1094         * config/i386/t-interix (winnt.o): Don't depend on toplev.h.
1095
1096 2010-11-30  Richard Guenther  <rguenther@suse.de>
1097
1098         PR tree-optimization/46717
1099         * value-prof.c (gimple_ic): Preserve EH edges of the indirect
1100         call.  Manually create EH edges for the direct call and update
1101         target PHI nodes.
1102
1103 2010-11-30  Joseph Myers  <joseph@codesourcery.com>
1104
1105         * diagnostic-core.h: Include bversion.h.
1106         * toplev.h: Don't include input.h or bversion.h.
1107         (parse_optimize_options): Don't declare here.
1108         * alias.c, auto-inc-dec.c, c-aux-info.c, c-convert.c, c-parser.c,
1109         caller-save.c, cfg.c, cfganal.c, cfgbuild.c, cfgcleanup.c,
1110         combine-stack-adj.c, config/arm/pe.c, config/darwin-c.c,
1111         config/host-darwin.c, config/i386/host-cygwin.c,
1112         config/i386/host-mingw32.c, config/i386/msformat-c.c,
1113         config/i386/netware.c, config/i386/nwld.c,
1114         config/i386/winnt-cxx.c, config/i386/winnt-stubs.c,
1115         config/ia64/ia64-c.c, config/m32c/m32c-pragma.c,
1116         config/mep/mep-pragma.c, config/microblaze/microblaze-c.c,
1117         config/rs6000/host-darwin.c, config/rs6000/rs6000-c.c,
1118         config/score/score3.c, config/score/score7.c,
1119         config/sh/symbian-base.c, config/sh/symbian-c.c,
1120         config/sh/symbian-cxx.c, config/sol2-c.c, config/sol2.c,
1121         config/v850/v850-c.c, config/vxworks.c, convert.c, cppbuiltin.c,
1122         cselib.c, dbgcnt.c, ddg.c, dfp.c, dominance.c, emit-rtl.c,
1123         fixed-value.c, fwprop.c, ggc-common.c, gimple.c, gimplify.c,
1124         graphite-blocking.c, graphite-clast-to-gimple.c,
1125         graphite-dependences.c, graphite-flattening.c,
1126         graphite-interchange.c, graphite-poly.c,
1127         graphite-scop-detection.c, graphite.c, haifa-sched.c,
1128         implicit-zee.c, integrate.c, ipa-pure-const.c, ipa-reference.c,
1129         ira-build.c, ira-conflicts.c, ira-costs.c, ira-lives.c, jump.c,
1130         lists.c, loop-doloop.c, loop-iv.c, lto-cgraph.c, lto-compress.c,
1131         lto-opts.c, lto-section-in.c, lto-section-out.c,
1132         lto-streamer-out.c, lto-symtab.c, modulo-sched.c, optabs.c,
1133         params.c, postreload-gcse.c, postreload.c, predict.c, profile.c,
1134         regcprop.c, reginfo.c, regmove.c, reorg.c, resource.c,
1135         sched-deps.c, sched-ebb.c, sched-rgn.c, sdbout.c,
1136         sel-sched-dump.c, sel-sched-ir.c, sese.c, stmt.c, targhooks.c,
1137         tree-cfgcleanup.c, tree-mudflap.c, tree-nomudflap.c,
1138         tree-object-size.c, tree-outof-ssa.c, tree-phinodes.c,
1139         tree-profile.c, tree-sra.c, tree-ssa-ccp.c, tree-ssa-coalesce.c,
1140         tree-ssa-live.c, tree-ssa-loop-prefetch.c, tree-ssa-loop.c,
1141         tree-ssa-operands.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
1142         tree-vect-patterns.c, value-prof.c, var-tracking.c, web.c: Don't
1143         include toplev.h.
1144         * Makefile.in (TOPLEV_H): Remove.  All uses changed to use
1145         toplev.h.  Dependencies for above files and c-family files changed
1146         to remove $(TOPLEV_H) or toplev.h.
1147         (C_TREE_H): Don't include $(TOPLEV_H).
1148         (DIAGNOSTIC_CORE_H): Use $(INPUT_H) instead of input.h.  Add
1149         bversion.h.
1150         * config/arm/t-pe, config/arm/t-wince-pe, config/i386/t-cygming,
1151         config/ia64/t-ia64, config/mep/t-mep, config/score/t-score-elf,
1152         config/t-darwin, config/t-sol2,
1153         config/t-vxworks, config/v850/t-v850, config/v850/t-v850e:
1154         Dependencies for above files changed to remove $(TOPLEV_H) or
1155         toplev.h.
1156
1157 2010-11-30  Richard Guenther  <rguenther@suse.de>
1158
1159         PR lto/44986
1160         * gcc.c (main): Use the first input with a compiler as infile
1161         for link spec processing.
1162
1163 2010-11-30  Richard Guenther  <rguenther@suse.de>
1164
1165         PR lto/45949
1166         * cgraphunit.c (ipa_passes): Stop after errors from
1167         small IPA passes.
1168
1169 2010-11-30  Mingjie Xing  <mingjie.xing@gmail.com>
1170
1171         * gcc-plugin.h: Include coretypes.h.
1172         * Makefile.in (FUNCTION_H): Add hard-reg-set.h.
1173
1174 2010-11-30  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1175
1176         * ggc-zone.c (ggc_pch_read): Fix conditional compilation.
1177         * ggc-none.c (ggc_internal_alloc_zone_stat)
1178         (ggc_internal_cleared_alloc_zone_stat): New.
1179
1180 2010-11-29  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
1181
1182         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Check
1183         TARGET_SINGLE_PIC_BASE for RS6000_PIC_OFFSET_TABLE_REGNUM.
1184         (rs6000_emit_prologue): Don't set PIC register if
1185         TARGET_SINGLE_PIC_BASE.
1186         * config/rs6000/rs6000.opt (msingle-pic-base): New option.
1187         * doc/invoke.texi (msingle-pic-base): Document.
1188
1189 2010-11-29  H.J. Lu  <hongjiu.lu@intel.com>
1190
1191         PR driver/46712
1192         * exec-tool.in (id): New.
1193         Check and export LT_RCU_$id instead of LT_RCU.
1194
1195 2010-11-29  Zdenek Dvorak  <rakdver@kam.uniff.cz>
1196
1197         PR tree-optimization/46675
1198         * tree-ssa-loop-niter.c (split_to_var_and_offset): Avoid overflow
1199         in offset calculation.
1200
1201 2010-11-29  Jan Hubicka  <jh@suse.cz>
1202
1203         * collect2.c (main): Do not imply verbose output with
1204         LTO and linker plugin.
1205
1206 2010-11-29  Dodji Seketeli  <dodji@redhat.com>
1207
1208         * dwarf2out.c (print_die): Print the address of the current DIE or
1209         of any DIE referenced by the current one.
1210
1211 2010-11-29  Dodji Seketeli  <dodji@redhat.com>
1212
1213         PR debug/46101
1214         * dwarf2out.c (lookup_type_die_strip_naming_typedef): New
1215         function.
1216         (scope_die_for, gen_type_die_for_member): Replace uses of
1217         lookup_type_die with use of lookup_type_die_strip_naming_typedef.
1218
1219 2010-11-29  Iain Sandoe  <iains@gcc.gnu.org>
1220
1221         * config/darwin.c (darwin_mergeable_string_section): Remove blank line.
1222         (darwin_asm_declare_object_name): Correct spelling.
1223         (darwin_output_aligned_bss): Likewise.
1224
1225 2010-11-29  Iain Sandoe  <iains@gcc.gnu.org>
1226             Mike Stump  <mrs@gcc.gnu.org>
1227
1228         PR target/26427
1229         PR target/33120
1230         PR testsuite/35710
1231         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Remove
1232         (ASM_OUTPUT_LOCAL): Likewise.
1233         * config/darwin-protos.h (darwin_asm_declare_object_name): New.
1234         (darwin_output_aligned_bss): Likewise.
1235         (darwin_asm_output_aligned_decl_local): Likewise.
1236         (darwin_asm_output_aligned_decl_common): Likewise.
1237         (darwin_use_anchors_for_symbol_p): Likewise.
1238         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Remove.
1239         (TARGET_ASM_OUTPUT_ANCHOR): Define.
1240         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define.
1241         (DARWIN_SECTION_ANCHORS): Set to 1.
1242         * config/darwin.c (emit_aligned_common): New var.
1243         (darwin_init_sections): Check that the Darwin private zero-size section
1244         marker is in range.
1245         (darwin_text_section): Check for zero-sized objects.
1246         (darwin_mergeable_string_section): Likewise.
1247         (darwin_mergeable_constant_section): Likewise.
1248         (machopic_select_section): Adjust to check for zero-sized objects.
1249         Assert that OBJC meta data are non-zero sized.
1250         (darwin_asm_declare_object_name): New.
1251         (darwin_asm_declare_constant_name): Adjust for zero-sized
1252         object sections.
1253         (BYTES_ZFILL): Define.
1254         (darwin_emit_weak_or_comdat): New.
1255         (darwin_emit_local_bss): New.
1256         (darwin_emit_common): New.
1257         (darwin_output_aligned_bss): New.
1258         (darwin_asm_output_aligned_decl_common): New.
1259         (darwin_asm_output_aligned_decl_local): New.
1260         (darwin_file_end): Disable subsections_via_symbols when section
1261         anchoring is active.
1262         (darwin_asm_output_anchor): Re-enable.
1263         (darwin_use_anchors_for_symbol_p): New.
1264         (darwin_override_options): Check for versions that can emit
1265         aligned common.  Update usage of flags to current.
1266         * config/darwin-sections.def: Update comments and flags for
1267         non-anchor sections.  zobj_const_section, zobj_data_section,
1268         zobj_bss_section, zobj_const_data_section: New.
1269         * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Redefine.
1270         (ASM_OUTPUT_ALIGN): Make whitespace output consistent.
1271         (L2_MAX_OFILE_ALIGNMENT): Define.
1272         (ASM_OUTPUT_ALIGNED_BSS): Define.
1273         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
1274         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
1275         (SECTION_NO_ANCHOR): Define.
1276         (TARGET_ASM_OUTPUT_ANCHOR) Define with a default of NULL.
1277         (DARWIN_SECTION_ANCHORS): Define with a default of 0.
1278
1279 2010-11-29  Joseph Myers  <joseph@codesourcery.com>
1280
1281         * system.h: Include "safe-ctype.h" instead of <safe-ctype.h>.
1282         Include <signal.h>, <sys/mman.h>, <sys/resource.h> and <sys/times.h>.
1283         (O_BINARY, SIGCHLD, MAP_FAILED, MAP_ANONYMOUS, kill):
1284         Conditionally define.
1285         (GET_ENVIRONMENT): Poison.
1286         * configure.ac: Don't test for mincore.
1287         * configure: Regenerate.
1288         * config.in: Regenerate.
1289         * collect2-aix.c: Don't include <sys/mman.h>.
1290         * collect2.c: Don't include <signal.h>.
1291         (SIGCHLD): Don't define.
1292         (prefix_from_env): Use getenv instead of GET_ENVIRONMENT.
1293         * config/alpha/alpha.c: Include "splay-tree.h" instead of
1294         <splay-tree.h>.
1295         * config/arm/arm.c (arm_target_help): Use getenv instead of
1296         GET_ENVIRONMENT.
1297         * config/avr/driver-avr.c: Don't include <stdlib.h>.
1298         * config/frv/frv.c: Don't include <ctype.h>.
1299         * config/host-darwin.c: Don't include <sys/mman.h>.
1300         * config/host-hpux.c: Don't include <sys/mman.h> or <unistd.h>.
1301         (MAP_FAILED): Don't define.
1302         * config/host-linux.c: Don't include <sys/mman.h> or <limits.h>.
1303         * config/host-solaris.c: Don't include <sys/mman.h>.
1304         * config/i386/cygming.h: Don't include <stdio.h>.
1305         * config/i386/driver-i386.c: Don't include <stdlib.h>.
1306         * config/i386/host-cygwin.c: Don't include <sys/mman.h>.
1307         * config/iq2000/iq2000.c: Don't include <signal.h>.
1308         * config/m32c/m32c-pragma.c: Don't include <stdio.h>.
1309         * config/m68hc11/m68hc11.c: Don't include <stdio.h>.
1310         * config/mep/mep-pragma.c: Don't include <stdio.h>.
1311         * config/microblaze/microblaze.c: Don't include <signal.h>.
1312         * config/mips/mips.c: Don't include <signal.h>.
1313         * config/rs6000/host-darwin.c: Don't include <signal.h>.
1314         * cppdefault.c (cpp_relocated): Use getenv instead of GET_ENVIRONMENT.
1315         * defaults.h (GET_ENVIRONMENT): Don't define.
1316         * et-forest.h: Don't include <ansidecl.h> or <stddef.h>.
1317         * gcc.c: Don't include <signal.h>, <sys/mman.h> or <sys/types.h>.
1318         (SIGCHLD, MAP_FAILED, kill): Don't define.
1319         (process_command): Use getenv instead of GET_ENVIRONMENT.
1320         * genhooks.c: Don't include <string.h>.
1321         * ggc-common.c: Don't include <sys/resource.h>, <sys/mman.h> or
1322         <sys/types.h>.
1323         (MAP_FAILED): Don't define.
1324         * ggc-page.c Don't include <sys/mman.h>.
1325         (MAP_ANONYMOUS, MAP_FAILED): Don't define.
1326         * ggc-zone.c: Don't include <sys/mman.h>.
1327         (MAP_ANONYMOUS, MAP_FAILED): Don't define.
1328         * graph.c: Include "config.h" instead of <config.h>.
1329         * incpath.c (add_env_var_paths): Use getenv instead of GET_ENVIRONMENT.
1330         * lto-wrapper.c: Don't include <errno.h>, <signal.h> or "libiberty.h".
1331         (SIGCHLD, kill): Don't define.
1332         * mips-tfile.c: Don't include <signal.h>.
1333         * opts.c: Don't include <signal.h> or <sys/resource.h>.
1334         (print_specific_help): Use getenv instead of GET_ENVIRONMENT.
1335         * passes.c: Don't include <signal.h>, <sys/resource.h> or
1336         <sys/times.h>.
1337         * sparseset.h: Don't include <assert.h>.
1338         * timevar.c: Don't include <sys/times.h> or <sys/resource.h>.
1339         * tlink.c: Don't include "libiberty.h".
1340         * toplev.c: Don't include <signal.h> or <sys/times.h>.
1341         * tree-mudflap.c: Include "demangle.h" instead of <demangle.h>.
1342         * tree-switch-conversion.c: Don't include <signal.h>.
1343         * vmsdbgout.c: Don't include <errno.h> or <string.h>.
1344
1345 2010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
1346
1347         * c-parser.c (c_parser_objc_try_catch_statement): Renamed to
1348         c_parser_objc_try_catch_finally_statement for consistency with the
1349         C++ parser.  Parse @catch(...) and pass NULL_TREE to
1350         objc_begin_catch_clause() in that case.  Improved error recovery.
1351         Reorganized code to be almost identical to
1352         cp_parser_objc_try_catch_finally_statement.
1353
1354 2010-11-29  Joern Rennecke  <amylaar@spamcop.net>
1355
1356         PR tree-optimization/46621
1357         * gimple.h: Don't include tm.h or hard-reg-set.h .
1358         * Makefile.in (GIMPLE_H): Remove $(TM_H).
1359
1360         PR bootstrap/44756
1361         * cppbuiltin.c: Include target.h .
1362         (define_builtin_macros_for_type_sizes):
1363         Use targetm.float_words_big_endian.
1364
1365 2010-11-27  Jan Hubicka  <jh@suse.cz>
1366
1367         * dwarf2out.c (dwarf2out_begin_function): Set cold_text_section
1368         and output cold_text_section_label.
1369         (dwarf2out_init): Don't do that there.
1370         (dwarf2out_finish): Handle cold section end label only if cold
1371         section was used.
1372
1373 2010-11-27  Eric Botcazou  <ebotcazou@adacore.com>
1374
1375         * tree-nested.c (remap_vla_decls): Fully expand value expressions of
1376         VLA variables.
1377
1378 2010-11-27  Richard Guenther  <rguenther@suse.de>
1379
1380         * gimple.c (gimple_assign_copy_p): Use gimple_assign_single_p.
1381         (gimple_assign_ssa_name_copy_p): Likewise.
1382         (gimple_assign_unary_nop_p): Use is_gimple_assign.
1383         (is_gimple_cast): Remove.
1384         (gimple_assign_single_p): Move ...
1385         * gimple.h (gimple_assign_single_p): ... here.
1386         (is_gimple_cast): Remove.
1387         (gimple_assign_rhs_code): Simplify.
1388         * gimple-fold.c (gimple_fold_builtin): Use CONVERT_EXPR_P
1389         instead of is_gimple_cast.
1390         * ipa-type-escape.c (look_for_casts): Likewise.
1391
1392 2010-11-26  Joseph Myers  <joseph@codesourcery.com>
1393
1394         * doc/options.texi (Enum, EnumValue): Document new record types.
1395         (Enum): Document new option flag.
1396         * opt-functions.awk
1397         * optc-gen.awk: Handle enumerated option arguments.
1398         * opth-gen.awk: Handle enumerated option arguments.
1399         * opts-common.c (enum_arg_ok_for_language, enum_arg_to_value,
1400         enum_value_to_arg): New.
1401         (decode_cmdline_option): Handle enumerated arguments.
1402         (read_cmdline_option): Handle CL_ERR_ENUM_ARG.
1403         (set_option, option_enabled, get_option_state): Handle CLVC_ENUM.
1404         * opts.c (print_filtered_help, print_specific_help): Take
1405         lang_mask arguments.
1406         (print_filtered_help): Handle printing values of enumerated
1407         options.  Print possible arguments for enumerated options.
1408         (print_specific_help): Update call to print_filtered_help.
1409         (common_handle_option): Update calls to print_specific_help.  Use
1410         value rather than arg for OPT_fdiagnostics_show_location_.  Don't
1411         handle OPT_ffp_contract_, OPT_fexcess_precision_,
1412         OPT_fvisibility_, OPT_ftls_model_, OPT_fira_algorithm_ or
1413         OPT_fira_region_ here.
1414         * opts.h (enum cl_var_type): Add CLVC_ENUM.
1415         (struct cl_option): Add var_enum.
1416         (CL_ENUM_CANONICAL, CL_ENUM_DRIVER_ONLY, struct cl_enum_arg,
1417         struct cl_enum, cl_enums, cl_enums_count): New.
1418         (CL_ERR_ENUM_ARG): Define.
1419         (CL_ERR_NEGATIVE): Update value.
1420         (enum_value_to_arg): Declare.
1421         * common.opt (flag_ira_algorithm, flag_ira_region,
1422         flag_fp_contract_mode, flag_excess_precision_cmdline,
1423         default_visibility, flag_tls_default): Remove Variable entries.
1424         (help_enum_printed): New Variable.
1425         (fdiagnostics-show-location=): Use Enum.  Add associated
1426         SourceInclude, Enum and EnumValue entries.
1427         (fexcess-precision=, ffp-contract=, fira-algorithm=, fira-region=,
1428         ftls-model=, fvisibility=): Use Enum, Var and Init.  Add
1429         associated Enum and EnumValue entries.
1430
1431 2010-11-26  Joern Rennecke  <amylaar@spamcop.net>
1432
1433         PR target/46623
1434         * config/microblaze/microblaze.c (microblaze_block_move_straight):
1435         Use XALLOCAVEC.
1436         (microblaze_option_override): Don't use C++ style comments.
1437         (save_restore_insns): Remove unused variable base_offset.
1438         (microblaze_expand_prologue): Remove unused variable insn.
1439         (microblaze_secondary_reload): Adjust type to match target.h .
1440         (microblaze_elf_in_small_data_p): Move declarations to start of block.
1441         (microblaze_expand_move): Likewise.
1442         * config/microblaze/microblaze.h (LARGE_INT):
1443         Avoid signed / unsigned comparisons.
1444         (ASM_OUTPUT_ALIGNED_COMMON, ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
1445         (ASM_FORMAT_PRIVATE_NAME): Make format specifier match printed data.
1446         (ASM_FINISH_DECLARE_OBJECT): Likewise.  Constify name.
1447
1448 2010-11-26  Michael Matz  <matz@suse.de>
1449
1450         * tree-ssa-copy.c (fini_copy_prop): Don't DCE when we have loops.
1451
1452         * passes.c (init_optimization_passes): Remove superfluous
1453         copy-prop pass.
1454
1455 2010-11-26  Richard Guenther  <rguenther@suse.de>
1456
1457         PR lto/46648
1458         * gimple.c (gtc_visit): Do not return true for members of an
1459         SCC still being processed but the current lattice value of
1460         the member.  Treat SCC members comparison state as lattice,
1461         starting at equal, eventually dropping to unequal.
1462         (gimple_types_compatible_p_1): Likewise.
1463
1464 2010-11-26  Richard Guenther  <rguenther@suse.de>
1465
1466         PR middle-end/46559
1467         * dwarf2out.c (dwarf2out_finish): Use comp_unit_die as root
1468         for location list processing.
1469
1470 2010-11-26  Richard Guenther  <rguenther@suse.de>
1471
1472         PR lto/46560
1473         * cgraph.c (cgraph_clone_edge): Clone call_stmt dependent
1474         flags manually.
1475
1476 2010-11-26  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1477
1478         * config/s390/s390.c (print_operand_address): Replace assert with
1479         error message.
1480         (print_operand): Replace assertions, gcc_unreachable and
1481         fatal_insn with error messages.
1482
1483 2010-11-26  Richard Guenther  <rguenther@suse.de>
1484
1485         PR tree-optimization/46665
1486         * tree-ssa-structalias.c (pt_solution_set_var): Use DECL_PT_UID.
1487
1488 2010-11-26  Ian Bolton  <ian.bolton@arm.com>
1489
1490         * config/arm/arm.c (arm_option_override): enable loop array
1491         prefetching at -O3 for suitable targets, and configure params.
1492         * config/arm/arm-protos.h (struct tune_params): Add fields for
1493         configuring loop array prefetching.
1494
1495 2010-11-26  Christian Borntraeger  <borntraeger@de.ibm.com>
1496
1497         * config/s390/2817.md (z196_crack): Add z196_g3 as possible slot.
1498
1499 2010-11-26  Richard Guenther  <rguenther@suse.de>
1500
1501         PR tree-optimization/46664
1502         * tree-affine.c (aff_combination_to_tree): Add rest last.
1503
1504 2010-11-26  Michael Haubenwallner  <michael.haubenwallner@salomon.at>
1505
1506         PR target/33637
1507         * configure.ac: Accept extra arguments for AS_FOR_TARGET,
1508         LD_FOR_TARGET, NM_FOR_TARGET, OBJDUMP_FOR_TARGET.
1509         * configure: Regenerated.
1510         * exec-tool.in: Not quoting command, may have extra arguments.
1511
1512 2010-11-26  Richard Guenther  <rguenther@suse.de>
1513
1514         PR tree-optimization/46528
1515         PR debug/46338
1516         * profile.c (branch_prob): Do not split blocks based on locations
1517         from debug statements.
1518
1519 2010-11-26  Jakub Jelinek  <jakub@redhat.com>
1520
1521         PR middle-end/46647
1522         * builtins.c (fold_builtin_memset): Check c is INTEGER_CST instead
1523         of host_integerp check.  Use TREE_INT_CST_LOW instead of tree_low_cst.
1524
1525         PR bootstrap/45700
1526         * tree.h (build1_stat_loc, build2_stat_loc, build3_stat_loc,
1527         build4_stat_loc, build5_stat_loc, build6_stat_loc): New inlines.
1528         (build1_loc, build2_loc, build3_loc, build4_loc, build5_loc,
1529         build6_loc): Define.
1530         * fold-const.c (protected_set_expr_location_unshare): New inline.
1531         (fold_convert_loc, pedantic_non_lvalue_loc): Use it.
1532         (negate_expr, associate_trees, non_lvalue_loc, omit_one_operand_loc,
1533         pedantic_omit_one_operand_loc, omit_two_operands_loc,
1534         fold_truth_not_expr, invert_truthvalue_loc, make_bit_field_ref,
1535         optimize_bit_field_compare, make_range, fold_range_test, fold_truthop,
1536         build_fold_addr_expr_with_type_loc, fold_unary_loc, fold_binary_loc,
1537         fold_indirect_ref_1, build_fold_indirect_ref_loc): Use builN_loc
1538         instead of buildN followed by SET_EXPR_LOCATION or
1539         protected_set_expr_location.
1540         (fold_build1_stat_loc, fold_build2_stat_loc, fold_build3_stat_loc):
1541         Use buildN_stat_loc instead of buildN_stat followed by
1542         SET_EXPR_LOCATION.
1543
1544 2010-11-26  Basile Starynkevitch  <basile@starynkevitch.net>
1545
1546         * Makefile.in (s-tm-texi): Remove spurous tab.
1547
1548 2010-11-26  Alexandre Oliva  <aoliva@redhat.com>
1549
1550         PR debug/46258
1551         * tree-cfg.c (replace_uses_by): Don't mark BBs as altered on
1552         debug stmts.
1553
1554 2010-11-26  Alexandre Oliva  <aoliva@redhat.com>
1555
1556         * toplev.c (finalize): Add no_backend parameter.  Don't finish
1557         passes when preprocessing only.  Adjust...
1558         (do_compile): ... caller.
1559
1560 2010-11-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1561
1562         * config/pa/pa.md (negdf2): Condition on !flag_signed_zeros instead of
1563         flag_unsafe_math_optimizations.
1564         (negsf2): Likewise.
1565         Move fnegabs related patterns together.  Only use fmpynfadd instruction
1566         to negate a multiply if !flag_signed_zeros is true.
1567
1568 2010-11-25  Uros Bizjak  <ubizjak@gmail.com>
1569
1570         * gengtype-state.c (read_state_structures): Initialize "previous".
1571
1572 2010-11-25  Basile Starynkevitch  <basile@starynkevitch.net>
1573             Jeremie Salvucci  <jeremie.salvucci@free.fr>
1574
1575         * gengtype-state.c: Add new file.
1576
1577         * gengtype.c (type count): New variable.
1578         (new_structure, find_param_structure, create_pointer)
1579         (create_array): Use it to set state_number in types.
1580         (dump_everything): Improve comment.
1581         (main): Call read_state and write_state. Print type_count.
1582
1583         * gengtype.h (type_lineloc): New function.
1584         (read_state, write_state): New declarations.
1585
1586         * Makefile.in (GENGTYPE_FLAGS): New variable.
1587         (s-gtype): Run gengtype twice and generate gtype.state.
1588         (build/gengtype-state.o): New rule.
1589         (build/gengtype$(build_exeext)): Link gengtype-state.o.
1590         (mostlyclean): Update comment.  Remove gtype.state.
1591
1592 2010-11-25  Jakub Jelinek  <jakub@redhat.com>
1593
1594         PR middle-end/46637
1595         * combine.c (try_combine): When substing i2dest for i2src, pass
1596         1 as last argument even if
1597         i0_feeds_i1_n && i1_feeds_i2_n && i0dest_in_i0src.
1598
1599 2010-11-25  H.J. Lu  <hongjiu.lu@intel.com>
1600
1601         PR middle-end/46647
1602         * builtins.c (target_char_cast): Check INTEGER_CST instead of
1603         host_integerp.  Replace tree_low_cst with TREE_INT_CST_LOW.
1604
1605 2010-11-25  Joseph Myers  <joseph@codesourcery.com>
1606
1607         * target.def (supports_split_stack, except_unwind_info): Take
1608         gcc_options parameters.
1609         * targhooks.c (default_except_unwind_info,
1610         dwarf2_except_unwind_info, sjlj_except_unwind_info): Take
1611         gcc_options parameters.
1612         * targhooks.h (default_except_unwind_info,
1613         dwarf2_except_unwind_info, sjlj_except_unwind_info): Update
1614         prototypes.
1615         * doc/tm.texi.in (TARGET_IRA_COVER_CLASSES,
1616         TARGET_HAVE_NAMED_SECTIONS, TARGET_UNWIND_TABLES_DEFAULT):
1617         Document that hooks must not be modified.
1618         (TARGET_EXCEPT_UNWIND_INFO): Refer to opts argument.
1619         * doc/tm.texi: Regenerate.
1620         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Pass
1621         &global_options to targetm.except_unwind_info.
1622         * dwarf2out.c (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
1623         dwarf2out_begin_prologue, dwarf2out_frame_init,
1624         dwarf2out_frame_finish, dwarf2out_assembly_start): Pass
1625         &global_options to targetm.except_unwind_info.
1626         * except.c (init_eh, finish_eh_generation,
1627         gate_convert_to_eh_region_ranges,
1628         output_one_function_exception_table): Pass &global_options to
1629         targetm.except_unwind_info.
1630         * expr.c (build_personality_function): Pass &global_options to
1631         targetm.except_unwind_info.
1632         * function.c (expand_function_end): Pass &global_options to
1633         targetm.except_unwind_info.
1634         * hooks.c (hook_bool_bool_gcc_optionsp_false): New.
1635         * hooks.h (hook_bool_bool_gcc_optionsp_false): Declare.
1636         * opts.c (finish_options): Pass opts to targetm.except_unwind_info
1637         and targetm.supports_split_stack.  Remove assertions about opts
1638         and opts_set.
1639         (common_handle_option): Remove assertions about opts, opts_set and dc.
1640         * tree-tailcall.c (suitable_for_tail_call_opt_p): Pass
1641         &global_options to targetm.except_unwind_info.
1642         * tree.c (build_common_builtin_nodes: Pass &global_options to
1643         targetm.except_unwind_info.
1644         * config/arm/arm.c (arm_except_unwind_info): Add gcc_options parameter.
1645         (arm_compute_func_type, arm_expand_prologue, thumb_pushpop,
1646         thumb1_expand_prologue, thumb1_output_function_prologue,
1647         arm_unwind_emit, arm_output_fn_unwind): Update calls to
1648         arm_except_unwind_info.
1649         * config/i386/i386.c (ix86_supports_split_stack): Add gcc_options
1650         parameter.
1651         * config/ia64/ia64.c (ia64_except_unwind_info): Add gcc_options
1652         parameter.
1653         (ia64_output_function_prologue, ia64_add_bundle_selector_before,
1654         ia64_reorg, ia64_asm_unwind_emit): Update calls to
1655         ia64_except_unwind_info.
1656         * config/pa/pa.c (pa_option_override): Pass &global_options to
1657         targetm.except_unwind_info.
1658         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
1659         Remove prototype.
1660
1661 2010-11-25  Kai Tietz  <kai.tietz@onevision.com>
1662
1663         * cgraphunit.c (process_function_and_variable_attributes):
1664         Mark dllexport-ed function/variables as needed.
1665         * ipa.c (cgraph_externally_visible_p): Make dllexport-ed
1666         as externally visible.
1667
1668 2010-11-25  Alexander Monakov  <amonakov@ispras.ru>
1669
1670         PR rtl-optimization/46585
1671         * sel-sched-ir.c (return_regset_to_pool): Verify that RS is not NULL.
1672         (vinsn_init): Skip computation of dependencies for local NOPs.
1673         (vinsn_delete): Don't try to free regsets for local NOPs.
1674         (setup_nop_and_exit_insns): Change definition of nop_pattern.
1675
1676 2010-11-25  Alexander Monakov  <amonakov@ispras.ru>
1677
1678         PR rtl-optimization/46602
1679         * sel-sched-ir.c (maybe_tidy_empty_bb): Move checking ...
1680         (tidy_control_flow): Here.
1681
1682 2010-11-25  Joern Rennecke  <amylaar@spamcop.net>
1683             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1684
1685         PR bootstrap/45888
1686         * Makefile.in (s-tm-texi): Remove \r occurences from tmp-tm.texi.
1687         Fix target.def pathname in timestamp comparison.
1688
1689 2010-11-24  Richard Henderson  <rth@redhat.com>
1690
1691         * config/ia64/predicates.md (pmpyshr_operand): New.
1692         * config/ia64/ia64.c (ia64_expand_unpack): New.
1693         (ia64_expand_widen_mul_v4hi): New.
1694         (ia64_expand_widen_sum): Update for pattern renames.
1695         (ia64_expand_dot_prod_v8qi): Likewise.
1696         * config/ia64/ia64-protos.h: Update.
1697         * config/ia64/vect.md (vecwider): New mode attribute.
1698         (vec_widen_umult_lo_v8qi, vec_widen_umult_hi_v8qi): New.
1699         (vec_widen_smult_lo_v8qi, vec_widen_smult_hi_v8qi): New.
1700         (pmpyshr2, pmpyshr2_u): New.
1701         (vec_widen_smult_lo_v4hi, vec_widen_smult_hi_v4hi): New.
1702         (vec_widen_umult_lo_v4hi, vec_widen_umult_hi_v4hi): New.
1703         (mulv2si3): New.
1704         (vec_pack_ssat_v4hi): Rename from pack2_sss.
1705         (vec_pack_usat_v4hi): Rename from *pack2_uss.
1706         (vec_pack_ssat_v2si): Rename from pack4_sss.
1707         (vec_interleave_lowv8qi): Rename from unpack1_l, use the correct
1708         vec_select operation.
1709         (vec_interleave_highv8qi): Similarly.
1710         (mux1_alt): Rename from *mux1_alt.
1711         (vec_extract_evenv8qi, vec_extract_oddv8qi): New.
1712         (vec_interleave_lowv4hi): Rename from unpack2_l.
1713         (vec_interleave_highv4hi): Rename from unpack2_h.
1714         (mix2_r): Rename from *mix2_r.
1715         (mix2_l): Similarly.
1716         (vec_extract_evenodd_helper): New.
1717         (vec_extract_evenv4hi, vec_extract_oddv4hi): New.
1718         (vec_interleave_lowv2si): Rename from *unpack4_l.
1719         (vec_interleave_highv2si): Rename from *unpack4_h.
1720         (vec_extract_evenv2si, vec_extract_oddv2si): New.
1721         (vec_interleave_lowv2sf): Rename from fmix_r.
1722         (vec_interleave_highv2sf): Rename from *fmix_l.
1723         (vec_extract_evenv2sf, vec_extract_oddv2sf): New.
1724         (vec_unpacku_lo_<VECINT12>, vec_unpacku_hi_<VECINT12>): New.
1725         (vec_unpacks_lo_<VECINT12>, vec_unpacks_hi_<VECINT12>): New.
1726         (vec_pack_trunc_v4hi, vec_pack_trunc_v2si): New.
1727
1728 2010-11-24  Nathan Froyd  <froydnj@codesourcery.com>
1729
1730         * targhooks.c (default_except_unwind_info): Remove
1731         MUST_USE_SJLJ_EXCEPTIONS case.
1732         * config/h8300/h8300.h (MUST_USE_SJLJ_EXCEPTIONS): Delete.
1733         * config/h8300/h8300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
1734         * doc/tm.texi.in (MUST_USE_SJLJ_EXCEPTIONS): Delete.
1735         * doc/tm.texi: Regenerate.
1736         * system.h (MUST_USE_SJLJ_EXCEPTIONS): Poison.
1737
1738 2010-11-24  Nathan Froyd  <froydnj@codesourcery.com>
1739
1740         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
1741         __FLOAT_WORD_ORDER__ according to FLOAT_WORDS_BIG_ENDIAN.
1742         * config/dfp-bit.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Delete.
1743         * doc/cpp.texi (__FLOAT_WORD_ORDER__): Document.
1744         * system.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Poison.
1745
1746 2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>
1747
1748         PR target/46519
1749         * config/i386/i386.c (ix86_expand_call): Don't check
1750         TREE_THIS_VOLATILE.
1751
1752 2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>
1753
1754         PR target/46519
1755         * config/i386/i386.c (upper_128bits_state): New.
1756         (block_info_def): Remove upper_128bits_set and done.  Add state,
1757         referenced, count, processed and rescanned.
1758         (check_avx256_stores): Updated.
1759         (move_or_delete_vzeroupper_2): Updated. Handle deleted BB_END.
1760         Call note_stores only if needed.  Set referenced and count.
1761         (move_or_delete_vzeroupper_1): Updated.  Set rescan_vzeroupper_p.
1762         (rescan_move_or_delete_vzeroupper): New.
1763         (move_or_delete_vzeroupper):  Process and rescan all all basic
1764         blocks instead of predecessor blocks of all exit points.
1765         (ix86_option_override_internal): Enable vzeroupper optimization
1766         only for -fexpensive-optimizations and not optimizing for size.
1767         (use_avx256_p): Removed.
1768         (init_cumulative_args): Don't set use_avx256_p.
1769         (ix86_function_arg): Likewise.
1770         (ix86_expand_move): Likewise.
1771         (ix86_expand_vector_move_misalign): Likewise.
1772         (ix86_local_alignment): Likewise.
1773         (ix86_minimum_alignment): Likewise.
1774         (ix86_expand_epilogue): Don't check use_avx256_p when generating
1775         vzeroupper.
1776         (ix86_expand_call): Likewise.
1777
1778         * config/i386/i386.h (machine_function): Remove use_vzeroupper_p
1779         and use_avx256_p.  Add rescan_vzeroupper_p.
1780
1781 2010-11-24  Joseph Myers  <joseph@codesourcery.com>
1782
1783         * toplev.c: Include <signal.h>.
1784
1785 2010-11-24  Richard Guenther  <rguenther@suse.de>
1786
1787         PR lto/43218
1788         * lto-symtab.c (lto_cgraph_replace_node): Mark edges with
1789         conflicting function signatures as non-inlineable.
1790
1791 2010-11-24  Jakub Jelinek  <jakub@redhat.com>
1792
1793         PR rtl-optimization/46614
1794         * sched-deps.c (NON_FLUSH_JUMP_KIND, NON_FLUSH_JUMP_P): Define.
1795          (deps_analyze_insn): Mark JUMP_INSNs in
1796         last_pending_memory_flush that weren't added through
1797         flush_pending_lists with NON_FLUSH_JUMP_KIND.
1798         (sched_analyze_2, sched_analyze_insn): Check NON_FLUSH_JUMP_P
1799         on INSN_LIST instead of JUMP_P check on its operand.
1800         * sched-rgn.c (concat_INSN_LIST): Copy over REG_NOTE_KIND.
1801
1802 2010-11-24  Richard Guenther  <rguenther@suse.de>
1803
1804         * lto-streamer-in.c (input_gimple_stmt): Use types_compatible_p.
1805
1806 2010-11-24  Richard Guenther  <rguenther@suse.de>
1807
1808         PR lto/46606
1809         * lto-streamer-in.c (input_gimple_stmt): When we cannot find
1810         a FIELD_DECL that is type correct issue a warning and fixup
1811         with a VIEW_CONVERT_EXPR.
1812
1813 2010-11-24  Basile Starynkevitch  <basile@starynkevitch.net>
1814
1815         * doc/invoke.texi (Options for Debugging Your Program or GCC):
1816         Explain static numbering of dump files.
1817
1818 2010-11-24  Joseph Myers  <joseph@codesourcery.com>
1819
1820         * common.opt (user_vect_verbosity_level): New Variable entry.
1821         (ftree-vectorizer-verbose=): Mark as UInteger.
1822         * flag-types.h (enum vect_verbosity_levels): Move from enum
1823         verbosity_levels in tree-vectorizer.h.
1824         * opts.c: Don't include tree.h.
1825         (vect_set_verbosity_level): Move from tree-vectorizer.c.  Use
1826         gcc_options parameter; take integer option argument.
1827         (common_handle_option): Update call to vect_set_verbosity_level.
1828         * tree-vectorizer.c (user_vect_verbosity_level): Remove.
1829         (vect_set_verbosity_level): Move to opts.c.
1830         (vect_verbosity_level, vect_print_dump_info): Update for change of
1831         enum name.
1832         * tree-vectorizer.h (enum verbosity_levels): Move to flag-types.h.
1833         (vect_print_dump_info): Update for change of enum name.
1834         * tree.h (vect_set_verbosity_level): Remove.
1835         * Makefile.in (opts.o): Update dependencies.
1836
1837 2010-11-24  Jakub Jelinek  <jakub@redhat.com>
1838
1839         PR middle-end/46629
1840         * cfgexpand.c (maybe_cleanup_end_of_block): Test NEXT_INSN (insn)
1841         instead of insn with any_condjump_p.
1842
1843 2010-11-24  Mingjie Xing  <mingjie.xing@gmail.com>
1844
1845         * config/mips/loongson.md: Change the description comment of the file
1846         and update the copyright years.
1847         (define_insn "<u>div<mode>3): Add loongson3a support.
1848         (define_insn "<u>mod<mode>3"): Likewise.
1849         * config/mips/mips.md: Rename mul<mode>3_mul3_ls2ef to
1850         mul<mode>3_mul3_loongson.
1851         (define_expand "mul<mode>3"): Add TARGET_LOONGSON_3A.
1852         (define_insn "mul<mode>3_mul3_loongson"): Add loongson3a support.
1853
1854 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
1855
1856         * common.opt (initial_max_fld_align, flag_debug_asm,
1857         flag_dump_rtl_in_asm, flag_dump_all_passed, rtl_dump_and_exit,
1858         flag_print_asm_name, graph_dump_format, help_printed,
1859         help_columns, flag_opts_finished): New Variable entries.
1860         (fdbg-cnt-list, fdbg-cnt=, fdebug-prefix-map=, frandom-seed,
1861         frandom-seed=): Mark deferred.
1862         (fsched-verbose=): Use UInteger and Var.
1863         * flags.h (set_struct_debug_option, flag_print_asm_name,
1864         rtl_dump_and_exit, flag_debug_asm, flag_dump_rtl_in_asm,
1865         graph_dump_format): Don't declare here.
1866         * haifa-sched.c (sched_verbose_param, fix_sched_param): Remove.
1867         * opts-global.c: Include dbgcnt.h and debug.h.
1868         (decode_options): Pass location to finish_options.
1869         (handle_common_deferred_options): Check flag_dump_all_passed.
1870         Handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list, OPT_fdebug_prefix_map_,
1871         OPT_frandom_seed and OPT_frandom_seed_.  Don't assert on
1872         OPT_fstack_limit.
1873         * opts.c: Don't include toplev.h, dbgcnt.h or debug.h.
1874         (set_struct_debug_option): Add location_t parameter.  Update
1875         recursive call.  Use error_at.
1876         (default_options_optimization): Use error_at.
1877         (finish_options): Add location_t parameter.  Use
1878         opts->x_flag_opts_finished instead of first_time_p.  Use
1879         opts->x_optimize instead of optimize.  Use error_at.  Pass
1880         location to inform.
1881         (print_filtered_help): Use opts->x_help_printed to track what
1882         options have been printed.
1883         (print_specific_help): Use opts->x_help_columns to track number of
1884         columns.
1885         (common_handle_option): Pass locations and gcc_options pointers to
1886         more functions.  Use warning_at instead of fnotice and warning.
1887         Don't handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list or
1888         OPT_fdebug_prefix_map_.  Use error_at.  Set
1889         opts->x_initial_max_fld_align; don't set maximum_field_alignment.
1890         Don't handle OPT_frandom_seed or OPT_frandom_seed_.  Don't handle
1891         OPT_fsched_verbose_.
1892         (handle_param): Add location_r parameter.  Use error_at.
1893         (set_debug_level): Add location_r parameter.  Use error_at and
1894         warning_at.
1895         (setup_core_dumping): Add diagnostic_context parameter.
1896         (decode_d_option): Add gcc_options, location_t and
1897         diagnostic_context parameters and use them instead of global
1898         state.  Use warning_at.
1899         (enable_warning_as_error): Use error_at.
1900         * opts.h (finish_options): Update prototype.
1901         (set_struct_debug_option): Declare here.
1902         * rtl.h (fix_sched_param): Remove.
1903         * stor-layout.c (initial_max_fld_align): Remove.
1904         * toplev.c (rtl_dump_and_exit, flag_print_asm_name,
1905         graph_dump_format, flag_debug_asm, flag_dump_rtl_in_asm): Remove.
1906         (process_options): Set maximum_field_alignment.
1907         * tree.h (initial_max_fld_align) Don't declare here.
1908         * Makefile.in (opts.o, opts-global.o): Update dependencies.
1909
1910 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
1911
1912         * flag-types.h (struct visibility_flags): Don't declare here.
1913         * flags.h (strip_off_ending, fast_math_flags_set_p,
1914         fast_math_flags_struct_set_p): Declare here.
1915         (visibility_options): Don't declare here.
1916         * opts-common.c (option_enabled, get_option_state): Move from
1917         opts.c.
1918         * opts-global.c: Include diagnostic.h instead of
1919         diagnostic-core.h.  Include tree.h, langhooks.h, lto-streamer.h
1920         and toplev.h.
1921         (const_char_p, ignored_options, in_fnames, num_in_fnames,
1922         write_langs, complain_wrong_lang, postpone_unknown_option_warning,
1923         print_ignored_options, unknown_option_callback,
1924         post_handling_callback, lang_handle_option, add_input_filename,
1925         read_cmdline_options, initial_lang_mask, init_options_once,
1926         decode_cmdline_options_to_array_default_mask,
1927         set_default_handlers, decode_options): Move from opts.c.
1928         (print_ignored_options): Use warning_at instead of saving and
1929         restoring input_location.
1930         * opts.c: Include <signal.h> and <sys/resource.h>.  Include rtl.h
1931         instead of expr.h.  Don't include langhooks.h, except.h or
1932         lto-streamer.h.  Add more comments on includes.
1933         (strip_off_ending, setup_core_dumping, decode_d_option): Move from
1934         toplev.c.
1935         (visibility_options): Move to c-family/c-common.c.
1936         (const_char_p, ignored_options, in_fnames, num_in_fnames,
1937         write_langs, complain_wrong_lang, postpone_unknown_option_warning,
1938         print_ignored_options, unknown_option_callback,
1939         post_handling_callback, lang_handle_option, add_input_filename,
1940         read_cmdline_options, initial_lang_mask, init_options_once,
1941         decode_cmdline_options_to_array_default_mask,
1942         set_default_handlers, decode_options): Move to opts-global.c.
1943         (target_handle_option, default_options_optimization,
1944         finish_options, common_handle_option): Remove static.
1945         (option_enabled, get_option_state): Move to opts-common.c.
1946         * opts.h (common_handle_option, target_handle_option,
1947         finish_options, default_options_optimization): Declare.
1948         * toplev.c: Don't include <signal.h> or <sys/resource.h>.
1949         (setup_core_dumping, strip_off_ending, decode_d_option): Move to
1950         opts.c.
1951         * toplev.h (strip_off_ending, decode_d_option,
1952         fast_math_flags_set_p, fast_math_flags_struct_set_p): Don't
1953         declare here.
1954         * Makefile.in (opts.o, opts-global.o): Update dependencies.
1955
1956 2010-11-23  Dave Korn  <dave.korn.cygwin@gmail.com>
1957
1958         PR driver/42690
1959         * gcc.c (LINK_COMMAND_SPEC): Remove hard-coded pass-through plugin
1960         options, replace by call of pass-through-libs spec function to process
1961         link_gcc_c_sequence spec.
1962         (lto_libgcc_spec): Delete variable.
1963         (static_specs[]): Remove related entry.
1964         (static_spec_functions[]): Add new entry for pass-through-libs.
1965         (main): Don't generate deleted lto_libgcc_spec.
1966         (pass_through_libs_spec_func): New function to implement the new
1967         pass-through-libs spec function.
1968         * doc/invoke.texi (pass-through-libs): Document new spec function.
1969
1970 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
1971
1972         * doc/options.texi (Warning, Optimization): Document.
1973
1974 2010-11-23  Jan Hubicka  <jh@suse.cz>
1975
1976         * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): New macro.
1977         (tree_decl_with_vis): Add implicit_section_name_p.
1978         * targhooks.h (default_function_section): Declare.
1979         * target.def (function_section): New hook.
1980         * defaults.h (HOT_TEXT_SECTION_NAME,
1981         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1982         * predict.c (choose_function_section): Remove.
1983         (estimate_bb_frequencies): Do not use choose_function_section.
1984         * coretypes.h (enum node_frequency): Move here from cgraph.h
1985         * cgraph.h (enum node_frequency): Remove.
1986         * varasm.c (initialize_cold_section_name, unlikely_text_section,
1987         unlikely_text_section_p): Remove.
1988         (named_subsection_entry): New structure.
1989         (get_text_section): New function.
1990         (default_function_section): New function.
1991         (function_section_1): Break out from ...; handle profile info.
1992         (function_section): ... here.
1993         (unlikely_text_section): Remove.
1994         (unlikely_text_section_p): Use function_section_1.
1995         (assemble_start_function): Do not initialize cold section.
1996         (default_section_type_flags): Do not special case cold subsection.
1997         (switch_to_section): Likewise.
1998         * output.h (get_text_section): Define.
1999         * config/i386/winnt.c: Do not special case cold section.
2000         * config/darwin-protos.h (darwin_function_section): Declare.
2001         * config/microblaze/microblaze.h (HOT_TEXT_SECTION_NAME,
2002         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
2003         * config/ia64/hpux.h (HOT_TEXT_SECTION_NAME,
2004         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
2005         (TARGET_ASM_FUNCTION_SECTION): Define to ia64_hpux_function_section.
2006         * config/ia64/ia64.c (ia64_hpux_function_section): New function.
2007         * config/darwin.c (machopic_select_section): Use
2008         darwin_function_section.
2009         (darwin_function_section): New function.
2010         * config/darwin.h (HOT_TEXT_SECTION_NAME,
2011         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
2012         (TARGET_ASM_FUNCTION_SECTION): Define.
2013         * system.h (HOT_TEXT_SECTION_NAME,
2014         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Poison.
2015
2016 2010-11-23  Iain Sandoe  <iains@gcc.gnu.org>
2017
2018         * config/darwin.h (LINK_COMMAND_SPEC_A): Use %(link_gcc_c_sequence).
2019         LINK_GCC_C_SEQUENCE_SPEC: Define new macro.
2020
2021 2010-11-23  Jakub Jelinek  <jakub@redhat.com>
2022
2023         PR middle-end/46499
2024         * cfgexpand.c (maybe_cleanup_end_of_block): Remove also BARRIERs
2025         following unconditional jumps.
2026
2027 2010-11-23  Richard Guenther  <rguenther@suse.de>
2028
2029         * doc/md.texi (386 constraints): Clarify A constraint documentation.
2030
2031 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
2032             Jeremie Salvucci  <jeremie.salvucci@free.fr>
2033
2034         * gengtype.c (enum typekind, struct options)
2035         (struct nested_ptr_data, struct pair, NUM_PARAM)
2036         (enum gc_used_num, struct type, UNION_P, UNION_OR_STRUCT_P):
2037         Move to gengtype.h.
2038         (string_type, scalar_nonchar, scalar_nonchar, scalar_char):
2039         Remove static, add zero state_number.
2040         (typedefs, structures, param_structs, variables): Remove static.
2041         (create_option): Remove.
2042         (create_string_option, create_type_option, create_nested_option):
2043         New functions.
2044         (create_nested_ptr_option): Use create_nested_option.
2045         (note_variable, adjust_field_rtx_def, adjust_field_type): Call the
2046         new create*option functions.
2047         (process_gc_options): Adjust for discriminated option.
2048         (output_mangled_typename): Handle TYPE_NONE.
2049         (walk_type): Test option kinds.
2050         (write_types_process_field): Handle TYPE_NONE and TYPE_ARRAY.
2051         (write_func_for_structure, write_type, write_local, write_root)
2052         (write_roots, note_def_vec, dump_options): Adjust for
2053         discriminated option.
2054
2055         * gengtype.h (typedefs, structures, param_structs, variables
2056         enum typekind): Move from gengtype.c
2057         (enum option_kind): New discriminating enumeration.
2058         (struct options): Becomes discriminated.
2059         (struct nested_ptr_data): Nove from gengtype.c
2060         (create_string_option, create_type_option, create_nested_option)
2061         (create_nested_ptr_option): New functions
2062         (struct pair, enum_gc_used_enum, NUM_PARAM, struct type, UNION_P)
2063         (UNION_OR_STRUCT_P): Move from gengtype.c
2064
2065         * gengtype-parse.c (str_optvalue_opt, type_optvalue, option): Make
2066         discriminated options.
2067
2068 2010-11-23  Richard Guenther  <rguenther@suse.de>
2069
2070         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid doing work
2071         twice.  Avoid re-allocating the ops vector all the time.
2072
2073 2010-11-23  Richard Guenther  <rguenther@suse.de>
2074
2075         * tree-ssa-alias.c (refs_may_alias_p_1): Avoid calls to
2076         is_gimple_min_invariant, group tree code checks to allow
2077         combining them.
2078         (stmt_may_clobber_ref_p_1): Check for SSA_NAME instead
2079         of is_gimple_reg.
2080
2081 2010-11-23  Eric Botcazou  <ebotcazou@adacore.com>
2082
2083         * config.gcc (sparc*-*-*): Reorder.
2084
2085 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
2086
2087         * gengtype.c (header_dot_h_frul, source_dot_c_frul):
2088         Remove ENABLE_CHECKING around DBGPRINTF.
2089
2090 2010-11-22  Joseph Myers  <joseph@codesourcery.com>
2091
2092         * common.opt (exit_after_options, write_symbols, debug_info_level,
2093         use_gnu_debug_info_extensions): New Variable entries.
2094         (fprofile-dir=): Use Var.
2095         * flag-types.h (enum debug_info_level): Rename to enum
2096         debug_info_levels.
2097         * flags.h (write_symbols, debug_info_level,
2098         use_gnu_debug_info_extensions): Remove declarations.
2099         * opts.c (exit_after_options, write_symbols, debug_info_level): Remove.
2100         (set_struct_debug_option): Make static variables const.
2101         (use_gnu_debug_info_extensions): Remove.
2102         (set_debug_level, print_filtered_help, print_specific_help,
2103         fast_math_flags_set_p): Take gcc_options parameters and use them
2104         in place of global variables.
2105         (print_filtered_help): Make new_help non-static.
2106         (print_specific_help): Update call to print_filtered_help.
2107         (common_handle_option): Update calls to print_specific_help.  Use
2108         gcc_options structure for more settings.  Make --help table
2109         const.  Don't handle OPT_fprofile_dir_ here.  Update calls to
2110         set_debug_level.
2111         * toplev.c (profile_data_prefix): Remove.
2112         * toplev.h (profile_data_prefix, exit_after_options): Remove
2113         declarations.
2114         (fast_math_flags_set_p): Update prototype.
2115         * cppbuiltin.c (define_builtin_macros_for_compilation_flags):
2116         Update call to fast_math_flags_set_p.
2117
2118 2010-11-22  Richard Henderson  <rth@redhat.com>
2119
2120         PR target/46434
2121         * config/crx/crx.c (crx_addr_reg): Rename from crx_addr_reg_p;
2122         return the address register extracted.
2123         (crx_decompose_address): Update the extracted address register.
2124
2125 2010-11-22  Dmitry Gorbachev  <d.g.gorbachev@gmail.com>
2126
2127         PR driver/43335
2128         * gcc.c (main): Don't crash when lto-wrapper program is not found.
2129
2130 2010-11-22  Joern Rennecke  <amylaar@spamcop.net>
2131
2132         PR target/46608
2133         * config/picochip/picochip.c (picochip_secondary_reload): Make static.
2134         * config/picochip/picochip-protos.h: Don't include "target.h" .
2135         (picochip_secondary_reload): Don't declare.
2136
2137         PR target/46613
2138         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Declare.
2139         * config/m32c/m32c.c (m32c_conditional_register_usage): No longer
2140         static.
2141
2142 2010-11-22  H.J. Lu  <hongjiu.lu@intel.com>
2143
2144         PR bootstrap/46609
2145         * gengtype.c (header_dot_h_frul): Check ENABLE_CHECKING.
2146         (source_dot_c_frul): Likewise.
2147
2148 2010-11-22  Basile Starynkevitch  <basile@starynkevitch.net>
2149
2150         * gimple-pretty-print.c (dump_bb_header): Add check for cfun.
2151
2152 2010-11-22  Paolo Bonzini  <bonzini@gnu.org>
2153
2154         PR bootstrap/44970
2155         * Makefile.in (fwprop.o) Add sparseset.h.
2156         * fwprop.c: Include sparseset.h
2157         (struct find_occurrence_data, find_occurrence_callback,
2158         find_occurrence): Remove.
2159         (active_defs, active_defs_check, register_active_defs,
2160         update_df_init, update_uses): New.
2161         (update_df): Rewrite.
2162         (try_fwprop_subst, forward_propagate_asm): Add calls to
2163         update_df_init and update_df.
2164         (fwprop_init): Allocate active_defs and active_defs_check.
2165         (fwprop_done): Free them.
2166         (fwprop, fwprop_addr): Adjust comments.
2167         * df.h (df_uses_create): Declare.
2168         * df-scan.c (df_install_ref_incremental): Break out of df_ref_create.
2169         (df_ref_create): Return result of df_ref_create_structure directly.
2170         (df_ref_create_structure): Call df_install_ref_incremental when
2171         no collection_rec is passed.
2172         (df_ref_record): Do not create multiword hard reg info when no
2173         collection_rec is passed.
2174         (df_uses_create): New.
2175
2176 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
2177
2178         PR middle-end/43057
2179         * fold-const.c (pedantic_non_lvalue_loc): Unshare x before
2180         setting location.
2181
2182 2010-11-22  Richard Guenther  <rguenther@suse.de>
2183
2184         * gimple-fold.c (maybe_fold_reference): When canonicalizing
2185         MEM_REFs, preserve volatileness.
2186         * cgraphbuild.c (mark_address): Properly check for FUNCTION_DECL
2187         addresses.
2188
2189 2010-11-22  Richard Guenther  <rguenther@suse.de>
2190
2191         * tree-ssa-ccp.c (get_base_constructor): Remove superfluous breaks.
2192
2193 2010-11-22  Alexander Monakov  <amonakov@ispras.ru>
2194
2195         PR rtl-optimization/45652
2196         * alias.c (get_reg_base_value): New.
2197         * rtl.h (get_reg_base_value): Add prototype.
2198         * sel-sched.c (init_regs_for_mode): Use it.  Don't use registers with
2199         non-null REG_BASE_VALUE for renaming.
2200
2201 2010-11-22  Jeremie Salvucci  <jeremie.salvucci@free.fr>
2202             Basile Starynkevitch  <basile@starynkevitch.net>
2203
2204         * gengtype.c: Include xregex.h and obstack.h
2205         Added comments about role of get_output_file_with_visibility and
2206         our regexpr machinery.
2207         (frul_actionrout_t, struct file_rule_st): New.
2208         (hader_dot_h_frul, source_dot_c_frul): New functions.
2209         (NULL_REGEX,  NULL_FRULACT): New.
2210         (files_rules): New.
2211         (matching_file_name_substitute): New function.
2212         (get_output_file_with_visibility): Updated comments and rewritten
2213         to use the new files_rules machinery.
2214
2215         * Makefile.in (XREGEX_H): Added variable.
2216         (build/gengtype.o): Added dependencies for xregex.h and obstack.h
2217
2218 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
2219
2220         * system.h (FUNCTION_ARG_BOUNDARY): Really poison.
2221
2222 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
2223
2224         * target.def (conditional_register_usage): Define.
2225         * reginfo.c (init_reg_sets_1): Call
2226         targetm.conditional_register_usage.
2227         * system.h (CONDITIONAL_REGISTER_USAGE): Poison.
2228         * doc/tm.texi.in (CONDITIONAL_REGISTER_USAGE): Adjust language
2229         for making it a hook.
2230         * doc/tm.texi: Regenerate.
2231         * config/alpha/alpha.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2232         * config/alpha/alpha.c (alpha_conditional_register_usage): ...here.
2233         New function.
2234         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2235         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2236         * config/arc/arc.c (arc_conditional_register_usage): ...here.
2237         New function.
2238         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2239         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2240         * config/arm/arm.c (arm_conditional_register_usage): ...here.
2241         New function.
2242         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2243         * config/bfin/bfin.h (CONDITIONAL_REGISTER_USAGE): Delete.
2244         * config/bfin/bfin-protos.h (conditional_register_usage): Delete.
2245         * config/bfin/bfin.c (conditional_register_usage): Move code into...
2246         (bfin_conditional_register_usage): ...here.  New function.
2247         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2248         * config/cris/cris.h (CONDITIONAL_REGISTER_USAGE): Delete.
2249         * config/cris/cris-protos.h (cris_conditional_register_usage): Delete.
2250         * config/cris/cris.c (cris_conditional_register_usage): Make static.
2251         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2252         * config/fr30/fr30.h (FIXED_REGISTERS): Adjust comment.
2253         * config/frv/frv.h (CONDITIONAL_REGISTER_USAGE): Delete.
2254         * config/frv/frv-protos.h (frv_conditional_register_usage): Delete.
2255         * config/frv/frv.c (frv_conditional_register_usage): Make static.
2256         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2257         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2258         * config/h8300/h8300.c (h8300_conditional_register_usage): ...here.
2259         New function.
2260         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2261         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Delete.
2262         * config/i386/i386-protos.h (ix86_conditional_register_usage): Delete.
2263         * config/i386/i386.c (ix86_conditional_register_usage): Make static.
2264         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2265         * config/m32c/m32c.h (CONDITIONAL_REGISTER_USAGE): Delete.
2266         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Delete.
2267         * config/m32c/m32c.c (m32c_conditional_register_usage): Make static.
2268         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2269         * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2270         * config/m32r/m32r.c (m32r_conditional_register_usage): ...here.
2271         New function.
2272         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2273         * config/m68hc11/m68hc11.h (CONDITIONAL_REGISTER_USAGE): Delete.
2274         * config/m68hc11/m68hc11-protos.h (m68hc11_conditional_register_usage):
2275         Delete.
2276         * config/m68hc11/m68hc11.c (m68hc11_conditional_register_usage): Make
2277         static.
2278         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2279         * config/mep/mep.h (CONDITIONAL_REGISTER_USAGE): Delete.
2280         * config/mep/mep-protos.h (mep_conditional_register_usage): Delete.
2281         * config/mep/mep.c (mep_conditional_register_usage): Make static.
2282         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2283         * config/mips/mips.h (CONDITIONAL_REGISTER_USAGE): Delete.
2284         * config/mips/mips-protos.h (mips_conditional_register_usage): Delete.
2285         * config/mips/mips.c (mips_conditional_register_usage): Make static.
2286         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2287         * config/mmix/mmix.h (CONDITIONAL_REGISTER_USAGE): Delete.
2288         * config/mmix/mmix-protos.h (mmix_conditional_register_usage): Delete.
2289         * config/mmix/mmix.c (mmix_conditional_register_usage): Make static.
2290         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2291         * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2292         * config/mn10300/mn10300.c (mn10300_conditional_register_usage):
2293         ...here.  New function.
2294         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2295         * config/pa/pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2296         * config/pa/pa64-regs.h (CONDITIONAL_REGISTER_USAGE): ...with this...
2297         * config/pa/pa.c (pa_conditional_register_usage): ...here.
2298         New function.
2299         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2300         * config/pdp11/pdp11.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2301         * config/pdp11/pdp11.c (pdp11_conditional_register_usage): ...here.
2302         New function.
2303         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2304         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Delete.
2305         * config/rs6000/rs6000-protos.h (rs6000_conditional_register_usage):
2306         Delete.
2307         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): Make
2308         static.
2309         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2310         * config/rx/rx.h (CONDITIONAL_REGISTER_USAGE): Delete.
2311         * config/rx/rx-protos.h (rx_conditional_register_usage): Delete.
2312         * config/rx/rx.c (rx_conditional_register_usage): Make static.
2313         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2314         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Delete.
2315         * config/s390/s390-protos.h (s390_conditional_register_usage): Delete.
2316         * config/s390/s390.c (s390_conditional_register_usage): Make static.
2317         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2318         * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2319         * config/score/score.c (score_conditional_register_usage): ...here.
2320         New function.
2321         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2322         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2323         * config/sh/sh.c (sh_conditional_register_usage): ...here.
2324         New function.
2325         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2326         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2327         * config/sparc/sparc.c (sparc_conditional_register_usage): ...here.
2328         New function.
2329         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2330         * config/spu/spu.h (CONDITIONAL_REGISTER_USAGE): Delete.
2331         * config/spu/spu-protos.h (spu_conditional_register_usage): Delete.
2332         * config/spu/spu.c (spu_conditional_register_usage): Make static.
2333         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2334         * config/v850/v850.h (CONDITIONAL_REGISTER_USAGE): Move logic...
2335         * config/v850/v850.c (v850_conditional_register_usage): ...here.
2336         New function.
2337         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
2338
2339 2010-11-21  Jan Hubicka  <jh@suse.cz>
2340             Dominique d'Humieres <dominiq@lps.ens.ft>
2341
2342         PR target/46510
2343         * tree-emutls.c (get_emutls_init_templ_addr, new_emutls_decl): Do not
2344         finalize external decls.
2345
2346 2010-11-21  Joseph Myers  <joseph@codesourcery.com>
2347
2348         * system.h (strerror): Poison.
2349
2350 2010-11-21  Richard Henderson  <rth@redhat.com>
2351
2352         * config/ia64/ia64.c (ia64_expand_builtin): Use the correct mode
2353         for infq/huge_valq.
2354
2355 2010-11-21  Richard Henderson  <rth@redhat.com>
2356
2357         PR rtl-optimization/46571
2358         * gcse.c (hash_scan_set): Use next_nonnote_nondebug_insn.
2359         (compute_hash_table_work): Use NONDEBUG_INSN_P.
2360
2361 2010-11-21  Paul Koning  <ni1d@arrl.net>
2362
2363         * config/mips/pdp11.md (negsi2): Fix wrong code.
2364
2365 2010-11-21  Paul Koning  <ni1d@arrl.net>
2366
2367         * config/mips/pdp11.c (pdp11_legitimate_address_p): New function.
2368         * config/mips/pdp11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2369
2370 2010-11-21  Eric Botcazou  <ebotcazou@adacore.com>
2371
2372         * config/mips/mips.c (machine_function): Rename load_label_length to
2373         load_label_num_insns.
2374         (mips_load_label_length): Rename to...
2375         (mips_load_label_num_insns): ...this.  Adjust to first renaming.
2376         (mips_adjust_insn_length): Adjust to second renaming.  Fix thinko.
2377
2378 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
2379
2380         PR target/46533
2381         * config/alpha/predicates.md (direct_call_operand): Return false
2382         for !TARGET_SMALL_TEXT targets.
2383
2384 2010-11-20  Joseph Myers  <joseph@codesourcery.com>
2385
2386         * doc/tm.texi.in (HANDLE_SYSV_PRAGMA,
2387         HANDLE_PRAGMA_PACK_PUSH_POP): Remove.
2388         (HANDLE_PRAGMA_PACK_WITH_EXPANSION): Don't refer to HANDLE_SYSV_PRAGMA.
2389         * doc/tm.texi: Regenerate.
2390         * system.h (HANDLE_PRAGMA_PACK_PUSH_POP, HANDLE_SYSV_PRAGMA,
2391         HANDLE_PRAGMA_WEAK): Poison.
2392         * config/alpha/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
2393         * config/alpha/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2394         * config/alpha/osf5.h (HANDLE_SYSV_PRAGMA): Don't define.
2395         * config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Don't define.
2396         * config/arm/arm.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2397         * config/arm/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
2398         * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2399         * config/darwin.h (HANDLE_SYSV_PRAGMA): Don't define.
2400         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2401         * config/elfos.h (HANDLE_SYSV_PRAGMA): Don't define.
2402         * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2403         * config/frv/frv.h (HANDLE_SYSV_PRAGMA): Don't define.
2404         * config/i386/cygming.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2405         * config/i386/djgpp.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2406         * config/i386/i386-interix.h (HANDLE_SYSV_PRAGMA): Don't define.
2407         (HANDLE_PRAGMA_WEAK): Don't undefine.
2408         * config/i386/netware.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2409         * config/i386/vxworks.h (HANDLE_SYSV_PRAGMA): Don't define.
2410         * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2411         * config/ia64/ia64.h (HANDLE_SYSV_PRAGMA): Don't define.
2412         * config/interix.h (HANDLE_SYSV_PRAGMA): Don't define.
2413         (HANDLE_PRAGMA_WEAK): Don't undefine.
2414         * config/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2415         * config/m32r/linux.h (HANDLE_SYSV_PRAGMA): Don't define.
2416         (HANDLE_PRAGMA_PACK): Don't undefine.
2417         * config/m32r/m32r.h (HANDLE_SYSV_PRAGMA): Don't undefine.
2418         * config/mep/mep.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2419         * config/mips/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2420         * config/mips/sde.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2421         * config/mmix/mmix.h (HANDLE_SYSV_PRAGMA): Don't define.
2422         * config/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
2423         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2424         * config/openbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
2425         * config/pa/pa-hpux.h (HANDLE_SYSV_PRAGMA): Don't define.
2426         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2427         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Don't define.
2428         * config/rs6000/sysv4.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2429         * config/rx/rx.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2430         * config/score/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
2431         * config/spu/spu.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2432         * config/stormy16/stormy16.h (HANDLE_SYSV_PRAGMA): Don't define.
2433         * config/xtensa/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
2434
2435 2010-11-20  Eric Botcazou  <ebotcazou@adacore.com>
2436
2437         PR target/31100
2438         * config/sparc/sparc.h (ASM_OUTPUT_ALIGN_WITH_NOP): Move to...
2439         * config/sparc/sol2.h (ASM_OUTPUT_ALIGN_WITH_NOP): ...here.
2440         * config/sparc/sol2-gas.h (ASM_OUTPUT_ALIGN_WITH_NOP): Undefine.
2441
2442 2010-11-20  Jan Hubicka  <jh@suse.cz>
2443
2444         * cgraph.c (ld_plugin_symbol_resolution_names): New.
2445         (dump_cgraph_node): Dump resolution.
2446         * cgraph.h (ld_plugin_symbol_resolution_names): Declare.
2447         (cgraph_comdat_can_be_unshared_p): Dclare.
2448         * lto-streamer-out.c (produce_symtab): Use
2449         cgraph_comdat_can_be_unshared_p.
2450         * ipa.c (cgraph_address_taken_from_non_vtable_p): New function.
2451         (cgraph_comdat_can_be_unshared_p): New function based on logic
2452         in cgraph_externally_visible_p.
2453         (cgraph_externally_visible_p): Use it.
2454         (varpool_externally_visible_p): Virtual tables can be unshared.
2455         * varpool.c (dump_varpool_node): Dump resolution.
2456
2457 2010-11-20  Jan Hubicka  <jh@suse.cz>
2458
2459         * stmt.c (lshift_cheap_p): Support properly optimize_insn_for_speed_p.
2460
2461 2010-11-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2462
2463         PR other/46202
2464         * Makefile.in (install_sh, INSTALL_STRIP_PROGRAM): New variables.
2465         (AR_FOR_TARGET, RANLIB_FOR_TARGET, STRIP_FOR_TARGET): Fix
2466         shell quoting.
2467         (STRIP_FOR_TARGET): Look for in-tree strip under name strip-new.
2468         (install-strip): New target.
2469         (STRIPPROG): New variable, exported if STRIP is set.
2470         * doc/install.texi (Final install): Minor markup and code style
2471         fixes.  Document install-strip target.
2472
2473 2010-11-20  Paul Koning  <ni1d@arrl.net>
2474
2475         * config/pdp11/pdp11-protos.h (pdp11_initial_elimination_offset,
2476         pdp11_regno_reg_class): New functions.
2477         * config/pdp11/pdp11.md (define_constants): Add register numbers.
2478         * config/pdp11/pdp11.c (pdp11_regno_reg_class,
2479         pdp11_sp_frame_offset, pdp11_initial_elimination_offset): New
2480         functions.
2481         * config/pdp11/pdp11.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Add
2482         frame pointer and argument pointer pseudo-registers.
2483         (ARG_POINTER_REGNUM): Define.
2484         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add frame pointer and
2485         argument pointer.
2486         (FIRST_PARM_OFFSET): Update for argument pointer.
2487         (INITIAL_FRAME_POINTER_OFFSET): Delete.
2488         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): New macros.
2489         (REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_INDEX_P, REGISTER_NAMES): Add
2490         frame pointer and argument pointer.
2491
2492 2010-11-20  Jakub Jelinek  <jakub@redhat.com>
2493
2494         PR debug/46561
2495         * tree-parloops.c (try_create_redunction_list): Ignore debug stmts
2496         when looking for immediate uses.
2497
2498         PR tree-optimization/45830
2499         * stmt.c (expand_switch_using_bit_tests_p): New function.
2500         (expand_case): Use it.
2501         * tree.h (expand_switch_using_bit_tests_p): New prototype.
2502         * tree-switch-conversion.c (struct switch_conv_info): Add
2503         bit_test_uniq, bit_test_count and bit_test_bb fields.
2504         (check_range): Fix a comment.
2505         (check_process_case): Compute bit_test_uniq and bit_test_count.
2506         (create_temp_arrays): Use XCNEWVEC, merge 3 arrays into one
2507         allocation.
2508         (free_temp_arrays): Use XDELETEVEC, adjust for the 3 arrays merging.
2509         (constructor_contains_same_values_p): Use FOR_EACH_VEC_ELT.
2510         (array_value_type): New function.
2511         (build_one_array): Use it, if it returned different type,
2512         fold_convert all constructor fields and convert back to the
2513         wider type in the generated code.
2514         (process_switch): Initialize bit_test_uniq, bit_test_count and
2515         bit_test_bb fields.  Don't optimize if expand_switch_using_bit_tests_p
2516         returned true.
2517
2518 2010-11-19  Michael Matz  <matz@suse.de>
2519
2520         PR tree-optimization/46077
2521         * tree-chrec.c (eq_evolutions_p): Accept some expressions.
2522
2523 2010-11-19  Anatoly Sokolov  <aesok@post.ru>
2524
2525         * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
2526         * config/mn10300/mn10300.c (mn10300_asm_output_addr_const_extra): New
2527         function.
2528         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
2529
2530 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
2531
2532         * mode-switching.c (optimize_mode_switching): Use
2533         FOR_BB_INSNS instead of open-coded loop.
2534         * cfgrtl.c (redirect_branch_edge): Ditto.
2535
2536 2010-11-19  Joern Rennecke  <amylaar@spamcop.net>
2537
2538         PR target/46436
2539         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Split shift count
2540         to accomodate 32 bit HOST_WIDE_INT.
2541         (m68hc11_emit_logical): Remove unused variable insn.
2542         (m68hc11_check_z_replacement) <CLOBBER>: Set this_insn_uses_ix and
2543         this_insn_uses_iy before use.
2544
2545         PR target/46434
2546         * config/crx/crx.c (crx_expand_epilogue): Remove unused variable.
2547
2548 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
2549
2550         PR c/46547
2551         * c-tree.h (in_late_binary_op): Move to c-family/c-common.h.
2552         * c-typeck.c (in_late_binary_op): Move to c-family/c-common.c.
2553
2554 2010-11-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
2555
2556         * doc/extend.texi (Function attributes): Document PowerPC target
2557         attributes that are supported.
2558         (Pragmas): Document that PowerPC now supports target pragmas.
2559
2560         * doc/options.texi (TargetVariable): Document TargetVariable,
2561         HeaderInclude, and SourceInclude.
2562
2563         * doc/invoke.texi (-mfused-madd): Document that -mfused-madd is
2564         mapped to -ffp-contract=fast, and -mno-fused-madd is mapped to
2565         -ffp-contract=off.
2566
2567         * optc-gen.awk: Add support for TargetVariable, HeaderInclude, and
2568         SourceInclude directives.  Fix a cut+paste error with target save
2569         enum variables.  Sort enums in the structures after ints and
2570         before shorts.
2571         * opth-gen.awk: Ditto.
2572
2573         * configure.ac: Add support for HeaderInclude and SourceInclude option
2574         directives to add the appropriate files to the dependency lists.
2575         * configure: Regenerate.
2576         * Makefile.in (OPTIONS_H_EXTRA): New variable for HeaderInclude.
2577         (OPTIONS_C_EXTRA): New variable for SourceInclude.
2578         (OPTIONS_H): Add $(OPTIONS_H_EXTRA).
2579         (options.o): Add $(OPTIONS_C_EXTRA) dependency.
2580         (gcc-options.o): Ditto.
2581         * opt-include.awk: New awk script to handle HeaderInclude and
2582         TargetInclude.
2583
2584         * config/rs6000/aix.opt (-mxl-compat): Mark option as Save so it
2585         gets saved in the target options.
2586         * config/rs6000/linux64.opt (-mprofile-kernel): Ditto.
2587         * config/rs6000/sysv4.opt (-mbit-align): Ditto.
2588         (-mprototype): Ditto.
2589         (-mbit-word): ditto.
2590         (-mregnames): Ditto.
2591         (-msecure-plt): Ditto.
2592         (-mbss-plt): Ditto.
2593         * config/rs6000/rs6000.opt (-mpowerpc-gpopt): Ditto.
2594         (-mpowerpc-gfxopt): Ditto.
2595         (-mmfcrf): Ditto.
2596         (-mpopcntb): Ditto.
2597         (-mfprnd): Ditto.
2598         (-mcmpb): Ditto.
2599         (-mmmfpgpr): Ditto.
2600         (-maltivec): Ditto.
2601         (-mhard-dfp): Ditto.
2602         (-mmulhw): Ditto.
2603         (-mdlmzb): Ditto.
2604         (-mmultiple): Ditto.
2605         (-mstring): Ditto.
2606         (-mpopcntd): Ditto.
2607         (-mfriz): Ditto.
2608         (-mvsx): Ditto.
2609         (-mno-update): Ditto.
2610         (-mavoid-indexed-addresses): Ditto.
2611         (-mtls-markers): Ditto.
2612         (-msched-epilog): Ditto.
2613         (-msched-prolog): Ditto.
2614         (-maix-struct-return): Ditto.
2615         (-msvr4-struct-return): Ditto.
2616         (-mxl-compat): Ditto.
2617         (-mrecip-precision): Ditto.
2618         (-mfp-in-toc): Ditto.
2619         (-msum-in-toc): Ditto.
2620         (-mvrsave): Ditto.
2621         (-mblock-move-inline-limit=): Ditto.
2622         (-misel): Ditto.
2623         (-mpaired): Ditto.
2624         (-mlongcall): Ditto.
2625         (-mgen-cell-microcode): Ditto.
2626         (-mwarn-cell-microcode): Ditto.
2627         (-mwarn-altivec-long): Ditto.
2628         (-mprioritize-restricted-insns=): Ditto.
2629         (-msingle-float): Ditto.
2630         (-mdouble-float): Ditto.
2631         (-msimple-fpu): Ditto.
2632         (-mxilinx-fpu): Ditto.
2633         * config/rs6000/aix64.opt (-mpe): Ditto.
2634
2635         * config/rs6000/rs6000.opt (HeaderInclude): Include rs6000-opts.h.
2636         (rs6000_cpu): Move variable to be a target variable.  Rename
2637         cmodel to rs6000_current_cmodel because of macro conflict.  Merge
2638         -mdebug=<xxx> variables into a single int.
2639         (rs6000_always_hint): Ditto.
2640         (rs6000_sched_groups): Ditto.
2641         (rs6000_align_branch_targets): Ditto.
2642         (rs6000_sched_costly_dep): Ditto.
2643         (rs6000_sched_insert_nops): Ditto.
2644         (rs6000_long_double_type_size): Ditto.
2645         (rs6000_ieeequad): Ditto.
2646         (rs6000_altivec_abi): Ditto.
2647         (rs6000_spe): Ditto.
2648         (rs6000_spe_abi): Ditto.
2649         (rs6000_float_gprs): Ditto.
2650         (rs6000_darwin64_abi): Ditto.
2651         (can_override_loop_align): Ditto.
2652         (rs6000_sdata): Ditto.
2653         (rs6000_tls_size): Ditto.
2654         (rs6000_current_abi): Ditto.
2655         (rs6000_traceback): Ditto.
2656         (rs6000_alignment_flags): Ditto.
2657         (rs6000_current_cmodel): Ditto.
2658         (rs6000_recip_control): Ditto.
2659         (rs6000_cpu_index): Ditto.
2660         (rs6000_tune_index): Ditto.
2661         (rs6000_debug): Ditto.
2662         (rs6000_target_flags_explict): Ditto.
2663
2664         * config/rs6000/rs6000-protos.h (rs6000_pragma_target_parse): Add
2665         declaration.
2666
2667         * config/rs6000/linux64.h (rs6000_current_cmode): Rename from
2668         cmodel.  Change all uses.
2669
2670         * config/rs6000/rs6000.c (rs6000_always_hint): Move to
2671         rs6000.opt.  Combine -mdebug=<xxx> variables into a single int.
2672         Rename cmodel to rs6000_current_cmodel.
2673         (rs6000_sched_groups): Ditto.
2674         (rs6000_align_branch_targets): Ditto.
2675         (rs6000_sched_costly_dep): Ditto.
2676         (rs6000_sched_insert_nops): Ditto.
2677         (rs6000_long_double_type_size): Ditto.
2678         (rs6000_ieeequad): Ditto.
2679         (rs6000_altivec_abi): Ditto.
2680         (rs6000_spe): Ditto.
2681         (rs6000_spe_abi): Ditto.
2682         (rs6000_float_gprs): Ditto.
2683         (rs6000_darwin64_abi): Ditto.
2684         (can_override_loop_align): Ditto.
2685         (rs6000_sdata): Ditto.
2686         (rs6000_tls_size): Ditto.
2687         (rs6000_current_abi): Ditto.
2688         (rs6000_traceback): Ditto.
2689         (rs6000_alignment_flags): Ditto.
2690         (rs6000_current_cmodel): Ditto.
2691         (rs6000_recip_control): Ditto.
2692         (rs6000_cpu_index): Ditto.
2693         (rs6000_tune_index): Ditto.
2694         (rs6000_debug): Ditto.
2695         (rs6000_target_flags_explict): Ditto.
2696         (rs6000_sched_insert_nops_str): Make static.
2697         (rs6000_sched_costly_dep_str): Ditto.
2698         (rs6000_recip_name): Ditto.
2699         (rs6000_abi_name): Ditto.
2700         (rs6000_sdata_name): Ditto.
2701         (enum rs6000_traceback_name): Move to rs6000-opts.h.
2702         (rs6000_parse_tls_size_option): Delete.
2703         (rs6000_valid_attribute_p): New function for target attributes and
2704         pragmas.
2705         (rs6000_function_specific_save): Ditto.
2706         (rs6000_function_specific_restore): Ditto.
2707         (rs6000_function_specific_print): Ditto.
2708         (rs6000_can_inline_p): Ditto.
2709         (rs6000_set_current_function): Ditto.
2710         (rs6000_inner_target_options): Ditto.
2711         (rs6000_debug_target_options): Ditto.
2712         (rs6000_pragma_target_parse): Ditto.
2713         (TARGET_OPTION_VALID_ATTRIBUTE_P): Define target hooks for target
2714         attributes and pragmas.
2715         (TARGET_OPTION_SAVE): Ditto.
2716         (TARGET_OPTION_RESTORE): Ditto.
2717         (TARGET_OPTION_PRINT): Ditto.
2718         (TARGET_CAN_INLINE_P): Ditto.
2719         (TARGET_SET_CURRENT_FUNCTION): Ditto.
2720         (POWER_MASKS): Move to file level scope from the
2721         rs6000_option_override_internal function.
2722         (POWERPC_MASKS): Ditto.
2723         (ISA_*_MASKS): Ditto.
2724         (struct rs6000_ptt): Ditto.
2725         (processor_target_table): Ditto.
2726         (rs6000_cpu_name_lookup): Map cpu name to an index in
2727         processor_target_table.
2728         (rs6000_debug_reg_global): Print more information on processor
2729         options for -mdebug=reg.
2730         (rs6000_init_hard_regno_mode_ok): Add support for target
2731         attributes and pragmas.  Merge all -mdebug=<xxx> fields into one.
2732         Allow -mdebug=val1,val2.  Rename cmodel variable.
2733         (rs6000_option_override_internal): Ditto.
2734         (rs6000_option_override): Ditto.
2735         (rs6000_handle_option): Ditto.
2736         (rs6000_conditional_register_usage): Add debug trace message.
2737         (struct rs6000_opt_mask): New for target attribute/pragma support.
2738         (rs6000_opt_masks): Ditto.
2739         (struct rs6000_opt_var): Ditto.
2740         (rs6000_opt_vars): Ditto.
2741         (rs6000_previous_function): Ditto.
2742
2743         * config/rs6000/rs6000.h (top level): Include rs6000-opts.h if it
2744         wasn't already included.
2745         (enum rs6000_cmodel): Move to rs6000-opts.h or rs6000.opt.
2746         (enum processor_type): Ditto.
2747         (rs6000_cpu): Ditto.
2748         (enum fpu_type_t): Ditto.
2749         (fpu_type): Ditto.
2750         (enum rs6000_dependence_cost): Ditto.
2751         (enum rs6000_nop_insertion): Ditto.
2752         (enum group_termination): Ditto.
2753         (rs6000_long_double_type_size): Ditto.
2754         (rs6000_ieeequad): Ditto.
2755         (rs6000_altivec_abi): Ditto.
2756         (rs6000_spe_abi): Ditto.
2757         (rs6000_spe): Ditto.
2758         (rs6000_float_gprs): Ditto.
2759         (rs6000_alignment_flags): Ditto.
2760         (rs6000_sched_insert_nops): Ditto.
2761         (enum rs6000_vector): Ditto.
2762         (enum rs6000_abi): Ditto.
2763         (rs6000_current_opt): Ditto.
2764         (rs6000_debug_*): Delete.
2765         (MASK_DEBUG*): Combine -mdebug=xxxx into one int.
2766         (TARGET_DEBUG*): Ditto.
2767
2768         * config/rs6000/rs6000-opts.h: New header file to define the enums
2769         that are used in target variables that are now defined in rs6000.opt.
2770
2771         * config/rs6000/sysv4.h (enum rs6000_sdata_type): Move to
2772         rs6000-opts.h.
2773         (rs6000_sdata): Ditto.
2774         (rs6000_abi_name): Delete.
2775         (rs6000_sdata_name): Ditto.
2776         (rs6000_tls_size_string): Ditto.
2777
2778 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
2779
2780         * common.opt (debug_struct_ordinary, debug_struct_generic): New
2781         Variable entries.
2782         * dwarf2out.c (matches_main_base, dump_struct_debug, DUMP_GSTRUCT,
2783         should_emit_struct_debug): Move from opts.c.
2784         * flag-types.h (enum debug_struct_file): Move from opts.c.
2785         * flags.h (should_emit_struct_debug): Remove.
2786         (base_of_path): Declare.
2787         (set_struct_debug_option): Add gcc_options parameter.
2788         * optc-gen.awk, opth-gen.awk: Handle array variables.
2789         * opts.c (enum debug_struct_file, debug_struct_ordinary,
2790         debug_struct_generic): Remove.
2791         (set_struct_debug_option): Add gcc_options parameter.
2792         (base_of_path): Remove static.
2793         (main_input_basename, main_input_baselength, matches_main_base,
2794         dump_struct_debug, DUMP_GSTRUCT, should_emit_struct_debug):
2795         Remove.
2796         * toplev.c (main_input_basename, main_input_baselength): Define
2797         here.
2798         * toplev.h (main_input_basename, main_input_baselength): Declare
2799         here.
2800
2801 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
2802
2803         * common.opt (flag_instrument_functions_exclude_functions,
2804         flag_instrument_functions_exclude_files): New Variable definitions.
2805         * flags.h (flag_instrument_functions_exclude_p): Don't declare.
2806         * gimplify.c (char_p): Declare type and vectors.
2807         (flag_instrument_functions_exclude_p): Moved from opts.c.  Make static.
2808         * opts.c (flag_instrument_functions_exclude_functions,
2809         flag_instrument_functions_exclude_files): Remove.
2810         (add_comma_separated_to_vector): Take void **.
2811         (flag_instrument_functions_exclude_p): Move to gimplify.c.
2812         (common_handle_option): Use options structure for
2813         -finstrument-functions-exclude- options.
2814
2815 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
2816
2817         * doc/options.texi (Var): Document effects of Defer.
2818         (Defer): Document.
2819         * opt-functions.awk (var_type, var_set): Handle deferred options.
2820         * opts-common.c (set_option): Handle CLVC_DEFER.
2821         * common.opt (fcall-saved-, fcall-used-, fdump-, ffixed-,
2822         fplugin=, fplugin-arg-, fstack-limit, fstack-limit-register=,
2823         fstack-limit-symbol=): Mark as deferred.
2824         * opts.c: Don't include rtl.h, ggc.h, output.h, tree-pass.h or
2825         plugin.h.
2826         (print_filtered_help): Don't report state of CLVC_DEFER options.
2827         (common_handle_option): Move code for OPT_fcall_used_,
2828         OPT_fcall_saved_, OPT_fdump_, OPT_ffixed_, OPT_fplugin_,
2829         OPT_fplugin_arg_, OPT_fstack_limit, OPT_fstack_limit_register_ and
2830         OPT_fstack_limit_symbol_ to opts-global.c.
2831         (option_enabled, get_option_state): Handle CLVC_DEFER.
2832         * opts.h: Include vec.h.
2833         (enum cl_var_type): Add CLVC_DEFER.
2834         (cl_deferred_option): Define type and vectors.
2835         (handle_common_deferred_options): Declare.
2836         * opts-global.c: New.
2837         * toplev.c (toplev_main): Call handle_common_deferred_options
2838         * Makefile.in (OPTS_H): Include $(VEC_H).
2839         (OBJS-common): Include opts-global.o.
2840         (opts.o): Update dependencies.
2841         (opts-global.o): Add dependencies.
2842
2843 2010-11-19  Nicola Pero  <nicola.pero@meta-innovation.com>
2844
2845         * c-parser.c (c_parser_objc_protocol_definition): Pass attributes
2846         to objc_declare_protocols.
2847
2848 2010-11-19  Richard Guenther  <rguenther@suse.de>
2849
2850         PR lto/45789
2851         * lto-streamer-out.c (lto_output_ts_common_tree_pointers): For
2852         IDENTIFIERs do not stream TREE_TYPE.
2853         * lto-streamer-in.c (lto_input_ts_common_tree_pointers): Likewise.
2854
2855 2010-11-19  Christian Borntraeger  <borntraeger@de.ibm.com>
2856
2857         * config/s390/s390.c (s390_function_arg_integer): Handle NULLPTR_TYPE.
2858
2859 2010-11-19  Jakub Jelinek  <jakub@redhat.com>
2860
2861         PR target/45870
2862         * dwarf2out.c (const_ok_for_output_1): Don't complain about
2863         non-delegitimized TLS UNSPECs.
2864
2865 2010-11-18  Jack Howarth  <howarth@bromo.med.uc.edu>
2866             Ian Lance Taylor  <iant@google.com>
2867
2868         * config/darwin-c.c (darwin_additional_format_types): Export.
2869
2870 2010-11-18  Paul Koning  <ni1d@arrl.net>
2871
2872         * config/pdp11/pdp11.h (FIRST_PARM_OFFSET): Fix case of no frame
2873         pointer.
2874
2875 2010-11-18  Paul Koning  <ni1d@arrl.net>
2876
2877         * config/pdp11/pdp11.md (abshi2): Delete TARGET_ABSHI_BUILTIN.
2878         * config/pdp11/pdp11.c (TARGET_DEFAULT_TARGET_FLAGS): Ditto.
2879         * config/pdp11/pdp11.opt (-mabshi): Delete.
2880
2881 2010-11-19  Mingjie Xing  <mingjie.xing@gmail.com>
2882
2883         * resource.h (struct resources): Fix typo in the comment.
2884
2885 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
2886
2887         PR target/46546
2888         * config/i386/i386.c (ix86_reorg): Call compute_bb_for_insn.
2889
2890 2010-11-18  Richard Henderson  <rth@redhat.com>
2891
2892         PR middle-end/46515
2893         * function.c (maybe_copy_prologue_epilogue_insn): Rename from
2894         maybe_copy_epilogue_insn; handle prologue insns as well.
2895         * rtl.h, cfglayout.c: Update for rename.
2896         * recog.c (peep2_attempt): Copy prologue/epilogue data for
2897         RTX_FRAME_RELATED_P insns.
2898
2899 2010-11-18  Jakub Jelinek  <jakub@redhat.com>
2900
2901         PR middle-end/46534
2902         * builtins.c (fold_builtin_printf): Don't copy and modify string
2903         before build_string_literal, instead modify what
2904         build_string_literal returned.
2905
2906 2010-11-18  Nathan Froyd  <froydnj@codesourcery.com>
2907
2908         PR c/33193
2909         * c-typeck.c (build_unary_op): Call build_real_imag_expr for
2910         REALPART_EXPR and IMAGPART_EXPR.
2911
2912 2010-11-18  Richard Guenther  <rguenther@suse.de>
2913
2914         PR tree-optimization/46172
2915         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): New
2916         function.
2917         (slpeel_tree_peel_loop_to_edge): Call it.
2918
2919 2010-11-18  Jeff Law  <law@redhat.com>
2920
2921         PR middle-end-optimization/46297
2922         * postreload.c (reload_combine_note_store): Deal with embedded
2923         side effects in MEM expressions.
2924
2925 2010-11-18  Richard Guenther  <rguenther@suse.de>
2926
2927         PR lto/45089
2928         * dwarf2out.c (add_AT_die_ref): Work around LTO losing types
2929         when checking is not enabled.
2930
2931 2010-11-18  Richard Guenther  <rguenther@suse.de>
2932
2933         PR lto/46525
2934         * gimple.c (gimple_register_type): Update TYPE_MAIN_VARIANT of
2935         type leaders.
2936         (gimple_register_canonical_type): Also cache the canoncial type
2937         for non type leaders.
2938
2939 2010-11-18  Richard Guenther  <rguenther@suse.de>
2940
2941         * lto-wrapper.c (run_gcc): Fix -flto=N parsing.
2942
2943 2010-11-18  Alexander Monakov  <amonakov@ispras.ru>
2944
2945         PR middle-end/46518
2946         * sel-sched-ir.c (init_expr): Use the correct type for
2947         target_available.
2948         * sel-sched.c (fill_vec_av_set): Use explicitly signed char type.
2949
2950 2010-11-17  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
2951
2952         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Support -fpic
2953         as well as -mrelocatable at the same time.
2954
2955 2010-11-17  Quentin Neill  <quentin.neill.gnu@gmail.com>
2956
2957         PR target/46422
2958         * config/i386/bmiintrin.h (__lzcnt_u16, __lzcnt_u32, __lzcnt_u64):
2959         Call the clz builtin.
2960
2961 2010-11-17  Dinar Temirbulatov <dtemirbulatov@gmail.com>
2962             Steve Ellcey  <sje@cup.hp.com>
2963
2964         PR middle-end/31490
2965         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
2966         if section attribute used.
2967
2968 2010-11-17  Jan Hubicka  <jh@suse.cz>
2969
2970         * builtins.c (expand_builtin_mathfn_2, expand_builtin_mathfn): Do not
2971         expand errno setting variant when optimizing for size.
2972
2973 2010-11-17  Eric Botcazou  <ebotcazou@adacore.com>
2974
2975         * postreload.c (reload_combine): Call control_flow_insn_p only once.
2976         Reverse backward loop.  Fix formatting issues.
2977
2978 2010-11-17  Paolo Bonzini  <bonzini@gnu.org>
2979
2980         * c-parser.c (c_token_is_qualifier,
2981         c_parser_next_token_is_qualifier): New.
2982         (c_parser_declaration_or_fndef, c_parser_struct_declaration):
2983         Improve error message on specs->tagdef_seen_p.
2984         (c_parser_struct_or_union_specifier): Improve error recovery.
2985         (c_parser_declspecs): Move exit condition on C_ID_ID early.
2986         Reorganize exit condition for C_ID_TYPENAME/C_ID_CLASSNAME
2987         using c_parser_next_token_is_qualifier; extend it to cover
2988         a ctsk_tagdef typespec and !typespec_ok in general.
2989
2990 2010-11-17  Richard Guenther  <rguenther@suse.de>
2991
2992         * value-prof.c (gimple_divmod_fixed_value_transform): Update the stmt.
2993         (gimple_mod_pow2_value_transform): Likewise.
2994         (gimple_mod_subtract_transform): Likewise.
2995
2996 2010-11-17  Richard Guenther  <rguenther@suse.de>
2997
2998         PR lto/46504
2999         * gimple.c (gimple_register_canonical_type): Make sure to only
3000         make type leaders canonical types.
3001
3002 2010-11-17  Michael Matz  <matz@suse.de>
3003
3004         * timevar.def (TV_IPA_OPT, TV_EARLY_LOCAL, TV_OPTIMIZE,
3005         TV_POSTRELOAD, TV_REMOVE_UNUSED, TV_ADDRESS_TAKEN, TV_TODO,
3006         TV_VERIFY_LOOP_CLOSED, TV_VERIFY_RTL_SHARING,
3007         TV_REBUILD_FREQUENCIES, TV_REPAIR_LOOPS): New.
3008         * tree-into-ssa.c (rewrite_into_ssa): Don't push/pop timevar here ...
3009         (pass_build_ssa): ... but here.
3010         * cgraphbuild.c (pass_rebuild_cgraph): Use timevar.
3011         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Use timevar.
3012         * tree-emutls.c (pass_ipa_lower_emutls): Ditto.
3013         * df-core.c (pass_df_initialize_opt, pass_df_initialize_no_opt): Ditto.
3014         * predict.c (rebuild_frequencies): Ditto.
3015         * tree-vectorizer.c (pass_ipa_increase_alignment): Ditto.
3016         * emit-rtl.c (verify_rtl_sharing): Ditto.
3017         * tree-cfgcleanup.c (repair_loop_structures): Ditto.
3018         * tree-ssa-live.c (remove_unused_locals): Ditto.
3019         * cfglayout.c (pass_into_cfg_layout, pass_outof_cfg_layout): Ditto.
3020         * tree-ssa.c (pass_early_warn_uninitialized,
3021         execute_update_addresses_taken, pass_update_address_taken): Ditto.
3022         * tree-optimize.c (pass_all_optimizations, pass_early_local_passes,
3023         pass_cleanup_cfg_post_optimizing, tree_rest_of_compilation): Ditto.
3024         * passes.c (pass_postreload, execute_todo): Ditto.
3025         * tree-ssanames.c (pass_release_ssa_names): Ditto.
3026
3027 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
3028
3029         * doc/invoke.texi (-dy): Remove.
3030         * langhooks-def.h (lhd_do_nothing_i): Don't declare.
3031         (LANG_HOOKS_PARSE_FILE): Define to lhd_do_nothing.
3032         * langhooks.c (lhd_do_nothing_i): Remove.
3033         * langhooks.h (lang_hooks.parse_file): Take no arguments.
3034         * toplev.c (set_yydebug): Remove.
3035         (compile_file): Update call to lang_hooks.parse_file.
3036         (decode_d_option): Don't handle -dy.
3037
3038 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
3039
3040         PR rtl-optimization/46440
3041         * combine.c (update_cfg_for_uncondjump): When changing
3042         an indirect jump into unconditional jump, remove BARRIERs
3043         from bb's footer.
3044
3045 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
3046
3047         * opts.c (target_handle_option): Do not assert that loc ==
3048         UNKNOWN_LOCATION.
3049
3050 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
3051             Richard Guenther  <rguenther@suse.de>
3052
3053         PR middle-end/45838
3054         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
3055         call_may_clobber_ref_p_1): Return true for __sync_* and some
3056         OpenMP builtins that act as threading barriers.
3057
3058 2010-11-17  Richard Guenther  <rguenther@suse.de>
3059
3060         PR tree-optimization/46498
3061         * tree-ssa-dce.c (perform_tree_ssa_dce): Compute dominator info.
3062
3063 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
3064
3065         * config/xtensa/xtensa.c (function_arg_boundary): Really rename to...
3066         (xtensa_function_arg_boundary): ...this.
3067         * config/picochip/pichochip.c (picochip_function_arg_boundary): Fix
3068         thinko in declaration.
3069         (picochip_function_arg, picochip_arg_partial_bytes): Pass proper
3070         number of parameters to picochip_function_arg_boundary.
3071         (picochip_arg_advance): Likewise.
3072
3073 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
3074
3075         PR target/46512
3076         * config/pa/pa.c (pa_function_arg_boundary): Move TYPE_SIZE accesses
3077         under check for type.
3078
3079 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
3080
3081         * ifcvt.c (dead_or_predicable): Fix typo.
3082
3083 2010-11-16  Richard Henderson  <rth@redhat.com>
3084
3085         * config.gcc [s390*-*] (extra_options): Add fused-madd.opt.
3086         * config/s390/s390.opt (mfused-madd): Remove.
3087         * config/s390/s390.c (s390_rtx_costs): Handle FMA.
3088         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
3089         * config/s390/s390.md (fma<DSF>4): Rename from *fmadd<DSF>; use FMA.
3090         (fms<DSF>4): Rename from *fmsub<DSF>; use FMA.
3091
3092 2010-11-16  Richard Henderson  <rth@redhat.com>
3093
3094         * config.gcc [powerpc*, rs6000*] (extra_options): Add fused-madd.opt.
3095         * config/rs6000/rs6000.opt (mfused-madd): Remove.
3096         * config/rs6000/altivec.md (altivec_vmaddfp): Remove.
3097         (*altivec_vmaddfp_1): Remove.
3098         (*altivec_fmav4sf4): Rename from altivec_vmaddfp_2; use FMA.
3099         (altivec_mulv4sf3): Expand to FMA directly.
3100         (*altivec_vnmsubfp): Rename from altivec_vnmsubfp.
3101         (*altivec_vnmsubfp_1, *altivec_vnmsubfp_2): Remove.
3102         * config/rs6000/paired.md (paired_madds0): Use FMA.
3103         (paired_madds1): Likewise.
3104         (*paired_madd): Rename from paired_madd; use FMA.
3105         (*paired_msub, *paired_nmadd, *paired_nmsub): Similarly.
3106         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
3107         consider TARGET_FUSED_MADD wrt rs6000_recip_control.
3108         (bdesc_3arg): Update CODE_FOR_* for pattern renames.
3109         (rs6000_emit_madd): Use fma_optab.
3110         (rs6000_emit_msub): Use fms_optab.
3111         (rs6000_emit_nmsub): Expand the FMA pattern directly.
3112         * config/rs6000/rs6000.md (FMA_F): New mode iterator.
3113         (*fmasf4_fpr): Rename from fmasf4_fpr.
3114         (*nfmasf4_fpr): Rename from *fnmasf4_fpr.
3115         (*nfmssf4_fpr): Rename from *fnmssf4_fpr.
3116         (*fmaddsf4_powerpc, *fmaddsf4_power, *fmsubsf4_powerpc): Remove.
3117         (*fmsubsf4_power, *fnmaddsf4_powerpc_1, *fnmaddsf4_powerpc_2): Remove.
3118         (*fnmaddsf4_power_1, *fnmaddsf4_power_2, *fnmsubsf4_powerpc_1): Remove.
3119         (*fnmsubsf4_powerpc_2, *fnmsubsf4_power_1, *fnmsubsf4_power_2): Remove.
3120         (*fmadf4_fpr): Rename from fmadf4_fpr.
3121         (*nfmadf4_fpr): Rename from *fnmadf4_fpr.
3122         (*nfmsdf4_fpr): Rename from *fnmsdf4_fpr.
3123         (*fmadddf4_fpr, *fmsubdf4_fpr, *fnmadddf4_fpr_1): Remove.
3124         (*fnmadddf4_fpr_2, *fnmsubdf4_fpr_1, *fnmsubdf4_fpr_2): Remove.
3125         (fmasf4, fmadf4): Macroize into...
3126         (fma<FMA_F>4): ... here.
3127         (fms<FMA_F>4, fnma<FMA_F>4, fnms<FMA_F>4): New.
3128         (nfma<FMA_F>4, nfms<FMA_F>4): New.
3129         * config/rs6000/vector.md (mul<VEC_F>3): Do not depend on
3130         TARGET_FUSED_MADD.
3131         * config/rs6000/vsx.md (vsx_fmadd<VSX_B>4): Remove.
3132         (*vsx_fmadd<mode>4_1): Remove.
3133         (vsx_fmsub<mode>4, *vsx_fmsub<mode>4_1): Remove.
3134         (vsx_fnmadd<mode>4_1, vsx_fnmadd<mode>4_2): Remove.
3135         (vsx_fnmsub<mode>4_1, vsx_fnmsub<mode>4_2): Remove.
3136         (*vsx_fma<mode>4): Rename from vsx_fmadd<mode>4_2.
3137         (*vsx_fms<mode>4): Rename from vsx_fmsub<mode>4_2.
3138         (*vsx_nfma<mode>4): Rename from vsx_fnmadd<mode>4.
3139         (*vsx_nfms<mode>4): Rename from vsx_fnmsub<mode>4.
3140
3141 2010-11-16  Richard Henderson  <rth@redhat.com>
3142
3143         * config/pa/pa.md (fmadf4): Rename from unnamed; use FMA.
3144         (fmasf4, fnmadf4, fnmasf4): Likewise.
3145         (unnamed plus+mult insns and splitters): Delete.
3146
3147 2010-11-16  Richard Henderson  <rth@redhat.com>
3148
3149         * config/spu/spu.md (fma<VSF>4): Rename from fma_<VSF>.
3150         (fnma<VSF>4): Rename from fnms_<VSF>.
3151         (fms<VSF>4): Rename from fms_<VSF>.
3152         (fma<VDF>4): Rename from fma_<VDF>.
3153         (fms<VDF>4): Rename from fms_<VDF>.
3154         (nfma<VDF>4): Rename from fnma_<VDF>.
3155         (nfms<VDF>4): Rename from fnms_<VDF>.
3156         (fnma<VDF>4, fnms<VDF>4): New expanders.
3157         (floatunsdisf2): Update for the renames.
3158         (*div<VSF>3_fast, *div<VSF>3_adjusted): Likewise.
3159         * config/spu/spu-builtins.def: Update CODE_FOR_* for the renames.
3160
3161 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
3162
3163         PR rtl-optimization/46490
3164         * combine.c (expand_compound_operation): Fix thinko.
3165
3166 2010-11-16  Richard Henderson  <rth@redhat.com>
3167
3168         PR target/46470
3169         * recog.c (peep2_attempt): Convert frame-related info when possible.
3170         (peep2_fill_buffer): Allow frame-related insns into the buffer.
3171         (peephole2_optimize): Allow peep2_attempt to fail.
3172
3173 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
3174
3175         PR rtl-optimization/46315
3176         * rtl.h (remove_reg_equal_equiv_notes_for_regno): Declare.
3177         * rtlanal.c (remove_reg_equal_equiv_notes_for_regno): New function
3178         extracted from...
3179         * dce.c (delete_corresponding_reg_eq_notes): ...here.  Rename into...
3180         (remove_reg_equal_equiv_notes_for_defs): ...this.
3181         (delete_unmarked_insns): Adjust to above renaming.
3182         * ifcvt.c (dead_or_predicable): Remove REG_EQUAL and REG_EQUIV notes
3183         referring to registers set in the insns being moved, if any.
3184
3185         * df-core.c (df_ref_dump): New function extracted from...
3186         (df_refs_chain_dump): ...here.  Call it.
3187         (df_regs_chain_dump): Likewise.
3188         * df-problems.c (df_chain_dump): Print 'e' for uses in notes.
3189         * df-scan.c (df_scan_start_dump): Likewise.  Fix long line.
3190
3191 2010-11-16  Andreas Schwab  <schwab@linux-m68k.org>
3192
3193         PR rtl-optimization/46395
3194         * postreload.c (reload_combine): Invalidate register use
3195         information on all control flow insns.
3196
3197         * config/m68k/m68k.c (m68k_delegitimize_address): Also expect
3198         LABEL_REF in UNSPEC operand.
3199
3200 2010-11-16  Jan Hubicka  <jh@suse.cz>
3201
3202         * cgraph.h (+varpool_can_remove_if_no_refs): Move here from ...;
3203         when !flag_toplevel_reorder do not remove unless variable is
3204         COMDAT or ARTIFICIAL.
3205         * ipa.c (varpool_can_remove_if_no_refs): ... here.
3206         (cgraph_remove_unreachable_nodes): Only analyzed nodes needs to stay.
3207         * cgraphunit.c (cgraph_analyze_functions): Dump varpool, too.
3208         * varpool.c (decide_is_variable_needed): Do not handle visibility
3209         issues.
3210         (varpool_finalize_decl): Likewise.
3211         (varpool_remove_unreferenced_decls): Use varpool_mark_needed_node;
3212         update outdated comment on DECL_RTL_SET_P check.
3213
3214 2010-11-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3215
3216         * config/sol2.h (NM_FLAGS): Define.
3217         * doc/tm.texi.in (Macros for Initialization, NM_FLAGS): Document.
3218         * doc/tm.texi: Update.
3219
3220 2010-11-16  Nick Clifton  <nickc@redhat.com>
3221
3222         * config/v850/v850.md (maddsf4): Rename to fmasf4 and use fma rtx_code.
3223         (msubsf4): Rename to fmssf4, and use fma.
3224         (nmaddsf4): Rename to fnmasf4 and use fma.
3225         (nmsubsf4): Rename to fnmssf4 and use fma.
3226
3227 2010-11-16  Joern Rennecke  <amylaar@spamcop.net>
3228
3229         PR target/44762
3230         * config/score/score3.c (score3_return_in_memory): Constify arguments.
3231         (score3_in_small_data_p, score3_function_value): Likewise.
3232         (score3_trampoline_init): Use LCT_NORMAL.
3233         (score3_print_operand): Initialize code as UNKNOWN.
3234         * config/score/predicates.md (score_load_multiple_operation):
3235         Remove unused variable.
3236         (score_store_multiple_operation): Likewise.
3237         * config/score/score7.c (score7_return_in_memory): Constify arguments.
3238         (score7_in_small_data_p, score7_function_value): Likewise.
3239         (score7_trampoline_init): Use LCT_NORMAL.
3240         (score7_print_operand): Initialize code as UNKNOWN.
3241         * config/score/score3.h (score3_return_in_memory): Update prototype.
3242         (score3_in_small_data_p, score3_function_value): Likewise.
3243         * config/score/score-protos.h (score_function_value): Likewise.
3244         * config/score/score7.h (score7_return_in_memory): Update prototype.
3245         (score7_in_small_data_p, score7_function_value): Likewise.
3246         * config/score/score.c (TARGET_PROMOTE_PROTOTYPES): Constify.
3247         (score_return_in_memory, score_pass_by_reference): Constify arguments.
3248         (score_output_mi_thunk, score_function_prologue): Don't return a value.
3249         (score_function_epilogue, score_in_small_data_p): Likewise.
3250         (score_option_override, score_asm_trampoline_template): Likewise.
3251         (score_trampoline_init, score_print_operand): Likewise.
3252         (score_print_operand_address, score_prologue): Likewise.
3253         (score_epilogue, score_call, score_call_value): Likewise.
3254         (score_movsicc, score_movdi, score_zero_extract_andi): Likewise.
3255         (score_function_arg_advance): Likewise. Make static.
3256         (score_asm_file_end): Mark parameter value with ATTRIBUTE_UNUSED.
3257         (score_function_arg, score_legitimate_address_p): Make static.
3258         (score_function_value): Mark parameter func with ATTRIBUTE_UNUSED.
3259         * config/score/score.h (REGNO_REG_CLASS): Cast value to enum reg_class.
3260         * config/score/score-conv.h (UIMM_IN_RANGE, SIMM_IN_RANGE):
3261         Allow (W) == HOST_BITS_PER_WIDE_INT.
3262
3263         PR java/46386
3264         * config/pdp11/t-pdp11 (java/constants.o-warn): Remove.
3265         * config/t-pnt16-warn (java/constants.o-warn): Likewise.
3266
3267 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
3268
3269         * config/arc/arc.c: Delete pasto.
3270         * config/pa/pa.c (pa_function_arg_boundary): Add missing comparison.
3271
3272 2010-11-16  Anatoly Sokolov  <aesok@post.ru>
3273
3274         * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS,
3275         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
3276         * config/mn10300/mn10300.c (TARGET_PREFERRED_RELOAD_CLASS,
3277         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
3278         (mn10300_preferred_reload_class,
3279         mn10300_preferred_output_reload_class): New functions.
3280
3281 2010-11-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3282
3283         * gensupport.c (MNEMONIC_ATTR_NAME, MNEMONIC_HTAB_SIZE): New macros.
3284         (htab_eq_string, add_mnemonic_string, gen_mnemonic_setattr)
3285         (mnemonic_htab_callback, gen_mnemonic_attr): New functions.
3286         (init_rtx_reader_args_cb): Invoke gen_mnemonic_attr.
3287
3288 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
3289
3290         * builtins.c (std_gimplify_va_arg_expr): Use
3291         targetm.calls.function_arg_boundary.
3292         * function.c (assign_parms, locate_and_pad_parm): Likewise.
3293         * calls.c (struct arg_data): Update comment.
3294         * defaults.h (FUNCTION_ARG_BOUNDARY): Delete.
3295         * target.def (function_arg_boundary): Define.
3296         * targhooks.h (default_function_arg_boundary): Declare.
3297         * targhooks.c (default_function_arg_boundary): Define.
3298         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Use
3299         TARGET_FUNCTION_ARG_BOUNDARY.
3300         (FUNCTION_ARG_BOUNDARY): Delete.
3301         (TARGET_FUNCTION_ARG_BOUNDARY): New.
3302         * doc/tm.texi: Regenerate.
3303         * system.h (FUNCTION_ARG_BOUNDARY): Poison.
3304         * config/arc/arc.h (FUNCTION_ARG_BOUNDARY): Delete.
3305         * config/arc/arc.c (arc_function_arg_boundary): Define.
3306         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3307         * config/arm/arm.h (FUNCTION_ARG_BOUNDARY): Delete.
3308         * config/arm/arm-protos.h (arm_needs_doubleword_align): Delete.
3309         * config/arm/arm.c (arm_needs_doubleword_align): Make static.
3310         (arm_function_arg_boundary): Define.
3311         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3312         * config/frv/frv.h (FUNCTION_ARG_BOUNDARY): Delete.
3313         * config/frv/frv-protos.h (frv_function_arg_boundary): Delete.
3314         * config/frv/frv.c (frv_function_arg_boundary): Make static.
3315         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3316         * config/i386/i386.h (FUNCTION_ARG_BOUNDARY): Delete.
3317         * config/i386/i386-protos.h (ix86_function_arg_boundary): Delete.
3318         * config/i386/i386.c (ix86_function_arg_boundary): Make static.
3319         (ix86_compat_function_arg_boundary): Take and return unsigned int.
3320         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3321         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Delete.
3322         * config/ia64/ia64-protos.h (ia64_function_arg_boundary): Delete.
3323         * config/ia64/ia64.c (ia64_function_arg_boundary): Make static.
3324         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3325         * config/m32c/m32c.h (FUNCTION_ARG_BOUNDARY): Delete.
3326         * config/m32c/m32c.c (m32c_function_arg_boundary): Define.
3327         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3328         * config/m32r/m32r.h (FUNCTION_ARG_BOUNDARY): Delete.
3329         * config/mcore/mcore.h (FUNCTION_ARG_BOUNDARY): Delete.
3330         * config/mcore/mcore.c (mcore_function_arg_boundary): Define.
3331         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3332         * config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Delete.
3333         * config/mips/mips-protos.h (mips_function_arg_boundary): Delete.
3334         * config/mips/mips.c (mips_function_arg_boundary): Make static.
3335         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3336         * config/pa/pa.h (FUNCTION_ARG_BOUNDARY): Delete.
3337         * config/pa/pa.c (pa_function_arg_boundary): Define.
3338         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3339         * config/picochip/picochip.h (FUNCTION_ARG_BOUNDARY): Delete.
3340         * config/picochip/picochip-protos.h
3341         (picochip_get_function_arg_boundary): Delete.
3342         * config/picochip/picochip.c (picochip_get_function_arg_boundary):
3343         Rename to...
3344         (picochip_function_arg_boundary): ...this.  Make static.
3345         (picochip_function_arg, picochip_arg_partial_bytes): Adjust.
3346         (picochip_arg_advance): Adjust.
3347         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3348         * config/rs6000/rs6000.h (FUNCTION_ARG_BOUNDARY): Delete.
3349         * config/rs6000/rs6000-protos.h (function_arg_boundary): Delete.
3350         * config/rs6000/rs6000.c (function_arg_boundary): Rename to...
3351         (rs6000_function_arg_boundary): ...this.  Make static.
3352         (rs6000_parm_start, rs6000_gimplify_va_arg): Adjust.
3353         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3354         * config/rx/rx.h (FUNCTION_ARG_BOUNDARY): Delete.
3355         * config/rx/rx.c (rx_function_arg_boundary): Define.
3356         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3357         * config/sparc/sparc.h (FUNCTION_ARG_BOUNDARY): Delete.
3358         * config/sparc/sparc.c (sparc_function_arg_boundary): Define.
3359         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3360         * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Delete.
3361         * config/xtensa/xtensa-protos.h (function_arg_boundary): Delete.
3362         * config/xtensa/xtensa.c (function_arg_boundary): Rename to...
3363         (xtensa_function_arg_boundary): ...this.  Make static.
3364         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
3365
3366 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
3367
3368         * expr.c (alignment_for_piecewise_move): New function.
3369         (widest_int_mode_for_size): New function.
3370         (move_by_pieces, move_by_pieces_ninsns): Call them.
3371         (can_store_by_pieces, store_by_pieces_1): Likewise.
3372
3373 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
3374
3375         * gcc.c (char_p): Define.  Define a VEC of it.
3376         (n_linker_options, n_assembler_options, n_preprocessor_options):
3377         Delete.
3378         (linker_options, assembler_options, preprocessor_options): Convert
3379         to a VEC.
3380         (add_preprocessor_option): Adjust.
3381         (add_assembler_option): Adjust.
3382         (add_linker_option): Adjust.
3383         (do_specs_vec): New function.
3384         (do_spec_1): Call it.  Adjust for new types.
3385
3386 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
3387
3388         * Makefile.in (bitmap.o, ebitmap.o, et-forest.o): Update dependencies.
3389         (sreal.o, statistics.o, stringpool.o): Likewise.
3390
3391 2010-11-16  Richard Guenther  <rguenther@suse.de>
3392
3393         PR tree-optimization/44545
3394         * tree-ssa-reassoc.c (linearize_expr_tree): Possibly throwing
3395         statements are not reassociatable.
3396         (reassociate_bb): Likewise.
3397
3398 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
3399
3400         * bitmap.c: Delete unnecessary includes.
3401         * ebitmap.c: Likewise.
3402         * et-forest.c: Likewise.
3403         * sreal.c: Likewise.
3404         * statistics.c: Likewise.
3405         * stringpool.c: Likewise.
3406         * double-int.c: Add comment for inclusion of tm.h.
3407
3408 2010-11-16  Richard Guenther  <rguenther@suse.de>
3409
3410         * tree-ssa-sccvn.c (visit_unary_op): Rename to ...
3411         (visit_nary_op): ... this.
3412         (visit_binary_op): Remove.
3413         (visit_use): Adjust and handle GIMPLE_TERNARY_RHS.
3414
3415 2010-11-16  Richard Guenther  <rguenther@suse.de>
3416
3417         PR middle-end/45172
3418         * tree-eh.c (cleanup_empty_eh_unsplit): Avoid creating duplicate edges.
3419
3420 2010-11-16  Nick Clifton  <nickc@redhat.com>
3421
3422         * config/rx/rx.c (rx_is_ms_bitfield_layout): Return false if the
3423         record is packed.
3424
3425 2010-11-15  Richard Henderson  <rth@redhat.com>
3426
3427         * fold-const.c (operand_equal_for_comparison_p): Handle FMA_EXPR,
3428         WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR, VEC_COND_EXPR and
3429         DOT_PROD_EXPR.
3430
3431 2010-11-15  Richard Henderson  <rth@redhat.com>
3432
3433         * config/mn10300/mn10300.md (fmasf4, fmssf4, fnmasf4, fnmssf4): Rename
3434         from fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4 respectively.  Use
3435         fma rtx_code.
3436
3437 2010-11-15  Richard Henderson  <rth@redhat.com>
3438
3439         * config/frv/frv.md (fmasf4, fmssf4): Rename from *muladdsf4
3440         and *mulsubsf4 respectively.  Use fma rtx_code.
3441
3442 2010-11-15  Joseph Myers  <joseph@codesourcery.com>
3443
3444         * gcc.c: Include "vec.h".
3445         (argbuf): Make into a VEC.
3446         (argbuf_length, argbuf_index): Remove.
3447         (alloc_args, clear_args, store_arg, execute, insert_wrapper,
3448         do_spec, do_self_spec, do_spec_1, eval_spec_function, main,
3449         compare_debug_dump_opt_spec_function: Use VEC interfaces on argbuf.
3450         * Makefile.in (GCC_OBJS): Add vec.o and ggc-none.o.
3451         (gcc.o): Depend on $(VEC_H).
3452
3453 2010-11-15  Richard Henderson  <rth@redhat.com>
3454
3455         * loop-unroll.c (analyze_insn_to_expand_var): Accept accumulation
3456         via FMA if unsafe math.
3457         (insert_var_expansion_initialization): Handle FMA.
3458         (combine_var_copies_in_loop_exit): Likewise.
3459
3460 2010-11-15  Richard Henderson  <rth@redhat.com>
3461
3462         * config.gcc [ia64-*] (extra_options): Add fused-madd.opt.
3463         * config/ia64/ia64.opt: Remove mfused-madd.
3464         * config/ia64/ia64.c (ia64_rtx_costs): Handle FP MULT, PLUS, FMA.
3465         * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_FUSED_MADD.
3466         * config/ia64/vms64.h (TARGET_DEFAULT): Likewise.
3467         * config/ia64/ia64.h (TARGET_DEFAULT): Likewise.
3468         * config/ia64/hpux.h (TARGET_DEFAULT): Likewise.
3469         * config/ia64/vect.md (addv2sf3, subv2sf3): Generate FMA.
3470         (*addv2sf3_1, *addv2sf3_2, *subv2sf3_1, *subv2sf3_2): Remove.
3471         (fmav2sf4): Rename from fpma; use FMA code.
3472         (fmsv2sf4): Rename from fpms; use FMA code.
3473         (fnmav2sf4): Rename from *fpnma; use FMA code.
3474         * config/ia64/ia64.md (MODE_SDF): New iterator.
3475         (suffix): New mode attribute.
3476         (*maddsf4, *msubsf4, *nmaddsf4): Remove.
3477         (fmssf4): Rename from *fmssf4.
3478         (fnmasf4): Rename from *nfmasf4.
3479         (*madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc): Remove.
3480         (*nmadddf4, *nmadddf4_truncsf): Remove.
3481         (fmsdf4): Rename from *fmsdf4.
3482         (fnmadf4): Rename from *nfmadf4.
3483         (*fmadf_trunc_sf, *fmsdf_trunc_sf, *fnmadf_trunc_sf): New.
3484         (*maddxf4, *maddxf4_truncsf, *maddxf4_truncdf): Remove.
3485         (*msubxf4, *msubxf4_truncsf, *msubxf4_truncdf): Remove.
3486         (*nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf): Remove.
3487         (fmsxf4): Rename from *fmsxf4.
3488         (fnmaxf4): Rename from *nfmaxf4.
3489         (*fmaxf_trunc_<MODE_SDF>, *fmsxf_trunc_<MODE_SDF>): New.
3490         (*fnmaxf_trunc_<MODE_SDF>): New.
3491
3492 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
3493
3494         PR tree-optimization/46461
3495         * tree-ssa-forwprop.c (simplify_builtin_call): Ensure ptr1 is
3496         a gimple val.
3497
3498 2010-11-15  Ian Lance Taylor  <iant@google.com>
3499
3500         * godump.c: New file.
3501         * common.opt (fdump-go-spec=): New option.
3502         * tree.h: Add comments for TYPE_SYMTAB_ADDRESS and friends.
3503         (TYPE_SYMTAB_IS_ADDRESS, TYPE_SYMTAB_IS_POINTER): Define.
3504         (TYPE_SYMTAB_IS_DIE): Define.
3505         (struct tree_type): Change GTY for symtab field to use
3506         TYPE_SYMTAB_IS_ADDRESS and friends and to use a debug_hooks field
3507         to pick the union field.
3508         * debug.h (struct gcc_debug_hooks): Add tree_type_symtab_field.
3509         (dump_go_spec_init): Declare.
3510         * toplev.c (process_options): Handle flag_dump_go_spec.
3511         * debug.c: Include "tree.h".
3512         (do_nothing_debug_hooks): Set tree_type_symtab_field.
3513         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
3514         * dbxout.c (dbx_debug_hooks): Likewise.
3515         (xcoff_debug_hooks): Likewise.
3516         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
3517         * sdbout.c (sdb_debug_hooks): Likewise.  Do not define if
3518         SDB_DEBUGGING_INFO is not defined.
3519         * doc/invoke.texi (Option Summary): Mention -fdump-go-spec.
3520         (Overall Options): Document -fdump-go-spec.
3521         * Makefile.in (OBJS-common): Add godump.o.
3522         (debug.o): Add dependency on $(TREE_H).
3523         (godump.o): New target.
3524         (GTFILES): Add $(srcdir)/godump.c.
3525
3526 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
3527
3528         PR debug/46095
3529         * config/i386/i386.c (pro_epilogue_adjust_stack): Instead of
3530         marking r11 set RTX_FRAME_RELATED_P if offset is too large for
3531         style < 0, add REG_FRAME_RELATED_EXPR.
3532
3533         PR debug/46387
3534         * rtl.h (vt_equate_reg_base_value): New prototype.
3535         * alias.c (vt_equate_reg_base_value): New function.
3536         * var-tracking.c (vt_init_cfa_base): Use it.
3537
3538 2010-11-15  Jan Hubicka  <jh@suse.cz>
3539             Diego Novillo  <dnovillo@google.com>
3540
3541         PR lto/41528
3542         * doc/lto.texi: Add.
3543         * doc/gccint.texi: Add reference to lto.texi.
3544         * doc/invoke.texi: Update user documentation for LTO.
3545         Move internal flags to lto.texi
3546
3547 2010-11-15  Nicola Pero  <nicola.pero@meta-innovation.com>
3548
3549         * c-typeck.c (build_unary_op): Use
3550         objc_build_incr_expr_for_property_ref to build the pre/post
3551         increment/decrement of an Objective-C property ref, and skip the
3552         lvalue_or_else check in that case.
3553
3554 2010-11-15  Martin Jambor  <mjambor@suse.cz>
3555
3556         PR tree-optimization/46349
3557         * tree-sra.c (contains_bitfld_comp_ref_p): New function.
3558         (contains_vce_or_bfcref_p): Likewise.
3559         (sra_modify_assign): Use them.
3560
3561 2010-11-15  Richard Guenther  <rguenther@suse.de>
3562
3563         PR tree-optimization/46467
3564         * tree-ssa-structalias.c (do_structure_copy): Properly treat
3565         variables without subvars.
3566
3567 2010-11-15  Hariharan Sandanagobalane  <hariharan@picochip.com>
3568
3569         * config/picochip/picochip.c (file header): Picochip name change.
3570         * config/picochip/picochip.md (file header): Likewise.
3571         * config/picochip/predicates.md (file header): Likewise.
3572         * config/picochip/dfa_space.md (file header): Likewise.
3573         * config/picochip/dfa_speed.md (file header): Likewise.
3574         * config/picochip/picochip.h(file header): Likewise.
3575         * config/picochip/constraints.md (file header): Likewise.
3576         * config/picochip/picochip-protos.h (file header): Likewise.
3577         * config/picochip/libgccExtras/setjmp.asm (file header): Likewise.
3578         * config/picochip/libgccExtras/divmodsi4.asm (file header): Likewise.
3579         * config/picochip/libgccExtras/ashlsi3.asm (file header): Likewise.
3580         * config/picochip/libgccExtras/longjmp.asm (file header): Likewise.
3581         * config/picochip/libgccExtras/ashlsi3.c (file header): Likewise.
3582         * config/picochip/libgccExtras/popcounthi2.asm (file header): Likewise.
3583         * config/picochip/libgccExtras/parityhi2.asm (file header): Likewise.
3584         * config/picochip/libgccExtras/udivmodhi4.asm (file header): Likewise.
3585         * config/picochip/libgccExtras/ashrsi3.asm (file header): Likewise.
3586         * config/picochip/libgccExtras/ashrsi3.c (file header): Likewise.
3587         * config/picochip/libgccExtras/ucmpsi2.asm (file header): Likewise.
3588         * config/picochip/libgccExtras/divmodhi4.asm (file header): Likewise.
3589         * config/picochip/libgccExtras/lshrsi3.asm (file header): Likewise.
3590         * config/picochip/libgccExtras/subdi3.asm (file header): Likewise.
3591
3592 2010-11-15  Richard Guenther  <rguenther@suse.de>
3593
3594         PR bootstrap/46474
3595         * tree-ssa-math-opts.c (convert_mult_to_fma): Disregard debug stmts.
3596
3597 2010-11-15  Nick Clifton  <nickc@redhat.com>
3598
3599         * config/stormy16/stormy16.c (direct_return): Do not generate a
3600         direct return for interrupt handlers.
3601
3602 2010-11-15  Joern Rennecke  <amylaar@spamcop.net>
3603
3604         * Makefile.in (tm.texi): Replace with rule for:
3605         ($(srcdir)/doc/tm.texi).
3606         (s-tm-texi): Depend on $(srcdir)/doc/../doc/tm.texi instead of on
3607         $(srcdir)/doc/tm.texi .
3608         (TEXI_GCCINT_FILES): Depend on $(srcdir)/doc/tm.texi instead of on
3609         tm.texi .
3610
3611         PR target/46427
3612         * config/m32r/m32r.c: Remove unused variables frame_size and insn.
3613
3614         PR bootstrap/45444
3615         * config/arm/arm.c (locate_neon_builtin_icode): Initialize key.
3616         (arm_output_asm_insn) Add ATTRIBUTE_PRINTF_4.
3617
3618         PR target/46432
3619         * config/v850/v850.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
3620
3621 2010-11-15  Richard Guenther  <rguenther@suse.de>
3622
3623         PR lto/44150
3624         * lto-opts.c (lto_write_options): Write -fexceptions even if
3625         not set by the user.
3626
3627 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
3628
3629         PR c/46462
3630         * c-decl.c (declspecs_add_type): Make variables with error types
3631         integers.
3632         * c-parser.c (c_parser_next_tokens_start_declaration): Two IDs
3633         do not start a declaration before an Objective-C foreach.
3634         (c_parser_declaration_or_fndef): Improve recovery after unknown
3635         type name.
3636         (c_parser_for_statement): Hoist entrance of "foreach context"
3637         before ifs, add corresponding reset where it was missing.  Do
3638         not set objc_could_be_foreach_context for C.
3639
3640 2010-11-14  Eric Botcazou  <ebotcazou@adacore.com>
3641
3642         PR tree-optimization/45722
3643         * tree-sra.c (build_ref_for_model): Always build a COMPONENT_REF if
3644         this is a reference to a component.
3645         * ipa-prop.c (ipa_get_member_ptr_load_param): Accept COMPONENT_REF.
3646         (ipa_note_param_call): Adjust comment.
3647
3648 2010-11-14  Richard Sandiford  <rdsandiford@googlemail.com>
3649
3650         * config/mips/mips.c (machine_function): Remove
3651         initialized_mips16_gp_pseudo_p.
3652         (mips16_gp_pseudo_reg): Use cfun->machine->mips16_gp_pseudo_rtx to
3653         detect whether a pseudo has already been created.  Unconditionally
3654         create a new one if not.
3655         (mips_pic_base_register): Only call mips16_gp_pseudo_reg when
3656         expanding to rtl.  Create a new pseudo otherwise, if allowed.
3657
3658 2010-11-13  Richard Earnshaw  <rearnsha@arm.com>
3659
3660         PR target/43440
3661         * tm.texi.in (OVERLAPPING_REGISTER_NAMES): Document new macro.
3662         * tm.texi: Regenerated.
3663         * output.h (decode_reg_name_and_count): Declare.
3664         * varasm.c (decode_reg_name_and_count): New function.
3665         (decode_reg_name): Reimplement using decode_reg_name_and_count.
3666         * reginfo.c (fix_register): Use decode_reg_name_and_count and
3667         iterate over all regs used.
3668         * stmt.c (expand_asm_operands): Likewise.
3669         * arm/aout.h (OVERLAPPING_REGISTER_NAMES): Define.
3670         (ADDITIONAL_REGISTER_NAMES): Remove aliases that overlap
3671         multiple machine registers.
3672
3673 2010-11-13  Eric Botcazou  <ebotcazou@adacore.com>
3674
3675         * stor-layout.c (place_union_field): Do not put location information
3676         on offset expressions.
3677         (place_field): Likewise.
3678         (finalize_record_size): Likewise on size expressions.
3679         (finalize_type_size): Likewise.
3680         (layout_type): Likewise.
3681
3682 2010-11-13  Alexandre Oliva  <aoliva@redhat.com>
3683
3684         PR debug/42889
3685         * df-scan.c (df_insn_rescan): Don't mark BBs upon debug insns.
3686         * df-core.c (df_set_bb_dirty_nonrl): Remove.
3687         * df.h (df_set_bb_dirty_nonlr): Likewise.
3688
3689 2010-11-13  Uros Bizjak  <ubizjak@gmail.com>
3690
3691         * config/mips/mips.md (call_internal): Pass curr_insn to
3692         mips_split_call.
3693         (call_internal_direct): Ditto.
3694         (call_value_internal): Ditto.
3695         (call_value_internal_direct): Ditto.
3696         (call_value_multiple_internal): Ditto.
3697         * config/mips/mips.c (mips_split_call): Do not copy
3698         CALL_INSN_FUNCTION_USAGE here.
3699
3700 2010-11-13  Mingming Sun  <mingm.sun@gmail.com>
3701
3702         * doc/invoke.texi (MIPS Options): Add loongson3a processor.
3703         * config/mips/mips.md (define_attr "cpu"): Add loongson_3a.
3704         (define_insn "prefetch"): Add TARGET_LOONGSON_3A.
3705         * config/mips/mips.h (TARGET_LOONGSON_3A): Define.
3706         (TUNE_LOONGSON_3A): Define.
3707         (TARGET_LOONGSON_VECTORS): Add TARGET_LOONGSON_3A.
3708         (MIPS_ISA_LEVEL_SPEC): Add loongson3a.
3709         * config/mips/mips.c (mips_cpu_info_table): Add loongson3a.
3710         (mips_issue_rate): Add PROCESSOR_LOONGSON_3A.
3711         (mips_rtx_cost_data): Add Loongson-3A.
3712
3713 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
3714
3715         * config/darwin.h (LINK_COMMAND_SPEC_A): Update for changes to lto
3716         switches.
3717
3718 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
3719
3720         * dwarf2out.c (macinfo_entry): New struct.
3721         (output_comp_unit): Emit the section start label here and flag that we
3722         will emit an info section.
3723         (dwarf2out_start_source_file): Save data in a macinfo entry rather than
3724         emitting directly.
3725         (dwarf2out_end_source_file): Likewise.
3726         (dwarf2out_define): Likewise.
3727         (dwarf2out_undef): Likewise.
3728         (output_macinfo): New.
3729         (dwarf2out_init): Do not emit debug section switches here, allocate a
3730         vec for macinfo, when required.
3731         (dwarf2out_finish): First switch to debug_abbrev_section here.
3732         debug_line_section,  debug_macinfo_section, Likewise.
3733         Check that the pubtypes table has at least one unpruned entry before
3734         trying to emit it.
3735
3736 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
3737
3738         PR c/20385
3739         * c-parser.c (c_parser_next_token_starts_declaration): Rename to...
3740         (c_parser_next_tokens_start_declaration): ... this.  Handle 2nd
3741         token lookahead.
3742         (c_parser_compound_statement_nostart, c_parser_label,
3743         c_parser_for_statement, c_parser_omp_for_loop): Adjust calls.
3744         (c_parser_declaration_or_fndef): Detect the case now matched by
3745         c_parser_next_tokens_start_declaration, give error and correct it.
3746
3747 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
3748
3749         * c-tree.h (enum c_typespec_kind): Add ctsk_none.
3750         (struct c_declspecs): Replace tagdef_seen_p and type_seen_p
3751         with typespec_kind.
3752         * c-decl.c (build_null_declspecs): Initialize typespec_kind.
3753         (shadow_tag_warned, check_compound_literal_type): Adjust
3754         uses of tag_defined_p.
3755         (declspecs_add_type): Set typespec_kind.
3756         * c-parser.c (c_parser_declaration_or_fndef,
3757         c_parser_declspecs, c_parser_struct_declaration,
3758         c_parser_parameter_declaration, c_parser_type_name,
3759         c_parser_objc_diagnose_bad_element_prefix): Adjust uses
3760         of type_seen_p.
3761         * c-typeck.c (c_cast_expr): Use typespec_kind instead of
3762         tag_defined_p, pass ctsk_firstref through.
3763
3764 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
3765
3766         * c-format.c (enum format_specifier_kind, kind_descriptions): New.
3767         (struct format_wanted_type): Replace field "name" with "kind", add
3768         "format_start" and "format_length".
3769         (check_format_info_main): Fill in new fields.  Fill in
3770         FORMAT_WANTED_TYPES even for missing arguments.  Move checks
3771         after the final NUL outside the while loop.  Do not include
3772         width and precision modifiers in the format_start/format_length
3773         of the main format.
3774         (check_format_types): Remove FORMAT_START and FORMAT_LENGTH
3775         arguments.  Compute WANTED_TYPE first so that format_type_warning
3776         can be called for missing arguments.  Adjust calls to
3777         format_type_warning.
3778         (format_type_warning): Fetch as much information as possible
3779         from format_wanted_type.  Adjust printing now that every
3780         warning has a "descr", as well as for missing argument warnings
3781         and to include % sign for format specifiers.
3782
3783 2010-11-12  Alexander Monakov  <amonakov@ispras.ru>
3784
3785         PR rtl-optimization/46204
3786         * sel-sched-ir.c (maybe_tidy_empty_bb): Remove second argument.
3787         Update all callers.  Do not recompute topological order.  Adjust
3788         fallthrough edges following a degenerate conditional jump.
3789
3790 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
3791
3792         * opts-common.c (control_warning_option): New.
3793         * opts.c (set_default_handlers): New.
3794         (decode_options): Use set_default_handlers and
3795         control_warning_option.
3796         (common_handle_option): Update call to enable_warning_as_error.
3797         (enable_warning_as_error): Take gcc_options parameters.  Use
3798         control_warning_option.
3799         * opts.h (set_default_handlers, control_warning_option): Declare.
3800
3801 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
3802
3803         * Makefile.in (OPTS_H): Define.
3804         (c-decl.o, c-family/c-common.o, c-family/c-opts.o,
3805         c-family/c-pch.o, c-family/c-pragma.o, gcc.o, gccspec.o,
3806         cppspec.o, options.o, gcc-options.o, lto-opts.o, opts.o,
3807         opts-common.o, toplev.o, passes.o, matrix-reorg.o,
3808         ipa-struct-reorg.o, PLUGIN_HEADERS): Use $(OPTS_H).
3809         * gcc.c (driver_handle_option): Take location_t parameter.
3810         (process_command, do_self_spec): Update calls to
3811         read_cmdline_option.
3812         * langhooks-def.h (lhd_handle_option): Take location_t parameter.
3813         * langhooks.c (lhd_handle_option): Take location_t parameter.
3814         * langhooks.h (handle_option): Take location_t parameter.
3815         * lto-opts.c (lto_reissue_options): Update call to set_option.
3816         * opts-common.c (handle_option): Make static.  Take location_t
3817         parameter and pass it to other functions.
3818         (handle_generated_option): Take location_t parameter and pass it
3819         to other functions.
3820         (read_cmdline_option): Take location_t parameter and pass it to
3821         other functions.  Use warning_at and error_at.
3822         (set_option): Take location_t parameter and pass it to other
3823         functions.
3824         * opts.c (common_handle_option): Take location_t parameter and
3825         pass it to other functions.
3826         (enable_warning_as_error): Make static.  Take location_t parameter
3827         and pass it to other functions.
3828         (lang_handle_option): Take location_t parameter and pass it to
3829         other functions.
3830         (target_handle_option): Take location_t parameter.
3831         (read_cmdline_options, maybe_default_option,
3832         maybe_default_options, default_options_optimization,
3833         decode_options): Take location_t parameter and pass it to other
3834         functions.
3835         * opts.h: Include input.h.
3836         (struct cl_option_handler_func, decode_options, set_option,
3837         handle_generated_option, read_cmdline_option): Take location_t
3838         parameters.
3839         (handle_option, enable_warning_as_error): Remove.
3840         * toplev.c (toplev_main): Update call to decode_options.
3841
3842 2010-11-12  Tobias Grosser  <grosser@fim.uni-passau.de>
3843
3844         * graphite-cloog-util.c (oppose_constraint,
3845         cloog_matrix_to_ppl_constraint,
3846         new_Constraint_System_from_Cloog_Matrix): Explicitly cast to int as
3847         CLooG isl uses unsigned integers.  This triggered a warning.
3848
3849 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
3850
3851         PR target/46438
3852         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use LCT_NORMAL.
3853         (xtensa_setup_frame_addresses, xtensa_trampoline_init): Likewise.
3854         (xtensa_function_arg_1): De-constify cum.
3855         (xtensa_expand_prologue): Use add_reg_note.
3856
3857         PR target/46435
3858         * config/cris/cris.c (saved_regs_mentioned): Delete.
3859         (cris_reload_address_legitimized): Cast itype to enum reload_type.
3860         Remove unused variable op0p.
3861         (cris_rtx_costs): Cast argument 2 to rtx_cost to enum rtx_code.
3862         (cris_emit_movem_store): Use add_reg_note.
3863
3864         PR bootstrap/46456
3865         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Split assert.
3866
3867 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
3868
3869         * function.c (expand_function_end): Set the locator of the prologue on
3870         the stack checking insns.
3871
3872 2010-11-12  Richard Henderson  <rth@redhat.com>
3873
3874         * config.gcc [xtensa] (extra_options): Add fused-madd.opt.
3875         * config/xtensa/xtensa.opt (mfused-madd): Remove.
3876         * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
3877         MASK_FUSED_MADD.
3878         * config/xtensa/xtensa.md (fmasf4): Rename from muladdsf3; use fma.
3879         (fnmasf4): Rename from mulsubsf3; use fma.
3880
3881 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
3882             Richard Henderson  <rth@redhat.com>
3883
3884         PR target/46428
3885         * config/moxie/moxie.c (moxie_expand_prologue): Remove unused variables.
3886         * config/moxie/moxie.h (HARD_REGNO_OK_FOR_BASE_P): Use unsigned
3887         comparison.
3888
3889 2010-11-12  Pat Haugen  <pthaugen@us.ibm.com>
3890
3891         * opts-common.c (decode_cmdline_option): Initialize separate_args.
3892
3893 2010-11-12  Jan Hubicka  <jh@suse.cz>
3894
3895         * doc/invoke.texi (early-inlining-insns): Update default.
3896         * params.def (early-inlining-insns): Default to 10.
3897
3898 2010-11-12  Olivier Hainque  <hainque@adacore.com>
3899
3900         * config/rs6000/aix.h: #undef TARGET_AIX_OS before #define.
3901
3902 2010-11-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3903
3904         * config/mips/iris6.h [!IRIX_USING_GNU_LD]
3905         (SUPPORTS_INIT_PRIORITY): Define.
3906
3907 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
3908
3909         PR target/46430
3910         * config/avr/avr-protos.h (avr_return_addr_rtx): Update prototype.
3911         * config/avr/driver-avr.c (avr_device_to_arch): Always return value.
3912         (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
3913         (avr_device_to_devicelib): Likewise.
3914         * config/avr/avr.md (zero_extendqihi2): Put variable declarations
3915         into block.
3916         (zero_extendqisi2, zero_extendhisi2, zero_extendqidi2): Likewise.
3917         (zero_extendhidi2, zero_extendsidi2): Likewise.
3918         * config/avr/avr.c (avr_num_arg_regs): Constify type.
3919         (avr_return_addr_rtx): De-constify tem.
3920         (avr_rotate_bytes): Move declarations to start of block.
3921         Don't use variable length array.  Put nested if/else into block.
3922
3923         PR rtl-optimization/46433
3924         * var-tracking.c: Include tm_p.h .
3925
3926         PR bootstrap/44756
3927         PR build/44767
3928         * doc/tm.texi.in (LOCAL_ALIGNMENT): State that the type, if any,
3929         should be unsigned.
3930         (STACK_SLOT_ALIGNMENT, LOCAL_DECL_ALIGNMENT, PUSH_ROUNDING): Likewise.
3931         * doc/tm.texi: Regenerate.
3932
3933         PR target/46412
3934         * config/bfin/bfin-protos.h (bfin_local_alignment): Update prototype.
3935         * config/bfin/bfin.c: Include sel-sched.h .
3936         (bfin_cpus): Use BFIN_CPU_UNKNOWN for last initializer element.
3937         (expand_interrupt_handler_prologue): Remove unused variable insn.
3938         (bfin_load_pic_reg): Likewise.
3939         (bfin_rtx_costs): Make code / outer_code variables of type
3940         enum rtx_code, copied from re-named parameters.
3941         (bfin_local_alignment): Change align argument and return type
3942         to unsigned.
3943         (bfin_adjust_cost): Remove unused variable insn_type.
3944         Declare variables at start of block.
3945         (struct loop_info): Rename to...
3946         (struct loop_info_d).
3947         (workaround_rts_anomaly): Change type of icode to int.
3948         (harmless_null_pointer_p): Cast REGNO (..) to int before comparison
3949         with int-typed variable.
3950         (note_np_check_stores): Likewise.
3951         (trapping_loads_p): Remove unused variable pat.
3952         (bfin_expand_binop_builtin): Use expand_normal.
3953         (bfin_expand_unop_builtin): Likewise.
3954         (bfin_expand_builtin): Likewise.  Set tmode before use.
3955
3956         PR middle-end/44769
3957         * final.c (split_double): Don't use BITS_PER_WORD directly in
3958         shift count.
3959
3960         PR target/46431
3961         * config/fr30/fr30.md (*movsf_constant_store): Remove duplicated
3962         assignment.
3963
3964         PR target/46450
3965         * config/stormy16/stormy16.c (xstormy16_expand_prologue):
3966         Use add_reg_note.
3967         (xstormy16_function_arg): Dereference cum.
3968         (xstormy16_expand_builtin): Use expand_normal.
3969         Change type of omode to enum machine_mode.
3970         (combine_bnp): Rename and to and_insn.
3971
3972         PR target/46437
3973         * config/mcore/mcore.c (layout_mcore_frame): Remove unused variable
3974         localreg.
3975
3976 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
3977
3978         PR debug/46375
3979         * emit-rtl.c (remove_insn): Do not mark BBs upon debug insns.
3980
3981 2010-11-11  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
3982
3983         PR lto/46376
3984         * lto-symtab.c (lto_symtab_resolve_replaceable_p): Use DECL_ONE_ONLY.
3985
3986 2010-11-11  Nathan Froyd  <froydnj@codesourcery.com>
3987
3988         PR c/44782
3989         * common.opt (fmax-errors=): New option.
3990         * opts.c (common_handle_option) [OPT_fmax_errors_]: Handle it.
3991         * diagnostic.h (struct diagnostic_context): Add max_errors field.
3992         * diagnostic.c (diagnostic_initialize): Initialize it.
3993         (diagnostic_action_after_output): Exit if more than max_errors
3994         have been output.
3995         * doc/invoke.texi (Warning Options): Add -fmax-errors.
3996         (-fmax-errors): Document.
3997
3998 2010-11-11  Richard Henderson  <rth@redhat.com>
3999
4000         * optabs.c (init_optabs): Init {fma,fms,fnma,fnms}_optab properly.
4001
4002 2010-11-11  Richard Henderson  <rth@redhat.com>
4003
4004         * config/fused-madd.opt: New file.
4005         * config.gcc [i386-*, x86_64-*] (extra_options): Use it.
4006         * config/i386/i386.c (ix86_extra_costs): Handle FMA.
4007         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
4008         * config/i386/i386.opt (mfused-madd): Remove.
4009         * config/i386/sse.md (split_fma): Remove.
4010         (split_fms, split_fnma, split_fnms): Remove.
4011
4012 2010-11-12  Jakub Jelinek  <jakub@redhat.com>
4013
4014         PR target/46088
4015         * config/i386/i386.md (*ashl<mode>3_cconly,
4016         *<shiftrt_insn><mode>3_cconly): Don't use ix86_binary_operator_ok,
4017         change nonimmediate_operand predicate to register_operand.
4018
4019 2010-11-11  Paolo Bonzini  <bonzini@gnu.org>
4020
4021         * Makefile.in (gengtype-lex.c): Include bconfig.h first.
4022
4023 2010-11-11  Jan Hubicka  <jh@suse.cz>
4024
4025         * opts.c (finish_options): Do not error on -flto-partition alone.
4026
4027         * doc/invoke.texi (-fwhopr): Merge into -flto section.
4028         (-flto-partition): Document none.
4029         * gcc.c (LINK_COMMAND_SPEC): Remove -fwhopr.
4030         * lto-wrapper.c: Update comment.
4031         (run_gcc): Update LTO option parsing.
4032         * opts.c (finish_options): add support -flto-partition=none
4033         (common_handle_option): Remove fwhopr.
4034         * common.opt: Turn fwhopr into flto.
4035         * collect2.c (main): Update option handling.
4036         * cgraphunit.c (cgraph_decide_is_function_needed): Remove flag_whopr.
4037         * ipa-split.c (execute_split_functions): Remove flag_whopr.
4038         * ipa.c (function_and_variable_visibility): Remove flag_whopr.
4039         * ipa-prop.c (ipa_compute_jump_functions): Remove flag_whopr.
4040         * varpool.c (decide_is_variable_needed): Remove flag_whopr.
4041
4042 2010-11-11  Jan Hubicka  <jh@suse.cz>
4043
4044         PR tree-optimize/40436
4045         * ipa-inline.c (likely_eliminated_by_inlining_p): Rename to ...
4046         (eliminated_by_inlining_prob): ... this one; return 50% probability
4047         for SRA.
4048         (estimate_function_body_sizes): Update use of
4049         eliminated_by_inlining_prob; estimate static function size
4050         for 2 instructions.
4051
4052 2010-11-11  Joern Rennecke  <amylaar@spamcop.net>
4053
4054         PR target/44749
4055         * config/mep/mep-protos.h (mep_legitimize_reload_address): Always
4056         declare.  Change type of argument four to type int.
4057         (mep_secondary_input_reload_class): Returns enum reg_class.
4058         (mep_secondary_output_reload_class): Likewise.
4059         (mep_function_value): Change types of arguments to cont_tree.
4060         * config/mep/mep.c (mep_legitimize_reload_address): Change type of
4061         argument four to type int.
4062         (mep_secondary_input_reload_class): Returns enum reg_class.
4063         (mep_secondary_output_reload_class): Likewise.
4064         (mep_function_value): Change types of arguments to cont_tree.
4065         * config/mep/mep.h (REGNO_REG_CLASS): Cast return value of
4066         mep_regno_reg_class to enum reg_class.
4067
4068 2010-11-11  Richard Henderson  <rth@redhat.com>
4069
4070         * tree-ssa-math-opts.c (convert_mult_to_fma): Do not verify
4071         that the target has the exact fma operation that we matched.
4072
4073 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
4074
4075         * reginfo.c (fix_register): Avoid inserting English word in
4076         diagnostic sentence.  Use %qs for quoting and %'.
4077
4078 2010-11-11  H.J. Lu  <hongjiu.lu@intel.com>
4079
4080         * config/i386/driver-i386.c (host_detect_local_cpu): Support
4081         Intel processor family 6, model 0x2c.
4082
4083 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
4084
4085         * opts.c (warning_as_error_callback,
4086         register_warning_as_error_callback): Remove.
4087         (enable_warning_as_error): Don't use warning_as_error_callback.
4088         * opts.h (register_warning_as_error_callback): Remove.
4089
4090 2010-11-11  Richard Henderson  <rth@redhat.com>
4091
4092         * tree-ssa-math-opts.c (convert_mult_to_fma): Handle a NEGATE_EXPR
4093         in between the MULT and the PLUS/MINUS.
4094
4095 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
4096
4097         PR middle-end/46388
4098         * expr.c (expand_assignment): If to_rtx is a VOIDmode MEM, use
4099         BLKmode mode for it.
4100         (expand_expr_real_1): Similarly for op0.
4101
4102 2010-11-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4103
4104         * doc/sourcebuild.texi (LTO Testing, dg-suppress-ld-options):
4105         Document optional target selector.
4106
4107 2010-11-11  Dave Korn  <dave.korn.cygwin@gmail.com>
4108
4109         * lto-streamer-out.c (write_symbol): Use int_size_in_bytes rather than
4110         assembling high and low parts of size if not using 32-bit HWINT; else
4111         use DECL_SIZE_UNITS, not DECL_SIZE.
4112
4113 2010-11-11  Martin Jambor  <mjambor@suse.cz>
4114
4115         PR tree-optimization/46383
4116         * ipa-prop.c (compute_complex_assign_jump_func): Ignore negative
4117         offsets.
4118         (compute_complex_ancestor_jump_func): Likewise.
4119         * tree.c (get_binfo_at_offset): Return NULL_TREE if offset is negative.
4120
4121 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
4122
4123         PR debug/46150
4124         * tree-ssa-loop-ivopts.c (htab_inv_expr_eq): Don't return
4125         true if expr1->hash != expr2->hash.
4126
4127 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
4128
4129         * cfgloop.c (verify_loop_structure): Use %' in diagnostics.  Start
4130         diagnostics with lowercase letters.
4131         * cgraphunit.c (verify_cgraph_node): Start diagnostics with
4132         lowercase letters.
4133         * collect2.c (maybe_run_lto_and_relink): Remove trailing '.' from
4134         diagnostic.
4135         * config/alpha/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
4136         * config/arm/arm.c (arm_get_pcs_model): Start diagnostics with
4137         lowercase letters.
4138         * config/arm/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
4139         Remove trailing ' ' from diagnostic.
4140         * config/avr/avr.c (print_operand_address): Start diagnostic with
4141         a lowercase letter and remove trailing '.'.
4142         * config/avr/avr.opt (mpmem-wrap-around): Fix typo in help text.
4143         * config/bfin/bfin.c (bfin_option_override): Start diagnostics
4144         with lowercase letters.  Use %' in diagnostics.  Remove trailing
4145         '.' from diagnostics.
4146         (bfin_handle_longcall_attribute): Use %' in diagnostic.
4147         * config/cris/cris.c (cris_split_movdx,
4148         cris_expand_pic_call_address): Start diagnostics with lowercase
4149         letters.
4150         (cris_asm_output_label_ref): Use %' in diagnostic.
4151         * config/cris/cris.h (ASM_SPEC): Start diagnostic with a lowercase
4152         letter.
4153         * config/crx/crx.h (FUNCTION_PROFILER): Start diagnostic with a
4154         lowercase letter.
4155         * config/darwin-c.c (version_as_macro): Start diagnostic with a
4156         lowercase letter.
4157         * config/darwin-driver.c (darwin_default_min_version): Use %' in
4158         diagnostic.
4159         * config/host-darwin.c (darwin_gt_pch_use_address): Use %' in
4160         diagnostic.
4161         * config/i386/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
4162         * config/i386/host-cygwin.c (cygwin_gt_pch_get_address): Use %' in
4163         diagnostics.
4164         * config/i386/i386.c (ix86_option_override_internal): Write
4165         diagnostic as a single sentence without trailing '.'.  Use %' in
4166         diagnostics.
4167         (ix86_function_sseregparm, classify_argument): Start diagnostics
4168         with lowercase letters.
4169         (ix86_expand_prologue): Use %' in diagnostic.
4170         * config/i386/i386.h (CC1_CPU_SPEC_1): Remove trailing '.' from
4171         diagnostic.
4172         * config/i386/nwld.h (LINK_SPEC): Start diagnostic with a
4173         lowercase letter.
4174         * config/i386/winnt.c (i386_pe_determine_dllimport_p): Use %' in
4175         diagnostic.
4176         * config/ia64/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
4177         * config/ia64/ia64.opt (msched-max-memory-insns-hard-limit): Avoid
4178         '`' in help text.
4179         * config/lm32/lm32.c (lm32_print_operand): Start diagnostic with a
4180         lowercase letter.
4181         * config/mep/mep.c (mep_validate_vliw): Start diagnostics with
4182         lowercase letters.
4183         * config/microblaze/microblaze.c (microblaze_handle_option):
4184         Remove trailing '.' from diagnostic.
4185         (print_operand): Start diagnostic with a lowercase letter.
4186         * config/pa/pa-hpux10.h (LINK_SPEC): Start diagnostics with
4187         lowercase letters.  Avoid '`' in diagnostics.
4188         * config/pa/pa-hpux11.h (LINK_SPEC): Start diagnostics with
4189         lowercase letters.  Avoid '`' in diagnostics.
4190         * config/pa/pa64-hpux.h (LINK_SPEC): Start diagnostics with
4191         lowercase letters.  Avoid '`' in diagnostics.
4192         * config/picochip/picochip.c (picochip_option_override,
4193         picochip_emit_save_register, picochip_function_arg,
4194         picochip_output_label, picochip_output_internal_label,
4195         picochip_asm_output_opcode, picochip_output_cbranch,
4196         picochip_output_compare, picochip_output_branch,
4197         picochip_get_vliw_alu_id): Remove trailing '.' and '\n' from
4198         diagnostics. Start diagnostics with lowercase letters.  Use %' in
4199         diagnostics.
4200         * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
4201         "SPE" capitalization.  Start diagnostic with a lowercase letter.
4202         (rs6000_handle_option): Start diagnostics with lowercase letters.
4203         (def_builtin): Remove trailing '.' from diagnostic.
4204         (rs6000_savres_routine_name): Start diagnostic with a lowercase
4205         letter.
4206         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Avoid '`' in
4207         diagnostic.
4208         * config/rx/rx.c (rx_handle_option): Start diagnostic with a
4209         lowercase letter.
4210         * config/s390/s390.c (s390_option_override) Start diagnostics with
4211         lowercase letters.  Use %' in diagnostic.
4212         * config/sh/sh.c (sh_output_mi_thunk): Start diagnostics with
4213         lowercase letters.
4214         * config/sh/symbian-base.c (sh_symbian_mark_dllimport): Use %' in
4215         diagnostic.
4216         * config/sh/symbian-c.c (sh_symbian_is_dllimported): Use %' in
4217         diagnostic.
4218         * config/sh/symbian-cxx.c (sh_symbian_is_dllimported): Use %' in
4219         diagnostic.
4220         * config/sparc/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
4221         * config/spu/spu.c (spu_option_override): Start diagnostics with
4222         lowercase letters.  Use %qs for quoting in diagnostics.
4223         (spu_check_builtin_parm): Remove trailing '.' from diagnostics.
4224         Use %wd instead of HOST_WIDE_INT_PRINT_DEC in diagnostic .
4225         * config/v850/v850.c (construct_save_jarl): Remove trailing '\n'
4226         from diagnostic.
4227         * convert.c (convert_to_integer, convert_to_vector): Use %' in
4228         diagnostics.
4229         * dbgcnt.c (dbg_cnt_process_opt): Start diagnostic with lowercase
4230         letter and use "cannot" spelling.
4231         * expmed.c (extract_fixed_bit_field): Start diagnostic with
4232         lowercase letter and format as a single sentence without '.'.
4233         * ggc-common.c (write_pch_globals, gt_pch_save, gt_pch_restore):
4234         Use %' in diagnostics.
4235         * ggc-page.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
4236         Use %' in diagnostics.
4237         * ggc-zone.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
4238         Use %' in diagnostics.
4239         * graph.c (clean_graph_dump_file): Use %' in diagnostic.
4240         * graphite-poly.c (graphite_read_scop_file): Start diagnostics
4241         with lowercase letters and remove tailing '.' and '\n'.
4242         * lto-cgraph.c (input_profile_summary): Start diagnostic with
4243         lowercase letter and remove trailing '.'.
4244         (input_cgraph): Start diagnostics with lowercase letters and
4245         remove trailing '\n'.
4246         * opts.c (finish_options, common_handle_option): Start diagnostics
4247         with lowercase letters and remove trailing '.'.  Fix typo in
4248         diagnostic.
4249         * passes.c (position_pass): Start diagnostic with lowercase letter.
4250         * plugin.c (add_new_plugin, parse_plugin_arg_opt,
4251         register_callback, try_init_one_plugin): Start diagnostics with
4252         lowercase letters.
4253         * reload1.c (spill_failure): Use %' in diagnostic.
4254         (gen_reload): Start diagnostic with a lowercase letter.
4255         * stor-layout.c (place_field): Start diagnostic with a lowercase
4256         letter.
4257         * toplev.c (open_auxiliary_file): Use %' in diagnostic.
4258         * tree-cfg.c (verify_expr, verify_types_in_gimple_reference,
4259         verify_gimple_call, verify_gimple_phi, verify_eh_throw_stmt_node):
4260         Start diagnostics with lowercase letters, remove trailing '.' and
4261         use %' in diagnostics.
4262         * tree-ssa.c (verify_def): Remove trailing '.' from diagnostic.
4263         (verify_ssa): Don't split diagnostic across two error calls.
4264         Spell out "number" and use %' in diagnostic.
4265         * value-prof.c (visit_hist, check_counter): Start diagnostics with
4266         lowercase letters.
4267
4268 2010-11-10  Uros Bizjak  <ubizjak@gmail.com>
4269
4270         PR middle-end/46419
4271         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Swap __hisi and __losi.
4272         (_mm_cvtpu16_ps): Ditto.
4273
4274 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
4275
4276         * common.opt (flag_excess_precision_cmdline, flag_generate_lto,
4277         warn_larger_than, larger_than_size, warn_frame_larger_than,
4278         frame_larger_than_size, flag_gen_aux_info, flag_shlib,
4279         default_visibility, flag_tls_default): New Variable declarations.
4280         (aux-info, auxbase, dumpbase, dumpdir, falign-functions=,
4281         falign-jumps=, falign-labels=, falign-loops=, o, v): Use Var.
4282         (v): Declare as Common and document here.
4283         * flags.h (default_visibility, flag_generate_lto,
4284         warn_larger_than, larger_than_size, warn_frame_larger_than,
4285         frame_larger_than_size, flag_gen_aux_info, flag_pedantic_errors,
4286         flag_shlib, flag_excess_precision_cmdline): Remove.
4287         (set_Wstrict_aliasing): Update prototype.
4288         * gcc.c (verbose_flag): Remove.
4289         (driver_handle_option): Add diagnostic_context parameter.  Don't
4290         handle OPT_v explicitly here.  Set verbose_flag to 1 rather than
4291         incrementing it.
4292         * opts-common.c (handle_option): Pass dc to handler.
4293         * opts.c (warn_larger_than, larger_than_size,
4294         warn_frame_larger_than, frame_larger_than_size,
4295         default_visibility): Remove.
4296         (common_handle_option): Add diagnostic_context parameter.
4297         (set_fast_math_flags, set_unsafe_math_optimizations_flags): Add
4298         gcc_options parameters.
4299         (lang_handle_option, target_handle_option, read_cmdline_options,
4300         decode_options): Add diagnostic_context parameters.
4301         (finish_options): Access option state through opts pointer where
4302         possible.
4303         (common_handle_option): Access option state through opts pointer
4304         where possible.  Do not set local static variable verbose.  Do not
4305         explicitly handle OPT_v, OPT_Wstrict_aliasing_,
4306         OPT_Wstrict_overflow_, OPT_Wunused, OPT_auxbase, OPT_dumpbase,
4307         OPT_dumpdir, OPT_falign_functions_, OPT_falign_jumps_,
4308         OPT_falign_labels_, OPT_falign_loops_, OPT_fira_verbose_, OPT_o or
4309         OPT_fwhopr_.  Do not explicitly set .opt file variables for
4310         OPT_aux_info or OPT_pedantic_errors.  Use dc for diagnostic context.
4311         (set_Wstrict_aliasing): Add gcc_options parameter.
4312         * opts.h (struct cl_option_handler_func): Add diagnostic_context
4313         parameter to handler.
4314         (decode_options): Add diagnostic_context parameter.
4315         * toplev.c (dump_base_name, dump_dir_name, aux_base_name,
4316         asm_file_name, flag_generate_lto, flag_gen_aux_info,
4317         aux_info_file_name, flag_shlib, flag_tls_default,
4318         flag_excess_precision_cmdline, flag_pedantic_errors): Remove.
4319         (toplev_main): Pass global_dc to decode_options.
4320         * toplev.h (dump_base_name, dump_dir_name, aux_base_name,
4321         aux_info_file_name, asm_file_name): Remove.
4322         * tree.h (flag_tls_default): Remove.
4323
4324 2010-11-10  Eric Botcazou  <ebotcazou@adacore.com>
4325
4326         PR target/45986
4327         * config/sparc/sparc.c (sparc_delegitimize_address): New function.
4328         (TARGET_DELEGITIMIZE_ADDRESS): Define to above.
4329
4330 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
4331
4332         * config.gcc (i[34567]86-*-*): Include tbmintrin.h.
4333         (x86_64-*-*): Likewise.
4334         * config/i386/cpuid.h: Define TBM bit.
4335         * config/i386/driver-i386.c (host_detect_local_cpu): Define
4336         and set has_tbm.
4337         * config/i386/i386-c.c (ix86_target_macros_internal): Check
4338         isa_flag for TBM.
4339         * config/i386/i386.c (OPTION_MASK_ISA_TBM_SET): New.
4340         (OPTION_MASK_ISA_TBM_UNSET): New.
4341         (ix86_handle_option): Handle -mtbm.
4342         (isa_opts): Add -mtbm.
4343         (enum pta_flags): Add PTA_TBM.
4344         (ix86_option_override_internal): Add TBM support.
4345         (ix86_valid_target_attribute_inner_p): Handle -mtbm.
4346         (IX86_BUILTIN_BEXTRI32): New for TBM intrinsic.
4347         (IX86_BUILTIN_BEXTRI64): Likewise.
4348         (bdesc_args): Add TBM intrinsics.
4349         (ix86_expand_builtin): Add TBM specific case.
4350         * config/i386/i386.h (TARGET_TBM): New for TBM.
4351         * config/i386/i386.md (UNSPEC_BEXTRI): New for TBM.
4352         (tbm_bextri_<mode>): Likewise.
4353         (*tbm_blcfill_<mode>): Likewise.
4354         (*tbm_blci_<mode>): Likewise.
4355         (*tbm_blcic_<mode>): Likewise.
4356         (*tbm_blcmsk_<mode>): Likewise.
4357         (*tbm_blcs_<mode>): Likewise.
4358         (*tbm_blsfill_<mode>): Likewise.
4359         (*tbm_blsic_<mode>): Likewise.
4360         (*tbm_t1mskc_<mode>): Likewise.
4361         (*tbm_tzmsk_<mode>): Likewise.
4362         * config/i386/i386.opt: Add -mtbm.
4363         * config/i386/tbmintrin.h (__bextri_u32): New.
4364         (__blcfill_u32): Likewise.
4365         (__blci_u32): Likewise.
4366         (__blcic_u32): Likewise.
4367         (__blcmsk_u32): Likewise.
4368         (__blcs_u32): Likewise.
4369         (__blsfill_u32): Likewise.
4370         (__blsic_u32): Likewise.
4371         (__t1mskc_u32): Likewise.
4372         (__tzmsk_u32): Likewise.
4373         (__bextri_u64): Likewise.
4374         (__blcfill_u64): Likewise.
4375         (__blci_u64): Likewise.
4376         (__blcic_u64): Likewise.
4377         (__blcmsk_u64): Likewise.
4378         (__blcs_u64): Likewise.
4379         (__blsfill_u64): Likewise.
4380         (__blsic_u64): Likewise.
4381         (__t1mskc_u64): Likewise.
4382         (__tzmsk_u64): Likewise.
4383         * config/i386/x86intrin.h: Add TBM check and tbmintrin.h.
4384         * doc/invoke.texi: Document -mtbm.
4385         * doc/extend.texi: Document TBM built-in functions.
4386
4387 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
4388
4389         * config.gcc (i[34567]86-*-*): Include bmiintrin.h.
4390         (x86_64-*-*): Likewise.
4391         * config/i386/cpuid.h: Define BMI bit.
4392         * config/i386/driver-i386.c (host_detect_local_cpu): Define
4393         and set has_bmi.
4394         * config/i386/i386-c.c (ix86_target_macros_internal): Check
4395         isa_flag for BMI.
4396         * config/i386/i386.c (OPTION_MASK_ISA_BMI_SET): New.
4397         (OPTION_MASK_ISA_BMI_UNSET): New.
4398         (ix86_handle_option): Handle -mbmi.
4399         (isa_opts): Add -mbmi.
4400         (enum pta_flags): Add PTA_BMI.
4401         (ix86_option_override_internal): Add BMI support.
4402         (ix86_valid_target_attribute_inner_p): Handle -mbmi.
4403         (IX86_BUILTIN_BEXTR32): New for BMI intrinsic.
4404         (IX86_BUILTIN_BEXTR64): Likewise.
4405         (IX86_BUILTIN_CTZS): Likewise.
4406         (bdesc_args): Add BMI intrinsics.
4407         (ix86_expand_args_builtin): Add BMI specific cases.
4408         * config/i386/i386.h (TARGET_BMI): New for BMI.
4409         (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
4410         (CLZ_DEFINED_VALUE_AT_ZERO): Likewise.
4411         * config/i386/i386.md (UNSPEC_BEXTR): New for BMI.
4412         (UNSPEC_TZCNT): Likewise.
4413         (ctz<mode>2): Add tzcnt, and handle 16 bit operands.
4414         (bmi_andn_<mode>): New for BMI.
4415         (bmi_bextr_<mode>): Likewise.
4416         (bmi_blsi_<mode>): Likewise.
4417         (bmi_blsmsk_<mode>): Likewise.
4418         (bmi_blsr_<mode>): Likewise.
4419         * config/i386/i386.opt: Add -mbmi.
4420         * config/i386/x86intrin.h: Add BMI check and bmiintrin.h.
4421         * config/i386/bmiintrin.h (__lzcnt_u16): New.
4422         (__tzcnt_u16): Likewise.
4423         (__andn_u32): Likewise.
4424         (__bextr_u32): Likewise.
4425         (__blsi_u32): Likewise.
4426         (__blsmsk_u32): Likewise.
4427         (__blsr_u32): Likewise.
4428         (__lzcnt_u32): Likewise.
4429         (__tzcnt_u32): Likewise.
4430         (__andn_u64): Likewise.
4431         (__bextr_u64): Likewise.
4432         (__blsi_u64): Likewise.
4433         (__blsmsk_u64): Likewise.
4434         (__blsr_u64): Likewise.
4435         (__lzcnt_u64): Likewise.
4436         (__tzcnt_u64): Likewise.
4437         * doc/invoke.texi: Document -mbmi and -mno-bmi.
4438         * doc/extend.texi: Document BMI built-in functions.
4439
4440 2010-11-10  Jan Hubicka  <jh@suse.cz>
4441
4442         PR tree-optimize/46228
4443         * doc/invoke.texi (comdat-sharing-probability): Document.
4444         * ipa-inline.c (cgraph_estimate_growth): Handle COMDATs
4445         * params.def (PARAM_COMDAT_SHARING_PROBABILITY): New param.
4446
4447 2010-11-10  Jan Hubicka  <jh@suse.cz>
4448
4449         PR tree-optimize/46228
4450         * cgraph.c (cgraph_propagate_frequency): Fix typo.
4451
4452 2010-11-10  H.J. Lu  <hongjiu.lu@intel.com>
4453
4454         PR tree-optimization/46414
4455         * tree-inline.c (estimate_move_cost): Check preferred vector
4456         mode for vector type.
4457
4458 2010-11-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4459
4460         * config/alpha/osf5.h (ASM_SPEC): Remove -nocpp.
4461
4462 2010-11-10  Sebastian Pop  <sebastian.pop@amd.com>
4463
4464         PR tree-optimization/45971
4465         * tree-if-conv.c (predicate_scalar_phi): Do not generate a COND_EXPR
4466         for phi nodes analyzable by scev.
4467
4468 2010-11-10  Richard Guenther  <rguenther@suse.de>
4469
4470         PR tree-optimization/44964
4471         * ipa-inline.c (cgraph_flatten): Check that SSA form matches.
4472
4473 2010-11-10  Martin Jambor  <mjambor@suse.cz>
4474
4475         PR tree-optimization/46351
4476         PR tree-optimization/46377
4477         * tree-sra.c (type_internals_preclude_sra_p): Disqualify types with
4478         aggregate bit-fields.
4479
4480 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
4481
4482         * doc/tm.texi.in (TARGET_OPTION_TRANSLATE_TABLE): Remove.
4483         * doc/tm.texi: Regenerate.
4484         * opts-common.c (tm.h): Don't include.
4485         (target_option_translations): Remove.
4486         (decode_cmdline_options_to_array): Don't handle translating options.
4487         * system.h (TARGET_OPTION_TRANSLATE_TABLE): Poison.
4488         * config/darwin-driver.c: Don't condition includes on
4489         CROSS_DIRECTORY_STRUCTURE.
4490         (darwin_default_min_version): Make static.
4491         (darwin_driver_init): New.  Call darwin_default_min_version if not
4492         CROSS_DIRECTORY_STRUCTURE.
4493         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
4494         (DRIVER_SELF_SPECS, DARWIN_CC1_SPEC): Define.
4495         (ASM_SPEC): Add %{static}.
4496         (darwin_default_min_version): Don't declare.
4497         (darwin_driver_init): Declare.
4498         (GCC_DRIVER_HOST_INITIALIZATION): Define to call
4499         darwin_driver_init, independent of CROSS_DIRECTORY_STRUCTURE.
4500         * config/darwin.opt (all_load, allowable_client,
4501         arch_errors_fatal, bind_at_load, bundle, bundle_loader,
4502         dead_strip, dependency-file, dylib_file, dynamic, dynamiclib,
4503         exported_symbols_list, filelist, findirect-virtual-calls,
4504         flat_namespace, force_cpusubtype_ALL, force_flat_namespace,
4505         framework, fterminated-vtables, gfull, gused, image_base, init,
4506         install_name, multi_module, multiply_defined,
4507         multiply_defined_unused, no_dead_strip_inits_and_terms,
4508         seg_addr_table, seg_addr_table_filename, segaddr,
4509         segs_read_only_addr, segs_read_write_addr, single_module,
4510         umbrella, unexported_symbols_list, weak_reference_mismatches,
4511         Zall_load, Zarch_errors_fatal, Zbind_at_load, Zbundle,
4512         Zdead_strip, Zdynamic, Zdynamiclib, Zflat_namespace,
4513         Zforce_cpusubtype_ALL, Zforce_flat_namespace, Zmulti_module,
4514         Zno_dead_strip_inits_and_terms, Zsingle_module): New.
4515         * config/i386/darwin.h (CC1_SPEC): Add DARWIN_CC1_SPEC.
4516         (ASM_SPEC): Add %{static}.
4517         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
4518         * config/mep/mep.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
4519         (DRIVER_SELF_SPECS): Handle options formerly in
4520         TARGET_OPTION_TRANSLATE_TABLE.
4521         * config/mep/mep.opt (mfar): New.
4522         * config/picochip/picochip.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
4523         (DRIVER_SELF_SPECS): Define.  Handle options formerly in
4524         TARGET_OPTION_TRANSLATE_TABLE.
4525         * config/rs6000/darwin.h (CC1_SPEC): Handle -faltivec and -fno-altivec.
4526         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
4527         * config/rs6000/darwin.opt (Waltivec-long-deprecated, faltivec,
4528         ffix-and-continue, findirect-data): New.
4529         * config/rx/rx.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
4530         * config/rx/rx.opt (nofpu): Make into alias of mnofpu.
4531         (mnofpu): Define mask and use Report here.
4532
4533 2010-11-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4534
4535         * config/s390/s390.c (s390_emit_prologue): Report the stack
4536         size if -fstack-usage is used.
4537
4538 2010-11-10  Richard Guenther  <rguenther@suse.de>
4539
4540         PR tree-optimization/46398
4541         * tree-ssa-sccvn.c (process_scc): Iterate for all PHIs.
4542
4543 2010-11-10  Joern Rennecke  <amylaar@spamcop.net>
4544
4545         PR target/44760
4546         * config/iq2000/iq2000.h (REGISTER_NAMES): Remove trailing semicolon.
4547         (REGNO_MODE_OK_FOR_BASE_P): Cast REGNO to int before passing it to
4548         GP_REG_OR_PSEUDO_STRICT_P.
4549         * config/iq2000/iq2000.md (andsi3+1): Add gcc_unreachable for
4550         unexpected alternative.
4551         (*movsf_internal): Likewise.
4552         (indirect_jump): Replace call to non-existant function with call to
4553         internal_error.
4554         (tablejump): Likewise.
4555         * config/iq2000/iq2000.c: Include df.h .
4556         (iq2000_function_arg_advance): Use CONST_CAST2.
4557         (compute_frame_size, iq2000_expand_prologue): Remove unused variables.
4558         (iq2000_can_eliminate): Call leaf_function_p instead of testing for
4559         a non-zero function address.
4560         (iq2000_initial_elimination_offset): Add gcc_unreachable for
4561         unexpected value of FROM.
4562         (symbolic_expression_p): Delete.
4563         (iq2000_function_value): Constify func.
4564         (expand_one_builtin): Use expand_normal.
4565         (iq2000_print_operand): Don't print VALUE if calculating it failed.
4566
4567         PR rtl-optimization/44764
4568         * addresses.h (ok_for_base_p_1): Mark regno with ATTRIBUTE_UNUSED.
4569
4570         PR target/46407
4571         * config/rx/rx.h (REGISTER_NAMES): Remove trailing semicolon.
4572         * config/rx/rx.c (rx_promote_function_mode): Mark punsignedp
4573         with ATTRIBUTE_UNUSED.
4574         (valid_psw_flag): Constify parameter which.
4575         (rx_memory_move_cost): Change type of parameter regclass to reg_class_t.
4576
4577         PR target/46415
4578         * config/mmix/mmix-protos.h (mmix_local_alignment): Update prototype.
4579         (mmix_dbx_register_number): Likewise.
4580         * config/mmix/mmix.c: Include df.h .
4581         (mmix_local_alignment): Change argument basic_align and return type
4582         to unsigned.
4583         (mmix_dbx_register_number): Change argument and return type to
4584         unsigned.
4585         (mmix_expand_prologue): Use add_reg_note.
4586
4587         PR target/46417
4588         * config/spu/spu.c (spu_expand_insv): Remove unused variables.
4589         (spu_split_store): Use aform.
4590         (spu_function_profiler): Mark parameter labelno with ATTRIBUTE_UNUSED.
4591
4592 2010-11-10  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
4593
4594         PR/46268
4595         * doc/gty.texi (GTY Options): Clarify that variable_size produces
4596         allocators taking size in bytes, compare with length option.  Add
4597         size calculation example.
4598         (Invoking the garbage collector): Ensure that sentences are
4599         followed by two spaces.  Describe that pointer fields must be
4600         initialized at ggc_collect call.
4601         (Troubleshooting): New section.
4602
4603 2010-11-09  Jan Hubicka  <jh@suse.cz>
4604
4605         PR tree-optimization/40436
4606         * ipa-inline.c (leaf_node_p): Implement using is_inexpensive_builtin.
4607         * tree-inline.c (estimate_num_insns): Inexpensive builtins are like
4608         normal instructions; be sure bultin is not implemented in this file;
4609         compute non-zero return cost.
4610         (init_inline_once): Reduce builtin_call_cost to 1; set return cost.
4611         * tree-inline.h (eni_weights_d): Add return cost.
4612
4613 2010-11-09  Joseph Myers  <joseph@codesourcery.com>
4614
4615         * c-parser.c (c_parser_struct_declaration): Handle declaration
4616         specifiers followed by CPP_CLOSE_BRACE.
4617
4618 2010-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
4619
4620         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Rewrite so
4621         split occurs before reload, and we allocate memory at the time of
4622         the split, not during expansion.  Add attributes.
4623         (floatsi<mode>2_lfiwax_mem): Ditto.
4624         (floatunssi<mode>2_lfiwzx): Ditto.
4625         (floatunssi<mode>2_lfiwzx_mem): Ditto.
4626         (floatsidf2): Ditto.
4627         (floatunssisf2): Ditto.
4628         (floatunssidf2): Ditto.
4629         (fix_trunc<mode>si2): Ditto.
4630         (fix_trunc<mode>si2_stfiwx): Ditto.
4631         (fix_trunc<mode>si2_internal): Ditto.
4632         (fix_trunc<mode>si2): Ditto.
4633         (fix_trunc<mode>di2): Ditto.
4634         (fixuns_trunc<mode>si2_stfiwx): Ditto.
4635         (floatsisf2): Ditto.
4636         (floatdidf2_mem): Ditto.
4637         (floatunsdidf2_mem): Ditto.
4638         (floatunsdidf2): Ditto.
4639         (floatdisf2_internal1): Ditto.
4640         (floatdisf2_mem): Ditto.
4641         (floatunsdisf2_mem): Ditto.
4642         (floatsi<mode>2_lfiwax_mem2): Delete.
4643         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
4644         (fix_trunc<mode>si2_mem): Ditto.
4645         (fixuns_trunc<mode>si2_mem): Ditto.
4646         (round32<mode>2_fprs): New combiner insn to combine (double)(int)
4647         type operations to reduce copying the values to multiple memory slots.
4648         (roundu32<mode>2_fprs): Ditto.
4649
4650         * config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Handle
4651         PRE_INC, PRE_DEC, PRE_MODIFY.
4652         (rs6000_expand_convert_si_to_sfdf): Delete, no longer used.
4653
4654         * config/rs6000/rs6000-protos.h (rs6000_expand_convert_si_to_sfdf):
4655         Delete prototype.
4656
4657 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
4658
4659         PR target/43808
4660         * cfgexpand.c (partition_stack_vars): Call
4661         update_alias_info_with_stack_vars unconditionally.
4662         (update_alias_info_with_stack_vars): Allow unused
4663         unreferenced vars when not optimizing.
4664
4665 2010-11-09  Sebastian Pop  <sebastian.pop@amd.com>
4666
4667         PR tree-optimization/46036
4668         * tree-if-conv.c (predicate_bbs): Call unshare_expr before
4669         add_to_dst_predicate_list.
4670
4671 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
4672
4673         PR debug/46171
4674         * df-problems.c (struct dead_debug_use, struct dead_debug): Move
4675         earlier.
4676         (df_set_unused_notes_for_mw, df_create_unused_note): Add DEBUG
4677         argument, call dead_debug_reset when adding REG_UNUSED note.
4678         (dead_debug_reset): New function.
4679         (df_note_bb_compute): Adjust df_set_unused_notes_for_mw and
4680         df_create_unused_note callers.
4681
4682 2010-11-09  Anatoly Sokolov  <aesok@post.ru>
4683
4684         * config/fr30/fr30.c: Include "df.h".
4685
4686 2010-11-09  Richard Guenther  <rguenther@suse.de>
4687
4688         PR tree-optimization/46355
4689         * tree-loop-distribution.c (tree_loop_distribution): Do not
4690         distribute loops without a single exit.
4691
4692 2010-11-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4693
4694         PR rtl-optimization/46237
4695         * ira-conflicts.c (ira_build_conflicts): Record conflicts for call
4696         saved hard regs if they might get partially clobbered.
4697
4698 2010-11-09  Paul Koning  <ni1d@arrl.net>
4699
4700         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Use add for decrement.
4701
4702 2010-11-09  Richard Guenther  <rguenther@suse.de>
4703
4704         PR tree-optimization/46177
4705         * tree-loop-distribution.c (prop_phis): Remove.
4706         (generate_builtin): Re-use the old loop exit edge to avoid
4707         needing to update PHI nodes.
4708
4709 2010-11-09  Joern Rennecke  <amylaar@spamcop.net>
4710
4711         * config/i386/i386.c (ix86_expand_split_stack_prologue): Change
4712         type of args_size to unsigned HOST_WIDE_INT.
4713
4714         PR target/44755
4715         * config.gcc (picochip-*): Add t-pnt16-warn to tmake_file.
4716         * config/t-pnt16-warn: New file.
4717         * config/picochip/picochip.c (picochip_emit_stack_allocate):
4718         Use add_reg_note.
4719         (picochip_emit_save_register): Likewise.
4720         (picochip_emit_restore_register): Remove variable insn.
4721         (picochip_legitimize_address): Don't use C++ style comments.
4722         (picochip_legitimize_reload_address): Likewise.
4723         (reorder_var_tracking_notes): Remove variable vliw_start.
4724         (picochip_reorg): Cast first arguemnt to emit_note_after to
4725         enum insn_note.
4726         (picochip_expand_builtin_2op): Use EXPAND_NORMAL.
4727         (picochip_expand_builtin_3op): Likewise.
4728         (picochip_expand_builtin_2opvoid): Likewise.
4729         (picochip_expand_array_get, picochip_expand_array_put): Likewise.
4730         (picochip_expand_array_testport): Likewise.
4731         (picochip_init_builtins): Remove unused variables.
4732         * config/picochip/picochip.h (ASM_FORMAT_PRIVATE_NAME): Cast LABELNO
4733         to unsigned long, and output it as such.
4734         (ASM_OUTPUT_SKIP): Use HOST_WIDE_INT_PRINT_UNSIGNED.
4735         * config/picochip/picochip.md (movhicc): Remove nonsense statement.
4736         (schedType): Cast result of picochip_schedule_type to
4737         enum attr_schedType.
4738
4739         PR target/44759
4740         * config/mn10300/mn10300.c (SIZE_FMOV_LIMIT): Promote all arms of
4741         conditional to type of S.
4742         (mn10300_function_arg): Remove unused variable align.
4743         (mn10300_arg_partial_bytes): Likewise.
4744         * config/mn10300/mn10300.md (attribute cpu): Cast value to
4745         enum attr_cpu.
4746
4747 2010-11-09  H.J. Lu  <hongjiu.lu@intel.com>
4748
4749         PR bootstrap/46392
4750         * gengtype-parse.c (type): Call get_input_file_name to get file name.
4751
4752 2010-11-09  Eric Botcazou  <ebotcazou@adacore.com>
4753
4754         * tree.h (contains_placeholder_p): Fix comment.
4755         (type_contains_placeholder_p): Adjust comment.
4756         * tree.c (contains_placeholder_p): Fix comment.
4757         (type_contains_placeholder_1): Do not recurse on pointed-to types and
4758         adjust comment.
4759         (type_contains_placeholder_p): Add comment.
4760
4761 2010-11-09  Paul Koning  <ni1d@arrl.net>
4762
4763         * config/pdp11/pdp11.c (pdp11_assemble_integer): Clean up fix for
4764         output of byte values.
4765
4766 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
4767
4768         PR middle-end/46360
4769         * tree-ssa-propagate.c (update_call_from_tree): Fix for use
4770         not in SSA mode.
4771
4772 2010-11-09  Richard Guenther  <rguenther@suse.de>
4773
4774         PR middle-end/46221
4775         * varasm.c (compute_visible_aliases): New function.
4776         (remove_unreachable_alias_pairs): Aliases make a target available
4777         even though we reclaimed the cgraph node.
4778         (finish_aliases_1): Likewise.
4779         * Makefile.in (varasm.o): Add pointer-set.h dependency.
4780
4781 2010-11-09  Nick Clifton  <nickc@redhat.com>
4782
4783         * config/mn10300/mn10300-modes.def: New file.
4784
4785 2010-11-09  Basile Starynkevitch  <basile@starynkevitch.net>
4786             Jeremie Salvucci  <jeremie.salvucci@free.fr>
4787
4788         * gengtype.c (get_output_file_name): Declaration moved to gengtype.h.
4789         (plugin_files, get_file_basename, get_file_realbasename)
4790         (get_file_langdir, error_at_line, gt_files, this_file)
4791         (system_h_file, read_input_list, create_field_all)
4792         (get_file_srcdir_relative_path, get_file_basename)
4793         (get_file_langdir, get_file_gtfilename)
4794         (get_output_file_with_visibility, get_output_file_name)
4795         (struct flist, put_mangled_filename, walk_type)
4796         (put_mangled_filename, finish_root_table, write_roots): Use
4797         input_file-s.
4798         (lang_dir_names, num_lang_dirs): Remove static.
4799         (get_lang_bitmap, set_lang_bitmap): Moved to gengtype.h.
4800         (main): Use input_file-s.
4801
4802         * gengtype.h: (struct input_file_st, input_file): New type.
4803         (struct fileloc): Use it.
4804         (gt_files, num_gt_files, this_file, system_h_file)
4805         (input_file_by_name, get_file_srcdir_relative_path): Use input_file.
4806         (get_input_file_name): New function.
4807         (get_lang_bitmap, set_lang_bitmap): Moved from gengtype.c and
4808         use input_file.
4809         (lang_dir_names, num_lang_dirs, get_output_file_with_visibility)
4810         (get_output_file_name): Ditto.
4811
4812         * gengtype-lex.l (yybegin): Use input_file.
4813
4814         * gengtype-parse.c (parse_error): Use input_file.
4815
4816 2010-11-08  Xinliang David Li  <davidxl@google.com>
4817
4818         PR tree-optimization/46316
4819         * tree-vrp.c (adjust_range_with_scev): Check double_int overflow.
4820         * double-int.h (double_int_mul_with_sign): New function.
4821         * double-int.c (double_int_mul_with_sign): New function.
4822
4823 2010-11-08  Paul Koning  <ni1d@arrl.net>
4824
4825         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Fix wrong code.
4826
4827 2010-11-08  Paul Koning  <ni1d@arrl.net>
4828
4829         * config/pdp11/pdp11.md (negsi2): Fix wrong code.
4830
4831 2010-11-08  Paul Koning  <ni1d@arrl.net>
4832
4833         * config/pdp11/pdp11.c (pdp11_assemble_integer): Mask byte values
4834         to 8 bits.
4835
4836 2010-11-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
4837
4838         PR target/46378
4839         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
4840         turn on ISA 2.04 rounding instructions for power5.
4841
4842         * config/rs6000/rs6000.md (friz): Friz is an ISA 2.04 instruciton,
4843         not ISA 2.02.
4844
4845         PR target/45585
4846         * config/rs6000/darwin.md (movdi_low): Allow DImode values to be
4847         in FPR registers.
4848         (movdi_low_st): Ditto.
4849
4850 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
4851             Richard Henderson  <rth@redhat.com>
4852
4853         PR target/44758
4854         * config/frv/frv.md (attribute cpu): Cast value to enum attr_cpu.
4855         (attribute acc_group): Cast value to enum attr_acc_group.
4856         (*movdi_nodouble+6): Use gen_int_mode.
4857         * config/frv/frv-protos.h (frv_trampoline_size): Declare no matter
4858         if RTX_CODE is defined or not.
4859         * config/frv/frv.c (enum frv_io_type): New enum, broken out of
4860         struct frv_io.
4861         (frv_handle_option): Mark parameter value with ATTRIBUTE_UNUSED.
4862         (frv_frame_access, frv_expand_prologue): Remove unused variables.
4863         (frv_expand_block_clear): Likewise.
4864         (frv_trampoline_init): Use LCT_NORMAL.
4865         (struct frv_packet_group): New struct, broken out of type of
4866         frv_packet.
4867         (frv_start_packet, frv_reorder_packet): Initialize group to GROUP_I,
4868         use cast in loop counter increment.
4869         (frv_extract_membar): Cast HOST_WIDE_INT to enum frv_io_type before
4870         assigning to io->type.
4871         (bdesc_set): Use rtx_code UNKNOWN in initializer.
4872         (bdesc_1arg, bdesc_2arg, bdesc_int_void2arg): Likewise.
4873         (bdesc_prefetches, bdesc_cut, bdesc_2argimm, bdesc_void2arg): Likewise.
4874         (bdesc_void3arg, bdesc_voidacc, bdesc_loads, bdesc_stores): Likewise.
4875         (frv_read_argument): Use expand_normal.
4876
4877         PR target/44757
4878         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Call
4879         lm32_legitimate_constant_p.
4880         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
4881         * config/lm32/lm32.c (gen_int_relational): Make new block for
4882         LE / LT / LEU / LTU case.  Declare variables at start of block.
4883         (lm32_block_move_inline): Use XALLOCAVEC.
4884
4885 2010-11-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4886
4887         * config/i386/i386.c (ix86_function_arg_boundary): Fix warning message.
4888
4889 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
4890
4891         * gengtype (get_output_file_for_structure): Ensure type is union
4892         or struct.
4893         (write_splay_tree_allocator_def): Use
4894         get_output_file_with_visibility.
4895
4896 2010-11-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4897
4898         * config/s390/s390.c (s390_handle_arch_option): Set type and flags
4899         to defined values in case of an error.
4900         (s390_option_override): Skip further processing if the -march
4901         parameter wasn't recognized.
4902
4903 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
4904
4905         * caller-save.c (reg_save_code): After HARD_REGNO_MODE_OK check fails,
4906         assert that REG is a hard register number before using it as an index.
4907
4908         PR bootstrap/46358
4909         * config/i386/i386.c (ix86_expand_split_stack_prologue):
4910         Avoid warnings when HOST_WIDE_INT is 32 bit.
4911
4912 2010-11-08  Eric Botcazou  <ebotcazou@adacore.com>
4913
4914         PR target/46208
4915         * config/sparc/sparc.c (TARGET_PROMOTE_PROTOTYPES): Delete.
4916         (sparc_promote_prototypes): Likewise.
4917         (sparc_promote_function_mode): Promote in 32-bit mode as well.
4918         (sparc_return_in_memory): Remove superfluous parentheses.
4919         (sparc_struct_value_rtx): Fix long lines.
4920         (sparc_function_value_1): Promote in 32-bit mode as well.
4921
4922 2010-11-08  Andrey Belevantsev  <abel@ispras.ru>
4923
4924         PR rtl-optimization/45352
4925         * sel-sched.c (find_best_expr): Do not set pneed_stall when
4926         the variable_issue hook is not implemented.
4927         (fill_insns): Remove dead variable stall_iterations.
4928         (init_seqno_1): Force EBB start for resetting sched cycles on any
4929         successor blocks of the rescheduled region.
4930         (sel_sched_region_1): Use bitmap_bit_p instead of bitmap_clear_bit.
4931         (reset_sched_cycles_in_current_ebb): Add debug printing.
4932         New variable issued_insns.  Advance state when we have issued
4933         issue_rate insns.
4934
4935 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
4936
4937         * gengtype (main): Get here's position using POS_HERE macro for
4938         do*typedef calls.
4939
4940 2010-11-07  Ian Lance Taylor  <iant@google.com>
4941
4942         PR target/46089
4943         * config/i386/i386.c (split_stack_fn_large): New static variable.
4944         (ix86_expand_split_stack_prologue): Handle large model.
4945
4946 2010-11-07  Andreas Schwab  <schwab@linux-m68k.org>
4947
4948         * config/m68k/m68k.c (m68k_delegitimize_address): Update to handle
4949         all possible addressing modes.
4950
4951 2010-11-07  Uros Bizjak  <ubizjak@gmail.com>
4952
4953         PR tree-optimization/46346
4954         * tree-ssa-forwprop.c (rhs_to_tree): Handle GIMPLE_TERNARY_RHS.
4955
4956 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
4957
4958         * config/mips/mips.c: Revert previous patch.
4959         * config/mips/mips.md: Likewise.
4960
4961 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
4962
4963         * config/mips/mips.c (mips_rtx_costs): Handle FMA.
4964         * config/mips/mips.md (*madd4<mode>, *madd3<mode>, *msub4<mode>)
4965         (*msub3<mode>, *nmadd4<mode>_fastmath, *nmadd3<mode>_fastmath)
4966         (*nmsub4<mode>_fastmath, *nmsub3<mode>_fastmath): Delete.
4967         (*nmadd4<mode>, *nmadd3<mode>. *nmsub4<mode>, *nmsub3<mode>): Redefine
4968         to use FMA.
4969         (fma<mode>4, *fma<mode>4_madd3, *fma<mode>4_madd4): New patterns.
4970         (fms<mode>4, *fms<mode>4_msub3, *fms<mode>4_msub4): Likewise.
4971         (fnms<mode>4, *fnms<mode>4_nmadd3, *fnms<mode>4_nmadd4): Likewise.
4972         (fnma<mode>4, *fnma<mode>4_nmsub3, *fnma<mode>4_nmsub4): Likewise.
4973
4974 2010-11-06  Simon Martin  <simartin@users.sourceforge.net>
4975
4976         PR c/43384
4977         * c-decl.c (lookup_label): Labels can only be referenced in a
4978         function's scope.
4979         (store_parm_decls_oldstyle): Skip erroneous parameters.
4980
4981 2010-11-06  Anatoly Sokolov  <aesok@post.ru>
4982
4983         * config/fr30/fr30.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
4984         LIBCALL_VALUE): Remove macros.
4985         * config/fr30/fr30.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
4986         TARGET_FUNCTION_VALUE_REGNO_P): Define.
4987         (fr30_function_value_regno_p, fr30_function_value,
4988         fr30_libcall_value): New functions.
4989
4990 2010-11-06  Joern Rennecke  <amylaar@spamcop.net>
4991
4992         PR middle-end/46314
4993         * target.def (generate_internal_label): New asm_out hook.
4994         * output.h (default_generate_internal_label): Declare.
4995         * varasm.c (default_generate_internal_label): Define.
4996
4997 2010-11-06  Iain Sandoe  <iains@gcc.gnu.org>
4998
4999         PR target/44981
5000         * doc/extend.tex (format): Document NSString extension.
5001         (format_arg): Likewise.
5002         (Darwin Format Checks): New section.
5003         * doc/tm.texi: Document string object hooks (generated).
5004         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Rename.
5005         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
5006         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
5007         * target.def (objc_construct_string_object): Rename, amend
5008         documentation.
5009         (string_object_ref_type_p): New hook.
5010         (check_string_object_format_arg): New hook.
5011         * c-parser.c (c_parser_attributes): Allow objective-c class names as
5012         attribute identifiers.
5013         * config/darwin-c.c (darwin_cfstring_ref_p): New.
5014         (darwin_check_cfstring_format_arg): New.
5015         (darwin_additional_format_types): New.
5016         * config/darwin-protos.h (darwin_cfstring_ref_p) New.
5017         (darwin_check_cfstring_format_arg): New.
5018         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Renamed.
5019         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
5020         (TARGET_N_FORMAT_TYPES): New.
5021         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
5022
5023 2010-11-06  Eric Botcazou  <ebotcazou@adacore.com>
5024             Pascal Obry  <obry@adacore.com>
5025
5026         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Redefine.  Use 33
5027         in 64-bit mode and 17 otherwise.
5028
5029 2010-11-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5030
5031         PR debug/45939
5032         * var-tracking.c (emit_note_insn_var_location): Make sure that
5033         call related var location notes come before the normal ones.
5034
5035 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
5036
5037         PR target/46326
5038         * config/i386/i386.c (ix86_delegitimize_address): Fix a typo
5039         in the last change.
5040
5041 2010-11-05  Ian Lance Taylor  <iant@google.com>
5042
5043         * explow.c (allocate_dynamic_stack_space): Check MALLOC_ABI_ALIGNMENT.
5044
5045 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
5046
5047         PR c/44772
5048         * c-decl.c (warn_cxx_compat_finish_struct): Don't call
5049         pointer_set_contains if DECL_NAME is NULL.
5050
5051 2010-11-05  Ian Lance Taylor  <iant@google.com>
5052
5053         PR target/46084
5054         * explow.c (allocate_dynamic_stack_space): If flag_split_stack,
5055         request enough additional space for alignment, and force alignment.
5056
5057 2010-11-05  Kai Tietz  <kai.tietz@onevision.com>
5058
5059         * config/i386/i386.c (legitimate_pic_address_disp_p):
5060         Handle UNSPEC_PCREL.
5061         (ix86_legitimate_address_p): Likewise.
5062         (legitimize_pic_address): Likewise.
5063         (output_pic_addr_const): Likewise.
5064         (ix86_delegitimize_address): Likewise.
5065         (ix86_find_base_term): Likewise.
5066         (memory_address_length): Likewise.
5067         (x86_output_mi_thunk): Handle special case x64
5068         for non local binding.
5069         * config/i386/i386.md (UNSPEC_PCREL): New.
5070         * config/i386/winnt.c (i386_pe_binds_local_p):
5071         Allow weak symbol for x64 windows with non-local binding.
5072
5073 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
5074
5075         PR target/45670
5076         * expr.c (expand_expr_real_1) <case MEM_REF>: Use EXPAND_SUM
5077         instead of EXPAND_NORMAL for base expansion.
5078
5079 2010-11-05  Uros Bizjak  <ubizjak@gmail.com>
5080
5081         * config.gcc: Support --with-fpmath=avx for x86.
5082         * config/i386/avxmath.h: New.
5083         * doc/install.texi (--with-fpmath=): Document --with-fpmath=avx.
5084
5085 2010-11-05  Ian Lance Taylor  <iant@google.com>
5086
5087         * tree.h (struct tree_type): Don't use descbits in GTY annotation.
5088         * gengtype.c (walk_type): Don't recognize descbits option.
5089
5090 2010-11-05  Joseph Myers  <joseph@codesourcery.com>
5091
5092         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG,
5093         WORD_SWITCH_TAKES_ARG): Remove.
5094         * doc/options.texi (Args): Document.
5095         * doc/tm.texi.in (WORD_SWITCH_TAKES_ARG): Remove.
5096         * doc/tm.texi: Regenerate.
5097         * opt-functions.awk (switch_flags): Handle Args.
5098         * opts-common.c: Update comment on tm.h include.
5099         (decode_cmdline_option): Handle options with multiple arguments.
5100         Don't check WORD_SWITCH_TAKES_ARG for unknown options.
5101         * opts.h (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK): Define.
5102         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
5103         CL_COMMON): Update values.
5104         * system.h (WORD_SWITCH_TAKES_ARG): Poison.
5105         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove.
5106         * config/darwin.opt (Zsegaddr, sectalign, sectcreate,
5107         sectobjectsymbols, sectorder, segcreate, segprot): New.
5108
5109 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
5110             Uros Bizjak  <ubizjak@gmail.com>
5111
5112         * config/i386/i386.c (ix86_expand_move): Set use_avx256_p if
5113         256bit AVX register is used.
5114         (ix86_expand_vector_move_misalign): Likewise.
5115         (ix86_expand_vector_move): Replace use_avx256_p with
5116         VALID_AVX256_REG_MODE.
5117
5118 2010-11-05  Joern Rennecke  <amylaar@spamcop.net>
5119
5120          PR target/44750
5121         * config/pdp11/t-pdp11 (dwarf2out.o, java/constants.o): Undo last
5122         change.  Set $@-warn.o to -Wno-error.
5123
5124         PR bootstrap/44756
5125         * expr.c (emit_push_insn): Cast value of PUSH_ROUNDING before
5126         comparing it to a signed value.
5127
5128         PR middle-end/44766
5129         * expr.c (can_store_by_pieces): Add ATTRIBUTE_UNUSED to cst.
5130         PR bootstrap/44770
5131         * haifa-sched.c (initiate_bb_reg_pressure_info): Add ATTRIBUTE_UNUSED
5132         to i.
5133
5134         PR target/44754
5135         * config/m32c/m32c.c (m32_function_arg): Rename declaration to...
5136         (m32c_function_arg).  Add comma between arguments two and three.
5137         (m32c_promote_prototypes): Remove declaration.
5138         (current_function_special_page_vector): Likewise.
5139         (m32c_regno_reg_class): Change return type to enum reg_class.
5140         (m32c_pushm_popm): Use add_reg_note.
5141         (m32c_push_rounding): Change return type to unsigned int.
5142         (m32c_legitimize_reload_address): Cast argument 11 to push_reload to
5143         enum reload_type.
5144         (m32c_insert_attributes): Constify variable name.
5145         (m32c_output_aligned_common): Add ATTRIBUTE_UNUSED to argument decl.
5146         (m32c_prepare_shift): Remove variable lref.
5147         (m32c_expand_movcc): Remove variable cmp.
5148         (m32c_expand_insv): Fix check of op0 rtx_code to use GET_CODE.
5149         (m32c_compare_redundant): Remove variable op2.
5150         * config/m32c/m32c-pragma.c ("c-family/c-common.h"): Include.
5151         (m32c_pragma_memregs): Assign the number to target_memregs.
5152         (m32c_pragma_address): Remove variable var_str.
5153         * config/m32c/m32c.h (REG_CLASS_FROM_CONSTRAINT): Case value to
5154         enum reg_class.
5155         (LIMIT_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise.
5156         * config/m32c/bitops.md (andsi3): Add default case to switch.
5157         (iorsi3, xorsi3): Likewise.
5158         * config/m32c/addsub.md (addsi3_1, subsi3_1): Likewise.
5159         * config/m32c/jump.md (call, call_value): Likewise.
5160         * config/m32c/m32c-protos.h (m32c_push_rounding): Update prototype.
5161         (m32c_regno_reg_class): Likewise.
5162         (current_function_special_page_vector): Declare.
5163
5164 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
5165
5166         * cfgexpand.c (expand_debug_expr): Handle MEM_REF with non-zero offset.
5167
5168         PR tree-optimization/46099
5169         * tree-parloops.c (take_address_of): Add GSI argument.  Return NULL
5170         if it is NULL and uid wasn't found in the hash table.  Just fold the
5171         result if it is NULL otherwise.  Insert other potentially needed
5172         stmts right before current stmt instead of on the entry edge.
5173         (struct elv_data): Add gsi and reset fields.
5174         (eliminate_local_variables_1): Adjust caller.  If take_address_of
5175         failed for debug stmt, set dta->reset and return.
5176         (eliminate_local_variables_stmt): Change STMT argument for GSI,
5177         pass GSI through to the callback, handle resetting of debug stmts.
5178         (eliminate_local_variables): Adjust caller.  Process debug stmts
5179         in second phase.
5180
5181         PR middle-end/43690
5182         * gimplify.c (gimplify_asm_expr): If a "m" input is a
5183         {pre,post}{in,de}crement, fail.
5184
5185         PR debug/46307
5186         * tree-ssa-operands.c (get_expr_operands): Handle FMA_EXPR.
5187         * tree-pretty-print.c (dump_generic_node): Likewise.
5188         (op_code_prio): Likewise.
5189         * cfgexpand.c (expand_debug_expr): Likewise.
5190
5191 2010-11-04  Paul Koning  <ni1d@arrl.net>
5192
5193         * doc/md.texi (Machine Constraints): Correct formatting in PDP-11
5194         constraints.
5195
5196 2010-11-04  Chao-ying Fu  <fu@mips.com>
5197
5198         * configure.ac: Test assembler support for DSP Rev1 mult.
5199         * configure: Regenerate.
5200         * config.in: Regenerate.
5201         * config/mips/mips.h (ISA_HAS_DSP_MULT): New define.
5202         * config/mips/mips.c (CODE_FOR_mips_mult): New define.
5203         (CODE_FOR_mips_multu): New define.
5204         (mips_builtins): Move madd, maddu, msub, msubu, mult, multu from
5205         dspr2_32 to dsp_32.
5206         (mips_mulsidi3_gen_fn): Test (TARGET_FIX_R4000 && !ISA_HAS_DSP).
5207         Delete returns when ISA_HAS_DSPR2 because the old patterns are deleted.
5208         * config/mips/mips-dsp.md (mips_madd<u>, mips_msub<u>):
5209         New define_expand patterns.
5210         * config/mips/constraints.md (ka): Update the constraint to test
5211         ISA_HAS_DSP_MULT instead of ISA_HAS_DSPR2.
5212         * config/mips/mips-dspr2.md (mips_madd<u>, mips_msub<u>, mips_mult,
5213         mips_multu): Delete.
5214         * config/mips/mips.md (<u>mulsidi3_32bit): Add comments.
5215         Change target constraint to "ka".
5216         Use (!TARGET_FIX_R4000 || ISA_HAS_DSP), instead of
5217         (!TARGET_FIX_R4000 && !ISA_HAS_DSPR2).
5218         Emit the accumulator destination when ISA_HAS_DSP_MULT.
5219         (<u>msubsidi4): Add comments.  Test ISA_HAS_DSP.
5220         Emit the accumulator destination when ISA_HAS_DSP_MULT.
5221         (<u>maddsidi4): Likewise.
5222         * doc/extend.texi (MIPS DSP Built-in Functions): Move madd, maddu,
5223         msub, msubu, mult, multu built-in functions from DSP r2 to DSP r1.
5224
5225 2010-11-04  Paul Koning  <ni1d@arrl.net>
5226
5227         * doc/md.texi (Machine Constraints): Add PDP-11 constraints.
5228
5229 2010-11-04  Paul Koning  <ni1d@arrl.net>
5230
5231         * doc/invoke.texi (PDP-11 Options): Delete -msplit, -mno-split.
5232
5233 2010-11-04  Nicola Pero  <nicola.pero@meta-innovation.com>
5234
5235         Fixed using the Objective-C 2.0 dot-syntax with class names.
5236         * c-parser.c (c_parser_next_token_starts_declspecs): In
5237         Objective-C, detect Objective-C 2.0 dot-syntax with a class name.
5238         (c_parser_next_token_starts_declaration): Same.
5239         (c_parser_postfix_expression): Parse the Objective-C 2.0
5240         dot-syntax with a class name.
5241
5242 2010-11-04  Pat Haugen  <pthaugen@us.ibm.com>
5243
5244         * final.c (compute_alignments): Compute/free loop info all the time.
5245         * config/rs6000/rs6000.h (LOOP_ALIGN): Define.
5246         * config/rs6000/rs6000-protos.h (rs6000_loop_align): Declare.
5247         * config/rs6000/t-rs6000 (rs6000.o): Add cfgloop.h.
5248         * config/rs6000/rs6000.c (cfgloop.h): Include.
5249         (can_override_loop_align): New.
5250         (rs6000_option_override_internal): Set it.
5251         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define target hook.
5252         (rs6000_loop_align): New function.
5253         (rs6000_loop_align_max_skip): Likewise.
5254
5255 2010-11-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5256
5257         PR driver/45703
5258         * collect2.c (main): Print --help output to stdout.  Do not
5259         exit right away, so ld --help is appended.  Add empty lines
5260         to separate output suitably.
5261
5262 2010-11-04  Jakub Jelinek  <jakub@redhat.com>
5263
5264         PR tree-optimization/46233
5265         * ipa-pure-const.c (local_pure_const): Do noreturn discovery
5266         after calling analyze_function, not before.
5267
5268         PR target/46234
5269         * config/rs6000/rs6000.c (rs6000_va_start): Use build_simple_mem_ref
5270         instead of build_va_arg_indirect_ref.
5271         * config/spu/spu.c (spu_va_start): Likewise.
5272         * config/s390/s390.c (s390_va_start): Likewise.
5273
5274 2010-11-03  Uros Bizjak  <ubizjak@gmail.com>
5275
5276         PR middle-end/46292
5277         * lower-subreg.c (simplify_subreg_concatn): For VOIDmode elements,
5278         if the innermode is not vector mode, determine the mode of a subreg
5279         by using mode_for_size of inner_size.
5280
5281 2010-11-04  Richard Guenther  <rguenther@suse.de>
5282
5283         PR rtl-optimization/46183
5284         * gcse.c (execute_rtl_cprop): Cleanup the CFG if something changed.
5285         (execute_rtl_pre): Likewise.
5286         (execute_rtl_hoist): Likewise.
5287
5288 2010-11-04  Richard Guenther  <rguenther@suse.de>
5289
5290         PR tree-optimization/46068
5291         * ipa-split.c (consider_split): Remove gcc_unreachable.
5292
5293 2010-11-04  Richard Guenther  <rguenther@suse.de>
5294
5295         * tree-nested.c (build_addr): Use build_fold_addr_expr.
5296
5297 2010-11-04  Richard Guenther  <rguenther@suse.de>
5298
5299         PR tree-optimization/45991
5300         * gimplify.c (force_gimple_operand_1): Use the provded test
5301         function in the initial test.
5302
5303 2010-11-04  Jeff Law  <law@redhat.com>
5304
5305         * ira.c (validate_equiv_mem): Remove code to avoid invalidation
5306         of readonly memory equivalances for const/pure calls.
5307
5308 2010-11-04  Richard Guenther  <rguenther@suse.de>
5309
5310         PR tree-optimization/45733
5311         * tree-vect-stmts.c (reverse_vec_elements): Honor the
5312         permute builtins function return type.
5313
5314 2010-11-04  Joern Rennecke  <amylaar@spamcop.net>
5315
5316         PR middle-end/44765
5317         * emit-rtl.c (gen_rtx_REG): Before using PIC_OFFSET_TABLE_REGNUM
5318         as an index, check it is not INVALID_REGNUM.
5319
5320         PR bootstrap/44756
5321         * ifcvt.c (noce_emit_cmove): Add ATTRIBUTE_UNUSED to target and
5322         unsignedp.
5323         * reload1.c (set_reload_reg): Add ATTRIBUTE_UNUSED to regno.
5324
5325         PR bootstrap/44756
5326         * function.c (thread_prologue_and_epilogue_insns): Add
5327         ATTRIBUTE_UNUSED to seq, epilogue_end and entry_edge.
5328
5329         PR bootstrap/44756
5330         * varasm.c (asm_output_bss): Add ATTRIBUTE_UNUSED to function.
5331
5332         PR target/44750
5333         * config/pdp11/pdp11.c: (pdp11_secondary_reload): Now static.
5334         (pdp11_preferred_reload_class): Rename class to rclass.
5335         (pdp11_preferred_output_reload_class): Likewise.
5336         * config/pdp11/t-pdp11 (dwarf2out.o): Add -Wno-error=type-limits to
5337         ALL_COMPILERFLAGS .
5338         (java/constants.o): Add -Wno-error to ALL_COMPILERFLAGS.
5339
5340         PR bootstrap/44756
5341         * genopinit.c (main) [FIXUNS_TRUNC_LIKE_FIX_TRUNC]: Cast
5342         iteration variables to enum machine_mode.
5343
5344         PR target/44751
5345         * config/h8300/h8300.c: Include df.h.
5346         (push, pop): Use add_reg_note.
5347         (compute_plussi_cc, compute_logical_op_cc): Return enum attr_c.
5348         (compute_a_shift_cc): Likewise.
5349         (expand_a_shift): Argument code has type enum rtx_code.
5350         (struct shift_insn): Member cc_valid has type enum attr_cc.
5351         (struct shift_info) <cc_inline, cc_special>: Likewise.
5352         enum attr_cc.
5353         * config/h8300/h8300-protos.h (compute_plussi_cc): Update prototype.
5354         (compute_a_shift_cc, compute_logical_op_cc, expand_a_shift): Likewise.
5355
5356 2010-11-04  Ira Rosen  <irar@il.ibm.com>
5357
5358         PR tree-optimization/46213
5359         * tree-vect-loop.c (vect_is_simple_reduction_1): Handle
5360         MINUS_EXPR only if the first operand is reduction operand.
5361
5362 2010-11-04  Richard Guenther  <rguenther@suse.de>
5363             Richard Henderson  <rth@redhat.com>
5364
5365         * tree.def (FMA_EXPR): New tree code.
5366         * expr.c (expand_expr_real_2): Add FMA_EXPR expansion code.
5367         * gimple.c (gimple_rhs_class_table): FMA_EXPR is a GIMPLE_TERNARY_RHS.
5368         * tree-cfg.c (verify_gimple_assign_ternary): Verify FMA_EXPR types.
5369         * tree-inline.c (estimate_operator_cost): Handle FMA_EXPR.
5370         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
5371         * tree-ssa-math-opts.c (convert_mult_to_fma): New function.
5372         (execute_optimize_widening_mul): Call it.  Reorganize to allow
5373         dead stmt removal.  Move TODO flags ...
5374         (pass_optimize_widening_mul): ... here.
5375         * flag-types.h (enum fp_contract_mode): New enum.
5376         * common.opt (flag_fp_contract_mode): New variable.
5377         (-ffp-contract): New option.
5378         * opts.c (common_handle_option): Handle it.
5379         * doc/invoke.texi (-ffp-contract): Document.
5380         * tree.h (fold_fma): Declare.
5381         * builtins.c (fold_fma): New function.
5382         (fold_builtin_fma): Likewise.
5383         (fold_builtin_3): Call it for fma.
5384         * fold-const.c (fold_ternary_loc): Fold FMA_EXPR.
5385         * optabs.c (optab_for_tree_code): Handle FMA_EXPR.
5386         * config/i386/sse.md (fms<mode>4, fnma<mode>, fnms<mode>4):
5387         New expanders.
5388         * doc/md.texi (fms<mode>4, fnma<mode>, fnms<mode>4): Document new
5389         named patterns.
5390         * genopinit.c (optabs): Initialize fms_optab, fnma_optab and fnms_optab.
5391         * optabs.h (enum optab_index): Add OTI_fms, OTI_fnma and OTI_fnms.
5392         (fms_optab, fnma_optab, fnms_optab): New defines.
5393         * gimplify.c (gimplify_expr): Handle binary truth expressions
5394         explicitly.  Handle FMA_EXPR.
5395         * tree-vect-stmts.c (vectorizable_operation): Handle ternary
5396         operations.
5397
5398 2010-11-04  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
5399             Richard Guenther  <rguenther@suse.de>
5400
5401         * passes.c (init_optimization_passes): Move veclower after SSA.
5402         * tree-vect-generic.c (uniform_vector_p): New function.
5403         (expand_vector_operations_1): Handle conversion.
5404         (pass_lower_vector): Update SSA form.
5405
5406 2010-11-04  Iain Sandoe  <iains@gcc.gnu.org>
5407
5408         * configure.ac: Filter -mdynamic-no-pic from CFLAGS when testing for
5409         plugin capabilities.
5410         * configure: Regenerate.
5411
5412 2010-11-03  Xinliang David Li  <davidxl@google.com>
5413
5414         PR target/46200
5415         * tree-ssa-loop-ivopts.c (get_computation_cost_at):
5416         Adjust cbase if the use stmt is after iv update.
5417
5418 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
5419
5420         * config.gcc (sh64*) <tm_file>: Add newlib-stdint.h for newlib targets.
5421
5422 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
5423
5424         * config/sh/sh.c (sh_expand_prologue): Remove unnecessary
5425         comment.  Pass true to the last argument of output_stack_adjust.
5426
5427 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
5428
5429         PR target/46295
5430         * config/i386/i386.c (ix86_expand_vector_move): Set use_avx256_p
5431         if 256bit AVX register is used.
5432
5433 2010-11-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
5434
5435         * config/rs6000/rs6000.c (rs6000_emit_minmax): Add support to use
5436         xsmindp/xsmaxdp on VSX for single precision min/max.
5437         * config/rs6000/vsx.md (vsx_smaxsf3): Ditto.
5438         (vsx_sminsf3): Ditto.
5439
5440 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
5441
5442         * combine.c (try_combine): Fix formatting issues, improve comments and
5443         fix a pasto.
5444
5445 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
5446
5447         * tree-tailcall.c (find_tail_calls): Convert the operands to the type
5448         of the result before building binary expressions.
5449
5450 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
5451
5452         PR rtl-optimization/45865
5453         * Makefile.in (df-problems.o): Revert revision 164552.
5454         * basic-block.h (enum bb_flags): Likewise.
5455         * cfgcleanup.c (block_was_dirty): Likewise.
5456         (try_forward_edges): Likewise.
5457         (try_crossjump_bb): Likewise.
5458         (try_head_merge_bb): Likewise.
5459         (try_optimize_cfg): Likewise.
5460         (cleanup_cfg): Likewise.
5461         * df-core.c (df_set_bb_dirty): Likewise.
5462         * df-problems.c: Likewise.
5463         (df_simulate_find_uses): Likewise.
5464         (MEMREF_NORMAL, MEMREF_VOLATILE): Likewise.
5465         (find_memory, find_memory_store): Likewise.
5466         (can_move_insns_across): Likewise.
5467         * df.h (can_move_insns_across): Likewise.
5468         * ifcvt.c (find_memory): Likewise.
5469         (dead_or_predicable): Likewise.
5470
5471 2010-11-03  Richard Guenther  <rguenther@suse.de>
5472
5473         PR middle-end/46288
5474         * predict.c (strip_predict_hints): Simply DCE builtin expect if
5475         the result is unused.
5476
5477 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
5478
5479         PR tree-optimization/46009
5480         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call
5481         cond_if_else_store_replacement if bb1 and bb2 have the same
5482         single successor.
5483         (cond_store_replacement): Use gimple_assign_single_p, don't
5484         check if rhs is SSA_NAME or invariant.  Call release_defs for
5485         assign.
5486         (cond_if_else_store_replacement): New function.
5487
5488 2010-11-03  Richard Guenther  <rguenther@suse.de>
5489
5490         * opts.c (finish_options): Properly check for all WHOPR
5491         flags before complaining about -flto-partition.
5492
5493 2010-11-04  Alan Modra  <amodra@gmail.com>
5494
5495         * config/rs6000/rs6000.c (rs6000_pic_labelno): Make static.
5496         (rs6000_emit_load_toc_table): Don't use rs6000_pic_labelno when
5497         TARGET_SECURE_PLT.
5498         * config/rs6000/sysv4.h (rs6000_pic_labelno): Don't declare.
5499         * config/rs6000/rs6000.md (load_toc_v4_PIC_3b): Use "b" constraint
5500         on input, "r" on output.
5501
5502 2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
5503
5504         Implemented -fobjc-std=objc1 flag.
5505         * doc/invoke.texi (Option Summary): Document -fobjc-std=objc1
5506         option.
5507         * doc/standards.texi (Standards): Updated the section on
5508         Objective-C; mention support for Objective-C 2.0 features and the
5509         new -fstd-objc=objc1 flag to disable them.
5510
5511 2010-11-03  Richard Guenther  <rguenther@suse.de>
5512
5513         PR middle-end/46241
5514         * dwarf2out.c (scope_die_for): Properly detect global scope.
5515
5516 2010-11-03  Richard Guenther  <rguenther@suse.de>
5517
5518         PR tree-optimization/46190
5519         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
5520         Properly compute peel iterations.
5521
5522 2010-11-03  Richard Guenther  <rguenther@suse.de>
5523
5524         PR tree-optimization/46286
5525         * tree-ssa-structalias.c (get_constraint_for_1): Avoid referencing
5526         re-allocated vector data.
5527
5528 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
5529
5530         PR target/46285
5531         * config/i386/i386.c (ix86_expand_call): Conditionally decorate
5532         calls with UNSPEC_CALL_NEEDS_VZEROUPPER unspec before reload
5533         is completed.
5534
5535 2010-11-03  Richard Guenther  <rguenther@suse.de>
5536
5537         PR tree-optimization/46217
5538         * tree-ssa.c (non_rewritable_mem_ref_base): Check if volatile
5539         flag matches.
5540         (execute_update_addresses_taken): Likewise.
5541
5542 2010-11-03  Joern Rennecke  <joern.rennecke@embecosm.com>
5543
5544         PR bootstrap/44335
5545         * targhooks.c (targhook_words_big_endian): New function.
5546         (targhook_float_words_big_endian): Likewise.
5547         * targhooks.h (targhook_words_big_endian): Declare.
5548         (targhook_float_words_big_endian): Likewise.
5549         * target.def (words_big_endian, float_words_big_endian): New hooks.
5550
5551 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
5552
5553         PR tree-optimization/46165
5554         * tree-ssa-pre.c (eliminate): Return TODO_cleanup_cfg if changing
5555         a normal call into noreturn call.
5556
5557 2010-11-03  Richard Guenther  <rguenther@suse.de>
5558
5559         PR middle-end/46251
5560         * builtins.c (expand_builtin_sincos): Properly build MEM_REFs,
5561         not INDIRECT_REFs.
5562
5563 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
5564
5565         PR tree-optimization/46107
5566         * cfgloopmanip.c (loop_version): Set irred_flag back into entry->flags
5567         if cfg_hook_duplicate_loop_to_header_edge failed.
5568
5569 2010-11-03  Ian Lance Taylor  <iant@google.com>
5570
5571         PR lto/46273
5572         * config.gcc: Don't set lto_binary_reader.
5573         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
5574         (Configuration): Mention --disable-lto.  Remove --with-libelf
5575         paragraph.
5576
5577 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
5578
5579         PR debug/46252
5580         * reload1.c (delete_dead_insn): Use prev_active_insn instead of
5581         prev_real_insn.
5582         * gcse.c (insert_insn_end_basic_block): Likewise.
5583
5584         PR rtl-optimization/46034
5585         PR rtl-optimization/46212
5586         PR rtl-optimization/46248
5587         * combine.c (try_combine): If added_sets_2 where i0dest_in_i0src
5588         and i0 feeds i1 and i1 feeds i2 or i0 feeds i2, make a copy of i1src
5589         before i0dest -> i0src substitution and pass 1 instead of 0 as last
5590         argument to subst on i2pat.
5591
5592 2010-11-02  Ian Lance Taylor  <iant@google.com>
5593
5594         * configure.ac: Use AC_SYS_LARGEFILE.
5595         * configure: Rebuild.
5596         * config.in: Rebuild.
5597
5598 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
5599
5600         * builtins.c (fold_builtin_signbit): Use build_zero_cst instead of
5601         fold_convert.
5602         * c-typeck.c (build_function_call_vec): Likewise.
5603         * cfgexpand.c (expand_debug_expr): Likewise.
5604         * cgraphunit.c (assemble_thunk): Likewise.
5605         * config/sparc/sparc.c (sparc_fold_builtin): Likewise.
5606         * fold-const.c (fold_unary_loc, fold_mult_zconjz): Likewise.
5607         (fold_binary_loc, fold_ternary_loc): Likewise.
5608         * gimple-fold.c (get_symbol_constant_value): Likewise.
5609         * gimple-low.c (lower_builtin_setjmp): Likewise.
5610         * gimple.c (gimple_cond_get_ops_from_tree): Likewise.
5611         * gimplify.c (gimplify_init_constructor): Likewise.
5612         * lambda.h (build_linear_expr): Likewise.
5613         * omp-low.c (omp_reduction_init): Likewise.
5614         * tree-inline.c (remap_ssa_name): Likewise.
5615         * tree-object-size.c (compute_object_sizes): Likewise.
5616         * tree-sra.c (init_subtree_with_zero): Likewise.
5617         (sra_ipa_modify_assign): Likewise.
5618         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Likewise.
5619         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Likewise.
5620         (eliminate_plus_minus_pair, eliminate_not_pairs): Likewise.
5621         (undistribute_ops_list): Likewise.
5622         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
5623         * tree-vect-stmts.c (vectorizable_call): Likewise.
5624         * tree.c (build_vector_from_ctor, build_one_cst): Likewise.
5625         (build_zero_cst): Handle more cases directly.  Update comment.
5626
5627 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
5628
5629         * config/i386/i386-protos.h (ix86_split_call_pop_vzeroupper): Removed.
5630         * config/i386/i386.c (ix86_split_call_pop_vzeroupper): Likewise.
5631
5632         * config/i386/i386.md (*call_pop_0_vzeroupper): Use parallel
5633         and call ix86_split_call_vzeroupper instead of
5634         ix86_split_call_pop_vzeroupper.
5635         (*call_pop_1_vzeroupper): Likewise.
5636         (*sibcall_pop_1_vzeroupper): Likewise.
5637         (*call_value_pop_0_vzeroupper): Likewise.
5638         (*call_value_pop_1_vzeroupper): Likewise.
5639         (*sibcall_value_pop_1_vzeroupper): Likewise.
5640
5641 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
5642
5643         * config/i386/i386.md (*sibcall_1_rex64_vzeroupper): Fix a typo.
5644
5645 2010-11-02  Eric Botcazou  <ebotcazou@adacore.com>
5646
5647         * basic-block.h (insert_insn_end_bb_new): Delete.
5648         * cfgrtl.c (insert_insn_end_bb_new): Likewise.
5649
5650 2010-11-02  Uros Bizjak  <ubizjak@gmail.com>
5651             H.J. Lu  <hongjiu.lu@intel.com>
5652
5653         * config/i386/i386-protos.h (ix86_split_call_vzeroupper): New.
5654         (ix86_split_call_pop_vzeroupper): Likewise.
5655
5656         * config/i386/i386.c (move_or_delete_vzeroupper_2): Rewrite the loop.
5657         (ix86_expand_call): Conditionally decorate calls with
5658         UNSPEC_CALL_NEEDS_VZEROUPPER unspec.
5659         (ix86_split_call_vzeroupper): New.
5660         (ix86_split_call_pop_vzeroupper): Likewise.
5661
5662         * config/i386/i386.md (UNSPEC_CALL_NEEDS_VZEROUPPER): New.
5663         (*call_pop_0_vzeroupper): New insn_and_split pattern.
5664         (*call_pop_1_vzeroupper): Likewise.
5665         (*sibcall_pop_1_vzeroupper): Likewise.
5666         (*call_0_vzeroupper): Likewise.
5667         (*call_1_vzeroupper): Likewise.
5668         (*sibcall_1_vzeroupper): Likewise.
5669         (*call_1_rex64_vzeroupper): Likewise.
5670         (*call_1_rex64_ms_sysv_vzeroupper): Likewise.
5671         (*call_1_rex64_large_vzeroupper): Likewise.
5672         (*sibcall_1_rex64_vzeroupper): Likewise.
5673         (*call_value_pop_0_vzeroupper): Likewise.
5674         (*call_value_pop_1_vzeroupper): Likewise.
5675         (*sibcall_value_pop_1_vzeroupper): Likewise.
5676         (*call_value_0_vzeroupper): Likewise.
5677         (*call_value_0_rex64_vzeroupper): Likewise.
5678         (*call_value_0_rex64_ms_sysv_vzeroupper): Likewise.
5679         (*call_value_1_vzeroupper): Likewise.
5680         (*sibcall_value_1_vzeroupper): Likewise.
5681         (*call_value_1_rex64_vzeroupper): Likewise.
5682         (*call_value_1_rex64_ms_sysv_vzeroupper): Likewise.
5683         (*call_value_1_rex64_large_vzeroupper): Likewise.
5684         (*sibcall_value_1_rex64_vzeroupper): Likewise.
5685
5686 2010-11-02  Ian Lance Taylor  <iant@google.com>
5687
5688         PR lto/46273
5689         * config.gcc: Revert last patch: set lto_binary_reader.
5690
5691 2010-11-02  Richard Guenther  <rguenther@suse.de>
5692
5693         PR tree-optimization/46149
5694         * tree-ssa-structalias.c (get_constraint_fop_1): Properly handle
5695         non-indirect MEM_REF variants.
5696
5697 2010-11-02  Richard Guenther  <rguenther@suse.de>
5698
5699         PR tree-optimization/46216
5700         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
5701         Check if we can propagate from a POINTER_PLUS_EXPR before doing so.
5702
5703 2010-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5704
5705         * configure.ac (*-*-irix6*): Disable set_have_as_tls.
5706         (*-*-osf*): Likewise.
5707         * configure: Regenerate.
5708
5709 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
5710
5711         * config/i386/driver-i386.c (host_detect_local_cpu): Updated
5712         for Intel Core 2 and Core i7.
5713
5714 2010-11-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
5715
5716         Model decoder of Core 2/i7 for multipass scheduling.
5717
5718         * config/i386/i386-protos.h (struct ix86_first_cycle_multipass_data_):
5719         New type to hold target-specific data for multipass scheduling.
5720         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
5721         * config/i386/i386.c (ia32_multipass_dfa_lookahead): Update for
5722         Core 2/i7.
5723         (core2i7_secondary_decoder_max_insn_size,)
5724         (core2i7_secondary_ifetch_block_size, core2i7_ifetch_block_max_insns):
5725         New static variables.
5726         ([const_]ix86_first_cycle_multipass_data_t): New typedefs.
5727         ([_]ix86_first_cycle_multipass_data): New static variable.
5728         (core2i7_first_cycle_multipass_init, core2i7_dfa_poast_advance_cycle):
5729         Implement targetm.sched hooks.
5730         (core2i7_first_cycle_multipass_filter_ready_try): New static subroutine
5731         of ...
5732         (core2i7_first_cycle_multipass_{begin, issue, backtrack, end, fini}):
5733         Implement new targetm.sched hooks.
5734         (ix86_sched_init_global, TARGET_SCHED_INIT_GLOBAL): Define
5735         targetm.sched hook to install multipass scheduling hooks on demand.
5736
5737         * doc/tm.texi.in: Document new targetm.sched hooks.
5738         * doc/tm.texi: Regenerate.
5739
5740         * haifa-sched.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
5741         (first_cycle_multipass_data_t): New typedef.
5742         (struct choice_entry: target_data): New field.
5743         (max_issue): Add first_cycle_insn_p parameter.  Call new target hooks
5744         to allow target model restrictions not represented in DFA.
5745         (choose_ready, schedule_block): Update.
5746         (sched_extend_ready_list, sched_finish_ready_list): Call new target
5747         hooks to initialize target-specific data for multipass scheduling.
5748         * sched-int.h (max_issue): Update declaration.
5749         * sel-sched.c (choose_best_insn): Update.
5750         * target.def (first_cycle_multipass_{begin, issue, backtrack},)
5751         (first_cycle_multipass_{init, fini}): Define and document new
5752         targetm.sched hooks.
5753
5754 2010-11-02  Richard Guenther  <rguenther@suse.de>
5755
5756         PR tree-optimization/46184
5757         * tree-vect-loop.c (vectorizable_reduction): Try to obtain the
5758         input vector type from the reduction operand as well.
5759
5760 2010-11-02  Richard Guenther  <rguenther@suse.de>
5761
5762         PR tree-optimization/46177
5763         * tree-loop-distribution.c (prop_phis): Use
5764         mark_virtual_phi_result_for_renaming.
5765
5766 2010-11-02  Martin Jambor  <mjambor@suse.cz>
5767
5768         PR middle-end/46120
5769         * tree.c (get_binfo_at_offset): Bail out on artificial
5770         fields.  Identify primary bases according to their offsets.
5771
5772 2010-11-02  Martin Jambor  <mjambor@suse.cz>
5773
5774         PR tree-optimization/45875
5775         * gimple-fold.c (get_first_base_binfo_with_virtuals): Removed.
5776         (gimple_get_relevant_ref_binfo): Detect primary bases according to
5777         their field offset.
5778
5779 2010-11-02  Ian Lance Taylor  <iant@google.com>
5780
5781         * doc/install.texi (Configuration): Note in two places that Java
5782         is not enabled by default.
5783
5784 2010-11-02  Ian Lance Taylor  <iant@google.com>
5785
5786         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
5787         (Configuration): Mention --disable-lto.  Remove --with-libelf
5788         paragraph.
5789
5790 2010-11-02  Ian Lance Taylor  <iant@google.com>
5791
5792         * configure.ac: Remove elf_getshdrstrndx test.  Don't substitute
5793         LTO_BINARY_READER or LTO_USE_LIBELF.  Remove LIBELFLIBS and
5794         LIBELFINC.  Remove HAVE_libelf.
5795         * config.gcc: Don't set lto_binary_reader.
5796         * Makefile.in (LIBELFLIBS, LIBELFINC): Remove variables.
5797         (LTO_BINARY_READER, LTO_USE_LIBELF): Remove variables.
5798         (LIBS): Remove $(LIBELFLIBS).
5799         (INCLUDES): Remove $(LIBELFINC).
5800         * configure: Rebuild.
5801         * config.in: Rebuild.
5802
5803 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
5804
5805         * config/microblaze/microblaze-protos.h (function_arg): Delete.
5806         (function_arg_advance): Delete.
5807         * config/microblaze/microblaze.h (FUNCTION_ARG_ADVANCE): Delete.
5808         (FUNCTION_ARG): Delete.
5809         * config/microblaze/microblaze.c (function_arg_advance): Rename to...
5810         (microblaze_function_arg_advance): ...this.  Make static.  Take a
5811         const_tree and a bool.
5812         (function-arg): Rename to...
5813         (microblaze_function_arg): ...this.  Make static.  Take a const_tree
5814         and a bool.
5815         (microblaze_expand_prologue): Call targetm.calls.function_arg and
5816         targetm.calls.function_arg_advance.
5817         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5818
5819 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
5820
5821         Merge from FSF "apple/trunk" branch.
5822
5823         * config/rs6000/darwin.opt (mdynamic-no-pic): move from here ...
5824         * config/darwin.opt: .. to here.
5825         (matt-stubs): New option.
5826         * config/i386/darwin.opt: Delete.
5827         * config/i386/i386.h (MACHOPIC_ATT_STUB): New.
5828         (MACHO_DYNAMIC_NO_PIC_P): New.
5829         (MACHOPIC_INDIRECT): New.
5830         (MACHOPIC_PURE): New.
5831         * config/i386/darwin.h (DARWIN_X86) Define to 1.
5832         (MACHOPIC_ATT_STUB): New.
5833         (CC1_SPEC): Do not remove mdynamic-no-pic.
5834         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
5835         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
5836         (FUNCTION_PROFILER): Correct over-length line.
5837         (SUBTARGET_OVERRIDE_OPTIONS): New.
5838         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
5839         * config/i386/i386.c (config/i386/i386.c): Darwin has no PLT.
5840         (legitimate_constant_p): Handle mdynamic-no-pic.
5841         (ix86_legitimate_address_p): Likewise.
5842         (ix86_legitimize_address): Likewise.
5843         (ix86_expand_move): Likewise.
5844         (machopic_output_stub): Update for ATT-style stubs and
5845         mdynamic-no-pic.
5846         * config/darwin-protos.h (machopic_symbol_defined_p): New.
5847         * config/rs6000/darwin.h (DARWIN_PPC): Define to 1.
5848         TARGET_DYNAMIC_NO_PIC: Remove.
5849         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
5850         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
5851         * config/rs6000/rs6000.c (darwin_rs6000_override_options):
5852         Remove handling of mdynamic-no-pic.
5853         * config/darwin.c (HAVE_lo_sum, gen_macho_high, gen_macho_low):
5854         Define if required.
5855         (machopic_symbol_defined_p): Do not try to use current_function_decl
5856         when generating _get_pc thunks within stubs.
5857         (machopic_indirect_data_reference): Rework for direct conditionals
5858         rather than #ifdefs, add x86 mdynamic-no-pic
5859         (machopic_legitimize_pic_address): Update to use HAVE_lo_sum with a
5860         defined value.
5861         (darwin_override_options): Handle mdynamic-no-pic here.
5862         * config/darwin-sections.def (machopic_lazy_symbol_ptr2_section): New.
5863         (machopic_lazy_symbol_ptr3_section): New.
5864         (machopic_picsymbol_stub2_section): New.
5865         (machopic_picsymbol_stub3_section): New.
5866         * config/darwin.h (DARWIN_X86, DARWIN_PPC): Define to 0.
5867         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
5868         (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
5869         Moved common definition from x86 and rs6000.
5870         (MACHO_DYNAMIC_NO_PIC_P): Override value.
5871         (MACHOPIC_INDIRECT): Likewise.
5872         (MACHOPIC_PURE): Likewise.
5873         * config.gcc (x86-darwin-*): Remove darwin.opt.
5874
5875 2010-11-02  Jakub Jelinek  <jakub@redhat.com>
5876
5877         PR debug/46255
5878         * tree-cfg.c (gimple_flow_call_edges_add): Use gsi_last_nondebug_bb
5879         instead of gsi_last_bb.
5880
5881 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
5882             Maxim Kuvyrkov  <maxim@codesourcery.com>
5883
5884         * config/i386/i386.c (cpu_names): Add "corei7".
5885         * config/i386/i386.h (enum target_cpu_default): Add entry for Core i7.
5886
5887 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
5888             Maxim Kuvyrkov  <maxim@codesourcery.com>
5889
5890         Tune alignment for Intel Core i7
5891
5892         * config/i386.h (TARGET_COREI7{_32,_64,}): New macros.
5893         (enum processor_type): Update comment.  Add entries for Core i7.
5894         * config/i386-c.c (ix86_target_macros_internal): Update.
5895         * config/i386.c (m_COREI7{_32,_64}): New macros.
5896         (m_GENERIC32, m_GENERIC64): Use generic tuning for Core i7.
5897         (processor_target_table): Tune alignment for Core i7.
5898         (ix86_option_override_internal): Use PROCESSOR_COREI7_*.
5899
5900         * doc/invoke.texi: Document "corei7" option value.
5901
5902 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
5903             Maxim Kuvyrkov  <maxim@codesourcery.com>
5904             H.J. Lu  <hjl.tools@gmail.com>
5905
5906         Basic support for Intel Core i7
5907
5908         * i386.c (ix86_option_override_internal): Add entry for corei7, use
5909         generic tuning.  Use generic32 when compiling for 32-bit ABI.
5910
5911 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
5912
5913         * config/darwin.c (darwin_asm_named_section): Check for __DWARF
5914         sections and call darwin_asm_dwarf_section() to handle them.
5915         (darwin_asm_dwarf_section): New.
5916         (darwin_file_start): Remove code emitting dwarf section symbols.
5917
5918 2010-11-02  Chung-Lin Tang  <cltang@codesourcery.com>
5919
5920         * Makefile.in (LIBGCC2_CFLAGS): Add -fno-stack-protector, to
5921         explicitly disable stack protection when building libgcc.
5922         (CRTSTUFF_CFLAGS): Same, for crtbegin/end.
5923
5924 2010-11-01  Jason Merrill  <jason@redhat.com>
5925
5926         * fold-const.c (fold_indirect_ref_1): Handle folding
5927         POINTER_PLUS_EXPR to ARRAY_REF.
5928
5929 2010-11-01  Kaz Kojima  <kkojima@gcc.gnu.org>
5930
5931         * config/sh/sh.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
5932         (sh_delegitimize_address): New function.
5933
5934 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
5935
5936         * config/alpha/alpha.h (WORD_SWITCH_TAKES_ARG): Remove.
5937         * config/cris/cris.h (WORD_SWITCH_TAKES_ARG): Remove.
5938         (CC1_SPEC): Don't handle -target.
5939         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove single-argument
5940         options.
5941         * config/darwin.opt (Zallowable_client, Zbundle_loader,
5942         Zdylib_file, Zexported_symbols_list, Zfn_seg_addr_table_filename,
5943         Zimage_base, Zinit, Zinstall_name, Zmultiply_defined,
5944         Zmultiplydefinedunused, Zseg_addr_table, Zsegs_read_only_addr,
5945         Zsegs_read_write_addr, Zumbrella, Zunexported_symbols_list,
5946         Zweak_reference_mismatches, client_name, compatibility_version,
5947         current_version, dylinker_install_name, pagezero_size,
5948         read_only_relocs, seg1addr, segs_read_only_addr,
5949         segs_read_write_addr, sub_library, sub_umbrella): New.
5950         * config/freebsd-spec.h (BSD_WORD_SWITCH_TAKES_ARG): Remove.
5951         * config/freebsd.h (WORD_SWITCH_TAKES_ARG): Remove.
5952         * config/freebsd.opt: New.
5953         * config/interix.h (WORD_SWITCH_TAKES_ARG): Remove.
5954         * config/mips/iris6.h (WORD_SWITCH_TAKES_ARG): Remove.
5955         * config/rpath.opt: New.
5956         * config.gcc (*-*-freebsd*): Use rpath.opt and freebsd.opt.
5957         (alpha*-dec-osf5.1*, i[34567]86-*-interix3*, mips-sgi-irix6.5*):
5958         Use rpath.opt.
5959
5960 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
5961
5962         * common.opt (R, T, Tbss, Tdata, Ttext, h, z): New.
5963         * defaults.h (DEFAULT_SWITCH_TAKES_ARG, SWITCH_TAKES_ARG): Remove.
5964         (DEFAULT_WORD_SWITCH_TAKES_ARG): Define to 0.
5965         * doc/tm.texi.in (SWITCH_TAKES_ARG): Remove.
5966         (WORD_SWITCH_TAKES_ARG): Don't refer to SWITCH_TAKES_ARG.
5967         Document that options in .opt files do not need to be included.
5968         * doc/tm.texi: Regenerate.
5969         * gcc.c (LINK_COMMAND_SPEC): Don't include %{x}.
5970         * opts-common.c: Update comment on tm.h include.
5971         (decode_cmdline_option): Don't use SWITCH_TAKES_ARG.
5972         * system.h (SWITCH_TAKES_ARG): Poison.
5973         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Remove.
5974         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove options included
5975         in darwin.opt.
5976         (LINK_COMMAND_SPEC_A): Don't include %{x}.
5977         * config/fr30/fr30.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
5978         * config/freebsd-spec.h (FBSD_SWITCH_TAKES_ARG): Remove.
5979         * config/freebsd.h (SWITCH_TAKES_ARG): Remove.
5980         * config/frv/frv.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
5981         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Don't include %{x}.
5982         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Remove.
5983         * config/interix.h (WORD_SWITCH_TAKES_ARG): Don't handle -T options.
5984         * config/lm32/lm32.h (SWITCH_TAKES_ARG): Remove.
5985         * config/m32r/m32r.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
5986         * config/microblaze/microblaze.h (SWITCH_TAKES_ARG): Remove.
5987         * config/mips/mips.h (SWITCH_TAKES_ARG): Remove.
5988         * config/mips/netbsd.h (SWITCH_TAKES_ARG): Remove.
5989         * config/mips/vxworks.h (SWITCH_TAKES_ARG): Remove.
5990         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove.
5991         * config/netbsd-elf.h (SWITCH_TAKES_ARG): Remove.
5992         * config/openbsd.h (SWITCH_TAKES_ARG): Remove.
5993         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Remove.
5994         * config/score/score.h (SWITCH_TAKES_ARG): Remove.
5995         * config/sol2.h (SWITCH_TAKES_ARG): Remove.
5996         * config/sparc/sp-elf.h (SWITCH_TAKES_ARG): Remove.
5997         * config/sparc/sp64-elf.h (SWITCH_TAKES_ARG): Remove.
5998         * config/sparc/sparc.h (ASM_SPEC): Don't include %{R}.
5999         * config/svr4.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
6000
6001 2010-11-01  Paul Koning  <ni1d@arrl.net>
6002
6003         * config/pdp11/pdp11.md: Use iterators.
6004         (addqi3, subqi3, iorsi3, xorsi3): Delete.
6005
6006 2010-11-01  Steve Ellcey  <sje@cup.hp.com>
6007
6008         * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): Move under ifdef
6009         GCC_INSN_FLAGS_H.
6010         * libgcov.c (__gcov_indirect_call_profiler): Set
6011         VTABLE_USES_DESCRIPTORS if TARGET_VTABLE_USES_DESCRIPTORS is
6012         defined and use in place of TARGET_VTABLE_USES_DESCRIPTORS.
6013
6014 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
6015
6016         PR tree-optimization/46259
6017
6018         Revert:
6019         2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
6020         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
6021         build_vector_from_val.
6022
6023 2010-11-01  DJ Delorie  <dj@redhat.com>
6024
6025         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add define for RX610
6026         as well as an assertion.
6027
6028 2010-11-01  Paul Koning  <ni1d@arrl.net>
6029
6030         * config/pdp11/pdp11.c (pdp11_return_in_memory): Return vector and
6031         complex modes in memory.
6032
6033 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
6034
6035         * tree.c (build_vector_from_val): Use useless_type_conversion_p.
6036
6037 2010-11-01  Jakub Jelinek  <jakub@redhat.com>
6038
6039         PR target/45250
6040         * var-tracking.c (cfa_base_rtx): Move definition earlier in the file.
6041         (cfa_base_offset): New variable.
6042         (compute_cfa_pointer): Use cfa_base_rtx and cfa_base_offset.
6043         (adjust_mems): Don't do any sp or hfp replacements if cfa_base_rtx
6044         is NULL.
6045         (vt_init_cfa_base): Initialize cfa_base_offset.
6046
6047 2010-11-01  Alan Modra  <amodra@gmail.com>
6048
6049         PR target/46030
6050         * config/rs6000/rs6000.c (struct rs6000_stack): Add reload_completed
6051         and savres_strategy.
6052         (stack_info): New file scope var.
6053         (rs6000_init_machine_status): Init stack_info.
6054         (SAVRES_INLINE_FPRS, SAVRES_INLINE_GPRS,
6055         SAVRES_NOINLINE_GPRS_SAVES_LR, SAVRES_NOINLINE_FPRS_SAVES_LR,
6056         SAVRES_NOINLINE_FPRS_DOESNT_RESTORE_LR): Replace with..
6057         (SAVE_INLINE_FPRS, SAVE_INLINE_GPRS, REST_INLINE_FPRS, REST_INLINE_GPRS,
6058         SAVE_NOINLINE_GPRS_SAVES_LR, SAVE_NOINLINE_FPRS_SAVES_LR
6059         REST_NOINLINE_FPRS_DOESNT_RESTORE_LR): ..this.  Update all refs.
6060         (rs6000_savres_strategy): Rewrite.
6061         (rs6000_stack_info): Use "stack_info" in place of local "info".
6062         Return cached stack info when reload_completed unless ENABLE_CHECKING
6063         in which case confirm newly calculated stack info matches old info.
6064         Delay calculation of lr_save_p, set it for out of line gp save/restore
6065         as well as fp.  Call rs6000_savres_strategy from here..
6066         (rs6000_emit_prologue, rs6000_emit_epilogue): ..rather than here.
6067         (rs6000_output_function_prologue): Use info->savres_strategy to
6068         determine whether fp save/restore externs need to be emitted.
6069
6070 2010-10-31  Jason Merrill  <jason@redhat.com>
6071
6072         * tree.h (EXPR_LOC_OR_HERE): New macro.
6073         * builtins.c (c_strlen): Use it.
6074         * c-decl.c (build_enumerator): Likewise.
6075         * gimplify.c (internal_get_tmp_var): Likewise.
6076         (shortcut_cond_expr): Likewise.
6077         (gimplify_one_sizepos): Likewise.
6078
6079 2010-10-31  Richard Henderson  <rth@redhat.com>
6080
6081         * config/i386/cygming.h (TARGET_SEH): New.
6082         (MAX_STACK_ALIGNMENT): New.  Disable alignment for SEH.
6083         (TARGET_ASM_UNWIND_EMIT, TARGET_ASM_UNWIND_EMIT_BEFORE_INSN,
6084         TARGET_ASM_FUNCTION_END_PROLOGUE, SUBTARGET_ASM_UNWIND_INIT): New.
6085         (TARGET_OS_CPP_BUILTINS): Define __SEH__ as needed.
6086         (ASM_DECLARE_FUNCTION_NAME): Use i386_pe_start_function.
6087         (ASM_DECLARE_FUNCTION_SIZE): New.
6088         * config/i386/i386-protos.h: Update.
6089         * config/i386/i386.c (ix86_option_override_internal): Enable
6090         flag_unwind_tables with flag_asynchronous_unwind_tables immediately;
6091         restrict -mpreferred-stack-boundary for SEH; enable flag_fentry.
6092         (ix86_asm_output_function_label): Use SUBTARGET_ASM_UNWIND_INIT.
6093         (ix86_compute_frame_layout): For SEH, disable
6094         use_fast_prologue_epilogue, move frame pointer to the end of
6095         the frame.  Initialize hfp_save_offset.
6096         (ix86_expand_prologue): Honor hfp_save_offset.  Emit blockage
6097         at end of prologue for SEH.
6098         (ix86_expand_epilogue): For SEH, use pops, emit a nop if needed,
6099         emit blockage at beginning of epilogue.
6100         (ix86_expand_binary_operator): After reload, emit LEA if needed.
6101         (ix86_output_call_insn): New.
6102         * config/i386/i386.h (TARGET_SEH): New.
6103         (struct machine_function): Add member seh.
6104         * config/i386/i386.md (all call patterns): Use ix86_output_call_insn.
6105         * config/i386/winnt.c (struct seh_frame_state): New.
6106         (i386_pe_seh_init, i386_pe_seh_end_prologue, i386_pe_seh_fini,
6107         seh_emit_push, seh_emit_save, seh_emit_stackalloc, seh_cfa_adjust_cfa,
6108         seh_cfa_offset, seh_frame_related_expr, i386_pe_seh_unwind_emit,
6109         i386_pe_start_function, i386_pe_end_function): New.
6110
6111         * dwarf2out.c (dwarf2out_frame_debug_expr): Accept CFA as well
6112         as CFA_STORE in rules 12 and 13.
6113
6114 2010-10-31  Uros Bizjak  <ubizjak@gmail.com>
6115
6116         PR tree-optimization/46142
6117         * tree-vect-stmts.c (vectorizable_call): Enlarge dt array to
6118         accommodate third function argument.
6119
6120 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
6121
6122         * tree-ssa-loop-im.c (rewrite_reciprocal): Use build_one_cst.
6123
6124 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
6125
6126         * fold-const.c (build_zero_vector): Use build_vector_from_val.
6127         * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
6128         (get_initial_def_for_reduction): Likewise.
6129         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
6130         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Likewise.
6131         * tree.c (build_one_cst): Likewise.
6132         (build_vector_from_val): Use types_compatible_p for assert.
6133
6134 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
6135
6136         * emit-rtl.c (mark_used_flags): New function.
6137         (set_used_flags, reset_used_flags): Call it.
6138
6139 2010-10-30  Uros Bizjak  <ubizjak@gmail.com>
6140
6141         PR middle-end/44569
6142         * lower-suberg.c (simplify_subreg_concatn): For VOIDmode elements,
6143         determine the mode of a subreg by GET_MODE_INNER of CONCATN RTX.
6144
6145 2010-10-30  H.J. Lu  <hongjiu.lu@intel.com>
6146
6147         PR target/46195
6148         * config/i386/i386.c (contains_aligned_value_p): Renamed to ...
6149         (ix86_compat_aligned_value_p): This.
6150         (ix86_old_function_arg_boundary): Renamed to ...
6151         (ix86_compat_function_arg_boundary): This.  Updated.
6152         (ix86_contains_aligned_value_p): New.
6153         (ix86_function_arg_boundary): Align long double parameters on
6154         stack to 4byte in 32bit.
6155
6156 2010-10-30  Nicola Pero  <nicola.pero@meta-innovation.com>
6157
6158         Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
6159         * c-parser.c (c_parser_objc_at_property_declaration): Removed
6160         parsing of RID_COPIES and RID_IVAR.  Updated call to
6161         objc_add_property_declaration.
6162         * c-typecheck.c (build_component_ref): Call
6163         objc_maybe_build_component_ref instead of objc_build_setter_call.
6164         Use objc_is_property_ref to improve Objective-C checks.
6165         (cp_build_modify_expr): Call objc_maybe_build_modify_expr instead
6166         of objc_build_getter_call.
6167
6168 2010-10-29  Paul Koning  <ni1d@arrl.net>
6169
6170         * doc/tm.texi.in (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
6171         REGNO_MODE_OK_FOR_REG_BASE, REGNO_MODE_CODE_OK_FOR_BASE_P,
6172         REGNO_OK_FOR_INDEX_P): Delete non-strict variant.
6173         (REG_OK_STRICT): Move description.
6174
6175 2010-10-29  Paul Koning  <ni1d@arrl.net>
6176
6177         * config/pdp11/pdp11.md (*and<mode>): Rename to *bic<mode>.
6178
6179 2010-10-29  Paul Koning  <ni1d@arrl.net>
6180
6181         * config/pdp11/pdp11.md (divhi3, modhi3, divmodhi3): Fix ICE.
6182
6183 2010-10-29  Paul Koning  <ni1d@arrl.net>
6184
6185         PR/41822
6186         * config/pdp11/pdp11.md (andhi3, andqi3): Fix wrong code error.
6187
6188 2010-10-29  Richard Henderson  <rth@redhat.com>
6189
6190         PR rtl-opt/46226
6191         * stmt.c (expand_asm_operands): Call do_pending_stack_adjust
6192         for asm goto.
6193
6194 2010-10-29  Paul Koning  <ni1d@arrl.net>
6195
6196         * config/pdp11/pdp11.c (output_move_quad): Fix ICE for CPU
6197         register to register move.
6198
6199 2010-10-29  Paul Koning  <ni1d@arrl.net>
6200
6201         * config/pdp11/pdp11.c (print_operand_address): Correct handling
6202         of integer constant addresses, delete vax-only logic.
6203
6204 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
6205
6206         * config/picochip/picochip.c (picochip_is_short_branch): Simplify
6207         a conditional expression.
6208
6209 2010-10-29  Paul Koning  <ni1d@arrl.net>
6210
6211         * config/pdp11/pdp11.c (pdp11_trampoline_init): Correct
6212         instruction encoding.
6213
6214 2010-10-29  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
6215             Andrew Pinski  <pinskia@gmail.com>
6216
6217         * tree.h (build_vector_from_val): Declare.
6218         * tree.c (build_vector_from_val): New function.
6219         * c-typeck.c (build_binary_op): Handle vector shifting.
6220         * doc/extend.texi: Description of the vector shifting operation.
6221
6222 2010-10-29  Paul Koning  <pkoning@equallogic.com>
6223
6224         * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class,
6225         pdp11_secondary_memory_needed): Declare.
6226         * config/pdp11/predicates.md (float_operand): New predicate.
6227         * config/pdp11/pdp11.md (RETVAL_REGNUM): New constant.
6228         (cbranchdf4, movdf): Change predicate.
6229         (movsf): Handle FPU register case.
6230         (truncdfsf2, extendsfdf2): Add FPU register case.
6231         * config/pdp11/pdp11.c (TARGET_SECONDARY_RELOAD,
6232         TARGET_REGISTER_MOVE_COST, TARGET_PREFERRED_RELOAD_CLASS,
6233         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
6234         (pdp11_register_move_cost): Update cost matrix.
6235         (pdp11_cannot_change_mode_class, pdp11_preferred_reload_class,
6236         pdp11_preferred_output_reload_class, pdp11_secondary_reload,
6237         pdp11_secondary_memory_needed): New function.
6238         (pdp11_return_in_memory): Add other float types.
6239         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Add other float types.
6240         (SECONDARY_MEMORY_NEEDED, CANNOT_CHANGE_MODE_CLASS): Define.
6241         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS,
6242         REGISTER_MOVE_COST): Delete.
6243         (BASE_RETURN_VALUE_REG): Add other float types.
6244
6245 2010-10-29  Nick Clifton  <nickc@redhat.com>
6246
6247         * doc/invoke.texi: Document -mam34 and -mtune options.
6248         * config/mn10300/mn10300.c (mn10300_tune_string): New variable.
6249         (mn10300_tune_cpu): New variable.
6250         (mn10300_handle_option): Handle -mam34 and -mtune options.
6251         (mn10300_option_override): Convert tune string into tune cpu variable.
6252         (mn10300_legitimate_constant_p): Delete unused local variable.
6253         (is_load_insn): New function.
6254         (is_store_insn): New function.
6255         (mn10300_adjust_schedule_cost): New function.
6256         (TARGET_SCHED_ADJUST_COST): Define.
6257         * config/mn10300/mn10300.opt (mam34): New option.
6258         (mtune): New option.
6259         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add AM34 support.
6260         (enum processor_type): Add AM34.
6261         (TARGET_AM34): Define.
6262         * config/mn10300/mn10300.md (attr cpu): Add am34.
6263         Add pipeline description.
6264         (movqi, movhi, movsi, movsf, movdf, movdi): Fix predicates.
6265         Remove unneeded alternatives.  Add timing attribute.
6266         (pop_pic_reg, am33_addsi3, mn10300_addsi3, am33_subsi3,
6267         mn10300_subsi3, mulsidi3, umulsidi3, am33_mulsi3,
6268         mn10300_mulsi3, udivmodsi4_am33, divmodsi4, am33_andsi3,
6269         mn10300_andsi3, am33_iorsi3, mn10300_iorsi3, am33_xorsi3,
6270         mn10300_xorsi3, byte_clear, byte_set, bit_clear1, bit_clear2,
6271         bit_set, am33_iorqi3, mn10300_iorqi3, test_byte_bitfield,
6272         bit_test, subreg_bit_test, cmpsi, am33_cmpsf, am33_subsi3,
6273         float_conditional_branch, jump, indirect_jump, tablejump,
6274         call_internal, call_value_internal, zero_extendqisi2_am33,
6275         zero_extendqisi2_mn10300, zero_extendhisi2_am33,
6276         zero_extendhisi2_mn10300, extendqisi2_am33, extendqisi2_mn10300,
6277         extendhisi2_am33, extendhisi2_mn10300, am33_ashlsi3,
6278         mn10300_ashlsi3, am33_lshrsi3, mn10300_lshrsi3, am33_ashrisi3,
6279         mn10300_ashrsi3, abssf2_am33_2, negsf2_am33_2, rsqrtsf2,
6280         addsf3_internal, subsf3_internal, mulsf3_internal, divsf3,
6281         fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4, return_internal,
6282         return_internal_regs, store_movm, return, call_next_insn):
6283         Add timing attribute.
6284         (am33_subsi3): Add missing clobber of CC_REG.
6285         (am33_andsi3, mn10300_andsi3): Fix compile time warnings.
6286         (udivmodsi4, udivmodsi4_insn, divmodsi4, test_byte_bitfield,
6287         subreg_bit_test, zero_extendqisi2, zero_extendhisi2,
6288         extendqisi2): Fix predicates.
6289         (call_internal, call_internal_value): Separate alternatives.
6290         * config/mn10300/t-mn10300: Add AM34 multilib.
6291
6292 2010-10-29  Paolo Bonzini  <bonzini@gnu.org>
6293
6294         * config/sh/sh.c (sh_promote_function_mode): Use
6295         default_promote_function_mode if !sh_promote_prototypes.
6296
6297 2010-10-28  Paolo Bonzini  <bonzini@gnu.org>
6298
6299         * recog.c (split_all_insns): Remove dead code.
6300
6301 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6302
6303         * score.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6304
6305 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6306
6307         * config/cris/cris.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
6308         (FUNCTION_ARG_ADVANCE): Delete.
6309         * config/cris/cris.c (cris_function_arg_1, cris_function_arg): New
6310         functions.
6311         (cris_function_incoming_arg, cris_function_arg_advance): New functions.
6312         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
6313         (TARGET_FUNCTION_ARG_ADVANCE): Define.
6314
6315 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6316
6317         * config/lm32/lm32-protos.h (lm32_function_arg): Delete.
6318         * config/lm32/lm32.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6319         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
6320         Take a const_tree and a bool.
6321         (mcore_function_arg_advance): New function.
6322         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6323
6324 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6325
6326         * config/mcore/mcore-protos.h (mcore_function_arg): Delete.
6327         * config/mcore/mcore.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6328         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
6329         Take a const_tree and a bool.
6330         (mcore_function_arg_advance): New function.
6331         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6332
6333 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6334
6335         * config/h8300/h8300-protos.h (function_arg): Delete.
6336         * config/h8300/h8300.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6337         * config/h8300/h8300.c (function_arg): Rename to...
6338         (h8300_function_arg): ...this.  Make static.  Take a const_tree and
6339         a bool.
6340         (h8300_function_arg_advance): New function.
6341         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6342
6343 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6344
6345         * config/arc/arc.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move code
6346         to...
6347         * config/arc/arc.c (arc_function_arg): ...here and...
6348         (arc_function_arg_advance): ...here.  New functions.
6349         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6350
6351 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6352
6353         * config/crx/crx-protos.h (crx_function_arg): Delete.
6354         (crx_function_arg_advance): Delete.
6355         * config/crx/crx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6356         * config/crx/crx.c (crx_function_arg): Make static.  Take a
6357         const_tree and a bool.
6358         (crx_function_arg_advance): Make static.  Take a const_tree and a bool.
6359         (enough_regs_for_param): Take a const_tree.
6360         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6361
6362 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6363
6364         * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg): Delete.
6365         (m68hc11_function_arg_advance): Delete.
6366         * config/m68hc11/m68hc11.h (FUNCTION_ARG): Delete.
6367         (FUNCTION_ARG_ADVANCE): Delete.
6368         * config/m68hc11/m68hc11.c (m68hc11_function_arg): Make static.
6369         Take a const_tree and a bool.
6370         (m68hc11_function_arg_advance): Likewise.
6371         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6372
6373 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6374
6375         * config/stormy16/stormy16-protos.h (xstormy16_function_arg): Delete.
6376         (xstormy16_function_arg_advance): Delete.
6377         * config/stormy16/stormy16.h (FUNCTION_ARG): Delete.
6378         (FUNCTION_ARG_ADVANCE): Delete.
6379         * config/stormy16/stormy16.c (xstormy16_function_arg): Make static.
6380         Take a const_tree and a bool.
6381         (xstormy16_function_arg_advance): Likewise.  Return void, updating
6382         the CUM parameter instead.
6383         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6384
6385 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6386
6387         * config/moxie/moxie-protos.h (moxie_function_arg): Delete.
6388         * config/moxie/moxie.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6389         (MOXIE_FUNCTION_ARG_SIZE): Move to...
6390         * config/moxie/moxie.c (MOXIE_FUNCTION_ARG_SIZE): ...here.
6391         (moxie_function_arg): Make static.  Take a const_tree and a bool.
6392         (moxie_function_arg_advance): New function.
6393         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6394
6395 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6396
6397         * config/mn10300/mn10300-protos.h (function_arg): Delete.
6398         * config/mn10300/mn10300.h (FUNCTION_ARG): Delete.
6399         (FUNCTION_ARG_ADVANCE): Delete.
6400         * config/mn10300/mn10300.c (function_arg): Rename to...
6401         (mn10300_function_arg): ...this.  Make static.  Take a const_tree
6402         and a bool.
6403         (mn10300_function_arg_advance): New function.
6404         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6405
6406 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6407
6408         * config/iq2000/iq2000-protos.h (function_arg): Delete.
6409         (function_arg_advance): Delete.
6410         * config/iq2000/iq2000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6411         * config/iq2000/iq2000.c (function_arg): Rename to...
6412         (iq2000_function_arg): ...this.  Make static.  Take a const_tree and
6413         a bool.
6414         (function_arg_advance): Rename to...
6415         (iq2000_function_arg_advance): ...this.  Make static.  Take a
6416         const_tree and a bool.
6417         (iq2000_expand_prologue): Call iq2000_function_arg_advance and
6418         iq2000_function_arg.
6419         (iq2000_pass_by_reference): Call iq2000_function_arg).
6420         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6421
6422 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6423
6424         * config/fr30/fr30-protos.h (fr30_num_arg_regs): Delete.
6425         * config/fr30/fr30.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6426         * config/fr30/fr30.c (fr30_num_arg_regs): Make static.  Take a
6427         const_tree.
6428         (fr30_function_arg): New function.
6429         (fr30_function_arg_advance): New function.
6430         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6431
6432 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
6433
6434         * config/frv/frv-protos.h (frv_function_arg): Delete.
6435         (frv_function_arg_advance): Delete.
6436         * config/frv/frv.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6437         * config/frv/frv.c (frv_function_arg): Rename to...
6438         (frv_function_arg_1): Make static.  Take const_tree and bool arguments.
6439         (frv_function_arg, frv_function_incoming_arg): New functions.
6440         (frv_function_arg_advance): Make static.  Take a const_tree and a bool.
6441         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
6442         (TARGET_FUNCTION_ARG_ADVANCE): Define.
6443
6444 2010-10-28  Uros Bizjak  <ubizjak@gmail.com>
6445
6446         PR target/46153
6447         * config/i386/sse.md (sse_movhlps_exp): Use destination
6448         returned from ix86_fixup_binary_operands to expand insn.
6449         (sse_movlhps_exp): Ditto.
6450         (sse_loadhps_exp): Ditto.
6451         (sse_loadlps_exp): Ditto.
6452         (sse2_loadhpd_exp): Ditto.
6453         (sse2_loadlpd_exp): Ditto.
6454
6455 2010-10-28  Andrew Stubbs  <ams@codesourcery.com>
6456
6457         * config/arm/arm.c (const_ok_for_arm): Support 0xXY00XY00 pattern
6458         constants in thumb2.
6459
6460 2010-10-28  Eric Botcazou  <ebotcazou@adacore.com>
6461
6462         * combine.c (set_nonzero_bits_and_sign_copies): Use unsigned
6463         arithmetics in masking operations.
6464         (contains_muldiv): Likewise.
6465         (try_combine): Likewise.
6466         (find_split_point): Likewise.
6467         (combine_simplify_rtx): Likewise.
6468         (simplify_if_then_else): Likewise.
6469         (simplify_set): Likewise.
6470         (expand_compound_operation): Likewise.
6471         (expand_field_assignment): Likewise.
6472         (make_extraction): Likewise.
6473         (extract_left_shift): Likewise.
6474         (make_compound_operation): Likewise.
6475         (force_to_mode): Likewise.
6476         (make_field_assignment): Likewise.
6477         (reg_nonzero_bits_for_combine): Likewise.
6478         (simplify_shift_const_1): Likewise.
6479         (simplify_comparison): Likewise.
6480
6481 2010-10-27  Nathan Froyd  <froydnj@codesourcery.com>
6482
6483         * config/ia64/ia64-protos.h (ia64_function_arg): Delete.
6484         (ia64_function_arg_advance): Delete.
6485         * config/ia64/ia64.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
6486         (FUNCTION_ARG_ADVANCE): Delete.
6487         * config/ia64/ia64.c (ia64_function_arg): Rename to...
6488         (ia64_function_arg_1): ...this.  Make static.  Take const_tree and
6489         bool arguments.
6490         (ia64_function_arg, ia64_function_incoming_arg): New functions.
6491         (ia64_function_arg_advance): Make static.  Take a const_tree and
6492         a bool.
6493         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
6494         (TARGET_FUNCTION_ARG_ADVANCE): Define.
6495
6496 2010-10-27  Steve Ellcey  <sje@cup.hp.com>
6497
6498         * doc/tm.texi.in (TARGET_GET_RAW_RESULT_MODE): New.
6499         (TARGET_GET_RAW_ARG_MODE): New.
6500         * doc/tm.texi: Regenerate.
6501         * target.def (get_raw_result_mode): New.
6502         (get_raw_arg_mode): New.
6503         * targhooks.c (default_get_reg_raw_mode): New.
6504         * targhooks.h (default_get_reg_raw_mode): New.
6505         * builtins.c (apply_args_size): Use targetm.calls.get_raw_arg_mode.
6506         (apply_result_size): Ditto.
6507         * config/ia64/ia64.c (ia64_get_reg_raw_mode): New.
6508         (TARGET_GET_RAW_RESULT_MODE): Define.
6509         (TARGET_GET_RAW_ARG_MODE): Ditto.
6510
6511 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
6512
6513         * config/sparc/sol2-unwind.h (sparc64_fallback_frame_state): Adjust
6514         for newer Solaris 10 release.
6515         (sparc_fallback_frame_state): Likewise.
6516
6517 2010-10-27  Jason Merrill  <jason@redhat.com>
6518
6519         * gimplify.c (gimplify_decl_expr): Handle anonymous artificial
6520         variables sooner.
6521
6522 2010-10-27  Jie Zhang  <jie@codesourcery.com>
6523             Maxim Kuvyrkov  <maxim@codesourcery.com>
6524
6525         * haifa-sched.c (ISSUE_POINTS): Remove.
6526         (max_issue): Don't issue more than issue_rate instructions.
6527
6528 2010-10-27  Ian Lance Taylor  <iant@google.com>
6529
6530         PR target/46197
6531         * config/i386/i386.md (UNSPECV_SPLIT_STACK_RETURN): New.
6532         (split_stack_return): Replace UNSPEC_STACK_CHECK with
6533         UNSPECV_SPLIT_STACK_RETURN.
6534
6535 2010-10-27  H.J. Lu  <hongjiu.lu@intel.com>
6536
6537         * config/i386/i386-protos.h (init_cumulative_args): Add an int.
6538
6539         * config/i386/i386.c (block_info): New.
6540         (BLOCK_INFO): Likewise.
6541         (call_avx256_state): Likewise.
6542         (check_avx256_stores): Likewise.
6543         (move_or_delete_vzeroupper_2): Likewise.
6544         (move_or_delete_vzeroupper_1): Likewise.
6545         (move_or_delete_vzeroupper): Likewise.
6546         (use_avx256_p): Likewise.
6547         (function_pass_avx256_p): Likewise.
6548         (flag_opts): Add -mvzeroupper.
6549         (ix86_option_override_internal): Turn on MASK_VZEROUPPER by
6550         default for TARGET_AVX.  Turn off MASK_VZEROUPPER if TARGET_AVX
6551         is disabled.
6552         (ix86_function_ok_for_sibcall): Disable sibcall if we need to
6553         generate vzeroupper.
6554         (init_cumulative_args): Add an int to indicate caller.  Set
6555         use_avx256_p, callee_return_avx256_p and caller_use_avx256_p
6556         based on return type.
6557         (ix86_function_arg): Set use_avx256_p, callee_pass_avx256_p and
6558         caller_pass_avx256_p based on argument type.
6559         (ix86_expand_epilogue): Emit vzeroupper if 256bit AVX register
6560         is used, but not returned by caller.
6561         (ix86_expand_call): Emit vzeroupper if 256bit AVX register is used.
6562         (ix86_local_alignment): Set use_avx256_p if 256bit AVX register
6563         is used.
6564         (ix86_minimum_alignment): Likewise.
6565         (ix86_expand_special_args_builtin): Set target to
6566         GEN_INT (vzeroupper_intrinsic) for CODE_FOR_avx_vzeroupper.
6567         (ix86_reorg): Run the vzeroupper optimization if needed.
6568
6569         * config/i386/i386.h (ix86_args): Add caller.
6570         (INIT_CUMULATIVE_ARGS): Updated.
6571         (machine_function): Add use_vzeroupper_p, use_avx256_p,
6572         caller_pass_avx256_p, caller_return_avx256_p,
6573         callee_pass_avx256_p and callee_return_avx256_p.
6574
6575         * config/i386/i386.opt (-mvzeroupper): New.
6576
6577         * config/i386/predicates.md (vzeroupper_operation): Removed.
6578
6579         * config/i386/sse.md (avx_vzeroupper): Removed.
6580         (*avx_vzeroupper): Removed.
6581         (avx_vzeroupper): New.
6582
6583         * doc/invoke.texi: Document -mvzeroupper.
6584
6585 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
6586
6587         * config/i386/t-mingw32 (SHLIB_LC): Add -lmingwthrd.
6588         * config/i386/t-mingw-w32 (SHLIB_LC): Likewise.
6589         * config/i386/t-mingw-w64 (SHLIB_LC): Likewise.
6590
6591 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
6592             Olivier Hainque  <hainque@adacore.com>
6593
6594         * config/i386/w32-unwind.h (i386_w32_fallback_frame_state): Fix regnum
6595         of EBP.  Do not restore reg #9.  Remove +1 adjustment to EIP and set
6596         fs->signal_frame instead.
6597
6598 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
6599
6600         * c-parser.c (cp_parser_objc_at_property_declaration): Removed
6601         parsing of RID_COPIES and RID_IVAR.
6602
6603 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
6604
6605         * c-parser.c (c_parser_objc_at_property_declaration): Recognize
6606         RID_ASSIGN, RID_COPY, RID_RETAIN, RID_READWRITE and RID_NONATOMIC.
6607         Do not use objc_set_property_attr, but use local variables
6608         instead.  Detect repeated usage of setter, getter and ivar
6609         attributes.  Improved error processing when a setter name does not
6610         end in ':'.  Do not check for CPP_CLOSE_PAREN after we determined
6611         that the token is a keyword.  Updated call to
6612         objc_add_property_declaration.
6613
6614 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
6615
6616         * c-parser.c (c_parser_objc_at_property): Renamed to
6617         c_parser_objc_at_property_declaration.  Updated calls to
6618         objc_add_property_variable, now objc_add_property_declaration.
6619         Code rewritten to be much more robust in recovering from syntax
6620         errors.  Added comments.
6621         (c_parser_objc_property_attrlist): Removed.
6622         (c_parser_external_declaration): Updated calls to
6623         c_parser_objc_at_property, now
6624         c_parser_objc_at_property_declaration.
6625         (c_parser_objc_methodprotolist): Same change.
6626
6627 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
6628
6629         * config/i386/i386.md (split_stack_return): Put back unspec_volatile.
6630
6631 2010-10-26  Jan Hubicka  <jh@suse.cz>
6632
6633         * ipa.c (process_references): Enqueue all referenced nodes;
6634         mark as reachable only non-external nodes.
6635         (cgraph_remove_unreachable_nodes): All referenced nodes should
6636         be enqueued; remove bogues node->needed check.
6637
6638 2010-10-26  Jan Hubicka  <jh@suse.cz>
6639
6640         * cgraphbuild.c (build_cgraph_edges): Use ipa-reference
6641         to represent OMP.
6642
6643 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
6644
6645         * config/i386/i386.md (split_stack_return): Replace
6646         unspec_volatile with unspec.
6647
6648 2010-10-26  Jonathan Wakely  <jwakely.gcc@gmail.com>
6649
6650         * doc/install.texi: Fix typo in --with-sysroot description.
6651
6652 2010-10-26  Jan Hubicka  <jh@suse.cz>
6653
6654         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
6655         Use info provided by linker plugin.
6656
6657 2010-10-26  Jason Merrill  <jason@redhat.com>
6658
6659         * varasm.c (constructor_static_from_elts_p): Don't require a
6660         CONSTRUCTOR to have elements to be suitable for static
6661         initialization.  Allow ARRAY_TYPE as well.
6662
6663 2010-10-26  Jan Hubicka  <jh@suse.cz>
6664
6665         PR middle-end/45736
6666         * cgraph.c (cgraph_set_readonly_flag): Rename to...
6667         (cgraph_set_const_flags) ... this one; get also looping argument;
6668         clear constructor/destructor flags.
6669         (cgraph_set_pure_flag): Likewise.
6670         (cgraph_set_looping_const_or_pure_flag): Remove.
6671         (cgraph_can_remove_if_no_direct_calls_and_refs): Do not try
6672         to optimize away static ctors/dtors; it does not work on inline clones;
6673         external functions can always be rmeoved.
6674         (cgraph_will_be_removed_from_program_if_no_direct_calls): Assert on
6675         inline clones; in LTO external functions always can go.
6676         (cgraph_used_from_object_file_p): Handle EXTERNAL functions correctly.
6677         (cgraph_mark_address_taken_node): Assert that we are not taking
6678         address of inline clone.
6679         (cgraph_can_remove_if_no_direct_calls_p): We always eventually remove
6680         external functions.
6681         * ipa-cp.c (ipcp_cloning_candidate_p): Do not clone functions with
6682         address taken.
6683         (ipcp_initialize_node_lattices): Only local functions can be
6684         handled without cloning.
6685         * cgraph.h (cgraph_set_readonly_flag,
6686         cgraph_set_looping_const_or_pure_flag): Remove.
6687         (cgraph_set_const_flag): Declare.
6688         (cgraph_set_pure_flag): Update.
6689         * ipa-pure-const (propagate_pure_const, local_pure_const): Update
6690         flags setting code.
6691         * ipa.c (cgraph_remove_unreachable_nodes): Fix formating; do not
6692         look at inline clones; fix handling of external definitions.
6693         (cgraph_postorder): Do not look at inline clones in the first pass.
6694         (function_and_variable_visibility): Drop constructors/destructor
6695         flags at pure and const functions.
6696         * tree-profile.c (tree_profiling): Update.
6697         * ipa-inline.c (cgraph_clone_inlined_nodes): Always clone functions with
6698         address taken; external functions do not account to whole program size.
6699         (cgraph_decide_inlining): Likewise; do not try to inline
6700         functions already inlined.
6701
6702 2010-10-26  Jie Zhang  <jie@codesourcery.com>
6703
6704         * doc/invoke.texi: Improve documentation of
6705         -fstrict-volatile-bitfields.
6706
6707 2010-10-26  Ira Rosen  <irar@il.ibm.com>
6708
6709         PR tree-optimization/46167
6710         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check that there
6711         is basic block for the statement.
6712
6713 2010-10-26  Paul Koning  <ni1d@arrl.net>
6714
6715         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Update to
6716         current definition of struct_real_format.
6717
6718 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
6719
6720         PR target/44948
6721         * config/i386/i386.c (ix86_old_function_arg_boundary): New.
6722         (ix86_function_arg_boundary): Always align parameters on stack
6723         in 64bit and align parameters with alignment >= 16byte on stack
6724         in 32bit.  Warn alignment change.
6725
6726 2010-10-26  Ian Lance Taylor  <iant@google.com>
6727
6728         PR middle-end/45687
6729         * ipa-prop.c (ipa_modify_call_arguments): Correct type of MEM_REF
6730         offset.
6731
6732 2010-10-25  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
6733
6734         Implement opaque-enum-specifiesr for C++0x
6735         * tree.h (ENUM_IS_OPAQUE): New.
6736         * dwarf2out.c (gen_enumeration_type_die): Use ENUM_IS_OPAQUE.
6737
6738 2010-10-26  Jie Zhang  <jie@codesourcery.com>
6739
6740         * stor-layout.c (layout_decl): Use the field's type to
6741         determine the mode and keep DECL_BIT_FIELD for a volatile bit-field.
6742         * config/arm/arm.c (arm_override_options): Default to
6743         -fstrict-volatile-bitfields.
6744
6745 2010-10-25  Paul Koning  <ni1d@arrl.net>
6746
6747         * config/pdp11/pdp11.md: Add define_constants for register
6748         numbers, branch offset limits.
6749         * config/pdp11/pdp11.c: Use named constants instead of numbers.
6750         * config/pdp11.pdp11.h: Ditto.
6751
6752 2010-10-25  Eric Botcazou  <ebotcazou@adacore.com>
6753
6754         * configure.ac: Use $cpu_type instead of $target to define the nop.
6755         * configure: Regenerate.
6756
6757 2010-10-25  Jie Zhang  <jie@codesourcery.com>
6758
6759         * combine.c (try_combine): If insns need to be kept around, check that
6760         they can be copied in the merged instruction.
6761
6762 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
6763
6764         * reg-stack.c (convert_regs_1): Return boolean value, true if the CFG
6765         has been modified.
6766         (convert_regs_2): Likewise.  Adjust calls to convert_regs_1.
6767         (convert_regs): Adjust calls to convert_regs_2.  Clean up the CFG if
6768         it has been modified.
6769
6770 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
6771
6772         * config/sparc/sparc.c (sparc_type_code) <NULLPTR_TYPE>: New case.
6773
6774 2010-10-24  Paul Koning  <ni1d@arrl.net>
6775
6776         * config/pdp11/pdp11.md: Change length attribute to be in bytes.
6777         * config/pdp11/pdp11.c (output_jump): Ditto.
6778
6779 2010-10-24  Ian Lance Taylor  <iant@google.com>
6780
6781         * config/i386/i386.c (ix86_va_start): Remove extraneous blank line.
6782
6783 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
6784
6785         * cfglayout.c (fixup_reorder_chain): When ensuring that there is at
6786         least one insn with a locus corresponding to an edge's goto_locus,
6787         disregard non-fallthru edges to the exit block and merge the blocks
6788         created for the same goto_locus.
6789
6790 2010-10-23  Joseph Myers  <joseph@codesourcery.com>
6791
6792         * gcc.c (n_switches_alloc_debug_check): New.
6793         (set_option_handlers): New.
6794         (process_command): Use set_option_handlers.
6795         (do_self_spec): Pass spec-generated options through option handlers.
6796         (main): Also save and restore n_switches_alloc when swapping
6797         switch arrays.
6798
6799 2010-10-23  Richard Henderson  <rth@redhat.com>
6800
6801         PR target/46144
6802         * config/i386/sse.md (*avx_absneg<AVXMODEF2P>2): New.
6803         (*sse_absneg<SSEMODEF2P>2): Rename from *absneg<VEC_FLOAT_MODE>2.
6804         Honor matching operands when splitting to XOR.
6805
6806 2010-10-23  Ian Lance Taylor  <iant@google.com>
6807
6808         * tree-vrp.c (extract_range_from_binary_expr): If
6809         flag_non_call_exceptions don't eliminate division by zero.
6810         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
6811
6812 2010-10-23  Nathan Froyd  <froydnj@codesourcery.com>
6813
6814         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
6815         __BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__, __ORDER_BIG_ENDIAN__, and
6816         __ORDER_PDP_ENDIAN__.
6817         * libgcc2.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6818         (struct DWstruct): Define based on __BYTE_ORDER__.
6819         * config/fixed-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6820         (struct INTstruct): Define based on __BYTE_ORDER__.
6821         * config/dfp-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6822         (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Test __BYTE_ORDER__.
6823         * system.h (LIBGCC2_WORDS_BIG_ENDIAN): Poison identifier.
6824         * config/arc/arc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6825         * config/arm/arm.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6826         * config/ia64/ia64.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6827         * config/iq2000/iq2000.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6828         * config/lm32/lm32.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6829         * config/m32r/m32r.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6830         * config/mcore/mcore.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6831         * config/mep/mep.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6832         * config/mips/mips.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6833         * config/rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6834         * config/rx/rx.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6835         * config/score/score.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6836         * config/sh/sh.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6837         * config/sparc/sparc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6838         * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6839         * doc/tm.texi.in (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6840         * doc/tm.texi: Regenerate.
6841         * doc/cpp.texi (__BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__): Document.
6842         (__ORDER_BIG_ENDIAN__, __ORDER_PDP_ENDIAN__): Likewise.
6843
6844 2010-10-23  Jie Zhang  <jie@codesourcery.com>
6845
6846         PR rtl-optimization/37360
6847         * config/mips/mips.c (cached_can_issue_more): New local variable.
6848         (mips_sched_reorder_1): New.
6849         (mips_sched_reorder): Use mips_sched_reorder_1.
6850         (mips_sched_reorder2): New.
6851         (mips_variable_issue): Set cached_can_issue_more.
6852         (TARGET_SCHED_REORDER2): Define to mips_sched_reorder2
6853         instead of mips_sched_reorder.
6854
6855         Revert:
6856         2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
6857         PR rtl-optimization/37360
6858         * haifa-sched.c (max_issue): Do not assert that we never issue more
6859         insns than issue_rate.  Add comment.
6860
6861 2010-10-22  Eric Botcazou  <ebotcazou@adacore.com>
6862
6863         * gimplify.c (gimplify_variable_sized_compare): Preserve the source
6864         location info of the expression.
6865
6866 2010-10-22  DJ Delorie  <dj@redhat.com>
6867
6868         * doc/extend.texi (Named Address Spaces): Document the M32C named
6869         address space.
6870
6871         * config/m32c/m32c-pragma.c (m32c_register_pragmas): Register the
6872         __far address space.
6873         * config/m32c/m32c.h (ADDR_SPACE_FAR): New.  Add support for
6874         "__far" address space for R8C and M16C processor variants.
6875         * config/m32c/m32c.c (m32c_addr_space_legitimate_address_p): New.
6876         (far_addr_space_p): New.
6877         (encode_pattern_1): Add sign and zero extend support.
6878         (m32c_hard_regno_nregs_1): Large pointers in A16 mode are SImode.
6879         (m32c_extra_constraint_p2): Add SF constraint.
6880         (m32c_legitimate_address_p): Support __far addresses.
6881         (m32c_addr_space_pointer_mode): New.
6882         (m32c_addr_space_address_mode): New.
6883         (m32c_addr_space_legitimate_address_p): New.
6884         (m32c_addr_space_legitimize_address): New.
6885         (m32c_addr_space_subset_p): New.
6886         (m32c_addr_space_convert): New.
6887         (conversions): Add __far operand patterns.
6888         (m32c_prepare_move): Force constants into registers for __far moves.
6889         (m32c_split_move): __far moves are always split.
6890         * config/m32c/addsub.md (addsi3_1): Support SImode symbols.
6891         * config/m32c/mov.md (mov<mode>_far_op1): New.
6892         (mov<mode>_far_op2): New.
6893         (movqi_op): Add __far (SF) support.
6894         (movhi_op): Likewise.
6895         (movsi_splittable): Split A1A0 also.
6896
6897 2010-10-22  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
6898             Andrew Pinski  <pinskia@gmail.com>
6899
6900         * c-typeck.c (build_array_ref): Handle subscripting of vectors.
6901         * doc/extend.texi: New paragraph
6902
6903 2010-10-22  Paul Koning  <ni1d@arrl.net>
6904
6905         * config.pdp11/pdp11.h (DBX_DEBUGGING_INFO): Define.
6906
6907 2010-10-22  DJ Delorie  <dj@redhat.com>
6908
6909         * config/m32c/m32c-lib1.S (m32c_jsri16): Make reentrant.
6910
6911 2010-10-22  Paul Koning  <ni1d@arrl.net>
6912
6913         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Define.
6914
6915 2010-10-22  Richard Henderson  <rth@redhat.com>
6916
6917         * config/i386/i386.c (ix86_builtin_vectorized_function): Add
6918         cases for __builtin_fma and __builtin_fmaf.
6919
6920 2010-10-22  Richard Henderson  <rth@redhat.com>
6921
6922         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Produce
6923         NEG+USE for vectors as well.
6924         * config/i386/i386.md (*absneg<VEC_FLOAT_MODE>2): New pattern
6925         and splitter.
6926
6927 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
6928
6929         * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION,
6930         SWITCH_CURTAILS_COMPILATION): Remove.
6931         * doc/tm.texi.in (SWITCH_CURTAILS_COMPILATION): Remove documentation.
6932         * doc/tm.texi: Regenerate.
6933         * system.h (SWITCH_CURTAILS_COMPILATION): Poison.
6934
6935 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
6936
6937         * config/i386/bdver1.md: New file.
6938         * config/i386/i386.md (include "bdver1.md"): Invoke the
6939         pipeline description for bdver1.
6940         (x86_sahf_1): Add "bdver1_decode" attribute.
6941         (*cmpfp_i_mixed): Likewise.
6942         (*cmpfp_i_sse): Likewise.
6943         (*cmpfp_i_i387): Likewise.
6944         (*cmpfp_iu_mixed): Likewise.
6945         (*cmpfp_iu_sse): Likewise.
6946         (*cmpfp_iu_387): Likewise.
6947         (*swap<mode>,*swap<mode>_1): Likewise.
6948         (fixuns_trunc<mode>hi2): Likewise.
6949         (fix_trunc<mode>si_sse): Likewise.
6950         (x86_fnstcw_1): Likewise.
6951         (x86_fldcw_1): Likewise.
6952         (*floatsi<mode>2_vector_mixed_with_temp): Likewise.
6953         (*floatsi<mode>2_vector_mixed): Likewise.
6954         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Likewise.
6955         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
6956         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
6957         (*floatsi<mode>2_vector_sse_with_temp): Likewise.
6958         (*floatsi<mode>2_vector_sse): Likewise.
6959         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Likewise.
6960         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
6961         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
6962         (*mul<mode>3_1): Likewise.
6963         (*mulsi3_1_zext): Likewise.
6964         (*mulhi3_1): Likewise.
6965         (*mulqi3_1): Likewise.
6966         (*<u>mul<mode><dwi>3_1): Likewise.
6967         (*<u>mulqihi3_1): Likewise.
6968         (*<s>muldi3_highpart_1): Likewise.
6969         (*<s>mulsi3_highpart_1): Likewise.
6970         (*<s>mulsi3_highpart_zext): Likewise.
6971         (x86_64_shld): Likewise.
6972         (x86_shld): Likewise.
6973         (x86_64_shrd): Likewise.
6974         (x86_shrd): Likewise.
6975         (sqrtxf2): Likewise.
6976         (sqrt_extend<mode>xf2_i387): Likewise.
6977         (*sqrt<mode>2_sse): Likewise.
6978         * config/i386/sse.md (sse_cvtsi2ss): Add "bdver1_decode" attribute.
6979         (sse_cvtsi2ssq): Likewise.
6980         (sse_cvtss2si): Likewise.
6981         (sse_cvtss2si_2): Likewise.
6982         (sse_cvtss2siq): Likewise.
6983         (sse_cvtss2siq_2): Likewise.
6984         (sse_cvttss2si): Likewise.
6985         (sse_cvttss2siq): Likewise.
6986         (sse2_cvtpi2pd): Likewise.
6987         (sse2_cvttpd2pi): Likewise.
6988         (sse2_cvtsi2sd): Likewise.
6989         (sse2_cvtsi2sdq): Likewise.
6990         (sse2_cvtsd2si): Likewise.
6991         (sse2_cvtsd2si_2): Likewise.
6992         (sse2_cvtsd2siq): Likewise.
6993         (sse2_cvtsd2siq_2): Likewise.
6994         (sse2_cvttsd2si): Likewise.
6995         (sse2_cvttsd2siq): Likewise.
6996         (*sse2_cvtpd2dq): Likewise.
6997         (*sse2_cvttpd2dq): Likewise.
6998         (sse2_cvtsd2ss): Likewise.
6999         (sse2_cvtss2sd): Likewise.
7000         (*sse2_cvtpd2ps): Likewise.
7001         (sse2_cvtps2pd): Likewise.
7002
7003 2010-10-22  Richard Guenther  <rguenther@suse.de>
7004
7005         PR middle-end/46137
7006         * gimple-fold.c (gimplify_and_update_call_from_tree): Properly
7007         remove the virtual operands if they are not needed.
7008
7009 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
7010
7011         * config/i386/i386.c (processor_costs bdver1_cost): Update
7012         insn costs and architectural parameters for bdver1.
7013
7014 2010-10-22  Richard Guenther  <rguenther@suse.de>
7015
7016         * gimple.h (gimple_register_canonical_type): Declare.
7017         * gimple.c (gimple_canonical_types): New global hashtable.
7018         (struct gimple_type_leader_entry_s): New type.
7019         (gimple_type_leader): New global cache.
7020         (gimple_lookup_type_leader): New function.
7021         (gtc_visit): Query the proper cache.
7022         (gimple_types_compatible_p): Likewise.
7023         (gimple_register_type): Use the new cache instead of TYPE_CANONICAL.
7024         (gimple_canonical_type_eq): New function.
7025         (gimple_register_canonical_type): Likewise.
7026         (print_gimple_types_stats): Adjust for gimple_canonical_types.
7027         (free_gimple_type_tables): Likewise.  Free gimple_type_leader.
7028         * tree-ssa.c (useless_type_conversion_p): Do not dispatch to
7029         gimple_types_compatible_p for LTO.
7030
7031 2010-10-22  Uros Bizjak  <ubizjak@gmail.com>
7032
7033         PR target/46098
7034         * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
7035         Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
7036         (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
7037         (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
7038         (<sse>_movu<ssemodesuffix>): New expander.
7039         (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
7040         (avx_movdqu<avxmodesuffix>): New expander.
7041         (*sse2_movdqu): Rename from sse2_movdqu.
7042         (sse2_movdqu): New expander.
7043
7044 2010-10-22  Richard Guenther  <rguenther@suse.de>
7045
7046         PR tree-optimization/45720
7047         * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
7048         Handle negative step.
7049         (vect_enhance_data_refs_alignment): Likewise.
7050         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Likewise.
7051         (vect_create_cond_for_align_checks): Likewise.
7052         (vect_create_cond_for_alias_checks): Likewise.
7053
7054 2010-10-22  Ira Rosen  <irar@il.ibm.com>
7055
7056         PR tree-optimization/46126
7057         * tree-vect-stmts.c (vect_analyze_stmt): Pass NODE to
7058         vectorizable_shift in case of basic block vectorization.
7059
7060 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
7061
7062         * target.h (enum opt_levels, struct default_options): New.
7063         * target.def (handle_ofast): Remove hook.
7064         (target_option.optimization): Change to
7065         target_option.optimization_table.
7066         * doc/tm.texi.in (TARGET_OPTION_OPTIMIZATION): Change to
7067         TARGET_OPTION_OPTIMIZATION_TABLE.
7068         (CAN_DEBUG_WITHOUT_FP): Remove.
7069         * doc/tm.texi: Regenerate.
7070         * opts.c (maybe_default_option, maybe_default_options,
7071         default_options_table): New.
7072         (default_options_optimization): Take extra parameters.  Don't
7073         assert that global_options and global_options_set are in use.  Use
7074         maybe_default_options.
7075         (decode_options): Pass extra parameters to
7076         default_options_optimization.
7077         * common.opt (falign-loops): Use value 0 with Var.
7078         (frerun-cse-after-loop, ftree-ter): Remove Init.
7079         * system.h (CAN_DEBUG_WITHOUT_FP, TARGET_HANDLE_OFAST,
7080         TARGET_OPTION_OPTIMIZATION): Remove.
7081         * targhooks.c (empty_optimization_table): New.
7082         * targhooks.h (empty_optimization_table): Declare.
7083         * toplev.c (process_options): Don't set flag_rerun_cse_after_loop.
7084         * config/alpha/alpha.c (alpha_option_optimization_table,
7085         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7086         * config/alpha/alpha.h (CAN_DEBUG_WITHOUT_FP): Remove.
7087         * config/arm/arm.c (arm_option_optimization: Change to
7088         arm_option_optimization_table.
7089         (TARGET_OPTION_OPTIMIZATION): Change to
7090         TARGET_OPTION_OPTIMIZATION_TABLE.
7091         * config/arm/arm.h (CAN_DEBUG_WITHOUT_FP): Remove.
7092         * config/avr/avr.c (avr_option_optimization_table,
7093         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7094         * config/avr/avr.h (CAN_DEBUG_WITHOUT_FP): Remove.
7095         * config/cris/cris.c (cris_option_optimization): Change to
7096         cris_option_optimization_table.
7097         (TARGET_OPTION_OPTIMIZATION): Change to
7098         TARGET_OPTION_OPTIMIZATION_TABLE.
7099         * config/crx/crx.c (crx_option_optimization): Change to
7100         crx_option_optimization_table.
7101         (TARGET_OPTION_OPTIMIZATION): Change to
7102         TARGET_OPTION_OPTIMIZATION_TABLE.
7103         * config/crx/crx.h (CAN_DEBUG_WITHOUT_FP): Remove.
7104         * config/fr30/fr30.c (fr30_option_optimization_table,
7105         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7106         * config/fr30/fr30.h (CAN_DEBUG_WITHOUT_FP): Remove.
7107         * config/frv/frv.c (frv_option_optimization_table,
7108         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7109         * config/frv/frv.h (CAN_DEBUG_WITHOUT_FP): Remove.
7110         * config/h8300/h8300.c (h8300_option_optimization): Change to
7111         h8300_option_optimization_table.
7112         (TARGET_OPTION_OPTIMIZATION): Change to
7113         TARGET_OPTION_OPTIMIZATION_TABLE.
7114         * config/h8300/h8300.h (CAN_DEBUG_WITHOUT_FP): Remove.
7115         * config/i386/i386.c (ix86_option_optimization): Change to
7116         ix86_option_optimization_table.
7117         (TARGET_OPTION_OPTIMIZATION): Change to
7118         TARGET_OPTION_OPTIMIZATION_TABLE.
7119         * config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
7120         as initializer.
7121         * config/ia64/ia64.c (ia64_option_optimization): Change to
7122         ia64_option_optimization_table.
7123         (TARGET_OPTION_OPTIMIZATION): Change to
7124         TARGET_OPTION_OPTIMIZATION_TABLE.
7125         * config/ia64/ia64.h (CAN_DEBUG_WITHOUT_FP): Remove.
7126         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define as
7127         initializer.
7128         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
7129         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7130         * config/iq2000/iq2000.h (CAN_DEBUG_WITHOUT_FP): Remove.
7131         * config/lm32/lm32.c (lm32_option_optimization_table,
7132         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7133         * config/lm32/lm32.h (CAN_DEBUG_WITHOUT_FP): Remove.
7134         * config/m32r/m32r.c (m32r_option_optimization): Change to
7135         m32r_option_optimization_table.
7136         (TARGET_OPTION_OPTIMIZATION): Change to
7137         TARGET_OPTION_OPTIMIZATION_TABLE.
7138         * config/m32r/m32r.h (SUBTARGET_OPTIMIZATION_OPTIONS,
7139         CAN_DEBUG_WITHOUT_FP): Remove.
7140         * config/mcore/mcore.c (mcore_option_optimization): Change to
7141         mcore_option_optimization_table.
7142         (TARGET_OPTION_OPTIMIZATION): Change to
7143         TARGET_OPTION_OPTIMIZATION_TABLE.
7144         * config/mep/mep.c (mep_option_optimization): Change to
7145         mep_option_optimization_table.
7146         (TARGET_OPTION_OPTIMIZATION): Change to
7147         TARGET_OPTION_OPTIMIZATION_TABLE.
7148         * config/mep/mep.h (CAN_DEBUG_WITHOUT_FP): Remove.
7149         * config/microblaze/microblaze.c
7150         (microblaze_option_optimization_table,
7151         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7152         * config/microblaze/microblaze.h (CAN_DEBUG_WITHOUT_FP): Remove.
7153         * config/mips/mips.c (mips_option_optimization_table,
7154         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7155         * config/mips/mips.h (CAN_DEBUG_WITHOUT_FP): Remove.
7156         * config/mmix/mmix.c (mmix_option_optimization): Change to
7157         mmix_option_optimization_table.
7158         (TARGET_OPTION_OPTIMIZATION): Change to
7159         TARGET_OPTION_OPTIMIZATION_TABLE.
7160         * config/mmix/mmix.h (CAN_DEBUG_WITHOUT_FP): Remove.
7161         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
7162         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7163         * config/mn10300/mn10300.h (CAN_DEBUG_WITHOUT_FP): Remove.
7164         * config/pa/pa.c (pa_option_optimization_table,
7165         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7166         * config/pa/pa.h (CAN_DEBUG_WITHOUT_FP): Remove.
7167         * config/pdp11/pdp11.c (pdp11_option_optimization): Change to
7168         pdp11_option_optimization_table.
7169         (TARGET_OPTION_OPTIMIZATION): Change to
7170         TARGET_OPTION_OPTIMIZATION_TABLE.
7171         * config/picochip/picochip.c (picochip_option_optimization_table,
7172         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7173         * config/picochip/picochip.h (CAN_DEBUG_WITHOUT_FP): Remove.
7174         * config/rs6000/rs6000.c (rs6000_option_optimization_table,
7175         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7176         * config/rs6000/rs6000.h (CAN_DEBUG_WITHOUT_FP): Remove.
7177         * config/rx/rx.c (rx_option_optimization_table,
7178         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7179         * config/rx/rx.h (CAN_DEBUG_WITHOUT_FP): Remove.
7180         * config/s390/s390.c (s390_option_optimization): Change to
7181         s390_option_optimization_table.
7182         (s390_option_override): Update comment.
7183         (TARGET_OPTION_OPTIMIZATION): Change to
7184         TARGET_OPTION_OPTIMIZATION_TABLE.
7185         * config/s390/s390.h (CAN_DEBUG_WITHOUT_FP): Remove.
7186         * config/score/score.c (score_option_optimization_table,
7187         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7188         * config/score/score.h (CAN_DEBUG_WITHOUT_FP): Remove.
7189         * config/sh/sh.c (sh_option_optimization): Change to
7190         sh_option_optimization_table.
7191         (TARGET_OPTION_OPTIMIZATION): Change to
7192         TARGET_OPTION_OPTIMIZATION_TABLE.
7193         (sh_option_override): Set MASK_SAVE_ALL_TARGET_REGS here.
7194         (sh_option_override, expand_block_move, multcosts, find_barrier,
7195         barrier_align): Use optimize_size instead of TARGET_SMALLCODE.
7196         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Remove.
7197         (LOOP_ALIGN, TRAMPOLINE_ALIGNMENT, MOVE_BY_PIECES_P,
7198         STORE_BY_PIECES_P, SH_DYNAMIC_SHIFT_COST): Use optimize_size
7199         instead of TARGET_SMALLCODE.
7200         * config/sh/sh.opt (mspace): Make into an alias for -Os.
7201         * config/sparc/sparc.c (sparc_option_optimization_table,
7202         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7203         * config/sparc/sparc.h (CAN_DEBUG_WITHOUT_FP): Remove.
7204         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
7205         TARGET_OPTION_OPTIMIZATION_TABLE): New.
7206         * config/stormy16/stormy16.h (CAN_DEBUG_WITHOUT_FP): Remove.
7207         * config/v850/v850.c (v850_option_optimization): Change to
7208         v850_option_optimization_table.
7209         (TARGET_OPTION_OPTIMIZATION): Change to
7210         TARGET_OPTION_OPTIMIZATION_TABLE.
7211         * config/v850/v850.h (CAN_DEBUG_WITHOUT_FP): Remove.
7212         * config/xtensa/xtensa.c (xtensa_option_optimization): Change to
7213         xtensa_option_optimization_table.
7214         (TARGET_OPTION_OPTIMIZATION): Change to
7215         TARGET_OPTION_OPTIMIZATION_TABLE.
7216         * config/xtensa/xtensa.h (CAN_DEBUG_WITHOUT_FP): Remove.
7217
7218 2010-10-21  Iain Sandoe  <iains@gcc.gnu.org>
7219
7220         Based on the CFString implementation in FSF apple/trunk branch.
7221
7222         * target.def (objc_construct_string): New Hook.
7223         * doc/tm.texi (objc_construct_string): Document.
7224         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING): New.
7225         * config/t-darwin: Amend build rules for darwin.o.
7226         * config/darwin.opt: Add cfstrings flags.
7227         * config/darwin-c.c: Define __CONSTANT_CFSTRINGS__.
7228         (darwin_objc_construct_string): New.
7229         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Define.
7230         * config/i386/i386.c (ix86_init_builtins): Add SUBTARGET_INIT_BUILTINS.
7231         * config/darwin-protos.h (darwin_init_cfstring_builtins): New prototype.
7232         (darwin_fold_builtin): Likewise.
7233         (darwin_build_constant_cfstring): Likewise.
7234         (darwin_objc_construct_string): Likewise.
7235         (darwin_cfstring_p): Likewise.
7236         (darwin_enter_string_into_cfstring_table): Likewise.
7237         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS) Update for CFString.
7238         * config/darwin.c (darwin_running_cxx): New var.
7239         (machopic_select_section): Return cfstring_constant_object_section.
7240         (darwin_override_options): Set darwin_running_cxx.
7241         (add_builtin_field_decl): New.
7242         (darwin_init_cfstring_builtins): New.
7243         (darwin_build_constant_cfstring): New.
7244         (darwin_fold_builtin): New.
7245         (cfstring_hash): New.
7246         (cfstring_eq): New.
7247         (darwin_enter_string_into_cfstring_table): New.
7248         * config/darwin-sections.def (cfstring_constant_object_section): New.
7249         * config/darwin.h (TARGET_FOLD_BUILTIN): Define.
7250         (TARGET_OBJC_CONSTRUCT_STRING): Define.
7251
7252 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
7253
7254         * config/alpha/alpha.c (alpha_build_builtin_va_list): Use
7255         TYPE_STUB_DECL instead of TREE_CHAIN.
7256         * config/i386/i386.c (ix86_build_builtin_va_list_abi): Likewise.
7257         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Likewise.
7258         * config/s390/s390.c (s390_build_builtin_va_list): Likewise.
7259         * config/sh/sh.c (sh_build_builtin_va_list): Likewise.
7260         * config/spu/spu.c (spu_build_builtin_va_list): Likewise.
7261         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list):
7262         Likewise.
7263         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Likewise.
7264
7265 2010-10-22  Jie Zhang  <jie@codesourcery.com>
7266
7267         * expr.c (emit_group_load_1): Update calls to extract_bit_field.
7268         (copy_blkmode_from_reg): Likewise.
7269         (read_complex_part): Likewise.
7270         (expand_expr_real_1): Calculate packedp and pass it to
7271         extract_bit_field.
7272         * expr.h (extract_bit_field): Update declaration.
7273         * calls.c (store_unaligned_arguments_into_pseudos): Update call
7274         to extract_bit_field.
7275         * expmed.c (extract_fixed_bit_field): Update calls to
7276         extract_fixed_bit_field.
7277         (store_split_bit_field): Likewise.
7278         (extract_bit_field_1): Add new argument packedp.
7279         (extract_bit_field): Add new argument packedp.
7280         (extract_fixed_bit_field): Add new argument packedp and let
7281         packed attribute override volatile.
7282         * stmt.c (expand_return): Update call to extract_bit_field.
7283
7284 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
7285
7286         * config/spu/spu.c (spu_function_arg): Dereference CUM parameter.
7287
7288 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
7289
7290         * ddg.c (add_cross_iteration_register_deps): Call gcc_assert instead
7291         of gcc_checking_assert.
7292         * sel-sched.c (code_motion_process_successors): Likewise.
7293
7294 2010-10-21  Eric Botcazou  <ebotcazou@adacore.com>
7295
7296         * cfgcleanup.c (try_forward_edges): Do not throw away previous steps
7297         when stopping because of a different locus on edge or insn.
7298         (try_optimize_cfg): Add comment.
7299         * cfgrtl.c (rtl_merge_blocks): Tweak log message.  If the destination
7300         block is a forwarder block, propagate locus on the edge.
7301         (cfg_layout_merge_blocks): Likewise.
7302
7303 2010-10-21  Uros Bizjak  <ubizjak@gmail.com>
7304
7305         PR target/45946
7306         * config/i386/i386.md (*pushti2): New insn pattern.
7307         (pushti2 splitter): New insn splitter.
7308         (*push<mode>2): Macroize insn pattern from *push{di,ti}2 using
7309         DWI mode iterator.
7310
7311 2010-10-21  Paul Koning  <ni1d@arrl.net>
7312
7313         * config/pdp11/pdp11-protos.md (arith_operand,
7314         const_immediate_operand, expand_shift_operand,
7315         immediate15_operand): Delete
7316         * config/pdp11/pdp11.c: Ditto.
7317         * config/pdp11/pdp11.h (REG_CLASS_FROM_LETTER,
7318         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
7319         EXTRA_CONSTRAINT): Delete.
7320         * config/pdp11/pdp11.md (various): Use standard constraints
7321         instead of removed ones.
7322         * config/pdp11/constraints.md: New file.
7323         * config/pdp11/predicates.md: New file.
7324
7325 2010-10-21  Bingfeng Mei  <bmei@broadcom.com>
7326
7327         PR c/45834
7328         * alias.c (true_dependence_1): Remove obsolete check for QImode.
7329         (may_alias_p): Ditto.
7330
7331 2010-10-21  Martin Jambor  <mjambor@suse.cz>
7332
7333         PR tree-optimization/45875
7334         * tree.c (get_binfo_at_offset): Remove initial zero offset test.
7335
7336 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
7337
7338         * tree-into-ssa.c (rewrite_update_enter_block): Remove unused
7339         variables.
7340         (create_new_def_for): Likewise.
7341
7342 2010-10-21  Nick Clifton  <nickc@redhat.com>
7343
7344         * config/mn10300/mn10300.c: Fold code to 80-character width.
7345         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
7346         MEM, CONST_INT and CONST_DOUBLE.
7347         (targetm): Move initialization to end of file.
7348         (print_operand): Rename to mn10300_print_operand.
7349         (print_operand_address): Rename to mn10300_print_operand_address.
7350         (can_use_return_insn): Rename to mn10300_can_use_return_insn.
7351         (expand_prologue): Rename to mn10300_expand_prologue.
7352         (expand_epilogue): Rename to mn10300_expand_epilogue.
7353         (initial_offset): Rename to mn10300_initial_offset.
7354         (function_arg): Rename to mn10300_function_arg.
7355         (mask_ok_for_mem_btst): Rename to mn10300_mask_ok_for_mem_btst.
7356         (symbolic_operand): Rename to mn10300_symbolic_operand.
7357         (legitimize_pic_address): Rename to mn10300_legitimize_pic_address.
7358         (legitimate_pic_operand_p): Rename to mn10300_legitimate_pic_operand_p.
7359         * config/mn10300/mn10300-protos.h: Update prototypes.
7360         * config/mn10300/mn10300.h: Fold code to 80-character width.
7361         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
7362         MEM, CONST_INT and CONST_DOUBLE.
7363         (CPP_SPEC): Move to...
7364         (TARGET_CPU_CPP_BUILTINS): ... here.
7365         * config/mn10300/mn10300.md: Fold code to 80-character width.
7366         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
7367         MEM, CONST_INT and CONST_DOUBLE.
7368
7369 2010-10-21  Ira Rosen  <irar@il.ibm.com>
7370
7371         PR tree-optimization/46049
7372         PR tree-optimization/46052
7373         * tree-vectorizer.h (enum stmt_vec_info_type): Add new value for shift.
7374         (vect_get_slp_defs): Add arguments.
7375         * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass scalar
7376         operands to vect_get_slp_defs.
7377         (vectorizable_reduction): Fix comment, pass scalar operands to
7378         vect_get_slp_defs.
7379         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use operand's
7380         type to determine number of units in the created vector.
7381         (vect_get_vec_defs): Pass scalar operands to vect_get_slp_defs.
7382         (vectorizable_conversion): Fix comment.
7383         (vectorizable_shift): New function.
7384         (vectorizable_operation): Move code that handles shifts to
7385         vectorizable_shift.
7386         (vectorizable_type_demotion): Fix comment, pass scalar operands to
7387         vect_get_slp_defs.
7388         (vectorizable_type_promotion, vectorizable_store): Likewise.
7389         (vectorizable_condition): Fix comment.
7390         (vect_analyze_stmt): Call vectorizable_shift.
7391         (vect_transform_stmt): Likewise.
7392         * tree-vect-slp.c (vect_get_constant_vectors): Add new argument.
7393         Use it as the operand to create vectors for, except reduction
7394         initial definition and store.  Use operands type.
7395         (vect_get_slp_defs): Add new arguments.  Pass them to
7396          vect_get_constant_vectors.
7397
7398 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
7399
7400         * basic-block.h (single_succ_edge): Use gcc_checking_assert.
7401         (single_pred_edge, ei_container, ei_next, ei_prev): Likewise.
7402         * cfghooks.c (fixup_reorder_chain): Likewise.
7403         * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
7404         * cgraph.c (cgraph_add_thunk): Likewise.
7405         (cgraph_create_edge_1): Likewise.
7406         (cgraph_create_virtual_clone): Likewise.
7407         * ddg.c (add_cross_iteration_register_deps): Likewise.
7408         * dwarf2out.c (modified_type_die): Likewise.
7409         * emit-rtl.c (set_mem_alias_set): Likewise.
7410         * ggc-zone.c (zone_allocate_marks): Likewise.
7411         * gimple-iterator.c (gsi_move_to_bb_end): Likewise.
7412         * gimple.c (iterative_hash_gimple_type): Likewise.
7413         * graphite-scop-detection.c (create_single_entry_edge): Likewise.
7414         (create_single_exit_edge): Likewise.
7415         * haifa-sched.c (choose_ready): Likewise.
7416         * lto-streamer-in.c (input_gimple_stmt): Likewise.
7417         * passes.c (execute_todo): Likewise.
7418         * sched-ebb.c (begin_schedule_ready): Likewise.
7419         * sel-sched.c (code_motion_process_successors): Likewise.
7420         * tree-call-cdce.c (gen_conditions_for_pow): Likewise.
7421         * tree-cfg-cleanup.c (tree_forwarder_block_p): Likewise.
7422         * tree-flow-inline.h (link_imm_use, move_use_after_head): Likewise.
7423         (phi_arg_index_from_use, phi_ssa_name_p): Likewise.
7424         * tree-into-ssa.c (insert_updated_phi_nodes_for): Likewise.
7425         * tree-ssa-coalesce.c (ssa_conflicts_test_p): Likewise.
7426         (ssa_conflicts_add): Likewise.
7427         * tree-ssa-copy.c (replace_exp): Likewise.
7428         * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
7429         * tree-ssa-forwprop.c (simple_gimple_switch): Likewise.
7430         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
7431         * tree-ssa-pre.c (bitmap_value_insert_into_set): Likewise.
7432         (compute_antic): Likewise.
7433         * tree-ssa-ter.c (add_to_partition_kill_list): Likewise.
7434         (add_dependence): Likewise.
7435         (process_replaceable, kill_expr, find_replaceable_exprs): Likewise.
7436         * tree-vrp.c (supports_overflow_infinity): Likewise.
7437         (make_overflow_infinity, negative_overflow_infinity): Likewise.
7438         (avoid_overflow_infinity, register_new_assert_for): Likewise.
7439         (process_assert_insertions_for): Likewise.
7440         * var-tracking.c (dv_is_value_p, dv_as_decl, dv_from_decl): Likewise.
7441         (dv_from_value, variable_union, find_loc_in_1pdv): Likewise.
7442         (intersect_loc_chains, variable_merge_over_cur): Likewise.
7443
7444 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
7445
7446         * cfgloop.c (flow_loops_find): Call bb_has_abnormal_pred.
7447         * reload1.c (has_nonexceptional_receiver): Likewise.
7448         * tree-into-ssa.c (rewrite_update_enter_block): Likewise.
7449         (create_new_def_for): Likewise.
7450         * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
7451         (merge_phi_nodes): Likewise.
7452         (has_abnormal_incoming_edge_p): Delete.
7453
7454 2010-10-21  H.J. Lu  <hongjiu.lu@intel.com>
7455
7456         * config/i386/sse.md (ssescalarmodesuffix): Add V8SI and V4DI.
7457
7458 2010-10-21  Richard Guenther  <rguenther@suse.de>
7459             Michael Matz  <matz@suse.de>
7460
7461         PR tree-optimization/45764
7462         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
7463         Adjust initial misalignment for negative DR_STEP.
7464         (vect_find_same_alignment_drs): Two DRs with different DR_STEP
7465         do not have the same alignment over the whole iteration domain.
7466
7467 2010-10-21  Richard Guenther  <rguenther@suse.de>
7468
7469         PR tree-optimization/46111
7470         * tree-parloops.c (take_address_of): Re-organize for MEM_REF.
7471
7472 2010-10-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7473
7474         * config/s390/s390.md (*xordi3_cc): Mark xgrk as z196 only.
7475
7476 2010-10-21  Tristan Gingold  <gingold@adacore.com>
7477
7478         * config/vms/vms-crtl.h (CRTL_NAMES): Add new translations.
7479         * config/vms/vms-crtl-64.h (CRTL_NAMES): Ditto.
7480
7481 2010-10-21  Tristan Gingold  <gingold@adacore.com>
7482
7483         * config/alpha/vms-unwind.h (alpha_vms_fallback_frame_state): Set
7484         signal_frame.
7485         * config/alpha/alpha.c (alpha_function_arg): Adjust call.
7486
7487 2010-10-21  Tristan Gingold  <gingold@adacore.com>
7488
7489         * config/ia64/vms64.h (TARGET_DEFAULT): Add MASK_FUSED_MADD.
7490         * config/ia64/vms.h (TARGET_DEFAULT): Ditto.
7491
7492 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
7493
7494         * basic-block.h (find_fallthru_edge): Define.
7495         * cfgcleanup.c (merge_blocks_move): Use it.
7496         (try_crossjump_bb): Likewise.
7497         * cfglayout.c (fixup_reorder_chains): Likewise.
7498         (fixup_fallthru_exit_predecessor): Likewise.
7499         * cfgrtl.c (rtl_split_edge): Likewise.
7500         (rtl_verify_flow_info): Likewise.
7501         * function.c (thread_prologue_and_epilogue_insns): Likewise.
7502         * gimple-pretty-print.c (dump_implicit_edges): Likewise.
7503         * ifcvt.c (block_fallthru): Likewise.
7504         * reload1.c (fixup_abnormal_edges): Likewise.
7505         * sched-ebb.c (being_schedule_ready): Likewise.
7506         (schedule_ebb): Likwise.
7507         * sched-rgn.c (find_single_block_region): Likewise.
7508         * sel-sched-ir.c (bb_ends_ebb_p): Likewise.
7509         * tree-complex.c (expand_complex_move): Likewise.
7510         * sched-int.h (find_fallthru_edge): Rename to...
7511         (find_fallthru_edge_from): ...this.
7512         * haifa-sched.c (find_fallthru_edge): Rename to...
7513         (find_fallthru_edge_from): ...this.  Use new find_fallthru_edge.
7514         (init_before_recovery): Call find_fallthru_edge_from.
7515         * sel-sched-ir.c (merge_fences): Likewise.
7516         * sel-sched.c (in_fallthru_bb_p): Likewise.
7517         (move_cond_jump): Likewise.
7518
7519 2010-10-20  Paul Koning  <ni1d@arrl.net>
7520
7521         * config/pdp11/pdp11.md (various): Fix conditions on a number of
7522         insn to check for target 11/40 or higher.
7523
7524 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
7525
7526         * parser.c (c_parser_objc_method_type): Mark inline.  Return a
7527         bool instead of a tree.
7528         (c_parser_objc_method_decl): Added bool argument.  Updated call to
7529         objc_build_method_signature.
7530         (c_parser_objc_method_definition): Do not call
7531         objc_set_method_type.  Updated calls to c_parser_objc_method_type,
7532         c_parser_objc_method_decl and objc_start_method_definition.
7533         (c_parser_objc_methodproto): Do not call objc_set_method_type.
7534         Updated calls to c_parser_objc_method_type,
7535         c_parser_objc_method_decl and objc_add_method_declaration.
7536
7537 2010-10-20  Jakub Jelinek  <jakub@redhat.com>
7538
7539         PR tree-optimization/45919
7540         * tree-ssa-ccp.c (fold_nonarray_ctor_reference): Handle flexible
7541         array members.
7542
7543         PR tree-optimization/46066
7544         * tree-parloops.c (create_parallel_loop): Use gsi_last_nondebug_bb
7545         instead of gsi_last_bb.
7546
7547 2010-10-20  DJ Delorie  <dj@redhat.com>
7548
7549         * config/m32c/m32c.c (m32c_option_override): Always disable
7550         function-cse in 16-bit mode.  Indirect calls are always worse than
7551         direct calls as there is no 16-bit indirect call opcode.
7552         (m32c_override_options_after_change): New, likewise.
7553
7554 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
7555
7556         * ifcvt.c (noce_emit_cmove): If both of the values are SUBREGs, try
7557         emitting the conditional move in the inner mode of the SUBREG.
7558
7559 2010-10-20  Anatoly Sokolov  <aesok@post.ru>
7560
7561         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Remove macros.
7562         * config/ia64/ia64-protos.h (ia64_preferred_reload_class): Remove.
7563         * config/ia64/ia64.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
7564         (ia64_preferred_reload_class): Make static.  Change rclass argument
7565         and result types from enum reg_class to reg_class_t.
7566
7567 2010-10-20  Pat Haugen  <pthaugen@us.ibm.com>
7568
7569         * tree-ssa-ter.c (find_replaceable_in_bb): Allow replacement over
7570         call for single operand expression.
7571
7572 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
7573
7574         * tree-optimize.c (execute_fixup_cfg): Purge dead abnormal call edges
7575         if there is a call statement to pure or const function in the block.
7576
7577 2010-10-20  Paul Koning  <pkoning@equallogic.com>
7578
7579         Fix several build errors for pdp11 target.
7580         * config/pdp11/pdp11.md (*cmpdf): Fix tstd operands.
7581         (cbranchdf4): Conditional on TARGET_FPU.
7582         (movdf): Ditto; correct alternatives check.
7583         (movmemhi): Fix predicate and constraint.
7584         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Handle 64 bit mode.
7585
7586 2010-10-20  Richard Guenther  <rguenther@suse.de>
7587
7588         PR lto/45667
7589         * lto-streamer-out.c (output_gimple_stmt): Fix typo.
7590         * tree-cfg.c (verify_gimple_call): Properly get the call fndecl.
7591         (verify_gimple_assign_single): Disable ADDR_EXPR type check
7592         when in LTO.
7593
7594 2010-10-20  Vladimir Makarov  <vmakarov@redhat.com>
7595
7596         PR fortran/42169
7597         * ira-emit.c (store_can_be_removed_p): Return false instead of
7598         gcc_unreachable.
7599
7600 2010-10-20  Dmitry Melnik  <dm@ispras.ru>
7601
7602         * fold-const.c (fold_binary_loc): New transformation.
7603
7604 2010-10-20  H.J. Lu  <hongjiu.lu@intel.com>
7605
7606         PR target/46085
7607         * config/i386/sse.md (reduc_splus_v8sf): Updated.
7608         (reduc_splus_v4df): Likewise.
7609
7610 2010-10-20  Richard Guenther  <rguenther@suse.de>
7611
7612         PR tree-optimization/45860
7613         * tree-ssa-phiopt.c (cond_store_replacement): Do not do
7614         conditional store replacement for non-register type stores.
7615
7616 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
7617
7618         * stor-layout.c (skip_simple_constant_arithmetic): New function.
7619         (self_referential_size): Use it instead of skip_simple_arithmetic.
7620
7621 2010-10-20  Olivier Hainque  <hainque@adacore.com>
7622
7623         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p):
7624         If the current function calls eh_return, claim live all registers
7625         that we need to check for liveness otherwise.
7626
7627 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
7628
7629         * c-decl.c (c_write_global_declarations): Call
7630         objc_write_global_declarations when compiling Objective-C.
7631         * c-lang.c (finish_file): Removed.
7632
7633 2010-10-19  DJ Delorie  <dj@redhat.com>
7634
7635         * doc/tm.texi.in (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): New.
7636         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Change to hook.
7637         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
7638         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
7639         * doc/tm.texi: Regenerate.
7640         * targhooks.h (default_label_align_after_barrier_max_skip,
7641         default_loop_align_max_skip, default_label_align_max_skip,
7642         default_jump_align_max_skip): Declare.
7643         * target.def (label_align_after_barrier_max_skip): New.
7644         (loop_align_max_skip): New.
7645         (label_align_max_skip): New.
7646         (jump_align_max_skip): New.
7647         * system.h (poison): Add those macros to the list.
7648         * final.c (LABEL_ALIGN_MAX_SKIP): Remove.
7649         (LOOP_ALIGN_MAX_SKIP): Remove.
7650         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Remove.
7651         (JUMP_ALIGN_MAX_SKIP): Remove.
7652         (default_label_align_after_barrier_max_skip): New.
7653         (default_loop_align_max_skip): New.
7654         (default_label_align_max_skip): New.
7655         (default_jump_align_max_skip): New.
7656         (compute_alignments): Use the new hooks.
7657         (shorten_branches): Likewise.
7658
7659 2010-10-19  Richard Henderson  <rth@redhat.com>
7660
7661         * config/i386/i386.c (bdesc_multi_arg): Use fma4i_fmadd_<mode>.
7662         * config/i386/sse.md (fma<mode>4): Enable for FMA & SSE_MATH.
7663         (fma4i_fmadd_<mode>): New.
7664         (*split_fma, *split_fms, *split_fnma, *split_fnms): Rename from
7665         fma4_fm*_<mode> and adjust to be pre-reload splitters to the
7666         standard fma patterns.
7667         (fmaddsub_<mode>): Rename from fma4i_fmaddsub_<mode> and
7668         enable for FMA.
7669         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
7670         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
7671         (*fma_fmaddsub_<mode>, *fma_fmsubadd_<mode>): New.
7672
7673 2010-10-19  Paul Koning  <pkoning@equallogic.com>
7674
7675         * lower-subreg.c (resolve_shift_zext): Delete conditional code for
7676         WORDS_BIG_ENDIAN != BYTES_BIG_ENDIAN.
7677
7678 2010-10-19  Richard Henderson  <rth@redhat.com>
7679
7680         * config/ia64/ia64.md (fmasf4, *fmssf4, *nfmasf4): New.
7681         (fmadf4, *fmsdf4, *nfmadf4): New.
7682         (fmaxf4, *fmsxf4, *nfmaxf4): New.
7683
7684 2010-10-19  Michael Eager  <eager@eagercon.com>
7685
7686         * config/microblaze/microblaze.c (TARGET_EXCEPT_UNWIND_INFO):
7687         Use sjlj unwind info for exceptions.
7688
7689 2010-10-19  Francois-Xavier Coudert<fxcoudert@gcc.gnu.org>
7690
7691         PR fortran/43414
7692         * dwarf2out.c (add_calling_convention_attribute): Flag main
7693         Fortran subroutine with DW_AT_main_subprogram.
7694
7695 2010-10-19  Nick Clifton  <nickc@redhat.com>
7696
7697         * config/rx/rx.c (rx_function_value): Small integer types are
7698         promoted to SImode.
7699         (rx_promote_function_mode): New function.
7700         (TARGET_PROMOTE_FUNCTION_MODE): Define.
7701
7702 2010-10-19  Nick Clifton  <nickc@redhat.com>
7703
7704         * config/mep/mep.c (mep_print_operand): Use
7705         targetm.strip_name_encoding.
7706         (mep_output_aligned_common): Likewise.
7707
7708 2010-10-19  Basile Starynkevitch  <basile@starynkevitch.net>
7709
7710         * gengtype.c (new_structure): Remove ad-hoc "location_s" processing.
7711
7712 2010-10-18  Richard Henderson  <rth@redhat.com>
7713
7714         * simplify-rtx.c (simplify_ternary_operation) [FMA]: Simplify
7715         (fma (neg a) (neg b) c) and (fma a (neg b) c).
7716
7717 2010-10-18  Richard Henderson  <rth@redhat.com>
7718
7719         * config/i386/i386.c (IX86_BUILTIN_VFMSUBSS, IX86_BUILTIN_VFMSUBSD,
7720         IX86_BUILTIN_VFMSUBPS, IX86_BUILTIN_VFMSUBPD,
7721         IX86_BUILTIN_VFMSUBADDPS, IX86_BUILTIN_VFMSUBADDPD,
7722         IX86_BUILTIN_VFNMADDSS, IX86_BUILTIN_VFNMADDSD,
7723         IX86_BUILTIN_VFNMADDPS, IX86_BUILTIN_VFNMADDPD,
7724         IX86_BUILTIN_VFNMSUBSS, IX86_BUILTIN_VFNMSUBSD,
7725         IX86_BUILTIN_VFNMSUBPS, IX86_BUILTIN_VFNMSUBPD,
7726         IX86_BUILTIN_VFMSUBADDPS256, IX86_BUILTIN_VFMSUBADDPD256,
7727         IX86_BUILTIN_VFNMADDPS256, IX86_BUILTIN_VFNMADDPD256,
7728         IX86_BUILTIN_VFNMSUBPS256, IX86_BUILTIN_VFNMSUBPD256): Remove.
7729         (bdesc_multi_arg): Remove the corresponding builtins.
7730         * config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Remove.
7731         (UNSPEC_FMA4_FMSUBADD): Remove.
7732         (UNSPEC_FMADDSUB): Rename from UNSPEC_FMA4_FMADDSUB.
7733         * config/i386/sse.md (FMA4MODEF4): Remove.
7734         (FMAMODE): Add.
7735         (fma<mode>4): New expander.
7736         (*fma4i_fmadd_<mode>): Macroize from fma4i_fmadd<mode>4 patterns,
7737         and use FMA rtx code instead of UNSPEC_FMA4_INTRINSIC.
7738         (*fma4i_fmsub_<mode>): Similarly.
7739         (*fma4i_fnmadd_<mode>): Similarly.
7740         (*fma4i_fnmsub_<mode>): Similarly.
7741         (fma4i_vmfmadd_<mode>): Scalar patterns zero-extend, not merge
7742         with the first operand.
7743         (fma4i_fmaddsub_<mode>): Represent with UNSPEC_FMADDSUB instead
7744         of explicit arithmetic.  Macroize with AVXMODEF2P.
7745         (*fma4i_fmsubadd_<mode>): Represent with UNSPEC_FMADDSUB + NEG.
7746         (xop_frcz<mode>2): Macroize with FMAMODE.
7747         (xop_vmfrcz<mode>2): Scalar patterns zero-extend, not merge with
7748         the first operand.
7749         * config/i386/fma4intrin.h (_mm_msub_ps): Use vfmadd intrinsic with
7750         extra negations.
7751         (_mm_msub_pd, _mm_msub_ss, _mm_msub_sd): Likewise.
7752         (_mm_nmacc_ps, _mm_nmacc_pd, _mm_nmacc_ss, _mm_nmacc_sd): Likewise.
7753         (_mm_nmsub_ps, _mm_nmsub_pd, _mm_nmsub_ss, _mm_nmsub_sd): Likewise.
7754         (_mm256_msub_ps, _mm256_msub_pd): Likewise.
7755         (_mm256_nmacc_ps, _mm256_nmacc_pd): Likewise.
7756         (_mm256_nmsub_ps, _mm256_nmsub_pd): Likewise.
7757         (_mm_msubadd_ps): Use vfmaddsub intrinsic with extra negation.
7758         (_mm_msubadd_pd, _mm256_msubadd_ps, _mm256_msubadd_pd): Likewise.
7759
7760 2010-10-18  Bernd Schmidt  <bernds@codesourcery.com>
7761
7762         PR rtl-optimization/45966
7763         * combine.c (try_combine): If added_sets_2, deal with the case
7764         where i0 feeds i1 and i1 feeds i2.
7765
7766 2010-10-18  Jan Hubicka  <jh@suse.cz>
7767
7768         * ipa.c (cgraph_externally_visible_p): Handle externally visible and
7769         preserve flags before trying to guess on visibility.
7770         (varpool_externally_visible_p): New function.
7771         (function_and_variable_visibility): Use it.
7772
7773 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
7774
7775         Implemented parsing @synthesize and @dynamic for Objective-C.
7776         * c-parser.c (c_parser_external_declaration): Recognize
7777         RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
7778         (c_parser_objc_at_synthesize_declaration): New.
7779         (c_parser_objc_at_dynamic_declaration): New.
7780
7781 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
7782
7783         * c-parser.c (c_parser_objc_class_declaration): After finding an
7784         error, parse the whole declaration then reset parser->error.
7785
7786 2010-10-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
7787
7788         PR target/46041
7789         * tree.h (mode_has_fma): Delete, move to c-cppbuiltins.c.
7790         * builtins.c (mode_has_fma): Ditto.
7791
7792 2010-10-18  Steve Ellcey  <sje@cup.hp.com>
7793
7794         PR target/36898
7795         PR middle-end/43760
7796         * config/ia64/ia64.c (rws_access_regno): Remove predicate check.
7797
7798 2010-10-18  Joseph Myers  <joseph@codesourcery.com>
7799
7800         * config/i386/i386.c (ix86_option_override_internal): Define and
7801         use USE_X86_64_FRAME_POINTER for 64-bit flag_omit_frame_pointer
7802         default.
7803         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
7804         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Define.
7805
7806 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
7807
7808         Merge from 'apple/trunk' branch on FSF servers.
7809         * c-parser.c (c_parser_objc_type_name): Adapted to new parser the
7810         following Objective-C change:
7811
7812         2005-10-10  Fariborz Jahanian  <fjahanian@apple.com>
7813
7814         Radar 4301047
7815         * c-parse.in (objc_quals): Build objc qualifier list same way
7816         as gcc-3.3
7817
7818 2010-10-18  Jan Hubicka  <jh@suse.cz>
7819
7820         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p,
7821         function_and_variable_visibility): Revert accidental commit.
7822
7823 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
7824
7825         Merge from 'apple/trunk' branch on FSF servers.
7826         * c-parser.c (c_parser_typeof_specifier): Adapted to new parser
7827         the following Objective-C change:
7828
7829         2005-10-07  Fariborz Jahanian  <fjahanian@apple.com>
7830
7831         Radar 4204796
7832         * c-parse.in (typespec_nonreserved_nonattr): Remove volatile from
7833         'volatilized' type used in a typeof operator.
7834
7835 2010-10-18  Eric Botcazou  <ebotcazou@adacore.com>
7836
7837         * tree-flow.h (gimple_purge_all_dead_abnormal_call_edges): Declare.
7838         * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): Move around and
7839         rewrite modelled on gimple_purge_dead_eh_edges.
7840         (gimple_purge_all_dead_abnormal_call_edges): New function.
7841         * tree-inline.c (expand_call_inline): Call gimple_purge_dead_eh_edges
7842         directly instead of through gimple_purge_dead_abnormal_call_edges.
7843         * tree-ssa-pre.c (need_ab_cleanup): New static variable.
7844         (eliminate): Set bit in need_ab_cleanup for the basic block if we have
7845         removed AB side-effects from one of its statements.
7846         (init_pre): Initialize need_ab_cleanup.
7847         (fini_pre): Purge dead abnormal call edges and clean up the CFG if bits
7848         are set in need_ab_cleanup.  Free need_ab_cleanup afterward.
7849
7850 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
7851
7852         PR c/46015
7853         * c-parser.c (c_parser_statement_after_labels): Call mark_exp_read
7854         on computed goto argument.
7855
7856 2010-10-18  Richard Guenther  <rguenther@suse.de>
7857
7858         PR tree-optimization/45967
7859         * tree-ssa-structalias.c (type_could_have_pointers): Remove.
7860         (could_have_pointers): Likewise.
7861         (handle_rhs_call, handle_const_call, handle_pure_call,
7862         find_func_aliases, intra_create_variable_infos): Remove calls to them.
7863         (struct fieldoff): Add must_have_pointers field.
7864         (type_must_have_pointers): New function.
7865         (field_must_have_pointers): Likewise.
7866         (push_fields_onto_fieldstack): Remove must_have_pointers_p argument.
7867         Adjust field merging.
7868         (create_function_info_for): May-have-pointers of varinfo is
7869         almost always true.
7870         (create_variable_info_for_1): Likewise.
7871
7872 2010-10-18  Tejas Belagod  <tejas.belagod@arm.com>
7873
7874         * config/arm/neon.md (neon_move_hi_quad_<mode>): Fix the order
7875         of operands to vec_concat.
7876
7877 2010-10-18  Richard Guenther  <rguenther@suse.de>
7878
7879         PR lto/44950
7880         * tree.c (free_lang_data_in_decl): As we clear TYPE_METHODS
7881         also clear references to entries of it.
7882
7883 2010-10-18  Andi Kleen  <ak@linux.intel.com>
7884
7885         PR other/43448
7886         * gccbug.in: Remove.
7887         * Makefile.in (GCCBUG_INSTALL_NAME, gccbug): Remove
7888         (doc, distclean, install-common): Remove reference to gccbug.
7889         * configure: Regenerate.
7890         * configure.ac (all_outputs): Remove gccbug.
7891         * doc/configfiles.texi: Remove references to gccbug.
7892         * doc/sourcebuild.texi: Dito.
7893
7894 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
7895
7896         PR middle-end/46019
7897         * fold-const.c (fold_binary_loc): If integer_pow2p has
7898         TREE_INT_CST_LOW zero, look at TREE_INT_CST_HIGH.
7899
7900 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
7901             Jeremie Salvucci  <jeremie.salvucci@free.fr>
7902
7903         * gengtype.c (verbosity_level): Add variable.
7904         (set_gc_used): Count variables for verbosity.
7905         (close_output_files): Backing up files, counting written ones
7906         verbosily.
7907         (write_types): Count emitted functions for verbosity. Added
7908         debug messages.
7909         (write_enum_defn): Count structures for verbosity. Added debug
7910         messages.
7911         (gengtype_long_options): Add "verbose" & "backupdir".
7912         (print_usage): Ditto.
7913         (main): Verbose display of parsed files.
7914
7915         * gengtype.h (verbosity_level): Add declaration.
7916
7917 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
7918
7919         * gengtype.c (parse_program_options): Add allocation of
7920         plugin_files, and correct test on nb_plugin_files.
7921
7922 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
7923
7924         Merge from 'apple/trunk' branch on FSF servers.
7925
7926         2006-03-27 Fariborz Jahanian  <fjahanian@apple.com>
7927
7928         Radar 4133425
7929         * c-decl.c (undeclared_variable): Issue diagnostic on
7930         private 'ivar' access.
7931
7932 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
7933
7934         PR target/46051
7935         * config/i386/sse.md (vec_interleave_highv4df): Fix third RTX of
7936         generated sequence to match *avx_vperm2f128<mode>_nozero.
7937         (vec_interleave_lowv4df): Ditto.
7938         (vec_interleave_highv8sf): Ditto.
7939         (vec_interleave_lowv8sf): Ditto.
7940
7941 2010-10-17  Kai Tietz  <kai.tietz@onevision.com>
7942
7943         * libgcov.c (create_file_directory): Enable it for win32 case.
7944         (gcov_exit): De-couple GCOV_PREFIX and GCOV_PREFIX_STRIP.
7945         * doc/gcov.texi (GCOV_PREFIX): Adjusted.
7946         (GCOV_PREFIX_SKIP): Likewise.
7947
7948 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
7949
7950         * doc/objc.texi (GNU Objective-C runtime API): New section.
7951         (Modern GNU Objective-C runtime API): New section.
7952         (Traditional GNU Objective-C runtime API): New section.
7953         (Executing code before main): Mention that this section is
7954         specific to the GNU Objective-C runtime.
7955         (Garbage Collection): Same.
7956
7957 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
7958
7959         * c-parser.c (c_parser_for_statement): Move initialization of
7960         cond and incr before if.
7961
7962 2010-10-17  Anatoly Sokolov  <aesok@post.ru>
7963
7964         * target.def (preferred_output_reload_class): New hook.
7965         * doc/tm.texi.in (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Document.
7966         * doc/tm.texi: Regenerate.
7967         * targhooks.c (default_preferred_output_reload_class): New function.
7968         * targhooks.h (default_preferred_output_reload_class): Declare.
7969         * reload.c (find_dummy_reload): Change rclass argument type from
7970         enum reg_class to reg_class_t. Change this_alternative array type
7971         from enum reg_class to reg_class_t.
7972         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
7973         (push_reload): Change preferred_class variable type to reg_class_t.
7974         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
7975         * recog.c (reg_fits_class_p): Change result type to bool. Change cl
7976         argument type from enum reg_class to reg_class_t. Use
7977         HARD_REGISTER_NUM_P predicate.
7978         * recog.h (reg_fits_class_p): Update prototype.
7979
7980         * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
7981         * config/i386/i386-protos.h (ix86_preferred_output_reload_class):
7982         Remove.
7983         * config/i386/i386.c (ix86_preferred_output_reload_class): Make
7984         static. Change regclass argument and result types from enum reg_class
7985         to reg_class_t.
7986         (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
7987
7988 2010-10-17  Iain Sandoe  <iains@gcc.gnu.org>
7989
7990         * c-parser.c (c_parser_objc_class_instance_variables): Update to use
7991         visibility enum, and handle @package.
7992
7993 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
7994
7995         * doc/objc.texi (What you can and what you cannot do in +load):
7996         Document that sending messages to constant string objects in +load
7997         is not guaranteed to work.
7998
7999 2010-10-16  Jan Hubicka  <jh@suse.cz>
8000
8001         PR middle-end/44206
8002         * ipa.c (cgraph_remove_unreachable_nodes): Cleanup; check
8003         existence of refrences before removing the function.
8004
8005 2010-10-16  Jan Hubicka  <jh@suse.cz>
8006
8007         * cgraph.c (dump_cgraph_node): Dump same_comdat_group,
8008         only_called_at_startup and only_called_at_exit.
8009         (cgraph_propagate_frequency): Compute only_called_at_startup and
8010         only_called_at_exit.
8011         * cgraph.h (struct cgraph_node): New fileds only_called_at_startup and
8012         only_called_at_exit.
8013         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream the new
8014         flags.
8015         * predict.c (compute_function_frequency): Initialize the new flags.
8016
8017 2010-10-16  Eric Botcazou  <ebotcazou@adacore.com>
8018
8019         * gimplify.c (gimplify_type_sizes) <ARRAY_TYPE>: If the type is to be
8020         ignored for debug info purposes, do not clear the DECL_IGNORED_P flag
8021         on the bounds of its domain.
8022         * tree.h (DECL_IGNORED_P): Document effect on TYPE_DECL specifically.
8023
8024 2010-10-16  Anatoly Sokolov  <aesok@post.ru>
8025
8026         * config/avr/avr.h (PREFERRED_RELOAD_CLASS): Remove.
8027         * config/avr/avr-protos.h (preferred_reload_class): Remove.
8028         * config/avr/avr.c (preferred_reload_class): Remove.
8029         * config/pa/pa.h (PREFERRED_RELOAD_CLASS): Remove.
8030         * config/pa/pa.c (emit_move_sequence): Update comment
8031         * config/arc/arc.h (PREFERRED_RELOAD_CLASS): Remove.
8032         * config/crx/crx.h (PREFERRED_RELOAD_CLASS): Remove.
8033         * config/fr30/fr30.h (PREFERRED_RELOAD_CLASS): Remove.
8034         * config/frv/frv.h (PREFERRED_RELOAD_CLASS): Remove.
8035         * config/h8300/h8300.h (PREFERRED_RELOAD_CLASS): Remove.
8036         * config/lm32/lm32.h (PREFERRED_RELOAD_CLASS): Remove.
8037         * config/m32r/m32r.h (PREFERRED_RELOAD_CLASS): Remove.
8038         * config/moxie/moxie.h (PREFERRED_RELOAD_CLASS): Remove.
8039         * config/picochip/picochip.h (PREFERRED_RELOAD_CLASS): Remove.
8040         * config/rx/rx.h (PREFERRED_RELOAD_CLASS): Remove.
8041         * config/spu/spu.h (PREFERRED_RELOAD_CLASS): Remove.
8042         * config/v850/v850.h (PREFERRED_RELOAD_CLASS): Remove.
8043         * config/vax/vax.h (PREFERRED_RELOAD_CLASS): Remove.
8044
8045 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
8046
8047         * opts.c (set_fast_math_flags,
8048         set_unsafe_math_optimizations_flags): Make static.
8049         * toplev.h (set_fast_math_flags,
8050         set_unsafe_math_optimizations_flags): Remove prototypes.
8051
8052 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
8053
8054         * config/arm/arm.c (arm_option_optimization): Set
8055         flag_section_anchors to 1 not 2.
8056         * config/i386/i386.c (ix86_option_override_internal): Check
8057         global_options_set.x_flag_zee and
8058         global_options_set.x_flag_omit_frame_pointer.
8059         (ix86_option_optimization): Don't set flag_omit_frame_pointer and
8060         flag_zee to 2.
8061         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Check
8062         global_options_set.x_flag_omit_frame_pointer.
8063         * config/rs6000/rs6000.c (rs6000_option_init_struct): Set
8064         opts->x_flag_section_anchors to 1 not 2.
8065         * config/sh/sh.c (sh_option_optimization): Don't set
8066         flag_schedule_insns to 2.
8067         (sh_option_override): Check
8068         global_options_set.x_flag_schedule_insns.
8069         * opts.c (finish_options): Check opts_set->x_flag_section_anchors.
8070
8071 2010-10-16  Kai Tietz  <kai.tietz@onevision.com>
8072
8073         * configure.ac: Make sure inhibit_libc remains false for mingw targets
8074         as cross.
8075         * configure: Regenerated.
8076
8077 2010-10-15  Xinliang David Li  <davidxl@google.com>
8078
8079         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths): New
8080         function.
8081         (use_pred_not_overlap_with_undef_path_pred): Outline phi arg pruning
8082         into a recursive function.
8083
8084 2010-10-15  Uros Bizjak  <ubizjak@gmail.com>
8085
8086         * config/i386/i386.md (*movdfcc_1_rex64): Correct mode attribute.
8087         (*movdfcc_1): ditto.
8088
8089 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
8090
8091         * target.def (target_option.init_struct): New hook.
8092         * doc/tm.texi.in (TARGET_OPTION_INIT_STRUCT): New @hook.
8093         * doc/tm.texi: Regenerate.
8094         * hooks.c (hook_void_gcc_optionsp): New.
8095         * hooks.h (hook_void_gcc_optionsp): Declare.
8096         * langhooks-def.h (lhd_init_options_struct): Remove.
8097         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define to hook_void_gcc_optionsp.
8098         * langhooks.c (lhd_init_options_struct): Remove.
8099         * opts.c (init_options_struct): Also call
8100         targetm.target_option.init_struct.
8101         * config/i386/i386.c (ix86_option_init_struct,
8102         TARGET_OPTION_INIT_STRUCT): New.
8103         (ix86_option_optimization): Move some settings to
8104         ix86_option_init_struct.
8105         * config/pdp11/pdp11.c (pdp11_option_init_struct,
8106         TARGET_OPTION_INIT_STRUCT): New.
8107         (pdp11_option_optimization): Move some settings to
8108         pdp11_option_init_struct.
8109         * config/rs6000/rs6000.c (rs6000_option_optimization): Replace by
8110         rs6000_option_init_struct.  Use options structure pointer.
8111         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
8112         * config/s390/s390.c (s390_option_init_struct,
8113         TARGET_OPTION_INIT_STRUCT): New.
8114         (s390_option_optimization): Don't set
8115         flag_asynchronous_unwind_tables here.
8116         * config/sh/sh.c (sh_option_init_struct,
8117         TARGET_OPTION_INIT_STRUCT): New.
8118         (sh_option_optimization): Don't set flag_finite_math_only here.
8119         * config/spu/spu.c (spu_option_optimization): Replace by
8120         spu_option_optimization.  Use options structure pointer.
8121         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
8122
8123 2010-10-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
8124
8125         * doc/md.texi (Standard Names): Add fma@var{m}4 documentation.
8126
8127         * doc/rtl.texi (RTX_TERNARY): Document FMA is ternary.  Add
8128         SIGN_EXTRACT and ZERO_EXTRACT which were missing.
8129         (Standard names): Document fma.
8130
8131         * doc/cpp.texi (Common Predefined Macros): Document __FP_FAST_FMA,
8132         __FP_FAST_FMAF, __FP_FAST_FMAL.
8133
8134         * builitns.c (expand_builtin_mathfn_ternary): New function for
8135         expanding ternary math functions, like fma.
8136         (expand_builtin): Call it for the fma builtins.
8137
8138         * simplify-rtx.c (simplify_ternary_operation): Don't simplify FMA
8139         ops at present.
8140
8141         * tree-vect-stmts.c (vectorizable_call): Allow 3 argument
8142         vectorizable functions to support vectorizing fma.
8143
8144         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
8145         Handle fma builtins.
8146
8147         * config/rs6000/vsx.md (UNSPEC_VSX_MADD): Delete.
8148         (UNSPEC_VSX_MSUB): Ditto.
8149         (UNSPEC_VSX_NMADD): Ditto.
8150         (UNSPEC_VSX_NMSUB): Ditto.
8151         (vsx_fmadd<mode>4*): Rewrite to use FMA rtl in some cases instead
8152         of UNSPEC. Renumber combiner patterns.
8153         (vsx_fmsub<mode>4*): Ditto.
8154         (vsx_fnmadd<mode>4*): Ditto.
8155         (vsx_fnmsub<mode>4*): Ditto.
8156
8157         * config/rs6000/altivec.md (UNSPEC_VNMSUBFP): Delete.
8158         (altivec_vmaddfp): Rewrite to use FMA rtl if no fused
8159         multiply/add.  Rename combiner pattern, and add TARGET_FUSED_MADD test.
8160         (altivec_vmaddfp_1): Ditto.
8161         (altivec_vmaddfp_2): Ditto.
8162         (atlivec_mulv4sf3): Ditto.
8163         (altivec_vnmsubfp): Ditto.
8164         (altivec_vnmsubfp_1): Ditto.
8165         (altivec_vnmsubfp_2): Ditto.
8166         (altivec_vnmsubfp_3): Delete.
8167
8168         * config/rs6000/rs6000.md (fmasf4): New insns for fma builtin support.
8169         (fmasf4_fpr): Ditto.
8170         (fmssf4_fpr): Ditto.
8171         (fnmasf4_fpr): Ditto.
8172         (fnmssf4_fpr): Ditto.
8173         (fmadf4): Ditto.
8174         (fmadf4_fpr): Ditto.
8175         (fmsdf4_fpr): Ditto.
8176         (fnmadf4_fpr): Ditto.
8177         (fnmsdf4_fpr): Ditto.
8178
8179         * optabs.h (OTI_fma): Add fma optab.
8180         (fma_optab): Ditto.
8181
8182         * genopinit.c (optabs): Set fma optab.
8183
8184         * rtl.def (FMA): Add FMA rtl.
8185
8186         * tree.h (mode_has_fma): New function to return if MODE supports a
8187         fast multiply and add instruction.
8188         * builtins.c (mode_has_fma): Ditto.
8189
8190 2010-10-15  Jan Hubicka  <jh@suse.cz>
8191
8192         * lto-streamer-out.c (write_symbol): Use pointer set of seen
8193         objects instead of bitmap.
8194         (produce_symtab): Likewise; output defined symbols first.
8195
8196 2010-10-15  Jie Zhang  <jie@codesourcery.com>
8197
8198         * doc/invoke.texi: Add -fstrict-volatile-bitfields to
8199         Option Summary and Index.
8200
8201 2010-10-15  Richard Guenther  <rguenther@suse.de>
8202
8203         * tree.c (free_lang_data_in_decl): Clear DECL_INITIAL
8204         for automatic variables again.
8205
8206 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
8207
8208         * doc/extend.texi (Variable Length): Don't refer to VLAs not
8209         conforming to C99.
8210
8211 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
8212
8213         * config/rx/rx.c (rx_option_optimization): Change to
8214         rx_override_options_after_change.  Don't change
8215         flag_lto_compression_level.  Don't check for changes to whether
8216         FPU instructions can be used.  Check and set only
8217         flag_finite_math_only, not other fast-math flags.
8218         (rx_option_override): Call rx_override_options_after_change.
8219         (TARGET_OPTION_OPTIMIZATION): Remove.
8220         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
8221
8222 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
8223
8224         * config/rs6000/rs6000.c (rs6000_option_optimization): Don't
8225         disable section anchors for lang_hooks.name[4] != 'O'.
8226
8227 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
8228
8229         * config/frv/frv.c (frv_option_optimization,
8230         TARGET_OPTION_OPTIMIZATION): Remove.
8231         * config/frv/frv.h (RCSP_SOFTWARE_PIPELINING): Remove.
8232
8233 2010-10-15  Michael Matz  <matz@suse.de>
8234
8235         * cgraphunit.c (clone_of_p): Define unconditionally.
8236
8237 2010-10-15  Richard Guenther  <rguenther@suse.de>
8238
8239         PR lto/45957
8240         * tree.c (free_lang_data_in_decl): Do not clear DECL_INITIAL of vars.
8241
8242 2010-10-15  Chung-Lin Tang  <cltang@codesourcery.com>
8243
8244         * ifcvt.c (find_active_insn_before): New function.
8245         (find_active_insn_after): New function.
8246         (cond_exec_process_if_block): Use new functions to replace
8247         prev_active_insn() and next_active_insn().
8248
8249 2010-10-14  Yao Qi  <yao@codesourcery.com>
8250
8251         PR target/45447
8252         * config/arm/arm.c (arm_build_builtin_va_list): Assign
8253         va_list_name to TYPE_STUB_DECL (va_list_type).
8254
8255 2010-10-14  Jan Hubicka  <jh@suse.cz>
8256
8257         PR middle-end/45621
8258         * cgraph.c (cgraph_update_edges_for_call_stmt_node): When new call is
8259         redirected to clone, be happy.
8260         * cgraph.h (cgraph node): Enable former_clone_of unconditinally.
8261         * cgraphunit.c (verify_cgraph_node, cgraph_materialize_clone): Handle
8262         former_clone_of unconditionally.
8263
8264 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
8265
8266         Merge from FSF apple 'trunk' branch.
8267         2006 Fariborz Jahanian  <fjahanian@apple.com>
8268
8269         Radars 4436866, 4505126, 4506903, 4517826
8270         * c-parser.c (c_parser, objc_property_attr_context) New flag.
8271         (c_lex_one_token): Handle property attributes.
8272         (c_parser_external_declaration): Handle @property.
8273         (c_parser_declaration_or_fndef): Warn on invalid attributes before
8274         @alias, @class, @end and @property objc keywords.
8275         (c_parser_objc_methodprotolist): Handle @property.
8276         (c_parser_objc_property_attrlist): New.
8277         (c_parser_objc_at_property): New.
8278         * c-typeck.c (build_component_ref): Handle CLASS.property syntax.
8279         (build_modify_expr): Likewise.
8280
8281 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
8282
8283         PR tree-optimization/46008
8284         * tree-if-conv.c (predicate_bbs): Try to canonicalize c2 if possible.
8285
8286 2010-10-14  Richard Guenther  <rguenther@suse.de>
8287
8288         PR tree-optimization/44913
8289         * tree-data-ref.c (disjoint_objects_p): Remove.
8290         (dr_may_alias_p): Simplify.  Only hand the base object to
8291         the alias-oracle.
8292         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
8293         some more trees, bail out instead of asserting.
8294         (ptr_derefs_may_alias_p): Likewise.  Export.
8295         (refs_may_alias_p_1): Handle STRING_CSTs.
8296         * tree-ssa-alias.h (ptr_derefs_may_alias_p): Declare.
8297
8298 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
8299
8300         PR c/45969
8301         * c-typeck.c (build_binary_op): Don't try to compute a semantic
8302         type with excess precision for boolean operations.
8303
8304 2010-10-14  Jeremie Salvucci  <jeremie.salvucci@free.fr>
8305             Basile Starynkevitch  <basile@starynkevitch.net>
8306
8307         * gengtype.c:  Include getopt.h and version.h.
8308
8309         (lang_bitmap, struct outf, outf_p)
8310         (get_output_file_with_visibility, oprintf): Definitions moved to
8311         gengtype.h
8312         (output_files, header_file, srcdir, srcdir_len, this_file)
8313         (do_dump): No more static variables.
8314         (do_debug): New.
8315         (dbgprint_count_type_at): Added new function.
8316         (gengtype_long_options): New.
8317         (print_usage, print_version, parse_program_options): New.
8318         (main): Call parse_program_options, and removed old option
8319         handling code.  Added some debug output.
8320
8321         * gengtype.h:  Updated copyright year.
8322         (lang_bitmap, struct outf, outf_p, header_file, oprintf)
8323         (get_output_file_with_visibility, srcdir, srcdir_len, do_dump):
8324         Moved from gengtype.c to here.
8325         (do_debug, read_state_filename, write_state_filename): New variables.
8326         (DBGPRINTF, DBGPRINT_COUNT_TYPE): New macros.
8327
8328         * Makefile.in:
8329         (REVISION): Always defined.
8330         (version.o): Removed ifdef REVISION_c.
8331         (s-gtype): Pass arguments to build/gengtype program.
8332         (build/version.o): Added building rule.
8333         (build/gengtype$(build_exeext)): Added build/version.o.
8334
8335 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
8336
8337         Partial merge of 'ObjC GC' from FSF apple 'trunk' branch.
8338         * config/darwin-c.c (darwin_cpp_builtins): Define __weak and
8339         __strong macros.
8340
8341 2010-10-14  Eric Botcazou  <ebotcazou@adacore.com>
8342
8343         * sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke
8344         may_trap_or_fault_p instead of may_trap_p predicate.
8345         * tree.c (substitute_in_expr): Propagate the TREE_THIS_NOTRAP flag.
8346         (substitute_placeholder_in_expr): Likewise.
8347         * tree-inline.c (remap_gimple_op_r): Propagate the TREE_THIS_NOTRAP
8348         flag on MEM_REF nodes.
8349         (copy_tree_body_r): Propagate the TREE_READONLY and TREE_THIS_NOTRAP
8350         flags on INDIRECT_REF nodes.
8351
8352 2010-10-14  Nathan Froyd  <froydnj@codesourcery.com>
8353
8354         * config.gcc (arm*-*-linux-*eabi) <tm_file>: Add bpabi.h from libgcc.
8355         (arm*-*-uclinux*eabi) <tm_file>: Likewise.
8356         (arm*-*-eabi*) <tm_file>: Likewise.
8357         (frv-*-elf) <tm_file>: Add frv-abi.h from libgcc.
8358         (frv-*-*linux*) <tm_file>: Likewise.
8359         * config/arm/bpabi.h: Delete DECLARE_LIBRARY_RENAMES stanzas
8360         and associated helper macros.
8361         * config/frv/frv-abi.h: Delete.
8362
8363 2010-10-14  Richard Guenther  <rguenther@suse.de>
8364
8365         PR lto/44561
8366         * tree.def (NULLPTR_TYPE): New tree code.
8367         * dbxout.c (dbxout_type): Handle NULLPTR_TYPE.
8368         * dwarf2out.c (is_base_type): Likewise.
8369         (gen_type_die_with_usage): Likewise.
8370         * sdbout.c (plain_type_1): Likewise.
8371         * tree.c (build_int_cst_wide): Likewise.
8372         * gimple.c (gimple_types_compatible_p_1): NULLPTR_TYPE types are equal.
8373
8374 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
8375
8376         * params.c (params_finished): New.
8377         (add_params): Assert !params_finished.
8378         (finish_params): New.
8379         (set_param_value_internal): Take params and params_set
8380         parameters.  Assert params_finished.
8381         (set_param_value, maybe_set_param_value): Take params and
8382         params_set parameters.  Update calls to set_param_value_internal.
8383         (set_default_param_value): Assert !params_finished.  Don't use
8384         set_param_value_internal.
8385         (default_param_value, init_param_values): New.
8386         * params.h (struct param_info): Change value to default_value.
8387         Remove set.
8388         (set_param_value, maybe_set_param_value): Add params and
8389         params_set parameters.
8390         (PARAM_VALUE): Get parameters from global_options.
8391         (PARAM_SET_P): Remove.
8392         (finish_params, default_param_value, init_param_values): New.
8393         * common.opt (param_values): New Variable.
8394         * config/arm/arm.c (arm_option_override): Pass extra arguments to
8395         maybe_set_param_value.
8396         * config/i386/i386.c (ix86_option_override_internal): Pass extra
8397         arguments to maybe_set_param_value.
8398         * config/picochip/picochip.c (picochip_option_override): Pass
8399         extra arguments to maybe_set_param_value.
8400         * config/rs6000/rs6000.c (rs6000_option_override_internal): Pass
8401         extra arguments to maybe_set_param_value.
8402         * config/s390/s390.c (s390_option_override): Use
8403         maybe_set_param_value instead of set_param_value.  Pass extra
8404         arguments to maybe_set_param_value.
8405         * config/sparc/sparc.c (sparc_option_override): Pass extra
8406         arguments to maybe_set_param_value.
8407         * config/spu/spu.c (spu_option_override): Pass extra arguments to
8408         maybe_set_param_value.
8409         * opts.c (handle_param): Take opts and opts_set parameters.
8410         Update call to set_param_value.
8411         (initial_min_crossjump_insns, initial_max_fields_for_field_sensitive,
8412         initial_loop_invariant_max_bbs_in_loop): Remove.
8413         (init_options_once): Don't set them.
8414         (init_options_struct): Initialize parameters structures.
8415         (default_options_optimization): Use default_param_value when
8416         restoring defaults.  Update calls to maybe_set_param_value.
8417         (finish_options): Update calls to maybe_set_param_value.
8418         (common_handle_option): Update calls to handle_param and
8419         set_param_value.
8420         * toplev.c (DEFPARAM): Update definition for changes to param_info.
8421         (general_init): Call finish_params.
8422
8423 2010-10-14  Nick Clifton  <nickc@redhat.com>
8424
8425         * config/mn10300/mn10300.h (CONSTANT_ALIGNMENT): Define.
8426         (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.
8427         (FIRST_PSEUDO_REGISTER): Increase by one.
8428         (FIXED_REGISTERS, CALL_USED_REGISTERS): Update with CC_REG.
8429         (HARD_REGNO_MODE_OK): Call mn10300_hard_regno_mode_ok.
8430         (MODES_TIEABLE): Call mn10300_modes_tieable.
8431         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add CC_REGS.
8432         (LEGITIMATE_CONSTANT_P): Call mn10300_legitimate_constant_p.
8433         (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, NOTICE_UPDATE_CC)
8434         (SELECT_CC_MODE, REVERSIBLE_CC_MODE): Delete.
8435         (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Add CC register.
8436         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
8437         (mn10300_cc_status_mdep): Delete.
8438         (CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Delete.
8439         * config/mn10300/mn10300 (mn10300_option_override): Stop disabling
8440         the combine-stack-adjust pass.
8441         (print_operand): Use the mode of the comparison operation to
8442         select the comparison suffix.
8443         (notice_update_cc): Delete.
8444         (mn10300_secondary_reload_class): Remove test for stack pointer
8445         based arithmetic.
8446         (output_tst): Rename to mn10300_output_cmp.
8447         (impossible_plus_operand): Move into predicates.md.
8448         (mn10300_legitimize_address): Make static.
8449         (mn10300_legitimate_address_p): Make static.  Only allow SI sized
8450         constant pic operands.
8451         (mn10300_legitimate_constant_p): New function.
8452         (mn10300_case_values_threshold): Make static.
8453         (mn10300_hard_regno_mode_ok): New function.
8454         (mn10300_modes_tieable): New function.
8455         (mn10300_select_cc_mode): New function.
8456         * config/mn10300/predicates.md (impossible_plus_operand): Define.
8457         * config/mn10300/mn10300-protos.h: Tidy.
8458         (mn10300_legitimate_constant_p, mn10300_modes_tieable)
8459         (mn10300_hard_regno_mode_ok, mn10300_select_cc_mode): Prototype.
8460         * config/mn10300/mn10300.md (cc attribute): Delete.  Replace
8461         with clobbers or sets of CC_REG.
8462         (CC_REG): Define.
8463         (mov*): Remove use of CLR instruction.
8464         (cbranch_si4_<code>): New pattern/split.
8465         (integer_conditional_branch): New pattern.
8466         (cbranch_sf4_<code>): New pattern/split.
8467         (float_conditional_branch): New pattern.
8468         (casesi): Use addsi3 pattern instead of movsi pattern to add and
8469         move a value at the same time.
8470         (cc0 peepholes): Remove.
8471
8472 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
8473
8474         * sel-sched-ir.c (init_global_and_expr_for_insn): Set CANT_MOVE
8475         on RTX_FRAME_RELATED_P insns and the insn to which
8476         NOTE_INSN_EPILOGUE_BEG is attached.
8477         * sched-vis.c (print_value): Allow NULL value.
8478
8479 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
8480
8481         PR rtl-optimization/45570
8482         * sel-sched-ir.c (cfg_preds_1): When walking out of the region,
8483         assert that we are pipelining outer loops.  Allow returning
8484         zero predecessors.
8485
8486 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
8487
8488         * sel-sched-ir.c (maybe_tidy_empty_bb): Simplify comment.
8489         (tidy_control_flow): Tidy vertical space.
8490         (sel_remove_bb): New variable idx.  Use it to remember the basic
8491         block index before deleting the block.
8492         (sel_remove_empty_bb): Remove dead code, simplify and insert to ...
8493         (sel_merge_blocks): ... here.
8494         * sel-sched-ir.h (sel_remove_empty_bb): Remove prototype.
8495
8496 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
8497
8498         * cse.c (is_dead_reg): Change into inline function that is not
8499         called through for_each_rtx.
8500         (set_live_p): Adjust caller.
8501         (insn_live_p): Don't reset DEBUG_INSNs here.
8502         (struct dead_debug_insn_data): New data.
8503         (count_stores, is_dead_debug_insn, replace_dead_reg): New functions.
8504         (delete_trivially_dead_insns): If there is just one setter for the
8505         dead reg that is referenced by some DEBUG_INSNs, create a DEBUG_EXPR
8506         and add DEBUG_INSN for it right before the removed setter and
8507         use the DEBUG_EXPR instead of the dead pseudo.
8508
8509 2010-10-14  Zdenek Dvorak  <rakdver@kam.uniff.cz>
8510
8511         * et-forest.c (et_nca): Return NULL immediately when
8512         the dominance forest has disjoint components.
8513
8514 2010-10-13  Vladimir Makarov  <vmakarov@redhat.com>
8515
8516         * ira.c (setup_class_hard_regs): Fix typo in indexing
8517         ira_non_ordered_class_hard_regs and ira_class_hard_reg_index.
8518
8519 2010-10-14  Tijs Wiebe Lefering  <twlevo@gmail.com>
8520
8521         * graph.c (inbb): New variable.
8522         (start_bb): Set inbb to 1 if output is inside of a building block.
8523         (end_bb): Check if output is inside of a building block.
8524
8525 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
8526
8527         PR rtl-optimization/45912
8528         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Test the
8529         regno of registers instead of their index to compute the alignment.
8530
8531 2010-10-13  H.J. Lu  <hongjiu.lu@intel.com>
8532
8533         * config/i386/i386.c (ix86_build_const_vector): Check vector
8534         mode instead of scalar mode.
8535         (ix86_build_signbit_mask): Likewise.
8536         (ix86_expand_fp_absneg_operator): Updated.
8537         (ix86_expand_copysign): Likewise.
8538         (ix86_expand_int_vcond): Likewise.
8539         (ix86_emit_swdivsf): Likewise.
8540         (ix86_sse_copysign_to_positive): Likewise.
8541         (ix86_expand_sse_fabs): Likewise.
8542         * config/i386/i386.md (fixuns_trunc<mode>si2): Likewise.
8543         * config/i386/sse.md (copysign<mode>3): Likewise.
8544         (sse2_cvtudq2ps): Likewise.
8545         (vec_unpacku_float_hi_v4si): Likewise.
8546         (vec_unpacku_float_lo_v4si): Likewise.
8547
8548         * config/i386/i386.c (ix86_builtins): Add
8549         IX86_BUILTIN_CPYSGNPS256 and IX86_BUILTIN_CPYSGNPD256.
8550         (bdesc_args): Likewise.
8551         (ix86_builtin_vectorized_function): Support
8552         IX86_BUILTIN_CPYSGNPS256, IX86_BUILTIN_CPYSGNPD256,
8553         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS_NR256,
8554         and IX86_BUILTIN_CVTPS2DQ256.
8555         (ix86_builtin_reciprocal): Support IX86_BUILTIN_SQRTPS_NR256.
8556
8557         * config/i386/sse.md (STORENT_MODE): New.
8558         (VEC_FLOAT_MODE): Likewise.
8559         (VEC_EXTRACT_MODE): Likewise.
8560         (*avx_cvtdq2pd256_2): Likewise.
8561         (vec_pack_trunc_v4df): Likewise.
8562         (vec_interleave_highv8sf): Likewise.
8563         (vec_interleave_lowv8sf): Likewise.
8564         (storent<mode>): Macroized.
8565         (<code><mode>2: absneg): Likewise.
8566         (copysign<mode>3): Likewise.
8567         (vec_extract<mode>): Likewise.
8568
8569         PR target/44180
8570         * config/i386/i386.c (expand_vec_perm_even_odd_1): Rewritten
8571         for V8SFmode.
8572
8573 2010-10-13  Richard Guenther  <rguenther@suse.de>
8574             H.J. Lu  <hongjiu.lu@intel.com>
8575
8576         * config/i386/sse.md (reduc_splus_v8sf): Add.
8577         (reduc_splus_v4df): Likewise.
8578         (vec_unpacks_hi_v8sf): Likewise.
8579         (vec_unpacks_lo_v8sf): Likewise.
8580         (*avx_cvtps2pd256_2): Likewise.
8581         (vec_unpacks_float_hi_v8si): Likewise.
8582         (vec_unpacks_float_lo_v8si): Likewise.
8583         (vec_interleave_highv4df): Likewise.
8584         (vec_interleave_lowv4df): Likewise.
8585
8586 2010-10-13  Richard Guenther  <rguenther@suse.de>
8587
8588         PR objc/45878
8589         * gimple-fold.c (gimple_fold_obj_type_ref): Leave OBJ_TYPE_REFs
8590         alone if there are no virtual methods.
8591
8592 2010-10-13  Richard Henderson  <rth@redhat.com>
8593
8594         * expr.c (build_personality_function): Take parameter LANG instead
8595         of parameter NAME.  Build the name based on the lang prefix and the
8596         unwind method in use.
8597         * tree.c (lhd_gcc_personality): Update call to
8598         build_personality_function.
8599
8600 2010-10-13  Richard Guenther  <rguenther@suse.de>
8601
8602         PR objc/45878
8603         * tree-ssa-ccpc (ccp_fold_stmt): Use gimple_fold_obj_type_ref.
8604
8605 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
8606
8607         * cse.c (cse_insn): Fix thinko in the canonicalization of USE insns.
8608         Canonicalize input operands of ASM_OPERANDS insns.
8609
8610 2010-10-13  Richard Guenther  <rguenther@suse.de>
8611
8612         PR tree-optimization/45788
8613         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Delay
8614         EH update until fixup-cfg.
8615
8616 2010-10-13  Julian Brown  <julian@codesourcery.com>
8617
8618         * config/arm/arm.h (REG_CLASS_CONTENTS): Remove soft frame pointer
8619         from CORE_REGS and GENERAL_REGS classes.
8620         * config/arm/arm.md (*thumb1_movsi_insn): Ignore all parts of
8621         final constraint for register preferencing.
8622
8623 2010-10-13  Richard Guenther  <rguenther@suse.de>
8624
8625         PR tree-optimization/45970
8626         * tree-ssa-alias.h (stmt_kills_ref_p): Declare.
8627         * tree-ssa-alias.c (stmt_kills_ref_p_1): New function.
8628         (stmt_kills_ref_p): Likewise.
8629         * tree-ssa-dse.c (dse_optimize_stmt): Use it.
8630
8631 2010-10-13  Richard Guenther  <rguenther@suse.de>
8632
8633         PR tree-optimization/45982
8634         * tree-ssa-structalias.c (make_constraints_to): New function.
8635         (make_constraint_to): Implement in terms of make_constraints_to.
8636         (find_func_aliases): Properly make return values of pure/const
8637         functions escape if they assign to sth that is not a pointer.
8638
8639 2010-10-13  Richard Guenther  <rguenther@suse.de>
8640
8641         PR middle-end/45874
8642         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
8643         Fixup the CFG when EH was fixed up.
8644
8645 2010-10-13  Ira Rosen  <irar@il.ibm.com>
8646
8647         * tree-vect-slp.c (vect_get_constant_vectors): Fix comment.
8648         Use operand's type for POINTER_PLUS_EXPR.
8649
8650 2010-10-13  Alexandre Oliva  <aoliva@redhat.com>
8651
8652         * c-parser.c (c_parser_for_statement): Initialize incr.
8653
8654 2010-10-12  Xinliang David Li  <davidxl@google.com>
8655
8656         PR tree-optimization/45972
8657         * tree-ssa-uninit.c (compute_uninit_opnds_pos): Skip phis
8658         with too many arguments.
8659
8660 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
8661
8662         PR fortran/45636
8663         * tree-ssa-forwprop.c: Include expr.h.
8664         (constant_pointer_difference, simplify_builtin_call): New functions.
8665         (tree_ssa_forward_propagate_single_use_vars): Call
8666         simplify_builtin_call on builtin calls.
8667
8668 2010-10-12  Eric Botcazou  <ebotcazou@adacore.com>
8669
8670         * config/sparc/sparc.md (*adddi3_insn_sp32): Rename.
8671         (*adddi3_extend_sp32): Likewise.
8672         (*subdi3_insn_sp32): Likewise.
8673         (*subdi3_extend_sp32): Likewise.
8674         (*negdi2_sp32): Use negative test for consistency.
8675
8676 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
8677
8678         * libgcc2.h: Use __SIZEOF_DOUBLE__ instead of LIBGCC2_DOUBLE_TYPE_SIZE.
8679         (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
8680         * config/fixed-bit.h: Likewise.
8681         * config/rx/rx.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
8682         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
8683         * system.h (LIBGCC2_DOUBLE_TYPE_SIZE): Poison.
8684         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE): Use DOUBLE_TYPE_SIZE.
8685         (DF_SIZE): Likewise.
8686         * doc/tm.texi: Regenerate.
8687
8688 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
8689
8690         * config/rs6000/predicates.md (scc_rev_comparison_operator): New.
8691         * config/rs6000/rs6000.md (*isel_reversed_signed_<mode>): New.
8692         (*isel_reversed_unsigned_<mode>): New.
8693         * config/rs6000/rs6000.c (output_isel): Accept GE/GEU/LE/LEU/NE
8694         as valid comparisons and adjust operands and output appropriately.
8695         (rs6000_rtx_costs) <CONST_INT>: Accept NE as a cost-0 outer_code.
8696
8697 2010-10-12  Chung-Lin Tang  <cltang@codesourcery.com>
8698
8699         * config/arm/arm.h (ARM_EXPAND_ALIGNMENT): Rename from
8700         DATA_ALIGNMENT and add COND parameter. Update comments above.
8701         (DATA_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !optimize_size.
8702         (LOCAL_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !flag_conserve_stack.
8703
8704 2010-10-12  H.J. Lu  <hongjiu.lu@intel.com>
8705
8706         PR bootstrap/45958
8707         * exec-tool.in: Support '-plugin' as the second option to the linker.
8708
8709 2010-10-12  Richard Henderson  <rth@redhat.com>
8710
8711         PR middle-end/45962
8712         * cfgexpand.c (add_stack_var): Ensure every variable has 1 byte.
8713         (expand_stack_vars): Assert large base allocated when used.
8714
8715 2010-10-12  Richard Guenther  <rguenther@suse.de>
8716
8717         * tree-ssa-structalias.c (get_constraint_for_1): Constants
8718         only point to nonlocal, not anything.
8719
8720 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
8721
8722         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Use sjlj
8723         unwind info for exceptions.
8724
8725 2010-10-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8726
8727         PR testsuite/45851
8728         * doc/sourcebuild.texi (LTO Testing, dg-extra-ld-options):
8729         Document optional target selector.
8730
8731 2010-10-12  Joseph Myers  <joseph@codesourcery.com>
8732
8733         * flag-types.h: New.
8734         * Makefile.in (TH_H): Include $(OPTIONS_H) instead of $(FLAGS_H).
8735         (FLAGS_H): Include flag-types.h.  Include $(OPTIONS_H) instead of
8736         options.h.
8737         (OPTIONS_H): Define.
8738         (c-family/c-opts.o, lto-opts.o, opts.o): Use $(OPTIONS_H) instead
8739         of options.h.
8740         * configure.ac (tm_include_list): Include options.h not flags.h.
8741         * configure: Regenerate.
8742         * flags.h: Include flag-types.h.  Include options.h at top of file
8743         again.
8744         (enum debug_info_type, enum debug_info_level, enum
8745         debug_info_usage, enum symbol_visibility, struct visibility_flags,
8746         enum ira_algorithm, enum ira_region, enum excess_precision, enum
8747         graph_dump_types, enum stack_check_type,
8748         enum warn_strict_overflow_code): Move to flag-types.h
8749         * opth-gen.awk: Include flag-types.h in options.h.
8750
8751 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
8752
8753         * expr.c (store_expr): Share code for STRING_CST and
8754         MEM_REF of &STRING_CST cases.  Don't require BLKmode, instead
8755         check if target is a MEM.
8756
8757         * rtl.h: Include hashtab.h.
8758         (iterative_hash_rtx): New prototype.
8759         * rtl.c (iterative_hash_rtx): New function.
8760         * dwarf2out.c (dw_loc_list_node): Add hash and emitted fields.
8761         (output_loc_list): Return immediately if emitted is set, set it.
8762         (hash_loc_operands, hash_locs, hash_loc_list,
8763         compare_loc_operands, compare_locs, loc_list_hash, loc_list_eq,
8764         optimize_location_lists_1, optimize_location_lists): New function.
8765         (dwarf2out_finish): Call optimize_location_lists.
8766         * Makefile.in (RTL_BASE_H): Depend on $(HASHTAB_H).
8767
8768 2010-10-12  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8769
8770         PR testsuite/45974
8771         Revert:
8772         * Makefile.in ($(lang_checks_parallel))
8773         ($(lang_checks_parallelized)): Use single quotes for
8774         $(RUNTESTFLAGS), to allow passing quoted content.
8775
8776 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8777
8778         * config/pa/linux-atomic.c (__sync_val_compare_and_swap_4): Return
8779         actual_oldval.  Use __builtin_expect.
8780         (SUBWORD_VAL_CAS): Likewise.
8781
8782 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
8783
8784         * recog.c (nonmemory_operand): Call immediate_operand for
8785         CONSTANT_P operands.
8786
8787 2010-10-11  Uros Bizjak  <ubizjak@gmail.com>
8788
8789         * config/i386/i386.md (movmem<mode>): Macroize expander from
8790         movmem{si,di} using SWI48 mode iterator.
8791         (*strmovsi_1): Macroize insn pattern from *strmovsi_1 and
8792         *strmovsi_rex_1 using P mode iterator.
8793         (*strmovhi_1): Ditto from *strmovhi_1 and *strmovhi_rex_1.
8794         (*strmovqi_1): Ditto from *strmovqi_1 and *strmovqi_rex_1.
8795         (*rep_movsi): Ditto from *rep_movsi and *rep_movsi_rex64.
8796         (*rep_movqi): Ditto from *rep_movqi and *rep_movqi_rex64.
8797         (setmem<mode>): Macroize expander from setmem{si,di} using
8798         SWI48 mode iterator.
8799         (*strsetsi_1): Macroize insn pattern from *strsetsi_1 and
8800         *strsetsi_rex_1 using P mode iterator.
8801         (*strsethi_1): Ditto from *strsethi_1 and *strsethi_rex_1.
8802         (*strsetqi_1): Ditto from *strsetqi_1 and *strsetqi_rex_1.
8803         (*rep_stossi): Ditto from *rep_stossi and *rep_stossi_rex64.
8804         (*rep_stosqi): Ditto from *rep_stosqi and *rep_stosqi_rex64.
8805         (*cmpstrnqi_nz_1): Ditto from *cmpstrnqi_nz_1 and *cmpstrnqi_nz_rex_1.
8806         (*cmpstrnqi_1): Ditto from *cmpstrnqi_1 and *cmpstrnqi_rex_1.
8807         (strlen<mode>): Macroize expander from strlen{si,di} using SWI48x
8808         mode iterator.
8809         (*strlenqi_1): Macroize insn pattern from *strlenqi_1 and
8810         *strlenqi_rex_1 using P mode iterator.
8811
8812 2010-10-11  Bernd Schmidt  <bernds@codesourcery.com>
8813
8814         PR bootstrap/45445
8815         * ira-lives.c (mark_pseudo_reg_live, mark_pseudo_reg_dead): New
8816         static functions.
8817         (mark_ref_live, mark_ref_dead): Use them.
8818         (make_pseudo_conflict): New arg ORIG_DREG.  All callers changed.
8819         Save the original reg, and use the new functions.
8820         (check_and_make_def_use_conflict): New arg ORIG_DREG.  All callers
8821         changed.
8822         (check_and_make_def_conflict): Save the original reg.
8823
8824 2010-10-11  Martin Jambor  <mjambor@suse.cz>
8825
8826         PR middle-end/45699
8827         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Choose among
8828         thunks.
8829
8830 2010-10-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8831
8832         * Makefile.in ($(lang_checks_parallel))
8833         ($(lang_checks_parallelized)): Use single quotes for
8834         $(RUNTESTFLAGS), to allow passing quoted content.
8835
8836         PR bootstrap/35855
8837         * opt-functions.awk (BEGIN): New section.
8838         (lower, upper, digit, alnum): New variables.
8839         (static_var, opt_sanitized_name): Use alnum instead of character
8840         classes, for non-C locale.
8841         * optc-gen.awk: Likewise.
8842         * opth-gen.awk: Likewise.
8843
8844 2010-10-11  Anatoly Sokolov  <aesok@post.ru>
8845
8846         * target.def (preferred_reload_class): New hook.
8847         * doc/tm.texi.in (TARGET_PREFERRED_RELOAD_CLASS): Document.
8848         * doc/tm.texi: Regenerate.
8849         * targhooks.c (default_preferred_reload_class): New function.
8850         * targhooks.h (default_preferred_reload_class): Declare.
8851         * reload.c (find_dummy_reload): Change preferred_class variable type
8852         from enum reg_class to reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS
8853         target hook.
8854         (find_reloads): Change goal_alternative array type from int to
8855         reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS target hook.
8856         (push_reload, find_reloads_address_part): Use
8857         TARGET_PREFERRED_RELOAD_CLASS target hook.
8858         * reload1.c (emit_input_reload_insns): Ditto.
8859         * ira-costs.c (copy_cost): Use TARGET_PREFERRED_RELOAD_CLASS target
8860         hook. Change rclass argument and secondary_class variable types from
8861         'enum reg_class' to reg_class_t.
8862
8863         * config/i386/i386.h (PREFERRED_RELOAD_CLASS): Remove.
8864         * config/i386/i386-protos (ix86_preferred_reload_class): Remove.
8865         * config/i386/i386.c (ix86_preferred_reload_class): Make static.
8866         Change regclass argument and result types from enum reg_class to
8867         reg_class_t.
8868         (TARGET_PREFERRED_RELOAD_CLASS): Define.
8869
8870 2010-10-11  Eric Botcazou  <ebotcazou@adacore.com>
8871
8872         * simplify-rtx.c (simplify_unary_operation_1): Use unsigned arithmetics
8873         in masking operations.
8874         (simplify_const_unary_operation): Likewise.
8875         (simplify_binary_operation_1): Likewise.
8876         (simplify_const_binary_operation): Likewise.
8877         (simplify_const_relational_operation): Likewise.
8878         (simplify_ternary_operation): Likewise.
8879         (simplify_immed_subreg): Likewise.
8880
8881 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8882
8883         PR middle-end/45862
8884         * doc/tm.texi.in (SUPPORTS_WEAK): Update.
8885         (TARGET_SUPPORTS_WEAK): New.
8886         * doc/tm.texi: Regenerate.
8887         * defaults.h (SUPPORTS_WEAK): Update comment.
8888         (TARGET_SUPPORTS_WEAK): New.
8889         * dwarf2asm.c (USE_LINKONCE_INDIRECT): Update define.
8890         * varasm.c (assemble_external): Use TARGET_SUPPORTS_WEAK instead of
8891         SUPPORTS_WEAK.
8892         (merge_weak, declare_weak, do_assemble_alias, supports_one_only,
8893         make_decl_one_only): Likewise.
8894         * config/pa/som.h (SUPPORTS_WEAK): Rename defines to
8895         TARGET_SUPPORTS_WEAK.
8896         (SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Use TARGET_SUPPORTS_WEAK
8897         instead of SUPPORTS_WEAK.
8898
8899 2010-10-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8900
8901         * config/sparc/gmon-sol2.c: Don't include coretypes.h, tm.h.
8902
8903 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
8904
8905         * vec.h (VEC_qsort): Define.
8906         * dbxout.c (output_used_types): Use it.
8907         * df-scan.c (df_sort_and_compress_refs): Likewise.
8908         (df_sort_and_compress_mws): Likewise.
8909         * genautomata.c (uniq_sort_alt_states): Likewise.
8910         (evaluate_equiv_classes): Likewise.
8911         (output_trans_table): Likewise.
8912         (output_state): Likewise.
8913         * gimplify.c (compare_case_labels): Likewise.
8914         * graphite-sese-to-poly.c (graphite_sort_dominated_info): Likewise.
8915         * ipa.c (build_cdtor_fns): Likewise.
8916         * lto.c (lto_wpa_write_files): Likewise.
8917         * sel-sched.c (fill_vec_av_set): Likewise.
8918         * tree-predcom.c (determine_roots_comp): Likewise.
8919         * tree-sra.c (sort_and_spliace_var_accesses): Likewise.
8920         (splice_param_accesses): Likewise.
8921         * tree-ssa-live.c (dump_enumerated_decls): Likewise.
8922         * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
8923         (reassociate_bb): Likewise.
8924         * tree-ssa-sccvn.c (sort_scc): Likewise.
8925         * tree-ssa-structalias.c (sort_fieldstack): Likewise.
8926
8927 2010-10-11  Ian Lance Taylor  <iant@google.com>
8928
8929         * tree.h (TREE_THIS_NOTRAP): Use TREE_CHECK5.
8930         * emit-rtl.c (set_mem_attributes_minus_bitpos): Only check
8931         TREE_THIS_NOTRAP when appropriate.
8932         (get_spill_slot_decl): Don't set TREE_THIS_NOTRAP on the new VAR_DECL.
8933         * gimplify.c (gimplify_expr): Copy NOTRAP from INDIRECT_REF to
8934         newly created MEM_REF.
8935
8936 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
8937
8938         Nathan Froyds patch to hooks FUNCTION_ARG etc.
8939         * config/picochip/picochip-protos.h (picochip_function_arg): Delete.
8940         (picochip_incoming_function_arg): Delete.
8941         (picochip_arg_advance): Delete.
8942         * config/picochip/picochip.h (FUNCTION_ARG): Delete.
8943         (FUNCTION_INCOMING_ARG): Delete.
8944         (FUNCTION_ARG_ADVANCE): Delete.
8945         * config/picochip/picochip.c (picochip_function_arg): Take a
8946         const_tree and a bool.
8947         (picochip_incoming_function_arg): Likewise.
8948         (picochip_arg_advance): Likewise.
8949         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
8950         (TARGET_FUNCTION_ARG_ADVANCE): Define.
8951
8952 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8953
8954         PR middle-end/45955
8955         * ipa.c (build_cdtor): Delete endless loop.
8956
8957 2010-10-07  Andi Kleen  <ak@linux.intel.com>
8958
8959         * Makefile.in (MOSTLYCLEANFILES): Remove cc1*dummy, add
8960         checksum-options.
8961         (checksum-options): Add.
8962         (cc1-dummy): Remove.
8963         (cc1-checksum): Change to run checksum over object files
8964         and options only.
8965         * dummy-checksum.c: Remove.
8966         * genchecksum.c: Update copyright.
8967         (usage): Allow multiple arguments.
8968         (BLOCKSIZE): Add.
8969         (dosum): Change for incremental checksum. Remove C output.
8970         (main): Iterate over all argument files. Add C output.
8971
8972 2010-10-11  Joseph Myers  <joseph@codesourcery.com>
8973
8974         * params.c (set_param_value_internal): New.
8975         (set_param_value): Use set_param_value_internal.
8976         (maybe_set_param_value, set_default_param_value): New.
8977         * params.h (PARAM_VALUE, PARAM_SET_P): Make into rvalues.
8978         (maybe_set_param_value, set_default_param_value): Declare.
8979         * config/arm/arm.c (arm_option_override): Use maybe_set_param_value.
8980         * config/i386/i386.c (ix86_option_override_internal): Use
8981         maybe_set_param_value.
8982         * config/ia64/ia64.c (ia64_option_default_params,
8983         TARGET_OPTION_DEFAULT_PARAMS): New.
8984         (ia64_option_optimization): Move some code to
8985         ia64_option_default_params.
8986         * config/picochip/picochip.c (picochip_option_override): Use
8987         maybe_set_param_value.
8988         * config/rs6000/rs6000.c (rs6000_option_default_params,
8989         TARGET_OPTION_DEFAULT_PARAMS): New.
8990         (rs6000_option_override_internal): Use maybe_set_param_value.
8991         (rs6000_option_optimization): Move some code to
8992         rs6000_option_default_params.
8993         * config/s390/s390.c (s390_option_override): Use maybe_set_param_value.
8994         * config/sh/sh.c (sh_option_default_params,
8995         TARGET_OPTION_DEFAULT_PARAMS): New.
8996         (sh_option_optimization): Move some code to sh_option_default_params.
8997         * config/sparc/sparc.c (sparc_option_override): Use
8998         maybe_set_param_value.
8999         * config/spu/spu.c (spu_option_default_params,
9000         TARGET_OPTION_DEFAULT_PARAMS): New.
9001         (spu_option_optimization): Move some code to spu_option_default_params.
9002         (spu_option_override): Use maybe_set_param_value.
9003         * doc/tm.texi.in (TARGET_OPTION_DEFAULT_PARAMS): New @hook.
9004         * doc/tm.texi: Regenerate.
9005         * ggc-common.c (init_ggc_heuristics): Use set_default_param_value.
9006         * opts.c (init_options_once): Use PARAM_VALUE not direct access to
9007         compiler_params.
9008         (default_options_optimization): Use maybe_set_param_value.
9009         (finish_options): Use maybe_set_param_value.
9010         * target.def (target_option.default_params): New hook.
9011         * toplev.c (general_init): Call targetm.target_option.default_params.
9012
9013 2010-10-11  Ira Rosen  <irar@il.ibm.com>
9014
9015         PR tree-optimization/45902
9016         * tree-vect-slp.c (vect_get_constant_vectors): Use statement's
9017         vector type for constants, unless it's a pointer.
9018
9019 2010-10-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9020
9021         * config/s390/s390.md (*mov<mode>cc): lgoc -> locg and stgoc -> stocg.
9022
9023 2010-10-11  Jakub Jelinek  <jakub@redhat.com>
9024
9025         PR target/45870
9026         * config/i386/i386.c (ix86_delegitimize_tls_address): New function.
9027         (ix86_delegitimize_address): Use it.
9028
9029 2010-10-10  Eric Botcazou  <ebotcazou@adacore.com>
9030
9031         * opt-functions.awk (opt_sanitized_name): Remove gdwarf+ handling.
9032
9033 2010-10-10  Uros Bizjak  <ubizjak@gmail.com>
9034
9035         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Pass pointer
9036         to cum struct in the call to function_arg_advance.
9037         (alpha_function_arg_advance): Mark named as unused.
9038
9039 2010-10-10  Richard Sandiford  <rdsandiford@googlemail.com>
9040
9041         * config/mips/mips.c (mips_handle_option): Make "value" with
9042         ATTRIBUTE_UNUSED.
9043
9044 2010-10-09  Richard Henderson  <rth@redhat.com>
9045
9046         PR rtl-opt/33721
9047         * explow.c (allocate_dynamic_stack_space): Add REQUIRED_ALIGN parm,
9048         remove TARGET parm, convert KNOWN_ALIGN parm to SIZE_ALIGN.  Honor
9049         required_align, tidy the code a bit.  Emit split_stack code in the
9050         right place.  Mark the return value with the alignment properly.
9051         * expr.h (allocate_dynamic_stack_space): Update decl.
9052         * builtins.c (expand_builtin_apply): Update call to
9053         allocate_dynamic_stack_space.
9054         (expand_builtin_alloca): Likewise.  Remove TARGET parameter.
9055         * calls.c (initialize_argument_information): Update call to
9056         allocate_dynamic_stack_space.
9057         (expand_call): Likewise.
9058
9059         * cfgexpand.c (get_decl_align_unit): Don't limit alignment.
9060         Don't update_stack_alignment here.
9061         (alloc_stack_frame_space): Make ALIGN unsigned.
9062         (stack_var_cmp): Sort by alignment too.
9063         (partition_stack_vars): Don't merge large and small alignment vars.
9064         (expand_one_stack_var_at): Add BASE and BASE_ALIGN parameters.
9065         Take care when BASE is not virtual_stack_vars_rtx.
9066         (expand_stack_vars): Allocate dynamic stack space for large
9067         alignment variables.
9068         (expand_one_stack_var): Update all to expand_one_stack_var_at.
9069         (defer_stack_allocation): True for large alignment vars.
9070         (update_stack_alignment): Merge into ...
9071         (expand_one_var): ... here.
9072         (gimple_expand_cfg): Place code from expand_stack_vars.
9073
9074 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
9075
9076         * config/pdp11/pdp11.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
9077         * config/pdp11/pdp11.c (pdp11_function_arg): New function.
9078         (pdp11_function_arg_advance): New function.
9079         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
9080
9081 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
9082
9083         * libgcc2.h: Use __SIZEOF_LONG_LONG__ instead of LONG_LONG_TYPE_SIZE.
9084         * libgcc2.c: Likewise.
9085
9086 2010-10-09  Richard Guenther  <rguenther@suse.de>
9087
9088         PR lto/45956
9089         * lto-streamer-in.c (lto_register_var_decl_in_symtab):
9090         Properly check if a decl is an automatic var.
9091
9092 2010-10-09  Richard Guenther  <rguenther@suse.de>
9093
9094         PR lto/45947
9095         * tree.c (free_lang_data_in_cgraph): Properly walk the varpool.
9096
9097 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
9098
9099         * config/mmix/mmix-protos.h (mmix_function_arg): Delete.
9100         * config/mmix/mmix.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
9101         * config/mmix/mmix.c (mmix_function_arg): Rename to...
9102         (mmix_function_arg_1): ...this.  Make static.  Take a const_tree and
9103         bool arguments.
9104         (mmix_function_arg): New function.
9105         (mmix_function_incoming_arg): New function.
9106         (mmix_function_arg_advance): New function.
9107         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
9108         (TARGET_FUNCTION_ARG_ADVANCE): Define.
9109
9110 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
9111
9112         * config/vax/vax.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
9113         * config/vax/vax.c (vax_function_arg): New function.
9114         (vax_function_arg_advance): New function.
9115         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
9116
9117 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
9118
9119         * config/pa/pa-protos.h (function_arg): Delete.
9120         * config/pa/pa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
9121         * config/pa/pa.c (function_arg): Rename to...
9122         (pa_function_arg): ...this.  Make static.  Take a const_tree and
9123         a bool.
9124         (pa_function_arg_advance): New function.
9125         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
9126
9127 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
9128
9129         * config/m68k/m68k.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
9130         * config/m68k/m68k.c (m68k_function_arg): New function.
9131         (m68k_function_arg_advance): New function.
9132         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
9133
9134 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
9135
9136         * config/avr/avr-protos.h (function_arg): Delete.
9137         (function_arg_advance): Delete.
9138         * config/avr/avr.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
9139         * config/avr/avr.c (function_arg): Rename to...
9140         (avr_function_arg): ...this.  Make static.  Take a const_tree and
9141         a bool.
9142         (function_arg_advance): Rename to...
9143         (avr_function_arg_advance): ...this.  Make static.  Take a
9144         const_tree and a bool.
9145         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
9146
9147 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
9148
9149         * config/alpha/alpha-protos.h (function_arg): Delete.
9150         * config/alpha/alpha.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
9151         * config/alpha/vms.h (FUNCTION_ARG_ADVANCE): Delete.
9152         * config/alpha/alpha.c (function_arg): Rename to...
9153         (alpha_function_arg): ...this.  Make static.  Take a const_tree and
9154         a bool.  Delete TARGET_ABI_UNICOSMK code.
9155         (alpha_function_arg_advance): New function.
9156         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
9157
9158 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
9159
9160         * config/mep/mep-protos.h (mep_function_arg): Delete.
9161         (mep_function_arg_advance): Delete.
9162         * config/mep/mep.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
9163         * config/mep/mep.c (mep_function_arg): Make static.  Take a
9164         const_tree and a bool.
9165         (mep_function_arg_advance): Likewise.
9166         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
9167
9168 2010-10-09  Richard Guenther  <rguenther@suse.de>
9169
9170         PR tree-optimization/45945
9171         * tree-ssa.c (execute_update_addresses_taken): Fixup LHS scanning.
9172
9173 2010-10-09  Eric Botcazou  <ebotcazou@adacore.com>
9174
9175         PR tree-optimization/45612
9176         * ipa-split.c (test_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.
9177         Test LABEL_DECLs as well.  Fix formatting issues.
9178         (verify_non_ssa_vars): Return false for a GIMPLE_LABEL statement
9179         whose label is present in NON_SSA_VARS.
9180         (mark_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.  Handle LABEL_DECLs
9181         as well.  Fix formatting issues.
9182         (visit_bb): Fix typos and formatting issue.
9183
9184 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
9185
9186         PR tree-optimization/45950
9187         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): Consult length
9188         before initializing vno->op.
9189
9190 2010-10-09  Ralf Corsépius  <ralf.corsepius@rtems.org>
9191
9192         * config.gcc (bfin*-rtems*): Add newlib-stdint.h.
9193         * config.gcc (lm32*-rtems*): Add newlib-stdint.h.
9194
9195 2010-10-08  H.J. Lu  <hongjiu.lu@intel.com>
9196
9197         PR target/45913
9198         * config/i386/i386.c (ix86_binary_operator_ok): Support
9199         "andhi/andsi/anddi" as a zero-extending move.
9200
9201 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
9202
9203         * builtins.c (fold_call_stmt): Don't copy gimple call arguments
9204         into a temporary array.
9205
9206 2010-10-08  Jakub Jelinek  <jakub@redhat.com>
9207
9208         PR tree-optimization/45903
9209         * simplify-rtx.c (simplify_subreg): Optimize lowpart SUBREG
9210         of {A,L}SHIFTRT of MEM.
9211
9212 2010-10-08  Richard Guenther  <rguenther@suse.de>
9213
9214         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
9215         Re-construct BLOCK_VARS.
9216         (lto_input_ts_block_tree_pointers): Do not stream BLOCK_VARS.
9217         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
9218         * tree.c (free_lang_data_in_block): Remove.
9219         (free_lang_data_in_decl): Do not touch DECL_CONTEXT of non-PARM_DECLs.
9220         Do not touch the BLOCK tree.
9221         * expr.c (expand_expr_real_1): Allow externals.
9222
9223 2010-10-08  Richard Guenther  <rguenther@suse.de>
9224
9225         * lto-streamer-out.c (lto_output_ts_block_tree_pointers):
9226         Do not output BLOCK_SUBBLOCKS.
9227         * lto-streamer-in.c (lto_input_ts_block_tree_pointers):
9228         Reserve exact space needed for BLOCK_NONLOCALIZED_VARS.
9229         Re-construct BLOCK_SUBBLOCKS of parent block.
9230         (lto_input_ts_binfo_tree_pointers): Reserve exact space needed
9231         for BINFO_BASE_ACCESSES.
9232
9233 2010-10-08  Joseph Myers  <joseph@codesourcery.com>
9234
9235         * Makefile.in (TM_H): Include $(FLAGS_H) instead of options.h.
9236         (TREE_H): Include $(FLAGS_H) instead of options.h.
9237         (opts-common.o): Depend on $(FLAGS_H) instead of options.h.
9238         * c-objc-common.h (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
9239         * common.opt (flag_complex_method, flag_evaluation_order,
9240         flag_ira_algorithm, flag_ira_region, flag_warn_unused_result): New
9241         Variable declarations.
9242         * configure.ac (tm_include_list): Include flags.h instead of options.h.
9243         * configure: Regenerate.
9244         * flags.h: Condition out contents for target libraries.  Include
9245         options.h at end of file.
9246         (flag_complex_method, flag_ira_algorithm, flag_ira_region,
9247         flag_evaluation_order, flag_warn_unused_result): Remove.
9248         * gcc.c (main): Intialize global_options with global_options_init.
9249         * langhooks-def.h (lhd_init_options_struct): Declare.
9250         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
9251         (LANG_HOOKS_INITIALIZER): Include LANG_HOOKS_INIT_OPTIONS_STRUCT.
9252         * langhooks.c (lhd_init_options_struct): New.
9253         * langhooks.h (struct lang_hooks): Add init_options_struct.
9254         Update comment on init_options.
9255         * optc-gen.awk: Generate initializer for global_options_init, not
9256         global_options.
9257         * opth-gen.awk: Condition out structure declarations for target
9258         libraries.  Declare global_options_init.
9259         * opts-common.c: Include flags.h instead of options.h.
9260         * opts.c (flag_warn_unused_result): Remove.
9261         (read_cmdline_options): Take gcc_options parameters.  Pass them to
9262         read_cmdline_option.
9263         (initial_lang_mask, initial_min_crossjump_insns,
9264         initial_max_fields_for_field_sensitive,
9265         initial_loop_invariant_max_bbs_in_loop): Define at file scope.
9266         (init_options_once): New.  Split out of decode_options.
9267         (init_options_struct): New.  Split out of decode_options.
9268         (decode_cmdline_options_to_array_default_mask): New.
9269         (default_options_optimization): New.  Split out of decode_options.
9270         (decode_options): Move most code to other functions.  Update call
9271         to read_cmdline_options.
9272         (finish_options): New.  Split out of decode_options.
9273         * opts.h (decode_options): Add gcc_options parameters.
9274         (init_options_once, init_options_struct,
9275         decode_cmdline_options_to_array_default_mask): New.
9276         * toplev.c (flag_complex_method, flag_ira_algorithm,
9277         flag_ira_region, flag_evaluation_order): Remove.
9278         (general_init): Use global_options_init for initial flag values
9279         for global_dc.
9280         (toplev_main): Call init_options_once, init_options_struct,
9281         lang_hooks.init_options_struct,
9282         decode_cmdline_options_to_array_default_mask and
9283         lang_hooks.init_option before decode_options.  Update arguments to
9284         decode_options.
9285         * tree.h: Include flags.h instead of options.h.
9286
9287 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
9288
9289         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
9290
9291 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
9292
9293         * config/sparc/sparc-protos.h (function_arg_advance, function-arg):
9294         Delete.
9295         * config/sparc/sparc.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
9296         (FUNCTION_INCOMING_ARG): Delete.
9297         * config/sparc/sparc.c (scan_record_type): Const-ify tree argument.
9298         (function_arg_slotno): Likewise.  Take bool arguments.
9299         (sparc_arg_partial_bytes): Update call to it.
9300         (function_arg): Rename to...
9301         (sparc_function_arg_1): ...this.  Take bool arguments.
9302         (sparc_function_arg, sparc_function_incoming_arg): New functions.
9303         (function_arg_advance): Rename to...
9304         (sparc_function_arg_advance): ...this.  Take bool argument.
9305         (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG): Define.
9306         (TARGET_FUNCTION_INCOMING_ARG): Define.
9307
9308 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
9309
9310         * config/bfin/bfin-protos.h (function_arg, function_arg_advance):
9311         Delete.
9312         * config/bfin/bfin.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
9313         * config/bfin/bfin.c (function_arg_advance): Rename to...
9314         (bfin_function_arg_advance): ...this.  Make static.  Take const_tree
9315         and bool arguments.
9316         (function_arg): Rename to...
9317         (bfin_function_arg): ...this.  Make static.  Take const_tree and bool
9318         arguments.
9319         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
9320
9321 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
9322
9323         * config/score/score-protos.h (score_function_arg): Delete.
9324         (score_function_arg_advance): Delete.
9325         * config/score/score3.h (score3_function_arg_advance): Take a
9326         const_tree and a bool.
9327         (score3_function_arg): Likewise.
9328         * config/score/score7.h (score7_function_arg_advance): Likewise.
9329         (score7_function_arg): Likewise.
9330         * config/score/score3.c (score3_classify_arg): Likewise.
9331         (score3_function_arg_advance, score3_function_arg): Likewise.
9332         * config/score/score7.c (score7_classify_arg): Likewise.
9333         (score7_function_arg_advance, score7_function_arg): Likewise.
9334         * config/score/score.c (score_function_arg_advance): Likewise.
9335         (score_function_arg): Likewise.  De-const-ify `cum' argument.
9336         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
9337
9338 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
9339
9340         * config/s390/s390-protos.h (s390_function_arg_advance): Delete.
9341         (s390_function_arg): Delete.
9342         * config/s390/s390.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
9343         * config/s390/s390.c (s390_function_arg_float): Take a const_tree.
9344         (s390_function_arg_integer): Likewise.
9345         (s390_function_arg_advance): Make static.  Take a const_tree and
9346         a bool.
9347         (s390_function_arg): Likewise.
9348         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
9349
9350 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
9351
9352         * config/spu/spu-protos.h (spu_function_arg): Delete.
9353         * config/spu/spu.h (FUNCTION_ARG): Delete.
9354         (FUNCTION_ARG_ADVANCE): Move code to ...
9355         * config/spu/spu.c (spu_function_arg_advance): New function.
9356         (spu_function_arg): Make static.  Take a const_tree and a bool.
9357         (spu_setup_incoming_varargs): Call spu_function_arg_advance.
9358         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
9359
9360 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
9361
9362         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
9363
9364 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
9365
9366         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): New function.
9367         (init_vn_nary_op_from_op): New function.
9368         (init_vn_nary_op_from_stmt): New function.
9369         (vn_nary_op_lookup_1): New function.
9370         (sizeof_vn_nary_op): New function.
9371         (alloc_vn_nary_op_noinit): New function.
9372         (alloc_vn_nary_op): New function.
9373         (vn_nary_op_insert_into): New function.
9374         (vn_nary_op_lookup_pieces): Rewrite to use new helper functions.
9375         (vn_nary_op_lookup): Likewise.
9376         (vn_nary_op_lookup_stmt): Likewise.
9377         (vn_nary_op_insert_pieces): Likewise.
9378         (vn_nary_op_insert): Likewise.
9379         (vn_nary_op_insert_stmt): Likewise.
9380         (copy_nary): Likewise.
9381         (set_value_id_for_result): New function.
9382         (set_hashtable_value_ids): Call it.
9383
9384 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
9385
9386         * config/fr30/fr30.c (TARGET_EXCEPT_UNWIND_INFO): Define.
9387         * config/fr30/fr30.md (leave_func): Rewrite without post_inc.
9388
9389 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
9390
9391         * config/mcore/mcore.h (INCOMING_RETURN_ADDR_RTX): Define.
9392         * config/mcore/mcore.c (TARGET_EXCEPT_UNWIND_INFO): Define.
9393
9394 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
9395
9396         PR debug/45656
9397         * cse.c (cse_extended_basic_block): Preserve cc0 info across
9398         debug isnsn.  Skip them when searching for cc0 setter.
9399         (set_live_p): Skip debug insns when searching for cc0 user.
9400
9401 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
9402
9403         PR debug/45673
9404         PR debug/45604
9405         PR debug/45419
9406         PR debug/45408
9407         * tree-pretty-print.c (dump_generic_node): Explicitly dump the
9408         type of MEM_REFs to INTEGER_CSTs.
9409
9410 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
9411
9412         * config/m68hc11/m68hc11.c (m68hc11_print_operand): Call
9413         m68hc11_print_operand_address.
9414
9415 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
9416
9417         * builtins.c (rewrite_call_expr): Move code to...
9418         (rewrite_call_expr_valist): ...here.  Call build_call_expr_loc_array.
9419         (rewrite_call_expr_array): New function.
9420         (fold_builtin_sprintf_chk_1): New function.
9421         (fold_builtin_sprintf_chk): Call it.
9422         (gimple_fold_builtin_sprintf_chk): Likewise.
9423         (fold_builtin_snprintf_chk_1): New function.
9424         (fold_builtin_snprintf_chk): Call it.
9425         (gimple_fold_builtin_snprintf_chk): Likewise.
9426         (gimple_rewrite_call_expr): Delete.
9427
9428 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
9429
9430         * config.host: Update copyright year.
9431
9432 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
9433
9434         * config.host (host_lto_plugin_soname): New shell variable.
9435         * configure.ac (LTOPLUGINSONAME): Add an AC_DEFINE for the above.
9436         * config.in: Regenerate.
9437         * configure: Regenerate.
9438         * gcc.c (main): Use LTOPLUGINSONAME instead of hard-coding name of
9439         LTO plugin shared library.
9440
9441 2010-10-07  Richard Henderson  <rth@redhat.com>
9442
9443         * target.h (enum unwind_info_type): Move ...
9444         * coretypes.h: ... here.
9445
9446 2010-10-07  Nicola Pero  <nicola.pero@meta-innovation.com>
9447
9448         * doc/objc.texi (Fast enumeration protocol): Mention that
9449         'unsigned int' can also be used instead of 'unsigned long' in
9450         countByEnumeratingWithState:objects:count:.
9451
9452 2010-10-07  Martin Jambor  <mjambor@suse.cz>
9453
9454         * tree-sra.c (struct access): New field grp_assignment_write.
9455         (dump_access): Dump grp_assignment_write.
9456         (build_accesses_from_assign): Set grp_assignment_write.
9457         (sort_and_splice_var_accesses): Aggregate grp_assignment_write.
9458         (mark_read_status): Renamed to mark_rw_status, individual values
9459         renamed too.
9460         (analyze_access_subtree): Changed type of mark_write to
9461         mark_read_status.  Fixed propagating of mark_read and
9462         mark_write.  Changed benefit estimate.  Updated comment.
9463
9464 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
9465
9466         PR Tree-Vect/45847
9467         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Add NULL
9468         check for vectype_out returned by get_vectype_for_scalar_type().
9469
9470 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
9471
9472         PR target/45805
9473         * config/arm/neon.md (neon_unpack<US>_<mode>): Add 'w' to
9474         constraint, add register specifier in instruction template.
9475         (neon_vec_pack_trunc_<mode>): Likewise.
9476         (neon_vec_<US>mult_<mode>): Add register specifier to
9477         instruction template.
9478
9479 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
9480
9481         * config.gcc (c_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add
9482         cygwin2.o.
9483         (cxx_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Likewise.
9484         (extra_gcc_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add cygwin1.o.
9485         * config/i386/t-cygwin (cygwin1.o): Delete build rule.
9486         (cygwin2.o): Likewise.
9487         * config/i386/cygwin1.c: Delete file.
9488         * config/i386/cygwin2.c: Likewise.
9489         * config/i386/cygwin.h (CPP_SPEC): Remove all %{mno-cygwin} specs and
9490         make all {%!mno-cygwin} ones unconditional.
9491         (STARTFILE_SPEC): Likewise.
9492         (REAL_LIBGCC_SPEC): Likewise.
9493         (LIB_SPEC): Likewise.
9494         (CXX_WRAP_SPEC): Likewise.
9495         (LINK_SPEC): Likewise.
9496         (CYGWIN_MINGW_SUBDIR): Delete now-unused macro definition.
9497         (CYGWIN_MINGW_SUBDIR_LEN): Likewise.
9498         (cygwin_gplusplus_include_dir): Delete now-unused array.
9499         (GPLUSPLUS_INCLUDE_DIR): Don't redefine to point to it.
9500         (cygwin_gplusplus_tool_include_dir): Delete now-unused array.
9501         (GPLUSPLUS_TOOL_INCLUDE_DIR): Don't redefine to point to it.
9502         (cygwin_gplusplus_backward_include_dir): Delete now-unused array.
9503         (GPLUSPLUS_BACKWARD_INCLUDE_DIR): Don't redefine to point to it.
9504         (cygwin_local_include_dir): Delete now-unused array.
9505         (LOCAL_INCLUDE_DIR): Don't redefine to point to it.
9506         (cygwin_cross_include_dir): Delete now-unused array.
9507         (CROSS_INCLUDE_DIR): Don't redefine to point to it.
9508         (cygwin_tool_include_dir): Delete now-unused array.
9509         (TOOL_INCLUDE_DIR): Don't redefine to point to it.
9510         (cygwin_standard_include_dir): Delete now-unused array.
9511         (STANDARD_INCLUDE_DIR): Don't redefine to point to it.
9512         (GEN_CVT_ARRAY): Delete now-unused macro definition.
9513         (cvt_to_mingw): Delete now-unused array.
9514         (mingw_scan): Remove prototype of deleted function.
9515         (GCC_DRIVER_HOST_INITIALIZATION): Don't define now-unused target macro.
9516         * config/i386/cygming.opt (mcygwin): Delete target-specific option.
9517         * doc/invoke.texi (-mcygwin): Don't document removed option.
9518         (-mno-cygwin): Likewise.
9519
9520 2010-10-07  Richard Guenther  <rguenther@suse.de>
9521
9522         * machmode.h (mode_for_vector): Declare.
9523         * stor-layout.c (mode_for_vector): New function, split out from ...
9524         (layout_type): ... here.
9525         * tree-vectorizer.h (current_vector_size): Declare.
9526         * tree-vect-stmts.c (perm_mask_for_reverse): Check if the
9527         mask vector type is available.
9528         (get_vectype_for_scalar_type): Rename to ...
9529         (get_vectype_for_scalar_type_and_size): ... this.  Get a vector
9530         size argument.
9531         (get_vectype_for_scalar_type): New wrapper around
9532         get_vectype_for_scalar_type_and_size using current_vector_size.
9533         (get_same_sized_vectype): Use get_vectype_for_scalar_type_and_size.
9534         * tree-vect-loop.c (vect_analyze_loop_2): Split out core part
9535         of vect_analyze_loop here.
9536         (vect_analyze_loop): Loop over vector sizes calling vect_analyze_loop_3.
9537         * tree-vect-slp.c (vect_slp_analyze_bb): Set current_vector_size
9538         to autodetect.
9539         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Fix
9540         V8SF to V8SI conversion builtin.
9541
9542 2010-10-07  Richard Guenther  <rguenther@suse.de>
9543
9544         * target.def (autovectorize_vector_sizes): New target hook.
9545         * targhooks.c (default_autovectorize_vector_sizes): New function.
9546         * targhooks.h (default_autovectorize_vector_sizes): Declare.
9547         * doc/tm.texi.in (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES):
9548         Document.
9549         * doc/tm.texi: Update.
9550         * config/i386/i386.c (ix86_autovectorize_vector_sizes): New function.
9551         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
9552
9553 2010-10-07  Richard Guenther  <rguenther@suse.de>
9554
9555         * target.def (units_per_simd_word): Rename to ...
9556         (preferred_simd_mode): ... this.  Return mode instead of size.
9557         * targhooks.c (default_units_per_simd_word): Rename to ...
9558         (default_preferred_simd_mode): ... this.  Return word_mode.
9559         * targhooks.h (default_preferred_simd_mode): Declare.
9560         * config/arm/arm.c (arm_units_per_simd_word): Rename to ...
9561         (arm_preferred_simd_mode): ... this.  Re-implement.
9562         * config/i386/i386.c (ix86_units_per_simd_word): Rename to ...
9563         (ix86_preferred_simd_mode): ... this.  Re-implement.
9564         * config/sparc/sparc.c (sparc_units_per_simd_word): Rename to ...
9565         (sparc_preferred_simd_mode): ... this.  Re-implement.
9566         * config/mips/mips.c (mips_units_per_simd_word): Rename to ...
9567         (mips_preferred_simd_mode): ... this.  Re-implement.
9568         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Rename to ...
9569         (rs6000_preferred_simd_mode): ... this.  Re-implement.
9570         * tree-vect-stmts.c (get_vectype_for_scalar_type): Adjust.
9571         * doc/tm.texi.in (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Remove.
9572         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Document.
9573         * doc/tm.texi: Update.
9574
9575 2010-10-07  Richard Guenther  <rguenther@suse.de>
9576
9577         PR middle-end/45869
9578         * tree-cfg.c (verify_gimple_assign_binary): Allow vector shifts
9579         of pointers.
9580
9581 2010-10-07  Alan Modra  <amodra@gmail.com>
9582
9583         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use gen_int_mode
9584         rather than sign extension by hand.
9585
9586 2010-10-07  Jan Hubicka  <jh@suse.cz>
9587
9588         PR middle-end/45926
9589         * ipa.c (cgraph_remove_unreachable_nodes): Revert my previous patch.
9590
9591 2010-10-07  Richard Guenther  <rguenther@suse.de>
9592
9593         PR bootstrap/45914
9594         * configure.ac: Fix typo.
9595         * configure: Regenerated.
9596
9597 2010-10-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
9598
9599         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Don't use
9600         define_builtin_std where it's unnecessary.
9601         * config/i386/nto.h (TARGET_OS_CPP_BUILTINS): Likewise.
9602
9603 2010-10-06  Anatoly Sokolov  <aesok@post.ru>
9604
9605         * doc/tm.texi.in (CLASS_LIKELY_SPILLED_P): Remove documentation.
9606         * doc/tm.texi.in: Regenerate.
9607         * system.h (CLASS_LIKELY_SPILLED_P): Poison.
9608         * targhooks.c (default_class_likely_spilled_p): Don't use the
9609         CLASS_LIKELY_SPILLED_P macro.
9610
9611         * config/arm/arm.md: Update comment.
9612
9613 2010-10-06  Jan Hubicka  <jh@suse.cz>
9614
9615         * ipa.c (cgraph_remove_unreachable_nodes): External references can
9616         always be removed.
9617         (cgraph_externally_visible_p): We can not bring local comdats that
9618         are known to linker; fix handling of internal visibility.
9619         (function_and_variable_visibility): Likewise.
9620
9621 2010-10-06  Eric Botcazou  <ebotcazou@adacore.com>
9622
9623         PR rtl-optimization/45394
9624         * combine.c (cleanup_auto_inc_dec): Remove AFTER parameter and adjust.
9625         (struct rtx_subst_pair): Remove AFTER field.
9626         (propagate_for_debug_subst): Adjust call to cleanup_auto_inc_dec.
9627         (propagate_for_debug): Remove MOVE parameter and adjust.
9628         (try_combine): In the special case where I2 is a PARALLEL, combine only
9629         destinations of SETs and set I2SRC to the I2 source.
9630         Adjust calls to propagate_for_debug throughout.
9631         * reload1.c (eliminate_regs_1) <ASM_OPERANDS>: Do not abort for debug
9632         insns.
9633
9634 2010-10-06  Olivier Hainque  <hainque@adacore.com>
9635
9636         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Rewrite
9637         switch on insn codes as sequence of ifs.
9638
9639 2010-10-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
9640
9641         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Define it to
9642         be UI_NONE for picochip.
9643         (picochip_option_override): Do not disable exception flags.
9644         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
9645         Declare.
9646
9647 2010-10-06  Richard Guenther  <rguenther@suse.de>
9648
9649         * Makefile.in (regmove.o): Depend on $(TARGET_H).
9650
9651 2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
9652
9653         Implemented fast enumeration for Objective-C.
9654         * c-parser.c (objc_could_be_foreach_context): New.
9655         (c_lex_one_token): Recognize RID_IN keyword in a potential
9656         Objective-C foreach context.
9657         (c_parser_declaration_or_fndef): Added parameter.  Accept
9658         Objective-C RID_IN keyword as terminating a declaration; in that
9659         case, return the declaration in the new parameter.
9660         (c_parser_extenral_declaration): Updated calls to
9661         c_parser_declaration_or_fndef.
9662         (c_parser_declaration_or_fndef): Same change.
9663         (c_parser_compound_statement_nostart): Same change.
9664         (c_parser_label): Same change.
9665         (c_parser_objc_methodprotolist): Same change.
9666         (c_parser_omp_for_loop): Same change.
9667         (c_parser_for_statement): Detect and parse Objective-C foreach
9668         statements.
9669         (c_parser_omp_for_loop): Updated call to check_for_loop_decls().
9670         * c-decl.c (check_for_loop_decls): Added parameter to allow ObjC
9671         fast enumeration parsing code to turn off the c99 error but still
9672         perform checks on the loop declarations.
9673         * c-tree.h (check_for_loop_decls): Updated declaration.
9674         * doc/objc.texi: Document fast enumeration.
9675
9676 2010-10-06  Nick Clifton  <nickc@redhat.com>
9677
9678         * config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Increment by one.
9679         (MDR_REGNUM): Define.
9680         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add MDR as a fixed register.
9681         (REG_CLASS_CONTENTS): Add MDR to ALL_REGS.
9682         (INCOMING_RETURN_ADDR_RTX): Define in terms of MDR.
9683         (REGISTER_NAMES): Add MDR.
9684         (DWARF2_DEBUGGING_INFO): Define to 1.
9685         * config/mn10300/mn10300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
9686         (F): New function.  Sets RTX_FRAME_RELATED_P.
9687         (mn10300_gen_multiple_store): Use F.
9688         (expand_prologue): Use F.  Use gen_movsf() to push floating
9689         point registers.
9690         (expand_epilogue): Use gen_movsf() to pop floating point registers.
9691         (mn10300_option_override): Disable combine stack adjust pass.
9692
9693 2010-10-06  Thomas Schwinge  <thomas@schwinge.name>
9694
9695         PR target/45901
9696         * config/alpha/gnu.h (TARGET_OS_CPP_BUILTINS): Refer to
9697         LINUX_TARGET_OS_CPP_BUILTINS instead of HURD_TARGET_OS_CPP_BUILTINS.
9698
9699 2010-10-06  Jakub Jelinek  <jakub@redhat.com>
9700
9701         * builtins.def (BUILT_IN_CALLOC, BUILT_IN_REALLOC,
9702         BUILT_IN_ISALNUM, BUILT_IN_ISALPHA, BUILT_IN_ISASCII,
9703         BUILT_IN_ISBLANK, BUILT_IN_ISCNTRL, BUILT_IN_ISDIGIT,
9704         BUILT_IN_ISGRAPH, BUILT_IN_ISLOWER, BUILT_IN_ISPRINT,
9705         BUILT_IN_ISPUNCT, BUILT_IN_ISSPACE, BUILT_IN_ISUPPER,
9706         BUILT_IN_ISXDIGIT, BUILT_IN_TOASCII, BUILT_IN_TOLOWER,
9707         BUILT_IN_TOUPPER): Mark as leaf.
9708
9709         PR middle-end/45838
9710         * omp-builtins.def (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
9711         BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
9712         BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
9713         BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
9714         BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_TASK,
9715         BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Use
9716         Revert back to ATTR_NOTHROW_LIST instead of ATTR_NOTHROW_LEAF_LIST.
9717
9718 2010-10-05  Anatoly Sokolov  <aesok@post.ru>
9719
9720         * config/m68hc11/m68hc11.h (CLASS_LIKELY_SPILLED_P): Remove.
9721         * config/m68hc11/m68hc11.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
9722         (m68hc11_class_likely_spilled_p): New function.
9723
9724 2010-10-05  Nicola Pero  <nicola.pero@meta-innovation.com>
9725
9726         * c-parser.c (c_parser_objc_method_definition): Updated comment.
9727
9728 2010-10-05  Jan Hubicka  <jh@suse.cz>
9729
9730         * doc/invoke.texi (-flto-partition, lto-partitions, lto-minpartition):
9731         Document.
9732         * opts.c (decode_options): Handle lto partitions.
9733         * common.opt (flto-partition=1to1, flto-partition=balanced): New.
9734         * params.def (PARAM_LTO_PARTITIONS, MIN_PARTITION_SIZE): New.
9735
9736 2010-10-05  Jan Hubicka  <jh@suse.cz>
9737
9738         * cgraphunit.c (assemble_function): Output thunks and aliases before
9739         the function itself.
9740
9741 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
9742
9743         * config/picochip/picochip.c (picochip_option_override): Disable
9744         exception flags for picochip.
9745
9746 2010-10-05  Joseph Myers  <joseph@codesourcery.com>
9747
9748         * opts-common.c (handle_option, handle_generated_option,
9749         read_cmdline_option, set_option): Add diagnostic_context
9750         parameter.  Update calls among these functions.
9751         (set_option): Don't use global_dc.
9752         * opts.c (read_cmdline_options): Pass global_dc to read_cmdline_option.
9753         (decode_options): Pass global_dc to enable_warning_as_error.
9754         (common_handle_option): Pass global_dc to enable_warning_as_error.
9755         (enable_warning_as_error): Add diagnostic_context parameter.
9756         Document parameters.  Don't use global_dc.  Pass
9757         diagnostic_context parameter to handle_generated_option.
9758         * opts.h (set_option, handle_option, handle_generated_option,
9759         read_cmdline_option, enable_warning_as_error): Add
9760         diagnostic_context parameter.
9761         * Makefile.in (lto-opts.o): Update dependencies.
9762         * coretypes.h (struct diagnostic_context, diagnostic_context):
9763         Declare here.
9764         * diagnostic.h (diagnostic_context): Don't declare typedef here.
9765         * gcc.c (process_command): Pass global_dc to read_cmdline_option.
9766         * langhooks-def.h (struct diagnostic_context): Don't declare here.
9767         (lhd_print_error_function, lhd_initialize_diagnostics): Declare
9768         using diagnostic_context typedef.
9769         * langhooks.c (lhd_initialize_diagnostics): Declare using
9770         diagnostic_context typedef.
9771         * langhooks.h (struct diagnostic_context): Don't declare here.
9772         (initialize_diagnostics, print_error_function): Declare using
9773         diagnostic_context typedef.
9774         * lto-opts.c: Include diagnostic.h.
9775         (lto_reissue_options): Pass global_dc to set_option.  Pass
9776         DK_UNSPECIFIED not 0.
9777         * plugin.c (plugins_internal_error_function): Declare using
9778         diagnostic_context typedef.
9779         * plugin.h (struct diagnostic_context): Don't declare here.
9780         (plugins_internal_error_function): Declare using
9781         diagnostic_context typedef.
9782
9783 2010-10-05  Olivier Hainque  <hainque@adacore.com>
9784             Nicolas Roche  <roche@adacore.com>
9785
9786         * config/vxworksae.h: Add missing VXWORKS_OS_CPP_BUILTINS.
9787         * config/rs6000/vxworks.h: Remove redundant CPP builtin definitions.
9788
9789 2010-10-05  Ira Rosen  <irar@il.ibm.com>
9790
9791         PR tree-optimization/45752
9792         * tree-vect-slp.c (vect_get_mask_element): Remove static
9793         variables, make them function arguments.
9794         (vect_transform_slp_perm_load): Pass new arguments to
9795         vect_get_mask_element.
9796
9797 2010-10-05  Richard Guenther  <rguenther@suse.de>
9798
9799         * value-prof.c (gimple_divmod_fixed_value): Work on SSA form.
9800         (gimple_mod_pow2): Likewise.
9801         (gimple_mod_subtract): Likewise.
9802         (gimple_ic): Likewise.
9803         (gimple_stringop_fixed_value): Likewise.
9804         * tree-profile.c (tree_init_edge_profiler): Mark profile
9805         functions nothrow and leaf.
9806         (add_abnormal_goto_call_edges): Remove.
9807         (tree_gen_edge_profiler): Work on SSA form.
9808         (tree_gen_ic_profiler): Likewise.  Simplify.
9809         (do_tree_profiling): Update SSA form.
9810         (pass_tree_profile): Remove.
9811         (do_tree_profiling): Likewise.
9812         (gate_tree_profile_ipa): New function.
9813         (pass_ipa_tree_profile): New.
9814         (tree_profiling): Re-write as IPA pass.  Properly drop const/pure
9815         state of instrumented functions.
9816         * passes.c (init_optimization_passes): Remove early non-SSA
9817         inlining.  Move profiling after early optimizations.
9818         * ipa-inline.c (cgraph_gate_ipa_early_inlining): Remove.
9819         (pass_ipa_early_inline): Likewise.
9820         * tree-pass.h (pass_ipa_early_inline): Remove.
9821         (pass_tree_profile): Likewise.
9822         (pass_ipa_tree_profile): Declare.
9823
9824 2010-10-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9825             Christian Borntraeger  <Christian.Borntraeger@de.ibm.com>
9826
9827         * config/s390/s390.c (z196_cost): New.
9828         (s390_handle_arch_option): Add -march=z196.
9829         (s390_option_override): Use the new cost function and use the z10
9830         defaults also for z196.
9831         (legitimate_reload_constant_p): Adjust comment.
9832         (legitimate_reload_fp_constant_p): New function.
9833         (s390_preferred_reload_class): Distingiush between FP and Int constants.
9834         (preferred_la_operand_p): Avoid la with index on z196.
9835         (s390_adjust_priority): Trigger also for z196.
9836         (s390_issue_rate): Issue rate for z196 is 3.
9837         (s390_z10_fix_long_loop_prediction): Rename to ...
9838         (s390_fix_long_loop_prediction): ... this.
9839         (s390_reorg): Apply the z10 adjustments also for z196.
9840         (s390_loop_unroll_adjust): Do this also for z196.
9841         * config/s390/s390.h (enum processor_type): Add PROCESSOR_2817_Z196.
9842         (enum processor_flags): Add PF_Z196.
9843         (TARGET_AVOID_CMP_AND_BRANCH): New macro.
9844         (TARGET_CPU_Z196, TARGET_Z196): New macros.
9845         * config.gcc: Enable z196 for --with-arch.
9846         * config/s390/2817.md: New file.
9847         * config/s390/2084.md: New type for multiply and add.
9848         * config/s390/2097.md: Likewise.
9849         * config/s390/s390.md (UNSPEC_POPCNT, UNSPEC_COPYSIGN)
9850         (UNSPECV_ATOMIC_OP): New constants.
9851         (fmadddf, fmaddsf): New values for type attribute.
9852         (z196prop): New insn attribute.
9853         (cpu, cpu_facility): Add z196.
9854         (ATOMIC_Z196): New code iterator.
9855         (noxa): New code attribute.
9856         (gk): New mode attribute.
9857         (*mov<mode>_64, *mov<mode>_31, *mov<mode>_64dfp, mov<mode>):
9858         Support load zero for fp constants.
9859         (fixuns_truncdddi2, fixuns_trunctddi2)
9860         (fixuns_trunc<BFP:mode><GPR:mode>2): Use the standard rtx pattern
9861         for z196.
9862         (fixuns_trunc<mode>si2, mov<mode>cc, popcountdi2, popcountsi2)
9863         (popcounthi2, popcountqi2): New expander.
9864         (*fixuns_trunc<FP:mode><GPR:mode>2_z196, floatsi<mode>2)
9865         (floatuns<GPR:mode><FP:mode>2, *mov<mode>cc, sync_<atomic><mode>)
9866         (sync_old_<atomic><mode>, *popcount<mode>, copysign<mode>3): New
9867         insn definition.
9868         (add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry1_cconly)
9869         (*add<mode>3_carry2_cc, *add<mode>3_carry2_cconly, *add<mode>3_cc)
9870         (*add<mode>3_cconly, *add<mode>3_cconly2, *add<mode>3_imm_cc)
9871         (*sub<mode>3, *sub<mode>3_borrow_cc, *sub<mode>3_borrow_cconly)
9872         (*sub<mode>3_cc, *sub<mode>3_cc2, *sub<mode>3_cconly)
9873         (*sub<mode>3_cconly2, *anddi3_cc, *anddi3_cconly, *anddi3, *andsi3_cc)
9874         (*andsi3_cconly, *andsi3_zarch, *andsi3_esa, *andhi3_zarch
9875         (*andqi3_zarch, *iordi3_cc, *iordi3_cconly, *iordi3, *iorsi3_cc)
9876         (*iorsi3_cconly, *iorsi3_zarch, *iorhi3_zarch, *iorqi3_zarch)
9877         (*xordi3_cc, *xordi3_cconly, *xordi3, *xorsi3_cc, *xorsi3_cconly)
9878         (*xorsi3, *xorhi3, *xorqi3, *<shift><mode>3, *<shift><mode>3_and)
9879         (*ashr<mode>3_cc, *ashr<mode>3_cconly, *ashr<mode>3)
9880         (*ashr<mode>3_cc_and, *ashr<mode>3_cconly_and, *ashr<mode>3_and):
9881         Support new z196 instructions.
9882
9883 2010-10-05  Richard Guenther  <rguenther@suse.de>
9884
9885         PR middle-end/45877
9886         * gimple-fold.c (gimplify_and_update_call_from_tree): Handle
9887         case where gimplification optimizes away the stmt.
9888
9889 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
9890
9891         PR debug/45849
9892         * var-tracking.c (strip_pointer_flags): New function.
9893         (emit_note_insn_var_location): If rtx_equal_p check failed,
9894         retry on locations simplified with simplify_replace_fn_rtx
9895         and strip_pointer_flags as its callback.
9896
9897 2010-10-04  Jan Hubicka  <jh@suse.cz>
9898
9899         * gimple-fold.c (static_object_in_other_unit_p): Rename to...
9900         (can_refer_decl_in_current_unit_p): ... this one; reverse return
9901         value; handle comdats too.
9902         (canonicalize_constructor_val): Use it; handle function_decls
9903         correctly.
9904         (gimple_fold_obj_type_ref_known_binfo): Likewise.
9905         * gimple.c (get_base_address): Accept all kinds of decls.
9906
9907 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
9908
9909         * flags.h (g_switch_value, g_switch_set): Remove.
9910         * opts.c (g_switch_value, g_switch_set): Remove.
9911         * config/g.opt (G): Add Var(g_switch_value).
9912         * config/alpha/alpha.c (alpha_handle_option): Don't handle -G here.
9913         (alpha_option_override): Check global_options_set.x_g_switch_value
9914         instead of g_switch_set.
9915         (alpha_in_small_data_p): Remove cast in comparison with
9916         g_switch_value.
9917         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
9918         g_switch_value to unsigned HOST_WIDE_INT.
9919         * config/frv/frv.c (frv_const_unspec_p): Remove cast in comparison
9920         with g_switch_value.
9921         (frv_handle_option): Don't handle -G here.
9922         (frv_option_override): Check global_options_set.x_g_switch_value
9923         instead of g_switch_set.  Don't modify g_switch_set.
9924         (frv_in_small_data_p): Remove cast in comparison with g_switch_value.
9925         * config/frv/frv.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Cast
9926         g_switch_value to unsigned HOST_WIDE_INT.
9927         * config/ia64/ia64.c (ia64_handle_option): Don't handle -G here.
9928         (ia64_option_override): Check global_options_set.x_g_switch_value
9929         instead of g_switch_set.
9930         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION):
9931         Remove.
9932         (lm32_in_small_data_p): Remove cast in comparison with
9933         g_switch_value.
9934         * config/lm32/lm32.h (ASM_OUTPUT_ALIGNED_LOCAL,
9935         ASM_OUTPUT_ALIGNED_COMMON): Cast g_switch_value to unsigned
9936         HOST_WIDE_INT.
9937         * config/m32r/m32r.c (m32r_handle_option): Don't handle -G here.
9938         (m32r_init): Check global_options_set.x_g_switch_value instead of
9939         g_switch_set.
9940         (m32r_in_small_data_p): Remove cast in comparison with
9941         g_switch_value.
9942         (m32r_file_start): Format g_switch_value with %d.
9943         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_COMMON,
9944         ASM_OUTPUT_ALIGNED_BSS): Cast g_switch_value to unsigned HOST_WIDE_INT.
9945         * config/microblaze/microblaze.c (microblaze_handle_option): Don't
9946         handle -G here.
9947         (microblaze_option_override): Check
9948         global_options_set.x_g_switch_value instead of g_switch_set.
9949         * config/mips/mips.c (mips_handle_option): Don't handle -G here.
9950         (mips_option_override): Check global_options_set.x_g_switch_value
9951         instead of g_switch_set.
9952         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle -G here.
9953         (rs6000_file_start): Format g_switch_value with %d.
9954         (small_data_operand, rs6000_elf_in_small_data_p): Remove casts in
9955         comparisons with g_switch_value.
9956         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Check
9957         global_options_set.x_g_switch_value instead of g_switch_set.
9958         * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
9959         global_options_set.x_g_switch_value instead of g_switch_set.
9960         * config/score/score.c (score_handle_option): Don't handle -G here.
9961         * config/score/score3.c (score3_option_override): Check
9962         global_options_set.x_g_switch_value instead of g_switch_set.
9963         * config/score/score7.c (score7_option_override): Check
9964         global_options_set.x_g_switch_value instead of g_switch_set.
9965
9966 2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
9967
9968         * common.opt (fira-coalesce): Remove.
9969
9970         * doc/invoke.texi (flag_ira_coalesce): Remove.
9971
9972         * ira-color.c (allocno_coalesced_p): Move before
9973         copy_freq_compare_func.
9974         processed_coalesced_allocno_bitmap): Ditto.
9975         (update_conflict_hard_regno_costs): Don't use
9976         ALLOCNO_FIRST_COALESCED_ALLOCNO.
9977         (allocno_cost_compare_func, print_coalesced_allocno): Remove.
9978         (assign_hard_reg): Assume no coalesced allocnos.
9979         (get_coalesced_allocnos_attributes): Remove.
9980         (bucket_allocno_compare_func): Assume no coalesced allocnos.
9981         (push_allocno_to_stack): Ditto.
9982         (remove_allocno_from_bucket_and_push): Use
9983         ira_print_expanded_allocno instead of print_coalesced_allocno.
9984         (push_allocnos_to_stack): Assume uncoalesced allocnos.
9985         (all_conflicting_hard_regs_coalesced): Ditto.  Rename to
9986         all_conflicting_hard_regs.
9987         (setup_allocno_available_regs_num): Assume uncoalesced allocnos.
9988         (setup_allocno_left_conflicts_size): Ditto.
9989         (put_allocno_into_bucket): Ditto.
9990         (copy_freq_compare_func): Remove.
9991         (copy_freq_compare_func, merge_allocnos): Move before
9992         coalesced_pseudo_reg_freq_compare.
9993         coalesced_allocno_conflict_p): Ditto.
9994         (coalesced_allocno_conflict_p, coalesce_allocnos): Ditto.  Remove
9995         parameter.  Assume it true.
9996         (color_allocnos): Assume uncoalesced allocnos.  Use
9997         ira_print_expanded_allocno instead of print_coalesced_allocno.
9998         (ira_sort_regnos_for_alter_reg): Call coalesce_allocnos without
9999         parameter.
10000
10001         * ira.c: Remove comment about coalescing.
10002
10003 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
10004
10005         * config/mips/mips.h (target_flags_explicit): Declare for
10006         GENERATOR_FILE.
10007
10008 2010-10-04  Andi Kleen  <ak@linux.intel.com>
10009
10010         * Makefile.in (xgcc, cpp, cc1, collect2, lto-wrapper, gcov,
10011         gcov-dump, cc1-dummy, genprog, build/gcov-iov): Add + to build rule.
10012
10013 2010-10-04  Matthias Klose  <doko@ubuntu.com>
10014
10015         * config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
10016         multilib osdirname if it exists.
10017         * config/s390/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
10018
10019 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
10020
10021         PR middle-end/45876
10022         * fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Use
10023         arg0's type or its unsigned counterpart as utype.  Convert
10024         arg1 to utype unconditionally.
10025
10026 2010-10-04  Julian Brown  <julian@codesourcery.com>
10027
10028         * expr.c (expand_assignment): Add assertion to prevent emitting
10029         null rtx for movmisalign pattern.
10030         (expand_expr_real_1): Likewise.
10031         * config/arm/arm.c (arm_builtin_support_vector_misalignment): New.
10032         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): New. Use above.
10033         (arm_vector_alignment_reachable): New.
10034         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): New. Use above.
10035         (neon_vector_mem_operand): Disallow PRE_DEC for misaligned loads.
10036         (arm_print_operand): Include alignment qualifier in %A.
10037         * config/arm/neon.md (UNSPEC_MISALIGNED_ACCESS): New constant.
10038         (movmisalign<mode>): New expander.
10039         (movmisalign<mode>_neon_store, movmisalign<mode>_neon_load): New
10040         insn patterns.
10041
10042 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
10043
10044         * optc-gen.awk: Define global_options_set.  Don't define
10045         target_flags_explicit.
10046         * opth-gen.awk: Declare global_options_set.  Define
10047         target_flags_explicit as macro.
10048         * opts-common.c (handle_option): Take opts_set and generated_p
10049         parameters.
10050         (handle_generated_option, read_cmdline_option, set_option): Take
10051         opts_set parameter.
10052         (set_option): Use opts_set instead of hardcoding target_flags and
10053         target_flags_explicit.
10054         * opts.c (sel_sched_switch_set, profile_arc_flag_set,
10055         flag_profile_values_set, flag_unroll_loops_set, flag_tracer_set,
10056         flag_value_profile_transformations_set, flag_peel_loops_set,
10057         flag_branch_probabilities_set, flag_inline_functions_set,
10058         flag_ipa_cp_set, flag_ipa_cp_clone_set,
10059         flag_predictive_commoning_set, flag_unswitch_loops_set,
10060         flag_gcse_after_reload_set): Remove.
10061         (common_handle_option, lang_handle_option, target_handle_option):
10062         Take opts_set parameter.  Assert that it is &global_options_set.
10063         (common_handle_option): Don't set _set variables.  Check opts_set
10064         instead of such variables.
10065         (enable_warning_as_error): Pass &global_options_set to
10066         handle_generated_option.
10067         * opts.h (cl_option_handler_func.handler, set_option,
10068         handle_option, handle_generated_option, read_cmdline_option): Add
10069         opts_set parameters.
10070         (handle_option): Add generated_p parameter.
10071         * config/i386/i386.c (ix86_function_specific_save,
10072         ix86_function_specific_restore): Updat for renaming of
10073         target_flags_explicit field.
10074         * config/i386/i386.opt (target_flags_explicit): Rename to
10075         ix86_target_flags_explicit.
10076         * config/ia64/ia64.c (ia64_override_options_after_change): Check
10077         global_options_set.x_flag_selective_scheduling and
10078         global_options_set.x_flag_selective_scheduling2, not
10079         sel_sched_switch_set.
10080         * flags.h (sel_sched_switch_set,
10081         flag_speculative_prefetching_set): Remove.
10082         * gcc.c (driver_handle_option): Take opts_set parameter.  Assert
10083         that it is &global_options_set.
10084         (process_command): Pass &global_options_set to read_cmdline_option.
10085         * lto-opts.c (lto_reissue_options): Pass &global_options_set to
10086         set_option.
10087         * toplev.c (target_flags_explicit): Remove.
10088
10089 2010-10-04  Jan Hubicka  <jh@suse.cz>
10090
10091         PR middle-end/45871
10092         * tree-ssa-ccp.c (get_base_constructor): Take HOST_WIDE_INT offset;
10093         use get_ref_base_and_offset to handle references.
10094         (fold_const_aggregate_ref): Update.
10095
10096 2010-10-04  Martin Jambor  <mjambor@suse.cz>
10097
10098         PR tree-optimization/45572
10099         * ipa-prop.c (ipa_make_edge_direct_to_target): Call
10100         ipa_check_create_node_params.
10101         * ipa-inline.c (add_new_edges_to_heap): Do not insert inlined edges.
10102
10103 2010-10-04  Yao Qi  <yao@codesourcery.com>
10104
10105         * doc/passes.texi: Clean up.
10106
10107 2010-10-03  Ian Lance Taylor  <iant@google.com>
10108
10109         * c-typeck.c (lookup_field): If -fplan9-extensions, permit
10110         referring to a field using a typedef name.
10111         (find_anonymous_field_with_type): New static function.
10112         (convert_to_anonymous_field): New static function.
10113         (convert_for_assignment): If -fplan9-extensions, permit converting
10114         pointer to struct to pointer to anonymous field.
10115         * c-decl.c (grokfield): If -fplan9-extensions, permit anonymous fields.
10116         (is_duplicate_field): New static function.
10117         (detect_field_duplicates_hash): If -fplan9-extensions, check for
10118         typedef names duplicating field names.
10119         (detect_field_duplicates): Likewise.
10120         * doc/invoke.texi (Option Summary): Mention -fplan9-extensions.
10121         (C Dialect Options): Document -fplan9-extensions.
10122         * doc/extend.texi (Unnamed Fields): Document -fplan9-extensions.
10123
10124 2010-10-03  H.J. Lu  <hongjiu.lu@intel.com>
10125
10126         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Revert
10127         revision 164914.
10128         (vect_create_data_ref_ptr): Likewise.
10129         * tree-vect-stmts.c (vectorizable_store): Likewise.
10130         (perm_mask_for_reverse): Likewise.
10131         (reverse_vec_elements): Likewise.
10132         (vectorizable_load): Likewise.
10133
10134 2010-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
10135
10136         * cppbuiltin.c: New file.
10137         * cppbuiltin.h: New file.
10138         * Makefile.in: Take into account cppbuiltin.{h,c}.
10139
10140 2010-10-03  Andi Kleen  <ak@linux.intel.com>
10141
10142         * lto-cgraph.c (input_cgraph): Check for missing sections.
10143
10144 2010-10-03  Uros Bizjak  <ubizjak@gmail.com>
10145
10146         * config/i386/i386.md (*ashl<mode>3_mask): Change operand 2 predicate
10147         to nonimmediate_operand.  Force operand 2 to register when allowed.
10148         (*<shiftrt_insn><mode>3_mask): Ditto.
10149         (*<rotate_insn><mode>3_mask): Ditto.
10150
10151 2010-10-02  H.J. Lu  <hongjiu.lu@intel.com>
10152
10153         PR tree-optimization/45720
10154         PR tree-optimization/45764
10155         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
10156         Don't accept backwards consecutive accesses.
10157         (vect_create_data_ref_ptr): Disallow negative steps.
10158
10159         * tree-vect-stmts.c (vectorizable_store): Allow negative steps.
10160         (perm_mask_for_reverse): Removed.
10161         (reverse_vec_elements): Likewise.
10162         (vectorizable_load): Don't handle negative steps.
10163
10164 2010-10-02  Jan Hubicka  <jh@suse.cz>
10165
10166         * tree-ssa-ccp.c (ccp_fold_stmt): Fold away OBJ_TYPE_REF when
10167         call destination is known.
10168
10169 2010-10-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10170
10171         PR target/45820
10172         * config/pa/pa.c (pa_secondary_reload): Handle symbolic operands
10173         earlier.
10174
10175 2010-10-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10176
10177         * doc/install.texi (Configuration): Document build_configargs,
10178         host_configargs, target_configargs.
10179
10180 2010-10-01  Uros Bizjak  <ubizjak@gmail.com>
10181
10182         * config/i386/i386.md (*ashl<mode>3_mask): New insn_and_split pattern.
10183         (*<shiftrt_insn><mode>3_mask): Ditto.
10184         (*<rotate_insn><mode>3_mask): Ditto.
10185
10186 2010-10-01  Steve Ellcey  <sje@cup.hp.com>
10187
10188         PR tree-optimization/44716
10189         * config/ia64/hpux.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
10190         (HOT_TEXT_SECTION_NAME): Define.
10191
10192 2010-10-01  Nick Clifton  <nickc@redhat.com>
10193
10194         * common.opt: Add -fcombine-stack-adjustments.
10195         * opts.c (decode_options): Enable -fcombine-stack-adjustments at -O1.
10196         * combine-stack-adj.c (gate_handle_stack_adjustments): Check
10197         flag_combine_stack_adjustments.
10198         * doc/invoke.texi: Document the new option.
10199
10200 2010-10-01  Richard Guenther  <rguenther@suse.de>
10201
10202         PR tree-optimization/45854
10203         * tree-eh.c (cleanup_empty_eh): Avoid degenerate case.
10204
10205 2010-10-01  Anthony Green  <green@moxielogic.com>
10206
10207         * config.gcc: Fix moxie-*-rtems* configuration.
10208
10209 2010-10-01  Richard Guenther  <rguenther@suse.de>
10210
10211         * dwarf2out.c (gen_namespace_die): Use DECL_FILE_SCOPE_P.
10212         (gen_decl_die): Likewise.
10213
10214 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10215
10216         * config/spu/spu.c (spu_init_builtins): No longer add END_BUILTINS
10217         to the function code for SPU MD builtins.
10218         (spu_expand_builtin): Update.
10219         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Update.
10220
10221 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10222
10223         * config/spu/spu.c (TARGET_EXCEPT_UNWIND_INFO): Set to
10224         sjlj_except_unwind_info.
10225
10226 2010-10-01  Tristan Gingold  <gingold@adacore.com>
10227
10228         * configure.ac: Define the nop insn for avr*-*-*
10229         * configure: Regenerate.
10230
10231 2010-10-01  Alan Modra  <amodra@gmail.com>
10232
10233         PR target/45807
10234         * config/rs6000/rs6000.c (rs6000_emit_prologue): Properly sign
10235         extend toc_restore_insn.
10236
10237 2010-09-30  Richard Guenther  <rguenther@suse.de>
10238
10239         PR tree-optimization/43959
10240         * function.c (gimplify_parameters): Use create_tmp_reg instead of
10241         create_tmp_var.
10242
10243 2010-09-30  Kaz Kojima  <kkojima@gcc.gnu.org>
10244
10245         * config/sh/sh.c (sh_expand_prologue): Set
10246         current_function_static_stack_size.
10247
10248 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10249
10250         * configure.ac: Check for Solaris 8 ld with .hidden support.
10251         * configure: Regenerate.
10252
10253 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10254
10255         PR middle-end/45758
10256         * graphite.c (graphite_initialize): Call scev_reset.
10257
10258 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10259
10260         * sese.h (scev_analyzable_p): Return false for real or floating
10261         point.  Only handle INTEGRAL_TYPE_P and POINTER_TYPE_P.
10262
10263 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10264
10265         * graphite-clast-to-gimple.c (compute_bounds_for_level): Free le
10266         and ps.
10267         * graphite-poly.c (pbb_number_of_iterations_at_time): Free le and
10268         domain.
10269         * graphite-sese-to-poly.c (add_upper_bounds_from_estimated_nit):
10270         Do not allocate ub_expr, it is passed in initialized.
10271
10272 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
10273
10274         * graphite-clast-to-gimple.c (init_cloog_input_file): New.
10275         (build_cloog_prog): Dump CLooG input file when
10276         flag_graphite_dump_cloog is set.  This is disabled on trunk.
10277         * graphite-cloog-compat.h (cloog_program_dump_cloog): New.
10278
10279 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10280
10281         * graphite-clast-to-gimple.c (graphite_verify): Remove call to
10282         verify_dominators for CDI_POST_DOMINATORS.
10283         * sese.h: Remove comment about CDI_POST_DOMINATORS.
10284         (recompute_all_dominators): Remove call to free_dominance_info
10285         for CDI_POST_DOMINATORS.  Remove call to calculate_dominance_info
10286         for CDI_POST_DOMINATORS.
10287
10288 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10289
10290         * graphite-poly.c (pbb_number_of_iterations_at_time): Only iterate
10291         over pbb_dim_iter_domain.
10292
10293 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10294
10295         * graphite-flattening.c: Fix comments.
10296
10297 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10298
10299         * Makefile.in (OBJS-common): Add graphite-flattening.o.
10300         (graphite-flattening.o): New rule.
10301         * common.opt (floop-flatten): New flag.
10302         * doc/invoke.texi (-floop-flatten): Documented.
10303         * graphite-flattening.c: New.
10304         * graphite-poly.c (apply_poly_transforms): Call flatten_all_loops.
10305         * graphite-poly.h (flatten_all_loops): Declared.
10306         (lst_remove_loop_and_inline_stmts_in_loop_father): New.
10307         * tree-ssa-loop.c (gate_graphite_transforms): When flag_loop_flatten
10308         is set, also set flag_graphite.
10309
10310 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10311
10312         * graphite-poly.c (cloog_checksum): New.
10313         * graphite-poly.h (cloog_checksum): Declared.
10314
10315 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10316
10317         * graphite-poly.c (pbb_number_of_iterations): Removed.
10318         (pbb_number_of_iterations_at_time): Correctly compute the number
10319         of iterations in the transformed loop.
10320         * graphite-poly.h (pbb_number_of_iterations): Removed.
10321
10322 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10323
10324         * graphite-poly.h (lst_update_scattering_seq): Removed.
10325         (lst_update_scattering): Correctly handle outermost loop dewey
10326         renumbering.
10327
10328 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10329
10330         * graphite-blocking.c (pbb_strip_mine_profitable_p): Renamed
10331         lst_strip_mine_profitable_p.  Call lst_niter_for_loop.
10332         * graphite-poly.h (lst_niter_for_loop): New.
10333
10334 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10335
10336         * graphite-poly.c (apply_poly_transforms): Do not abort when the
10337         transform read from disk is not legal.  Call fatal_error instead.
10338
10339 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10340
10341         * graphite-poly.c (print_pbb_body): Add missing closing parenthesis.
10342         (print_scop_header): Removed.  Inlined in the only call place...
10343         (print_scop): ... here.
10344
10345 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10346
10347         * graphite-poly.h (lst_dewey_number): Use FOR_EACH_VEC_ELT.
10348
10349 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10350
10351         * graphite-poly.c (graphite_read_scop_file): Fix uninitialize warning.
10352
10353 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10354
10355         * graphite-dependences.c (dot_deps): Avoid set but not used warning.
10356         (dot_deps_stmt): Same.
10357         * graphite-poly.c (dot_lst): Same.
10358
10359 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10360
10361         * graphite-blocking.c (scop_do_strip_mine): Do not call
10362         graphite_legal_transform.
10363         (scop_do_block): Same.
10364
10365 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
10366
10367         * graphite-scop-detection.c (graphite_can_represent_loop): Correct the
10368         description.
10369
10370 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10371
10372         * tree-scalar-evolution.c (instantiate_array_ref): New.
10373         (instantiate_scev_r): Also handle ARRAY_REFs.
10374
10375 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10376
10377         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
10378         Do not check for VAR_DECL, PARM_DECL, FUNCTION_DECL, LABEL_DECL,
10379         RESULT_DECL, and FIELD_DECL.  Return false for an
10380         SSA_NAME_IS_DEFAULT_DEF.
10381         (compute_scalar_evolution_in_loop): Do not further analyze the
10382         scalar evolution when no_evolution_in_loop_p returns true.
10383
10384 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10385
10386         * tree-chrec.h (evolution_function_is_affine_p): Do not check
10387         whether CHREC_LEFT is invariant.  A function is affine when
10388         CHREC_RIGHT is invariant.
10389
10390 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10391
10392         * graphite-sese-to-poly.c (reduction_phi_p): Remove check for
10393         is_gimple_reg.
10394         (rewrite_degenerate_phi): Same.
10395         (rewrite_reductions_out_of_ssa): Add check for is_gimple_reg.
10396
10397 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
10398
10399         * graphite-scop-detection.c (graphite_can_represent_scev,
10400         graphite_can_represent_expr, stmt_has_simple_data_refs_p,
10401         graphite_can_represent_loop): Remove outermost_loop.
10402
10403 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10404
10405         PR middle-end/45229
10406         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Do not
10407         handle GIMPLE_CALLs with no LHS.
10408
10409 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
10410
10411         * graphite-poly.c (init_graphite_out_file): New.
10412         (init_graphite_in_file): New.
10413         (apply_poly_transforms): Updated to enable reading and writing of
10414         multiple scop files.
10415
10416 2010-09-30  Tobias Grosser  <grosser@fim.uni-passau.de>
10417
10418         * graphite-scop-detection.c (graphite_can_represent_scev): Remove
10419         redundant checks.
10420
10421 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10422
10423         * graphite-clast-to-gimple.c (precision_for_value): Adjust
10424         computation of precision by 1.
10425
10426 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
10427
10428         * graphite-cloog-util.c (openscop_read_cloog_matrix): New.
10429         (openscop_read_polyhedron_matrix): New.
10430         * graphite-cloog-util.h (openscop_read_polyhedron_matrix): Declared.
10431         (openscop_read_N_int): Same.
10432         * graphite-poly.c (openscop_read_N_int): New.
10433         (openscop_read_one_int): New.
10434         (openscop_read_N_string): New.
10435         (openscop_read_one_string): New.
10436         (openscop_read_powerset_matrix): New.
10437         (graphite_read_transforms): Remove.
10438         (graphite_read_scatt): New.
10439         (graphite_read_scop_file): New.
10440         (apply_poly_transforms): Updated to call graphite_read_scop_file.
10441
10442 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
10443
10444         * graphite-poly.c: Change include order.
10445
10446 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
10447
10448         * graphite-cloog-compat.h (cloog_matrix_ncolumns): New.
10449         (cloog_matrix_nrows): New.
10450
10451 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
10452
10453         * graphite-cloog-util.c (openscop_print_cloog_matrix): Remove spaces
10454         from matrix lines.
10455         * graphite-poly.c (openscop_print_scattering_function_1): Same.
10456         (print_scattering_function_1): Same.
10457         (openscop_print_pbb_domain): Same.
10458         (openscop_print_scop_context): Same.
10459         (print_scop_context): Same.
10460
10461 2010-09-30  Riyadh Baghdad  <baghdadi.mr@gmail.com>
10462
10463         * graphite-poly.c (openscop_print_pdr_polyhedron): Fix indentation.
10464         (openscop_print_pdr_polyhedron): Print pph.
10465
10466 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10467
10468         * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in
10469         priority signed types.
10470
10471 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
10472
10473         * graphite-clast-to-gimple.c (max_signed_precision_type): Remove
10474         the call to lang_hooks.types.type_for_size.  Call
10475         build_nonstandard_integer_type.
10476
10477 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
10478
10479         * graphite-cloog-util.c (openscop_print_cloog_matrix): New.
10480         (openscop_print_polyhedron_matrix): New.
10481         * graphite-cloog-util.h (openscop_print_polyhedron_matrix): Declared.
10482         * graphite-poly.c (openscop_print_pdr_polyhedron): Same.
10483         (openscop_print_pdr_powerset): New.
10484         (openscop_print_powerset_matrix): New.
10485         (openscop_print_scattering_function_1): New.
10486         (print_scattering_function): Add support for scattering names and
10487         OpenScop format.
10488         (graphite_write_transforms): Remove.
10489         (print_pdr_access_layout): Updated to support OpenScop format.
10490         (print_pdr): Same.
10491         (openscop_print_pbb_domain): New.
10492         (print_pbb_body): Added a parameter to allow indicating that pbb_body
10493         is not provided.
10494         (print_pbb): Updated to call the new print_pbb_body.
10495         (openscop_print_scop_context): New.
10496         (print_scop_header): New.
10497         (print_scop): Updated to call print_scop_header.
10498         * graphite-poly.h: Document OpenScop format.
10499
10500 2010-09-30  Anatoly Sokolov  <aesok@post.ru>
10501
10502         * config/cris/m32c.c (cris_memory_move_cost): New.
10503         (cris_register_move_cost): Make static. Change arguments type from
10504         enum reg_class to reg_class_t.
10505         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
10506         * config/cris/cris.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
10507         * config/cris/cris-protos.h (cris_register_move_cost): Remove.
10508
10509 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
10510
10511         PR target/45843
10512         * config/i386/i386.c (ix86_gimplify_va_arg): Use
10513         INTVAL (XEXP (slot, 1)) as prev_size.
10514
10515 2010-09-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
10516
10517         PR target/45837
10518         * config/rs6000/aix.h (TARGET_AIX_OS): Define to be 1.
10519         * config/rs6000/rs6000.h (TARGET_AIX_OS): Define to be 0 if not
10520         defined.
10521         * config/rs6000/option-defaults.h (toplevel): Change #if
10522         TARGET_AIX to TARGET_AIX_OS to allow compiler to build after
10523         global option changes.
10524
10525 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
10526
10527         * dwarf2out.c (mem_loc_descriptor): Handle IF_THEN_ELSE.
10528
10529         PR tree-optimization/31261
10530         * fold-const.c (fold_binary): Optimize ((A & N) + B) & M
10531         for constants M and N, M == (1LL << cst) - 1 && (N & M) == M.
10532
10533 2010-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10534
10535         PR bootstrap/45796
10536         * Makefile.in (build/gen%$(build_exeext)): Move rule after all
10537         special-casing for generators and turn into ...
10538         ((genprog:%=build/gen%$(build_exeext))): ... this static pattern
10539         rule, for better error messages in case of toplevel dependency errors.
10540         (genprog): Add hooks, rename to ...
10541         (genprogerr): ... this, and let genprog also contain check,
10542         checksum, condmd.
10543         ((genprog:%=build/gen%$(build_exeext))): Rename to ...
10544         ((genprogerr:%=build/gen%$(build_exeext))): ... this.
10545         (build/genhooks$(build_exeext)): Remove now-unneeded dependency.
10546
10547 2010-09-30  Jonathan Wakely  <jwakely.gcc@gmail.com>
10548             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10549
10550         * doc/install.texi: Suggest using LD_LIBRARY_PATH to find libs
10551         for GMP, MPFR and MPC.
10552
10553 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10554
10555         * config/sparc/sparc.opt (mimpure-text): Move ...
10556         * config/sol2.opt: ... here.  Correct description.
10557         * config.gcc (*-*-solaris2*): Add sol2.opt to extra_options.
10558         * doc/invoke.texi (Option Summary, SPARC Options): Move
10559         -mimpure-text, -mno-impure-text, -threads, -pthreads, -pthread ...
10560         (Option Summary, Solaris 2 Options): ... here.
10561         (Submodel Options, Solaris 2 Options): New menu entry.
10562         (SPARC Options): Move -mimpure-text, -threads, -pthreads, -pthread ...
10563         (Solaris 2 Options): ... here.
10564
10565 2010-09-30  Michael Eager  <eager@eagercon.com>
10566
10567         * extend.texi (interrupt_handler): Add MicroBlaze to list.
10568         (save_volatiles): Describe option for MicroBlaze.
10569         * invoke.texi: Add MicroBlaze Options.
10570         * contrib.texi: Add acknowledgment.
10571         * md.texi: Add MicroBlaze d and z constraints.
10572         * install.texi: Add microblaze-*-elf.
10573         * configure.ac: Add microblaze-*-* to target list.
10574         * configure: Regenerate.
10575         * config.gcc: Add microblaze*-*-*, microblaze*-linux*.
10576         * config/microblaze/microblaze-protos.h: New.
10577         * config/microblaze/crti.s: New.
10578         * config/microblaze/predicates.md: New.
10579         * config/microblaze/linux.h: New.
10580         * config/microblaze/microblaze.md: New.
10581         * config/microblaze/constraints.md: New.
10582         * config/microblaze/crtn.s: New.
10583         * config/microblaze/microblaze.opt: New.
10584         * config/microblaze/microblaze-c.c: New.
10585         * config/microblaze/t-microblaze: New.
10586         * config/microblaze/microblaze.c: New.
10587         * config/microblaze/microblaze.h: New.
10588
10589 2010-09-30  Iain Sandoe  <iains@gcc.gnu.org>
10590
10591         * c-parser.c (c_parser_objc_methodprotolist): Amend preceding comment,
10592         parse @optional/@required and set the flags as appropriate.
10593
10594 2010-09-30  Nathan Froyd  <froydnj@codesourcery.com>
10595
10596         * config/iq2000/t-iq2000 (TARGET_LIBGCC2_CFLAGS): Delete.
10597
10598 2010-09-30  Joseph Myers  <joseph@codesourcery.com>
10599
10600         * opt-functions.awk (static_var): Update comment.
10601         (var_ref): Return offsetof expression or -1, not variable address.
10602         * optc-gen.awk: Generate structure field initializers instead of
10603         static variables.  Expect -1 for missing variables instead of null
10604         pointer.  Add gcc_options parameters to generated functions.
10605         * opth-gen.awk: Generate structure fields for static variables.
10606         Add gcc_options parameters to generated functions.
10607         * common.opt (optimize, optimize_size): Add variables.
10608         * config/i386/i386-c.c (ix86_pragma_target_parse): Pass
10609         &global_options to cl_target_option_restore.
10610         * config/i386/i386.c (ix86_valid_target_attribute_p): Pass
10611         &global_options to cl_optimization_restore, cl_target_option_save
10612         and cl_target_option_restore.
10613         (ix86_set_current_function): Pass &global_options to
10614         cl_target_option_restore.
10615         * config/pdp11/pdp11.h (optimize): Remove.
10616         * config/rs6000/rs6000.h (optimize): Remove.
10617         * config/sh/sh.h (optimize): Remove.
10618         * config/xtensa/xtensa.h (optimize): Remove.
10619         * coretypes.h (struct gcc_options): Declare.
10620         * diagnostic.c (diagnostic_initialize): Initialize
10621         context->option_state.
10622         (diagnostic_report_diagnostic): Pass option_state to
10623         option_enabled hook.
10624         * diagnostic.h (diagnostic_context.option_enabled): Add void *
10625         parameter.
10626         (diagnostic_context.option_state): New field.
10627         * final.c (final_start_function, final, final_scan_insn): Rename
10628         optimize parameter to optimize_p.
10629         * flags.h (optimize, optimize_size): Remove.
10630         * function.c (invoke_set_current_function_hook): Pass
10631         &global_options to cl_optimization_restore.
10632         * gcc.c (driver_handle_option): Take gcc_options parameter.
10633         Assert that it is &global_options.
10634         (process_command): Pass &global_options to read_cmdline_option.
10635         * ipa-pure-const.c (suggest_attribute): Pass &global_options to
10636         option_enabled.
10637         * lto-opts.c (lto_reissue_options): Use option_flag_var.  Pass
10638         &global_options to set_option.
10639         * opts-common.c (handle_option, handle_generated_option,
10640         read_cmdline_option, set_option): Take explicit gcc_options
10641         parameters.  Use option_flag_var.
10642         (option_flag_var): New.
10643         * opts.c (common_handle_option, lang_handle_option,
10644         target_handle_option): Take gcc_options parameter.  Assert that it
10645         is &global_options.
10646         (read_cmdline_options): Pass &global_options to read_cmdline_option.
10647         (print_filtered_help): Use option_flag_var.  Pass &global_options
10648         to option_enabled.
10649         (common_handle_option): Use option_flag_var.
10650         (option_enabled): Take opts parameter.  Use option_flag_var.
10651         (get_option_state): Take gcc_options parameter.  Use
10652         option_flag_var.  Pass gcc_options parameter to option_enabled.
10653         (enable_warning_as_error): Pass &global_options to
10654         handle_generated_option.
10655         * opts.h (struct cl_option): Change flag_var to flag_var_offset.
10656         (cl_option_handler_func.handler): Take gcc_options parameter.
10657         (option_enabled, get_option_state, set_option, handle_option,
10658         handle_generated_option, read_cmdline_option): Take gcc_options
10659         parameters.
10660         * toplev.c (optimize, optimize_size): Remove.
10661         (print_switch_values): Pass &global_options to option_enabled.
10662         (option_affects_pch_p): Use option_flag_var.  Pass &global_options
10663         to get_option_state.
10664         (general_init): Initialize global_dc->option_state.
10665         * tree.c (build_optimization_node): Pass &global_options to
10666         cl_optimization_save.
10667         (build_target_option_node): Pass &global_options to
10668         cl_target_option_save.
10669
10670 2010-09-30  Martin Jambor  <mjambor@suse.cz>
10671
10672         * tree-sra.c (type_consists_of_records_p): Do not check for trailing
10673         zero sized bit-fields.
10674
10675 2010-09-30  Nicola Pero  <nicola.pero@meta-innovation.com>
10676
10677         * c-parser.c (c_lex_one_token): When finding a CPP_AT_NAME
10678         Objective-C token, map RID_CLASS to RID_AT_CLASS and similar.
10679         (c_parser_external_declaration): Use RID_AT_CLASS instead of RID_CLASS.
10680         (c_parser_objc_class_declaration): Same change.
10681         (c_parser_objc_try_catch_statement): Use RID_AT_TRY instead of
10682         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
10683         (c_parser_objc_class_instance_variables): Use RID_AT_PRIVATE
10684         instead of RID_PRIVATE, RID_AT_PROTECTED instead of RID_PROTECTED
10685         and RID_AT_PUBLIC instead of RID_PUBLIC.
10686         (c_parser_statement_after_labels): Use RID_AT_TRY instead of
10687         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
10688
10689 2010-09-30  Tom G. Christensen  <tgc@jupiterrise.com>
10690
10691         * doc/install.texi (Binaries): Update link to HP-UX porting centre.
10692         Add links to current providers of packages for Solaris and IRIX.
10693
10694 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
10695
10696         Merge from 'apple/trunk' branch on FSF servers.
10697         * c-parser.c: Applied change originally in c-parse.in.
10698
10699         2005-10-04  Fariborz Jahanian  <fjahanian@apple.com>
10700
10701         Radar 4281748
10702         * c-decl.c (start_decl): Check for redeclaration of class name.
10703         * c-parse.in (after_type_declarator): Recognize CLASSNAME.
10704
10705 2010-09-29  Steve Ellcey  <sje@cup.hp.com>
10706
10707         * config/ia64/ia64.c (ia64_builtin_decl): New.
10708         (TARGET_BUILTIN_DECL): Define.
10709         (ia64_builtins): New.
10710         (ia64_init_builtins): Save decls in ia64_builtins.
10711
10712 2010-09-29  Bernd Schmidt  <bernds@codesourcery.com>
10713
10714         PR target/40457
10715         * postreload.c (move2add_use_add2_insn): Use full_costs for comparison.
10716         (move2add_use_add3_insn): Likewise.
10717         (reload_cse_move2add): Likewise.
10718         * rtlanal.c (get_full_rtx_cost): New function.
10719         * rtl.h (struct full_rtx_costs): New.
10720         (init_costs_to_max, init_costs_to_zero, costs_lt_p,
10721         costs_add_n_insns): New inline functions.
10722         (get_full_rtx_cost): Declare.
10723
10724         PR c/45054
10725         * reload1.c (replace_pseudos_in): Use eliminate_regs_1, allowing
10726         invariants.  Check for reg_equiv_invariant.
10727         (reload): Assert that spilled_pseudos is empty when returning.
10728
10729 2010-09-29  Kai Tietz  <kai.tietz@onevision.com>
10730
10731         * config/i386/mingw32.h (TARGET_64BIT): replaced by
10732         TARGET_64BIT_DEFAULT in #if check.
10733
10734 2010-09-29  Jack Howarth  <howarth@bromo.med.uc.edu>
10735
10736         * varasm.c (assemble_alias): Add error message for unsupported ifunc.
10737
10738 2010-09-29  Mike Stump  <mikestump@comcast.net>
10739
10740         * config/darwin.h (flag_mkernel): Remove.
10741         (flag_apple_kext): Likewise.
10742
10743 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
10744             Jack Howarth  <howarth@bromo.med.uc.edu>
10745
10746         * config/darwin.opt (undefined): Add.
10747
10748 2010-09-29  Nathan Sidwell  <nathan@codesourcery.com>
10749
10750         PR testsuite/45664
10751         * configure.ac: Add --enable-indirect-function option.
10752         * config.gcc: Add default_gnu_indirect_function.
10753         * config.in (HAVE_GAS_INDIRECT_FUNCTION): Rename to ...
10754         (HAVE_GNU_INDIRECT_FUNCTION): ... this.
10755         * varasm.c (do_assemble_alias): Adjust for macro name change.
10756         * configure: Rebuilt.
10757         * doc/install.texi: Document --enable-indirect-function.
10758
10759 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
10760
10761         * doc/options.texi (Variable, Var, Init): Update documentation
10762         without reference to VarExists.
10763         (VarExists): Remove.
10764         * common.opt, config/i386/i386.opt, config/linux.opt,
10765         config/rs6000/rs6000.opt, config/sh/sh.opt, config/spu/spu.opt:
10766         Don't use VarExists.
10767
10768 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
10769
10770         * optc-gen.awk: Generate global_options initializer instead of
10771         individual variables.  Add x_ prefix to names of structure members.
10772         * opth-gen.awk: Generate gcc_options structure.  Add x_ prefix to
10773         names of structure members.
10774         * doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
10775         HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
10776         * doc/tm.texi: Regenerate.
10777         * alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
10778         * builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
10779         * c-parser.c (disable_extension_diagnostics,
10780         restore_extension_diagnostics): Update names of cpp_options members.
10781         * combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
10782         * common.opt (fcompare-debug-second): Don't use Var.
10783         * config/alpha/alpha.h (target_flags): Remove.
10784         * config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
10785         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
10786         * config/bfin/bfin.h (target_flags): Remove.
10787         * config/cris/cris.h (target_flags): Remove.
10788         * config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
10789         cl_target_option members.
10790         * config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
10791         (ix86_function_specific_print, ix86_valid_target_attribute_tree,
10792         ix86_can_inline_p): Update names of cl_target_option members.
10793         * config/i386/i386.h (ix86_isa_flags): Remove.
10794         * config/lm32/lm32.h (target_flags): Remove.
10795         * config/mcore/mcore.h (mcore_stack_increment): Remove.
10796         * config/mcore/mcore.md (addsi3): Remove extern declaration of
10797         flag_omit_frame_pointer.
10798         * config/mep/mep.h (target_flags): Remove.
10799         * config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
10800         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
10801         * config/mmix/mmix.h (target_flags): Remove.
10802         * config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
10803         flag_expensive_optimizations): Remove.
10804         * config/s390/s390.h (flag_pic): Remove.
10805         * config/score/score-conv.h (target_flags): Remove.
10806         * config/sh/sh.h (sh_fixed_range_str): Remove.
10807         * config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
10808         * dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
10809         * df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10810         * diagnostic.c (diagnostic_initialize): Update names of
10811         diagnostic_context members.
10812         * diagnostic.h (diagnostic_context): Rename inhibit_warnings and
10813         warn_system_headers.
10814         (diagnostic_report_warnings_p): Update for new names.
10815         * dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
10816         * emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
10817         HARD_FRAME_POINTER_IS_ARG_POINTER.
10818         * flags.h (flag_compare_debug): Declare.
10819         * ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
10820         * opts.c (flag_compare_debug): Define.
10821         (common_handle_option): Update names of diagnostic_context
10822         members.  Handle -fcompare-debug-second.
10823         (fast_math_flags_struct_set_p): Update names of cl_optimization
10824         members.
10825         * reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10826         * regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10827         * reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10828         * reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10829         * resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10830         * rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
10831         HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
10832         * sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
10833         * stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
10834
10835 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
10836
10837         * config/picochip/picochip.c (picochip_output_internal_label):
10838         This function can now be called for debug CFI labels, which can come
10839         in the middle of a vliw instruction.  Postpone until end of vliw.
10840
10841 2010-09-29  Richard Guenther  <rguenther@suse.de>
10842
10843         * tree.h (SCOPE_FILE_SCOPE_P): New macro.
10844         (DECL_FILE_SCOPE_P): Use it.
10845         (TYPE_FILE_SCOPE_P): New macro.
10846
10847 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
10848
10849         * c-parser.c (c_lex_one_token): In Objective-C, when dealing with
10850         a CPP_NAME which is a reserved word, clearly separate cases for
10851         OBJC_IS_PQ_KEYWORD, OBJC_IS_AT_KEYWORD and OBJC_IS_CXX_KEYWORD.
10852
10853 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
10854
10855         * c-parser.c (c_lex_one_token): In Objective-C, do not replace
10856         token->value with the canonical spelling.  Do exactly like C and
10857         C++ and leave it as it is.
10858
10859 2010-09-28  Richard Henderson  <rth@redhat.com>
10860
10861         * config/alpha/alpha.c (alpha_builtins): New.
10862         (alpha_builtin_decl, TARGET_BUILTIN_DECL): New.
10863         (alpha_builtin_function): New.
10864         (alpha_add_builtins, alpha_init_builtins): Use it.
10865
10866 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
10867
10868         * doc/standards.texi (Standards): Expanded the section on
10869         Objective-C and Objective-C++.
10870
10871 2010-09-28  DJ Delorie  <dj@redhat.com>
10872
10873         PR target/45800
10874         * config/m32c/m32c.c (m32c_subreg): Force adjustment of subregs of
10875         volatile MEMs.
10876
10877 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
10878
10879         * c-parser.c (c_parser_declaration_or_fndef): Diagnose incorrect prefix
10880         attributes on methods.
10881          (c_parser_objc_method_definition): Handle attributes.
10882         (c_parser_objc_methodproto): Likewise.
10883         (c_parser_objc_maybe_method_attributes): New.
10884         (c_parser_objc_method_decl): Handle attributes, add a diagnostic for a
10885         missing definition, similar to that in ObjC++.
10886
10887 2010-09-28  Richard Henderson  <rth@redhat.com>
10888
10889         * defaults.h (DWARF2_UNWIND_INFO): Don't depend on TARGET_UNWIND_INFO.
10890         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
10891         (CONFIG_SJLJ_EXCEPTIONS): Remove.
10892         (STACK_OLD_CHECK_PROTECT): Use targetm.except_unwind_info.
10893         (STACK_CHECK_PROTECT): Likewise.
10894         * dwarf2out.c (DWARF2_UNWIND_INFO, DWARF2_FRAME_INFO): Poison.
10895         (dwarf2out_do_frame): Use debug_unwind_info and except_unwind_info.
10896         (dwarf2out_do_cfi_asm, dwarf2out_begin_prologue): Likewise.
10897         (dwarf2out_frame_init, dwarf2out_frame_finish): Likewise.
10898         (dwarf2out_assembly_start): Likewise.
10899         * except.c (init_eh): Use targetm.except_unwind_info.
10900         (finish_eh_generation, gate_convert_to_eh_region_ranges): Likewise.
10901         (output_one_function_exception_table): Likewise.
10902         * final.c: Unconditionally include dwarf2out.h.
10903         (final_start_function): Unconditionally call dwarf2out routines.
10904         (final_end_function, final_scan_insn): Likewise.
10905         * function.c (expand_function_end): Use targetm.except_unwind_info.
10906         * opts.c (decode_options): Use targetm.except_unwind_info.
10907         * system.h (USING_SJLJ_EXCEPTIONS, TARGET_UNWIND_INFO): Poison.
10908         * target.def (debug_unwind_info, except_unwind_info): New.
10909         * target.h (enum unwind_info_type): New.
10910         * targhooks.c (default_debug_unwind_info): New.
10911         (default_except_unwind_info): New.
10912         (dwarf2_except_unwind_info, sjlj_except_unwind_info): New.
10913         * targhooks.h: Declare them.
10914         * tree-tailcall.c: Include "target.h"
10915         (suitable_for_tail_call_opt_p): Use targetm.except_unwind_info.
10916         * Makefile.in (tree-tailcall.o): Update.
10917         * tree.c (build_common_builtin_nodes): Use targetm.except_unwind_info.
10918         (lhd_gcc_personality): Likewise.
10919
10920         * doc/tm.texi.in (TARGET_UNWIND_INFO): Remove.
10921         (TARGET_EXCEPT_UNWIND_INFO): New.
10922         (DWARF2_UNWIND_INFO): Update.
10923         (TARGET_DEBUG_UNWIND_INFO): New.
10924         * doc/tm.texi: Rebuild.
10925
10926         * c-family/c-cppbuiltin.c (c_cpp_builtins): Use
10927         targetm.except_unwind_info.
10928
10929         * config/arm/arm.c (TARGET_EXCEPT_UNWIND_INFO): New.
10930         (arm_except_unwind_info): New.
10931         (arm_compute_func_type): Use it.
10932         (arm_expand_prologue, thumb_pushpop): Likewise.
10933         (thumb1_expand_prologue, thumb1_output_function_prologue): Likewise.
10934         (arm_unwind_emit, arm_output_fn_unwind): Likewise.
10935         * config/arm/bpabi.h (ARM_UNWIND_INFO): Rename from TARGET_UNWIND_INFO.
10936         * config/arm/arm.h (ARM_UNWIND_INFO): Likewise.
10937         (DWARF2_UNWIND_INFO): Remove.
10938         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
10939         (ARM_EABI_UNWIND_TABLES): Remove.
10940
10941         * config/ia64/ia64.c (ia64_debug_unwind_info): New.
10942         (TARGET_DEBUG_UNWIND_INFO, TARGET_EXCEPT_UNWIND_INFO): New.
10943         (ia64_except_unwind_info): New.
10944         (ia64_output_function_prologue): Use it.
10945         (ia64_add_bundle_selector_before): Likewise.
10946         (ia64_reorg, ia64_asm_unwind_emit): Likewise.
10947         * config/ia64/ia64.h (DWARF2_FRAME_INFO): Remove.
10948         (TARGET_UNWIND_INFO): Remove.
10949
10950         * config/pa/pa.c (pa_option_override): Use targetm.except_unwind_info.
10951
10952 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
10953
10954         * c-parser.c (c_parser_objc_class_definition): Adjust prototype.
10955         (c_parser_objc_protocol_definition): Likewise.
10956         (c_parser_external_declaration): Provide dummy attribute arguments.
10957         (c_parser_declaration_or_fndef): Parse prefix attributes for ObjC.
10958         (c_parser_objc_class_definition): Handle attributes.
10959         (c_parser_objc_protocol_definition): Likewise.
10960
10961 2010-09-28  Tobias Burnus  <burnus@net-b.de>
10962
10963         PR fortran/40569
10964         PR fortran/40568
10965         * toplev.h (save_decoded_options, save_decoded_options_count):
10966         New global variables.
10967         * toplev.c (save_decoded_options, save_decoded_options_count):
10968         Export variables.
10969
10970 2010-09-28  Ian Lance Taylor  <iant@google.com>
10971
10972         * config/i386/i386.c (ix86_supports_split_stack): Test
10973         HAVE_GAS_CFI_PERSONALITY_DIRECTIVE rather than dwarf2out_do_cfi_asm.
10974
10975 2010-09-28  Ian Lance Taylor  <iant@google.com>
10976
10977         PR target/45815
10978         * opts.c (decode_options): Don't test whether the target supports
10979         split stack if flag_split_stack == 0.
10980
10981 2010-09-28  Jan Hubicka  <jh@suse.cz>
10982
10983         * builtin-attrs.def (ATTR_LEAF): New attribute.
10984         (ATTR_NOVOPS_LEAF_LIST, ATTR_LEAF_LIST, ATTR_NOTHROW_LEAF_LIST,
10985         ATTR_CONST_NOTHROW_LEAF_LIST, ATTR_PURE_NOTHROW_LEAF_LIST,
10986         ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST, ATTR_NORETURN_NOTHROW_LEAF_LIST,
10987         ATTR_MALLOC_NOTHROW_LEAF_LIST, ATTR_SENTINEL_NOTHROW_LEAF_LIST,
10988         ATTR_NOTHROW_NONNULL_LEAF, ATTR_CONST_NOTHROW_NONNULL_LEAF,
10989         ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF, ATTR_PURE_NOTHROW_NONNULL_LEAF,
10990         ATTR_MALLOC_NOTHROW_NONNULL_LEAF): New attribute lists.
10991         * sync-builtins.def: Annotate all builtins by leaf.
10992         * omp-builtins.def: Annotate all builtins by leaf.
10993         * builtins.def: Annotate relevant builtins with leaf attribute.
10994         (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
10995         ATTR_MATHFN_FPROUNDING_ERRNO, ATTR_MATHFN_FPROUNDING_STORE): Make
10996         leaf.
10997
10998 2010-09-28  Jan Hubicka  <jh@suse.cz>
10999
11000         * tree-ssa-ccp.c (fold_ctor_reference): New function.
11001         (fold_const_aggregate_ref): Use it.
11002         * fold-const.c (canonicalize_constructor_val): Check that we don't fold
11003         into external static.
11004
11005 2010-09-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11006
11007         PR target/44452
11008         * config/i386/i386.opt (mvect8-ret-in-mem): Define.
11009         * config/i386/i386.c (ix86_target_string): Handle -mvect8-ret-in-mem.
11010         (ix86_solaris_return_in_memory): Remove.
11011         * config/i386/i386-protos.h (ix86_solaris_return_in_memory): Remove.
11012         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
11013         (TARGET_SUBTARGET_DEFAULT): Redefine.
11014         * config/i386/sol2-10.h (TARGET_SUBTARGET_DEFAULT): Update comment.
11015         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
11016         (TARGET_SUBTARGET_DEFAULT): Redefine.
11017         * doc/invoke.texi (Option Summary, i386 and x86-64 Options): Add
11018         -mvect8-ret-in-mem.
11019         (i386 and x86-64 Options): Document -mvect8-ret-in-mem.
11020
11021 2010-09-29  Alan Modra  <amodra@gmail.com>
11022
11023         PR target/45807
11024         * config/rs6000/aix.h (SETUP_FRAME_ADDRESSES): Delete.
11025         * config/rs6000/linux64.h (SETUP_FRAME_ADDRESSES): Delete.
11026         * config/rs6000/rs6000-protos.h (rs6000_aix_emit_builtin_unwind_init):
11027         Delete.
11028         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): Delete.
11029         (rs6000_emit_prologue): Don't just create frame save info for r2,
11030         actually save r2.
11031
11032 2010-09-28  Richard Henderson  <rth@redhat.com>
11033
11034         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Output 8 bytes
11035         when 8 bytes are requested.
11036
11037 2010-09-28  Tristan Gingold  <gingold@adacore.com>
11038
11039         * config/avr/avr.c (expand_prologue): Set
11040         current_function_static_stack_size.
11041
11042 2010-09-28  Tristan Gingold  <gingold@adacore.com>
11043
11044         * config/alpha/alpha.md: Change the initial condition of the
11045         probing loop.
11046
11047 2010-09-28  Uros Bizjak  <ubizjak@gmail.com>
11048
11049         * config/i386/sse.md (*avx_<umaxmin:code><mode>3):
11050         Split from *avx_<maxmin:code><mode>3.
11051         (*avx_<smaxmin:code><mode>3): Ditto.
11052         * config/i386/i386.md (maxmin): Remove code iterator.
11053
11054 2010-09-27  Ian Lance Taylor  <iant@google.com>
11055
11056         * config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack
11057         requires assembler support for CFI directives.
11058
11059 2010-09-27  Richard Henderson  <rth@redhat.com>
11060
11061         * dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL.
11062
11063 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
11064
11065         * emit-rtl.c (reorder_insns_nobb) [ENABLE_CHECKING]: Sanity-check
11066         that AFTER is not in the range FROM..TO, inclusive.
11067
11068 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
11069             Bernd Schmidt  <bernds@codesourcery.com>
11070
11071         PR rtl-optimization/45792
11072         * cfgcleanup.c (try_head_merge_bb): New rtx vector nextptr.
11073         If not all insns are to be merged, for each edge, stash the
11074         next candidate after the to-be-merged insns before doing the
11075         merge, and use them for the retry at the new insertion point.
11076         Handle CC0 targets when retrying.
11077
11078 2010-09-27  Ian Lance Taylor  <iant@google.com>
11079
11080         * common.opt (fsplit-stack): New option.
11081         * opts.c (decode_options): Set flag_split_stack to final value.
11082         * target.def (supports_split_stack): New hook.
11083         * gcc.c (STACK_SPLIT_SPEC): Define.
11084         (LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
11085         * doc/invoke.texi (Option Summary): Mention -fsplit-stack.
11086         (Code Gen Options): Document -fsplit-stack.
11087         * doc/extend.texi (Function Attributes): Mention no_split_stack.
11088         (Function Attributes): Document no_split_stack.
11089         * doc/tm.texi.in (Stack Smashing Protection): Add @hook
11090         TARGET_SUPPORTS_SPLIT_STACK.
11091         * doc/tm.texi: Rebuild.
11092         * function.c (thread_prologue_and_epilogue_insns): If
11093         flag_split_stack, add split stack prologue.
11094         * explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
11095         * varasm.c (saw_no_split_stack): New static variable.
11096         (assemble_start_function): Set saw_no_split_stack if the function
11097         has the no_split_stack attribute.
11098         (file_end_indicate_split_stack): New function.
11099         * output.h (file_end_indicate_split_stack): Declare.
11100         * libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
11101         and function.
11102         * doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
11103         routines.
11104         * config/i386/i386.c (ix86_option_override_internal): Don't set
11105         expand_builtin_va_start to NULL if -fsplit-stack.
11106         (ix86_function_regparm): Reduce local regparm by 1 for 32-bit
11107         -fsplit-stack.
11108         (ix86_va_start): If -fsplit-stack, get overflow pointer from
11109         scratch register set by prologue.
11110         (ix86_code_end): If -fsplit-stack, call
11111         file_end_indicate_split_stack.
11112         (ix86_supports_split_stack): New static function.
11113         (SPLIT_STACK_AVAILABLE): Define.
11114         (split_stack_prologue_scratch_regno): New static function.
11115         (split_stack_fn): New static variable.
11116         (ix86_expand_split_stack_prologue): New function.
11117         (ix86_live_on_entry): New static function.
11118         (ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
11119         (output_pic_addr_const): Likewise.
11120         (i386_asm_output_addr_const_extra): Likewise.
11121         (ix86_expand_call): Change return type to rtx.  Return the new
11122         call instruction.
11123         (TARGET_SUPPORTS_SPLIT_STACK): Define.
11124         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
11125         * config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
11126         (split_stack_prologue, split_stack_return): New insns.
11127         (split_stack_space_check): New insn.
11128         * config/i386/i386.h (struct machine_function): Add
11129         split_stack_varargs_pointer field.
11130         * config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
11131         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
11132         * config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
11133         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
11134         * config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
11135         Declare.
11136         (ix86_expand_call): Update declaration.
11137
11138 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
11139
11140         * doc/objc.texi (Type encoding): Added the new 'long double' (D)
11141         code.  Added byref, which was missing in the list of codes.
11142         Explain that enumeration values are encoded as the integer type
11143         that the compiler uses to store them.  Explain and make examples
11144         of how 'const' interacts with pointers, and the complication of
11145         the encoding of 'const char *'.
11146         (Legacy type encoding): New subsection, explaining that GCC emits
11147         incorrect type encodings for the NeXT runtime for compatibility
11148         reasons.
11149         (@@encode): New subsection, explaining @encode and particularly
11150         that protocol qualifiers are not recognized inside an @encode()
11151         expression.
11152         (Method signatures): New subsection, explaining how method
11153         signatures are encoded.
11154
11155 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
11156
11157         Merge from 'apple/trunk' branch on FSF servers.  Removed small
11158         change in build_conditional_expr that had been added when fixing
11159         PR objc/27377 and which did the same check in a less complete way.
11160
11161         2005-12-15  Fariborz Jahanian  <fjahanian@apple.com>
11162
11163         Radar 4229905
11164         * c-typeck.c (build_conditional_expr): Call objc_have_common_type when
11165         looking for objective-c common pointer types.
11166
11167         2005-06-22  Ziemowit Laski  <zlaski@apple.com>
11168
11169         Radar 4154928
11170         * c-typeck.c (build_conditional_expr): For two ObjC pointer types,
11171         use their ObjC common type.
11172
11173 2010-09-27  Richard Guenther  <rguenther@suse.de>
11174
11175         * dbxout.c (dbxout_symbol): Use DECL_FILE_SCOPE_P.
11176
11177 2010-09-27  Jie Zhang  <jie@codesourcery.com>
11178
11179         * print-tree.c (print_node): Print in-constant-pool.
11180
11181 2010-09-27  Uros Bizjak  <ubizjak@gmail.com>
11182
11183         * config/i386/i386.h (CLASS_MAX_NREGS): Also handle XCmode.
11184         (UNITS_PER_WORD): Define only when IN_LIBGCC2 is undefined.
11185         (MOVE_MAX_PIECES): Redefine using UNITS_PER_WORD.
11186         (ASM_OUTPUT_AVX_PREFIX): Simplify pointer addition.
11187
11188 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
11189
11190         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_add): Merge
11191         from pro_epilogue_adjust_stack_<mode>_{1,2}.
11192         (pro_epilogue_adjust_stack_<mode>_add): Rename from
11193         pro_epilogue_adjust_stack_<mode>_3.
11194         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for
11195         renamed pro_epilogue_adjust_stack_{si,di}_add.
11196         (ix86_expand_prologue): Use indirect functions.  Update for renamed
11197         pro_epilogue_adjust_stack_{si,di}_sub.
11198
11199 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
11200
11201         * config/i386/i386.md (movmsk_df): New insn.
11202         (signbitdf): Split out of signbit<mode>2.  Generate movmsk_df
11203         sequence for TARGET_SSE_MATH.
11204
11205 2010-09-26  Richard Sandiford  <rdsandiford@googlemail.com>
11206
11207         * config/mips/mips.c (mips_builtin_decls): Declare.
11208         (mips_init_builtins): Store function declarations in
11209         mips_builtin_decls.
11210         (mips_builtin_decl): New function.
11211         (TARGET_BUILTIN_DECL): Define.
11212
11213 2010-09-25  Kai Tietz  <kai.tietz@onevision.com>
11214             Richard Henderson  <rth@redhat.com>
11215
11216         * config/i386/cygwin.asm: Include auto-host.h.
11217         (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
11218         cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): New macros.
11219         (__chkstk, __alloca): Annotate for dwarf2 unwind info.  Drop
11220         alignment code from the 64-bit path.  Use gas local labels.
11221         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_2): Macroize
11222         from _di_2.  Remove the useless constant integer argument.
11223         (pro_epilogue_adjust_stack_<mode>_3): New.
11224         (allocate_stack_worker_probe_<mode>): Macroize from
11225         allocate_stack_worker_{32,64}.  Use __chkstk_ms.  Update all users.
11226         * config/i386/i386.c (ix86_expand_prologue): Use __chkstk_ms;
11227         use gen_pro_epilogue_adjust_stack_*_3 and annotate it.
11228         (__chkstk_ms): New function.
11229         * config/i386/t-cygming (LIB1ASMFUNCS): Add _chkstk_ms.
11230         * config/i386/t-interix: Likewise.
11231         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Export for target.
11232         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
11233         (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): Likewise.
11234         * configure, config.in: Rebuild.
11235
11236 2010-09-25  Eric Botcazou  <ebotcazou@adacore.com>
11237
11238         * tree-inline.c (copy_bb): Use GSI_CONTINUE_LINKING when inserting new
11239         statements because of the return slot optimization.
11240
11241 2010-09-25  Anatoly Sokolov  <aesok@post.ru>
11242
11243         * config/avr/avr.h (CLASS_LIKELY_SPILLED_P): Remove.
11244         * config/avr/avr-protos.h (class_likely_spilled_p): Remove.
11245         * config/avr/avr.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
11246         (class_likely_spilled_p): Rename to...
11247         (avr_class_likely_spilled_p): ...this. Make static. Change argument
11248         type to reg_class_t.
11249
11250 2010-09-24  Jan Hubicka  <jh@suse.cz>
11251
11252         * lto-symtab.c (lto_symtab_entry_def): Add guessed field.
11253         (lto_symtab_resolve_symbols): Set it.
11254         (lto_symtab_merge_decls_1): Do not compute used_from_object_file;
11255         store resolution field in cgraph/varpool.
11256         * cgraph.c (cgraph_same_body_alias, cgraph_add_thunk): Return node.
11257         (cgraph_get_node_or_alias, cgraph_get_node_or_alias): Constify.
11258         (cgraph_dump_node): Drop used_from_object_file.
11259         (cgraph_clone_node, cgraph_create_virtual_clone): Likewise.
11260         (cgraph_function_body_availability): Use decl_replaceable_p.
11261         (cgraph_make_node_local): Set resolution to LDPR_PREVAILING_DEF_IRONLY.
11262         (cgraph_can_remove_if_no_direct_calls_and_refs): Use
11263         cgraph_used_from_object_file_p.
11264         (cgraph_will_be_removed_from_program_if_no_direct_calls): Use
11265         cgraph_used_from_object_file_p.
11266         (resolution_used_from_other_file_p): New functoin.
11267         (cgraph_used_from_object_file_p): New predicate.
11268         * cgraph.h: Include plugin-api.h
11269         (struct cgraph_local_info): Remove used_from_object_file.
11270         (struct cgraph_node): Add resolution field.
11271         (struct varpool_node): Likewise; remove used_from_object_file;
11272         reove const_value_known.
11273         (cgraph_get_node, cgraph_get_node_or_alias, cgraph_node,
11274         cgraph_same_body_alias, cgraph_add_thunk): Update prototypes.
11275         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
11276         varpool_used_from_object_file_p): Declare.
11277         (varpool_get_node, varpool_extra_name_alias): Update prototype.
11278         * tree.h (DECL_REPLACEABLE_P): Remove.
11279         (decl_replaceable_p, decl_binds_to_current_def_p): Declare.
11280         * final.c (rest_of_clean_state): Use decl_binds_to_current_def_p.
11281         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
11282         input_overwrite_node, input_node, input_varpool_node): Stream
11283         resolution.
11284         * expr.c (expand_expr_real_1): Use const_value_known_p
11285         * ipa.c (ipa_discover_readonly_nonaddressable_var): Do not set
11286         const_value_known.
11287         (cgraph_externally_visible_p): Use cgraph_used_from_object_file_p.
11288         (function_and_variable_visibility): Set resolution for local vars
11289         and functions; use varpool_used_from_object_file_p.
11290         * varasm.c (resolution_to_local_definition_p, resolution_local_p): New
11291         static functions.
11292         (default_binds_local_p_1): Use resolutoin info.
11293         (decl_binds_to_current_def_p, decl_replaceable_p): New functions.
11294         * varpool.c (varpool_get_node): Constify.
11295         (const_value_known_p): Do not use vnode->const_value_known;
11296         use decl_replaceable_p.
11297         (varpool_finalize_decl): Do not set const_value_known.
11298         (cgraph_variable_initializer_availability): Use decl_replaceable_p
11299         (varpool_extra_name_alias): Return new node.
11300         (varpool_used_from_object_file_p): New function.
11301
11302 2010-09-24  Richard Henderson  <rth@redhat.com>
11303
11304         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): New.
11305         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): New.
11306         (do_spill): Use REG_CFA_OFFSET.
11307         (ia64_expand_prologue): Use REG_CFA_ADJUST_CFA and REG_CFA_REGISTER
11308         as appropriate.
11309         (ia64_expand_epilogue): Likewise.
11310         (process_set): Split into ...
11311         (process_cfa_adjust_cfa): this,
11312         (process_cfa_register): this,
11313         (process_cfa_offset): and this new function.
11314         (ia64_asm_unwind_emit): Use them.  Expect REG_CFA_* notes
11315         instead of REG_FRAME_RELATED_EXPR.
11316
11317 2010-09-24  Olivier Hainque  <hainque@adacore.com>
11318
11319         * config/i386/vx-common.h (DBX_REGISTER_NUMBER): Reinstate.
11320
11321 2010-09-24  Jan Hubicka  <jh@suse.cz>
11322
11323         * doc/extend.texi: (attribute leaf): Document.
11324         * tree.c (local_define_builtin): Handle ECF_LEAF.
11325         (build_common_builtin_nodes): Set ECF_LEAF where needed.
11326         * tree.h (ECF_LEAF): New.
11327         * ipa-reference.c (propagate_bits): For leaf calls propagate ever
11328         overwrittable and unavailable functions.
11329         (ipa_init): Put all_module_statics into optimization_summary_obstack.
11330         (copy_global_bitmap): Do not copy all_module_statics.
11331         (read_write_all_from_decl): Use cgraph_node argument; handle ECF_LEAF.
11332         (propagate): Handle overwritable and unavailable leaf functions;
11333         initialize global info for overwritable and unavailable leaf functions;
11334         do not free all module statics.
11335         (ipa_reference_get_not_{read,written}_global): Leaf calls don't clobber
11336         local statics.
11337         * calls.c (flags_from_decl_or_type): Handle leaf.
11338         * tree-cfg.c (stmt_can_make_abnormal_goto): Leaf functions can't do
11339         abnormal gotos.
11340
11341 2010-09-24  Basile Starynkevitch  <basile@starynkevitch.net>
11342
11343         * gengtype.c: Reindented.
11344         * gengtype.h: Reindented.
11345         * gengtype-parse.c: Reindented.
11346
11347 2010-09-24  Jan Hubicka  <jh@suse.cz>
11348
11349         PR tree-optimization/45738
11350         PR tree-optimization/45741
11351         * expr.c (string_constant): Allow CONST_DECL too;
11352         check that DECL_INITIAL is set.
11353         * varpool.c (const_value_known_p): Only look into VAR_DECL
11354         and CONST_DECL.
11355
11356 2010-09-24  Joseph Myers  <joseph@codesourcery.com>
11357
11358         * common.opt (undef): New.
11359
11360 2010-09-24  Jakub Jelinek  <jakub@redhat.com>
11361
11362         PR middle-end/45234
11363         * rtl.h (enum global_rtl_index): Add
11364         GR_VIRTUAL_PREFERRED_STACK_BOUNDARY.
11365         (LAST_VIRTUAL_POINTER_REGISTER): Define.
11366         (virtual_preferred_stack_boundary_rtx,
11367         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM): Define.
11368         (LAST_VIRTUAL_REGISTER): Increase by one.
11369         (REGNO_PTR_FRAME_P): Use LAST_VIRTUAL_POINTER_REGISTER
11370         instead of LAST_VIRTUAL_REGISTER.
11371         * function.c (instantiate_new_reg): Handle
11372         virtual_preferred_stack_boundary_rtx.
11373         * emit-rtl.c (init_virtual_regs): Handle
11374         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
11375         (init_emit_regs): Initialize virtual_preferred_stack_boundary_rtx.
11376         * explow.c (round_push): If crtl->preferred_stack_boundary
11377         is smaller than MAX_SUPPORTED_STACK_ALIGNMENT, use
11378         virtual_preferred_stack_boundary_rtx alignment instead of
11379         crtl->preferred_stack_boundary alignment.
11380         (allocate_dynamic_stack_space): Use CONST_INT_P and REG_P
11381         macros.  Never decrease crtl->preferred_stack_boundary,
11382         use crtl->preferred_stack_boundary or MAX_SUPPORTED_STACK_ALIGNMENT
11383         instead of PREFERRED_STACK_BOUNDARY.  Don't modify
11384         stack_pointer_delta in dynamic allocation, even when size
11385         is constant.
11386         (probe_stack_range, anti_adjust_stack_and_probe): Use CONST_INT_P
11387         macro.
11388         * print-rtl.c (print_rtx): Handle
11389         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
11390         * config/alpha/alpha.h (NONSTRICT_REG_OK_FP_BASE_P): Use
11391         LAST_VIRTUAL_POINTER_REGISTER instead of LAST_VIRTUAL_REGISTER.
11392         * config/frv/frv.c (frv_emit_movsi): Likewise.
11393         * config/arm/arm.c (thumb1_legitimate_address_p): Likewise.
11394         * config/rs6000/rs6000.c (virtual_stack_registers_memory_p):
11395         Likewise.
11396
11397         Revert:
11398         2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
11399
11400         PR middle-end/45234
11401         * calls.c (expand_call): Make sure that all variable sized
11402         adjustments are multiple of preferred stack boundary after
11403         stack alignment.
11404
11405 2010-09-24  Iain Sandoe  <iains@gcc.gnu.org>
11406             Dominique Dhumieres  <dominiq@lps.ens.fr>
11407
11408         PR bootstrap/45751
11409         * config/darwin-driver.c (darwin_default_min_version):
11410         Adjust size passed to memcpy in two places.
11411
11412 2010-09-24  Richard Guenther  <rguenther@suse.de>
11413
11414         * c-decl.c (pop_scope): Always set file-scope DECL_CONTEXT.
11415         Make sure to not call set_type_context with error_mark_node.
11416         * langhooks.c (lhd_set_decl_assembler_name): Use DECL_FILE_SCOPE_P.
11417
11418 2010-09-24  Richard Guenther  <rguenther@suse.de>
11419
11420         * Makefile.in (OBJS-onestep): Remove.
11421         (ALL_HOST_BACKEND_OBJS): Remove libbackend.o.
11422         (libbackend.a): Remove onestep support.
11423         (libbackend.o): Remove.
11424         * configure.ac (--enable-intermodule): Remove.
11425         * configure: Regenerate.
11426
11427 2010-09-24  Bernd Schmidt  <bernds@codesourcery.com>
11428
11429         * cfgcleanup.c (flow_find_head_matching_sequence): Terminate when
11430         reaching the end of a block if it occurs at a DEBUG_INSN.
11431
11432 2010-09-09  Tristan Gingold  <gingold@adacore.com>
11433
11434         PR target/44242
11435         * config/vms/vms-crt0-64.c: Removed.
11436         * config/vms/vms-crt0.c: Removed.
11437         * config/vms/vms-psxcrt0-64.c: Removed.
11438         * config/vms/vms-psxcrt0.c: Removed.
11439         * config/vms/vms-ucrt0.c: New file.
11440         * config/vms/t-vms64: Removed.
11441         * config/vms/t-vms (VMS_EXTRA_PARTS): Uncomment it.  Remove DECC.
11442         Use $(GCC_FOR_TARGET) to build pcrt0.o and vcrt0.o
11443         * config.gcc (alpha-dec-vms): Use t-vms.
11444
11445 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
11446
11447         * doc/invoke.texi (-fno-nil-receivers): Tidied up line to remove
11448         underfull hbox in DVI output.
11449         (-fobjc-class-cxx-cdtors): Same change.
11450         (-fobjc-exceptions): Tidied up documentation.  Explain what the
11451         option does, but moved the (lenghty) description of the exception
11452         syntax into objc.texi.
11453         (-fobjc-gc): Explain that the option is not useful with the GNU
11454         runtime.
11455         (-fzero-link): Explain that the GNU runtime always works in
11456         "zero-link" mode.
11457         * doc/objc.texi: All sections: simplified @node declarations
11458         removing specification of next, previous, up node.
11459         (Objective-C): Updated introduction.
11460         (Garbage Collection): Updated.  The bohem-gc library is now
11461         included in gcc itself.  Mention that this section only applies to
11462         the GNU Objective-C runtime.
11463         (compatibility_alias): Small tidy up.
11464         (Exceptions): New section mostly containing text previously in the
11465         description of the -fobjc-exception command-line option.
11466         (Synchronization): Same.
11467
11468 2010-09-24  Uros Bizjak  <ubizjak@gmail.com>
11469
11470         * config/i386/i386.md (ix86_code_end): Move the initialization of
11471         xops array near the consumer.  Use AX_REG and SP_REG instead of
11472         numerical constants.
11473
11474 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
11475
11476         * c-typeck.c (convert_arguments): Use warning 'too many arguments to
11477         method [methodname]' for an Objective-C method instead of the less
11478         satisfactory 'too many arguments to function' (with no method name).
11479
11480 2010-09-23  Eric Botcazou  <ebotcazou@adacore.com>
11481
11482         * tree-flow.h (execute_update_addresses_taken): Remove parameter.
11483         * tree-ssa.c (maybe_optimize_var): Tweak comment and dump messages.
11484         (execute_update_addresses_taken): Remove parameter.  Execute the
11485         optimization unconditionally.
11486         * passes.c (execute_function_todo): Call execute_update_addresses_taken
11487         unconditionally if TODO_rebuild_alias is set, else only when optimizing
11488         if TODO_update_address_taken is set.
11489
11490 2010-09-23  Anatoly Sokolov  <aesok@post.ru>
11491
11492         * config/arm/arm.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
11493         * config/arm/arm-protos.h (arm_output_addr_const_extra): Remove.
11494         * config/arm/arm.c (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
11495         (arm_output_addr_const_extra): Make static.
11496
11497 2010-09-23  Uros Bizjak  <ubizjak@gmail.com>
11498
11499         * config/i386/i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and
11500         define as unspec_volatile.
11501         ("nops"): Define as unspec_volatile. Use fputs to write to
11502         asm_out_file directly.  Output NOPs on separate lines using while loop.
11503         * config/i386/i386.c (ix86_code_end): Use fputs to write to
11504         asm_out_file directly.  Output NOPs on separate lines using while loop.
11505
11506 2010-09-23  Richard Guenther  <rguenther@suse.de>
11507
11508         PR tree-optimization/45565
11509         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
11510         Make sure to adjust the fndecl before replacing the stmt.
11511
11512 2010-09-23  Richard Guenther  <rguenther@suse.de>
11513
11514         PR middle-end/45750
11515         * gimplify.c (gimplify_expr): Properly pass on GS_ERROR when
11516         gimplifying MEM_REF.
11517
11518 2010-09-23  Alan Modra  <amodra@gmail.com>
11519
11520         * config/rs6000/rs6000.c (toc_relative_ok): Delete.
11521         (rs6000_emit_move): Use SYMBOL_REF_LOCAL_P instead.
11522
11523 2010-09-23  Bernd Schmidt  <bernds@codesourcery.com>
11524
11525         PR rtl-optimization/44374
11526         * basic-block.h (enum bb_flags): Add BB_MODIFIED.
11527         * df-core.c (df_set_bb_dirty): Set it.
11528         * ifcvt.c (find_memory): Remove function.
11529         (dead_or_predicable): Use can_move_insns_across.
11530         * df.h (can_move_insns_across): Declare function.
11531         * cfgcleanup.c (block_was_dirty): New static variable.
11532         (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
11533         than df_get_bb_dirty.
11534         (try_head_merge_bb): New static function.
11535         (try_optimize_cfg): Call it.  Call df_analyze if block_was_dirty
11536         is set.
11537         * df-problems.c: Include "target.h"
11538         (df_simulate_find_uses): New static function.
11539         (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
11540         (find_memory, find_memory_store): New static functions.
11541         (can_move_insns_across): New function.
11542         * Makefile.in (df-problems.o): Update dependencies.
11543
11544 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
11545
11546         PR java/44095
11547         * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
11548         is specified and the suffix of the file isn't ".c".
11549         * config/sparc/linux64.h (ASM_SPEC): Likewise.
11550
11551 2010-09-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11552
11553         * doc/contrib.texi (Contributors): Allow URL to wrap in PDF output.
11554         * doc/cppopts.texi: Fix markup of index entry.
11555         * doc/extend.texi (Constructing Calls): Fix markup of
11556         __builtin_va_arg_pack and __builtin_va_arg_pack_len definition.
11557         (Conditionals, C++ Comments, Pragmas, Unnamed Fields, Thread-Local)
11558         (Vague Linkage, C++ Attributes): Fix markup of index entries and
11559         keywords.
11560         * doc/invoke.texi (Option Summary): Fix spacing.  Rewrap to
11561         avoid long lines.
11562         (C Dialect Options, C++ Dialect Options, Warning Options)
11563         (Debugging Options, Spec Files, Darwin Options)
11564         (i386 and x86-64 Options, MIPS Options)
11565         (RS/6000 and PowerPC Options, Code Gen Options): Fix markup of
11566         index entries, avoid abbreviations, allow URLs to wrap, avoid
11567         long lines, avoid overlong pages from long @itemx lists.
11568         * doc/objc.texi (Garbage Collection): Allow URLs to wrap.
11569         * doc/standards.texi (Standards): Likewise.
11570         * doc/trouble.texi (Incompatibilities): Fix markup of index entry.
11571
11572 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
11573
11574         * opts-common.c (prune_options): Make static.  Work with decoded
11575         options.
11576         (decode_cmdline_options_to_array): Call prune_options.  Don't
11577         resize option array here.
11578         * opts.h (prune_options): Remove prototype.
11579         * gcc.c (process_command): Take decoded options; don't call
11580         decode_cmdline_options_to_array here.  Use decoded options for argv[0].
11581         (main): Call decode_cmdline_options_to_array here instead of
11582         prune_options.  Update call to process_command.
11583         * config/darwin-driver.c: Include opts.h.
11584         (darwin_default_min_version): Work with decoded options.  Don't
11585         handle -b or -V here.
11586         * config/darwin.h (darwin_default_min_version): Update prototype.
11587         (GCC_DRIVER_HOST_INITIALIZATION): Update call to
11588         darwin_default_min_version.
11589         * config/i386/cygwin.h (mingw_scan): Update prototype.
11590         (GCC_DRIVER_HOST_INITIALIZATION): Update call to mingw_scan.
11591         * config/i386/cygwin1.c: Include opts.h.
11592         (mingw_scan): Work with decoded options.
11593         * config/i386/t-cygwin (cygwin1.o): Update dependencies.
11594         * config/t-darwin (darwin-driver.o): Update dependencies.
11595
11596 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
11597
11598         * common.opt (-assemble, -compile, -coverage, -debug, -dump,
11599         -dump=, -dumpbase, -dumpdir, -entry, -entry=, -extra-warnings,
11600         -for-assembler, -for-assembler=, -for-linker, -for-linker=,
11601         -force-link, -force-link=, -language, -language=,
11602         -library-directory, -library-directory=, -no-canonical-prefixes,
11603         -no-standard-libraries, -no-warnings, -optimize, -output,
11604         -output=, -pass-exit-codes, -pedantic, -pedantic-errors, -pie,
11605         -pipe, -prefix, -prefix=, -preprocess, -print-file-name,
11606         -print-file-name=, -print-libgcc-file-name,
11607         -print-multi-directory, -print-multi-lib,
11608         -print-multi-os-directory, -print-prog-name, -print-prog-name=,
11609         -print-search-dirs, -print-sysroot, -print-sysroot-headers-suffix,
11610         -profile, -save-temps, -shared, -specs, -specs=, -static,
11611         -symbolic, -time, -verbose, -param=, -sysroot, coverage, e, u,
11612         symbolic): New.
11613         (fhelp, fhelp=, ftarget-help, fversion): Make into aliases.
11614         * gcc.c (A Short Introduction to Adding a Command-Line Option):
11615         Remove comment.
11616         (cc1_options): Correct specs for passing down --help,
11617         --target-help and --help=*.  Add spec for passing down --version.
11618         (struct option_map, option_map, target_option_translations,
11619         translate_options): Remove.
11620         (driver_handle_option): Handle OPT__version, OPT__help, OPT__help_
11621         and OPT__target_help instead of OPT_fversion, OPT_fhelp,
11622         OPT_fhelp_ and OPT_ftarget_help.
11623         (process_command): Don't call translate_options.  Call
11624         decode_cmdline_options_to_array before checking for
11625         -no-canonical-prefixes using decoded options.
11626         * opts-common.c (tm.h): Update comment on #include.
11627         (find_opt): Allow abbreviations of long options.
11628         (struct option_map, option_map): New.
11629         (decode_cmdline_option): Use them instead of hardcoding -Wno, -fno
11630         and -mno handling.
11631         (target_option_translations): New.
11632         (decode_cmdline_options_to_array): Handle
11633         TARGET_OPTION_TRANSLATE_TABLE in driver.
11634         * opts.c (common_handle_option): Don't handle OPT_fhelp,
11635         OPT_ftarget_help, OPT_fhelp_ or OPT_fversion.
11636
11637 2010-09-22  Richard Guenther  <rguenther@suse.de>
11638
11639         * tree-inline.c (optimize_inline_calls): Schedule cleanups
11640         only if we inlined something.  Block compaction and conditional
11641         folding are done by cfg cleanup.  Schedule update-address-taken.
11642         (tree_function_versioning): Remove redundant call to number_blocks.
11643         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Conditional
11644         folding is done by cfg cleanup.
11645         * passes.c (init_optimization_passes): Remove update-address-taken
11646         pass after IPA inlining.
11647
11648 2010-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
11649
11650         * postreload.c (move2add_note_store): Add reg_symbol_ref[] checks
11651         to update conditions. Fix reg_mode[] check.
11652
11653 2010-09-22  Hariharan Sandanagobalane  <hariharan@picochip.com>
11654
11655         * config/picochip/picochip.md (movhicc): Use expand to check whether
11656         movhicc is available and split it after reload.
11657
11658 2010-09-22  Richard Guenther  <rguenther@suse.de>
11659
11660         * tree-ssanames.c (release_dead_ssa_names): Do not remove
11661         callee edges here.
11662         * passes.c (init_optimization_passes): Remove early CFG cleanup.
11663         * tree-optimize.c (execute_cleanup_cfg_pre_ipa): Remove.
11664         (pass_cleanup_cfg): Likewise.
11665         (execute_fixup_cfg): Cleanup.
11666         * tree-pass.h (pass_cleanup_cfg): Remove.
11667
11668 2010-09-22  Martin Jambor  <mjambor@suse.cz>
11669
11670         * gimple-fold.c (fold_gimple_call): New parameter inplace, do not fold
11671         builtins if it is true.
11672         (fold_stmt_1): Call, fold_gimple_call always, pass inplace as a
11673         parameter.
11674
11675 2010-09-22  Martin Jambor  <mjambor@suse.cz>
11676
11677         * tree-sra.c (struct access): New field grp_no_warning.
11678         (create_access_replacement): Set TREE_NO_WARNING according to
11679          grp_no_warning.
11680         (create_artificial_child_access): Use build_ref_for_model and set
11681         grp_no_warning if build_user_friendly_ref_for_offset fails.
11682         (propagate_subaccesses_across_link): Likewise.
11683
11684 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
11685
11686         PR target/35664
11687         * config/sparc/constraints.md ('e'): Return NO_REGS if !TARGET_FPU.
11688         ('f'): Likewise.
11689
11690 2010-09-22  Tristan Gingold  <gingold@adacore.com>
11691
11692         * config/alpha/alpha.c (alpha_use_linkage): Initialize target field.
11693
11694 2010-09-22  Uros Bizjak  <ubizjak@gmail.com>
11695
11696         * config/i386/i386.h (MAX_STRINGOP_ALGS): Fix typo in the name.
11697         * config/i386/i386.c (decide_alg): Update for rename.
11698
11699 2010-09-22  Jakub Jelinek  <jakub@redhat.com>
11700
11701         PR rtl-optimization/45739
11702         * simplify-rtx.c (simplify_binary_operation_1): Optimize even
11703         vector mode | CONST0_RTX (mode) and ^ CONST0_RTX (mode).
11704
11705 2010-09-21  Anatoly Sokolov  <aesok@post.ru>
11706
11707         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): Remove macros.
11708         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
11709         Remove.
11710         * config/rs6000/rs6000.c (rs6000_output_addr_const_extra): Make static.
11711         (TTARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
11712
11713 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
11714
11715         PR objc/23710
11716         * c-parser.c (c_parser_objc_method_definition): Check the return
11717         value of objc_start_method_definition and if false is returned,
11718         parse the method definition but emit no code.
11719
11720 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
11721
11722         PR objc/25965
11723         * c-decl.c (detect_field_duplicates): If compiling Objective-C,
11724         call objc_get_interface_ivars ().
11725
11726 2010-09-21  Kai Tietz  <kai.tietz@onevision.com>
11727
11728         PR target/45694
11729         * config/i386/i386.c (ix86_expand_prologue): Save r10 in case that
11730         static chain-register is used for 64-bit.
11731
11732 2010-09-21  Richard Guenther  <rguenther@suse.de>
11733
11734         * dwarf2out.c (is_cu_die): New function.
11735         (add_pubtype): Use it.
11736         (gen_subprogram_die): Likewise.
11737         (gen_struct_or_union_type_die): Likewise.
11738         (dwarf2out_finish): Likewise.
11739         (comp_unit_die): Rename to ...
11740         (single_comp_unit_die): ... this.
11741         (comp_unit_die): New function lazily constructing and
11742         returning single_comp_unit_die.
11743         (is_cxx, is_fortran, is_ada, debug_dwarf, break_out_comdat_types,
11744         base_type_die, subrange_type_die, modified_type_die,
11745         lower_bound_default, add_bound_info, add_prototyped_attribute,
11746         dwarf2out_vms_debug_main_pointer, scope_die_for, retry_incomplete_types,
11747         dwarf2out_abstract_function, gen_type_die_with_usage, get_context_die,
11748         force_decl_die, gen_namespace_die, dwarf2out_decl,
11749         dwarf2out_start_source_file, dwarf2out_end_source_file,
11750         prune_unused_types, dwarf2out_finish): Use it.
11751         (gen_compile_unit_die): For GNU GIMPLE derive DW_AT_language from
11752         the global list of translation-unit decls.
11753         (dwarf2out_init): Do not create single_comp_unit_die here.
11754         (force_decl_die): Handle TRANSLATION_UNIT_DECL.
11755
11756 2010-09-21  Richard Guenther  <rguenther@suse.de>
11757
11758         * dwarf2out.c (dwarf2out_decl): Do not always generate a DIE
11759         for bool for C++.
11760
11761 2010-09-21  Bernd Schmidt  <bernds@codesourcery.com>
11762
11763         * config/arm/iterators.md (qhs_extenddi_op): New mode_attr.
11764         (qhs_extenddi_cstr): Likewise.
11765         * config/arm/arm.md (zero_extend<mode>di2, extend<mode>di2): Use
11766         them for the source operand.
11767
11768 2010-09-21  Uros Bizjak  <ubizjak@gmail.com>
11769
11770         * config/i386/i386.c (ix86_split_ashl): Rename single_width variable
11771         to half_width.  Use GET_MODE_BITSIZE to calculate mode size.
11772         (ix86_split_ashr): Ditto.
11773         (ix86_split_lshr): Ditto.
11774
11775 2010-09-21  Richard Guenther  <rguenther@suse.de>
11776
11777         PR tree-optimization/45580
11778         * tree-ssa-propagate.c (substitute_and_fold): Always replace
11779         regular uses.
11780         * gimple-fold.c (gimple_fold_obj_type_ref): For a BINFO without
11781         virtuals fold the call into a regular indirect one.
11782
11783 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
11784
11785         PR rtl-optimization/42775
11786         * cfgrtl.c (rest_of_pass_free_cfg): Recompute notes if delay slot
11787         scheduling is enabled.
11788
11789 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
11790
11791         PR rtl-optimization/45728
11792         * expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
11793         gen_lowpart_common first and if that fails, force_reg first
11794         before calling gen_lowpart.
11795
11796         PR middle-end/45678
11797         * cfgexpand.c (expand_one_stack_var_at): Use
11798         crtl->max_used_stack_slot_alignment as max_align, instead
11799         of maximum of that and PREFERRED_STACK_BOUNDARY.
11800         Don't call update_stack_alignment.
11801
11802 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
11803
11804         * langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
11805         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
11806         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
11807         * system.h (LANG_HOOKS_HASH_TYPES): Poison.
11808         * tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
11809         (build_nonstandard_integer_type): Likewise.
11810         (build_range_type_1): New function, built from...
11811         (build_range_type): ...this.  Call build_range_type_1.
11812         (build_nonshared_range_type): New function.
11813         (build_array_type_1): New function, built from...
11814         (build_array_type: ...this.  Call build_array_type_1.
11815         (build_nonshared_array_type): New function.
11816         * tree.h (build_nonshared_range_type): Declare.
11817         (build_nonshared_array_type): Likewise.
11818
11819 2010-09-20  Anatoly Sokolov  <aesok@post.ru>
11820
11821         * config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
11822         * config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
11823         (arm_class_likely_spilled_p): New function.
11824
11825 2010-09-20  Uros Bizjak  <ubizjak@gmail.com>
11826
11827         * config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
11828         indirect functions.
11829         (ix86_split_ashl): Ditto.
11830         (ix86_split_ashr): Ditto.
11831         (ix86_split_lshr): Ditto.
11832         (ix86_adjust_counter): Ditto.
11833
11834 2010-09-20  Nicola Pero  <nicola.pero@meta-innovation.com>
11835
11836         * c-family/c-common.h (constant_string_class): Documented with
11837         comment identical to the one already in c-common.c.
11838
11839 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
11840
11841         * dwarf2out.c (any_cfis_emitted): New static variable.
11842         (add_fde_cfi): Set it.
11843         (dwarf2out_frame_debug): Clear it before processing,
11844         if it is set afterwards, flush any queued reg saves.
11845
11846         PR debug/45124
11847         * dwarf2out.c (add_accessibility_attribute): Assume
11848         DW_ACCESS_private as the default for dwarf_version > 2
11849         and DW_TAG_class_type parent.
11850         (gen_inheritance_die): Assume DW_ACCESS_public as the default
11851         for dwarf_version > 2 and parent other than DW_TAG_class_type.
11852
11853 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
11854
11855         PR target/45726
11856         * arm.md (arm_movt): Only enable on machines with MOVT.
11857
11858 2010-09-20  Jie Zhang  <jie@codesourcery.com>
11859
11860         * config/arm/arm.c (arm_address_offset_is_imm): New.
11861         (arm_early_store_addr_dep): New.
11862         (arm_early_load_addr_dep): New.
11863         * config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
11864         (arm_early_load_addr_dep): Declare.
11865         (arm_address_offset_is_imm): Declare.
11866         * config/arm/cortex-m4.md: New file.
11867         * config/arm/cortex-m4-fpu.md: New file.
11868         * config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
11869         (attr generic_sched): Exclude cortexm4.
11870         (attr generic_vfp): Exclude cortexm4.
11871
11872 2010-09-20  Richard Guenther  <rguenther@suse.de>
11873
11874         PR middle-end/45704
11875         * gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
11876
11877 2010-09-20  Jan Hubicka  <jh@suse.cz>
11878
11879         PR tree-optimize/45605
11880         * cgraph.h (const_value_known_p): Declare.
11881         (varpool_decide_const_value_known): Remove.
11882         * tree-ssa-ccp.c (get_base_constructor): Use it.
11883         * lto-cgraph.c (compute_ltrans_boundary): Likewise.
11884         * expr.c (string_constant): Likewise.
11885         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
11886         * ipa.c (ipa_discover_readonly_nonaddressable_var,
11887         function_and_variable_visibility): Likewise.
11888         * gimplify.c (gimplify_call_expr): Likewise.
11889         * gimple-fold.c (get_symbol_constant_value): Likewise.
11890         * varpool.c (varpool_decide_const_value_known): Replace by...
11891         (const_value_known_p): ... this one; handle other kinds of DECLs
11892         too and work for automatic vars.
11893         (varpool_finalize_decl): Use const_value_known_p.
11894
11895 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
11896
11897         PR target/45726
11898         * arm.md (arm_movtas_ze): Only enable on machine with MOVT.
11899
11900 2010-09-20  Richard Guenther  <rguenther@suse.de>
11901
11902         PR tree-optimization/45705
11903         * tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
11904
11905 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
11906
11907         PR rtl-optimization/45695
11908         * combine.c (try_combine): When splitting a two set pattern,
11909         make sure the pattern which will be put into i2 doesn't use REGs
11910         or MEMs set by insns in between i2 and i3.
11911
11912 2010-09-19  Jan Hubicka  <jh@suse.cz>
11913
11914         PR lto/44246
11915         * lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
11916         processing same node twice.
11917
11918 2010-09-19  Anatoly Sokolov  <aesok@post.ru>
11919
11920         * config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
11921         * config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
11922         (bfin_class_likely_spilled_p): New function
11923
11924 2010-09-19  Ira Rosen  <irar@il.ibm.com>
11925
11926         PR tree-optimization/45714
11927         * tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
11928         created in vectorizable_call instead of the original statement in
11929         def stmt updates.
11930
11931 2010-09-19  Uros Bizjak  <ubizjak@gmail.com>
11932
11933         * config/i386/i386-protos.h (split_double_mode): New prototype.
11934         (split_di, split_ti): Remove prototypes.
11935         * config/i386/i386.c (split_double_mode): New function.
11936         (split_di, split_ti): Remove.
11937         (ix86_expand_branch): Use split_double_mode.
11938         (ix86_split_to_parts): Ditto.
11939         (ix86_split_ashl): Ditto.
11940         (ix86_split_ashr): Ditto.
11941         (ix86_split_lshr): Ditto.
11942         (ix86_force_to_memory): Ditto.
11943         * config/i386/i386.md: Use split_double_mode in double-mode splitters.
11944
11945 2010-09-18  Jan Hubicka  <jh@suse.cz>
11946
11947         PR tree-optimization/45453
11948         * cgraphunit.c (cgraph_finalize_function): Consider comdat & external
11949         virtual functions are reachable.
11950         * ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
11951         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
11952         * ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
11953         when modifying function.
11954
11955 2010-09-18  Jan Hubicka  <jh@suse.cz>
11956
11957         PR tree-optimization/45605
11958         * cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
11959         * gimple-fold.c (static_object_in_other_unit_p): New function.
11960         (canonicalize_constructor_val): Use it.
11961         (get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
11962         returning NULL.
11963         (gimple_fold_obj_type_ref_known_binfo): Use
11964         static_object_in_other_unit_p.
11965
11966 2010-09-18  Richard Guenther  <rguenther@suse.de>
11967
11968         PR tree-optimization/45709
11969         * tree-inline.c (copy_phis_for_bb): Delay commit of edge
11970         insertions until after all PHI nodes of the block are processed.
11971
11972 2010-09-18  Tijl Coosemans  <tijl@coosemans.org>
11973
11974         * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
11975
11976 2010-09-18  Kai Tietz  <kai.tietz@onevision.com>
11977
11978         * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
11979
11980 2010-09-18  Richard Guenther  <rguenther@suse.de>
11981
11982         PR tree-optimization/45709
11983         * tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
11984
11985 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
11986
11987         * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
11988         (dot_deps_stmt): Same.
11989         * graphite-poly.c (dot_lst): Same.
11990         * graphite-scop-detection.c (dot_all_scops): Same.
11991         (dot_scop): Same.
11992
11993 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
11994
11995         Revert:
11996         2009-12-16  Ben Elliston  <bje@au.ibm.com>
11997
11998         * tree-data-ref.c (dot_rdg_1): Added back.
11999         (dot_rdg): Same.  Added "#if 0" around system call.
12000
12001 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
12002             Richard Henderson  <rth@redhat.com>
12003
12004         * config/i386/i386.c (initial_ix86_tune_features): Add
12005         X86_TUNE_PAD_SHORT_FUNCTION.
12006         (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
12007         (ix86_count_insn): New.
12008         (ix86_pad_short_function): Likewise.
12009         (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
12010
12011         * config/i386/i386.h (ix86_tune_indices): Add
12012         X86_TUNE_PAD_SHORT_FUNCTION.
12013         (TARGET_PAD_SHORT_FUNCTION): New.
12014
12015         * config/i386/i386.md (UNSPEC_NOPS): New.
12016         (nops): Likewise.
12017
12018 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
12019
12020         PR middle-end/45234
12021         * calls.c (expand_call): Make sure that all variable sized
12022         adjustments are multiple of preferred stack boundary after
12023         stack alignment.
12024
12025 2010-09-17  DJ Delorie  <dj@redhat.com>
12026
12027         * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
12028         passed an invalid value, print an error instead of ICEing.
12029         (valid_psw_flag): New.
12030         (rx_expand_builtin): Call it for setpsw/clrpsw.
12031         (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
12032
12033         * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
12034         (bitclr_in_memory): Likewise.
12035         (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
12036
12037 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
12038
12039         PR middle-end/45678
12040         * cfgexpand.c (update_stack_alignment): New.
12041         (get_decl_align_unit): Use it.
12042         (expand_one_stack_var_at): Call update_stack_alignment.
12043
12044 2010-09-17  Richard Guenther  <rguenther@suse.de>
12045
12046         * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
12047         Properly copy the read string.
12048
12049 2010-09-17  Joseph Myers  <joseph@codesourcery.com>
12050
12051         * doc/options.texi (Variable): Document.
12052         * optc-gen.awk, opth-gen.awk: Handle Variable records.  Don't
12053         generate target_flags declarations explicitly.  Don't define
12054         VarExists variables for the driver.
12055         * common.opt (target_flags): New Variable record.
12056         (flag_dump_unnumbered, flag_dump_unnumbered_links,
12057         flag_var_tracking, flag_var_tracking_assignments,
12058         flag_var_tracking_assignments_toggle): Don't mark variables with
12059         VarExists.
12060         * config/i386/i386.c (ix86_isa_flags): Don't define here.
12061         * config/i386/i386.opt (ix86_isa_flags): Define here.
12062         * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
12063         * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
12064         VarExists.
12065         * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
12066         * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
12067         Only define for generator programs.
12068         * rtlanal.c (target_flags): Remove.
12069         * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
12070         flag_var_tracking_assignments_toggle): Remove.
12071
12072 2010-09-17  Michael Matz  <matz@suse.de>
12073
12074         PR tree-optimization/43432
12075         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
12076         Accept backwards consecutive accesses.
12077         (vect_create_data_ref_ptr): If step is negative generate
12078         decreasing IVs.
12079         * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
12080         (perm_mask_for_reverse, reverse_vec_elements): New functions.
12081         (vectorizable_load): Handle loads with negative steps when easily
12082         possible.
12083
12084 2010-09-03  Jan Hubicka  <jh@suse.cz>
12085
12086         * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
12087
12088 2010-09-03  Naveen H.S  <naveen.S@kpitcummins.com>
12089
12090         * config/v850/v850.c (v850_function_value_regno_p): Make static.
12091         Adjust comments. Declare.
12092         (TARGET_FUNCTION_VALUE_REGNO_P): Define.
12093         * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
12094
12095 2010-09-17  Richard Guenther  <rguenther@suse.de>
12096
12097         * common.opt (combine): Remove.
12098         * gcc.c (default_compilers): Remove specs testing combine.
12099         The C compilers no longer can combine.
12100         (option_map): Remove -combine.
12101         (display_help): Remove -combine.
12102         (driver_handle_option): Remove OPT_combine handling.
12103         (compile_input_file_p): Remove.
12104         (do_spec): Remove code concerning combine.
12105         (main): Likewise.
12106         * doc/invoke.texi: Remove traces of -combine.
12107         * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
12108
12109 2010-09-17  Richard Guenther  <rguenther@suse.de>
12110
12111         PR middle-end/45678
12112         * builtins.c (fold_builtin_memory_op): Always properly adjust
12113         alignment of memory accesses.
12114
12115 2010-09-16  Jan Hubicka  <jh@suse.cz>
12116
12117         * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
12118         processing clone.
12119
12120 2010-09-16  H.J. Lu  <hongjiu.lu@intel.com>
12121
12122         * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
12123
12124         * config/i386/i386.c (predict_jump): Add prototype.
12125         (flag_opts): Add -m8bit-idiv.
12126         (ix86_split_idivmod): New.
12127
12128         * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
12129         Add 2 splitters for SI/DI mode divide.
12130         (divmod<mode>4_1): New pattern.
12131         (udivmod<mode>4_1): Likewise.
12132         (testdi_ccno_1): Likewise.
12133
12134         * config/i386/i386.opt (m8bit-idiv): New.
12135
12136         * doc/invoke.texi: Document -m8bit-idiv.
12137
12138 2010-09-16  Reza Yazdani  <reza.yazdani@amd.com>
12139
12140         PR bootstrap/45680
12141         * config/i386/i386.c (min_insn_size): Moved out of the
12142         ASM_OUTPUT_MAX_SKIP_PAD ifdef.
12143
12144 2010-09-16  Jan Hubicka  <jh@suse.cz>
12145
12146         * lto-cgraph.c (lto_output_node): Fix handling of clones.
12147         * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
12148         unreachable clones with reachable clones.
12149         * tree-inline.c (copy_bb): Fix sanity checking when producing
12150         unreachable clone.
12151
12152 2010-09-16  Anatoly Sokolov  <aesok@post.ru>
12153
12154         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
12155         (TARGET_MEMORY_MOVE_COST): Define.
12156         (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
12157
12158 2010-09-16  Alexander Monakov  <amonakov@ispras.ru>
12159
12160         * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
12161         maybe_tidy_empty_bb.
12162
12163         Revert:
12164         2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
12165         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
12166
12167 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
12168
12169         * target.def (target_option.optimization): New hook.
12170         * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
12171         TARGET_OPTION_OPTIMIZATION hook.
12172         * doc/tm.texi: Regenerate.
12173         * hooks.c (hook_void_int_int): New.
12174         * hooks.h (hook_void_int_int): Declare.
12175         * opts.c: Don't include tm_p.h.
12176         (decode_options): Use targetm.target_option.optimization instead
12177         of OPTIMIZATION_OPTIONS.
12178         * system.h (OPTIMIZATION_OPTIONS): Poison.
12179         * config/arm/arm-protos.h (arm_optimization_options): Remove.
12180         * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
12181         (arm_optimization_options): Rename to arm_option_optimization.
12182         Make static.
12183         * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
12184         * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
12185         (cris_option_optimization): New.
12186         * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
12187         * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
12188         (crx_option_optimization): New.
12189         * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
12190         * config/frv/frv-protos.h (frv_optimization_options): Remove.
12191         * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
12192         (frv_optimization_options): Rename to frv_option_optimization.
12193         Make static.
12194         * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
12195         * config/h8300/h8300.c (h8300_option_optimization): New.
12196         (TARGET_OPTION_OPTIMIZATION): Define.
12197         * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
12198         * config/i386/i386-protos.h (optimization_options): Remove.
12199         * config/i386/i386.c (optimization_options): Rename to
12200         ix86_option_optimization.  Make static.
12201         (TARGET_OPTION_OPTIMIZATION): Define.
12202         * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
12203         * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
12204         * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
12205         (ia64_optimization_options): Rename to ia64_option_optimization.
12206         Make static.  Call SUBTARGET_OPTIMIZATION_OPTIONS.
12207         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove.  Remove
12208         commented-out definition.
12209         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
12210         instead of OPTIMIZATION_OPTIONS.
12211         * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
12212         (m32r_option_optimization): New.
12213         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
12214         * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
12215         Remove.
12216         * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
12217         (mcore_option_optimization): New.
12218         * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
12219         * config/mep/mep-protos.h (mep_optimization_options): Remove.
12220         * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
12221         (mep_optimization_options): Rename to mep_option_optimization.
12222         Make static.  Take unused level and size parameters.
12223         * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
12224         * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
12225         (mmix_option_optimization): New.
12226         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
12227         * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
12228         (pdp11_option_optimization): New.
12229         * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
12230         * config/rs6000/rs6000-protos.h (optimization_options): Remove.
12231         * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
12232         (optimization_options): Rename to rs6000_option_optimization.
12233         Make static.
12234         * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
12235         * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
12236         * config/rx/rx.c (rx_set_optimization_options): Rename to
12237         rx_option_optimization.  Make static.  Take unused level and size
12238         parameters.
12239         (TARGET_OPTION_OPTIMIZATION): Define.
12240         * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
12241         * config/s390/s390-protos.h (optimization_options): Remove.
12242         * config/s390/s390.c (optimization_options): Rename to
12243         s390_option_optimization.  Make static.  Don't mark size parameter
12244         unused.
12245         (TARGET_OPTION_OPTIMIZATION): Define.
12246         * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
12247         * config/sh/sh-protos.h (sh_optimization_options): Remove.
12248         * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
12249         (sh_optimization_options): Rename to sh_option_optimization.  Make
12250         static.  Don't mark parameters unused.
12251         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
12252         * config/spu/spu-protos.h (spu_optimization_options): Remove.
12253         * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
12254         (spu_optimization_options): Rename to spu_option_optimization.
12255         Make static.
12256         * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
12257         * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
12258         (v850_option_optimization): New.
12259         * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
12260         * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
12261         (xtensa_option_optimization): New.
12262         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
12263
12264 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
12265
12266         * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
12267         (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
12268         * doc/tm.texi: Regenerate.
12269         * system.h (OVERRIDE_OPTIONS): Poison.
12270         * target.def (override): Default to hook_void_void.
12271         * targhooks.c (default_target_option_override): Remove.
12272         * genmodes.c, machmode.def: Update comments mentioning
12273         OVERRIDE_OPTIONS.
12274         * config/alpha/alpha-modes.def: Update comment mentioning
12275         alpha_override_options.
12276         * config/alpha/alpha-protos.h (override_options): Remove.
12277         * config/alpha/alpha.c (override_options): Rename to
12278         alpha_option_override.  Call SUBTARGET_OVERRIDE_OPTIONS.  Make static.
12279         (TARGET_OPTION_OVERRIDE): Define.
12280         * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
12281         * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
12282         of OVERRIDE_OPTIONS.
12283         * config/arc/arc-protos.h (arc_init): Remove.
12284         * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
12285         (arc_init): Rename to arc_option_override.  Make static.
12286         * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
12287         (OVERRIDE_OPTIONS): Remove.
12288         * config/arm/arm-protos.h (arm_override_options): Remove.
12289         * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
12290         (arm_override_options): Rename to arm_option_override.  Make
12291         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
12292         * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
12293         * config/arm/arm.md: Update comment referring to arm_override_options.
12294         * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
12295         instead of OVERRIDE_OPTIONS.
12296         * config/avr/avr-protos.h (avr_override_options): Remove.
12297         * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
12298         (avr_override_options): Rename to avr_option_override.  Make static.
12299         * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
12300         * config/bfin/bfin-protos.h (override_options): Remove (twice).
12301         * config/bfin/bfin.c (override_options): Rename to
12302         bfin_option_override.  Make static.
12303         (TARGET_OPTION_OVERRIDE): Define.
12304         * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
12305         * config/cris/cris-protos.h (cris_override_options): Remove.
12306         * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
12307         (cris_override_options): Rename to cris_option_override.  Make static.
12308         * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
12309         * config/frv/frv-protos.h (frv_override_options): Remove.
12310         * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
12311         (frv_override_options): Rename to frv_option_override.  Make static.
12312         * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
12313         * config/h8300/h8300-protos.h (h8300_init_once): Remove.
12314         * config/h8300/h8300.c (h8300_init_once): Rename to
12315         h8300_option_override.  Make static.
12316         (TARGET_OPTION_OVERRIDE): Define.
12317         * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
12318         * config/i386/i386-protos.h (override_options): Remove.
12319         * config/i386/i386.c (override_options): Rename to
12320         ix86_option_override_internal.  Make static.  Comments referring
12321         to this function and callers changed.
12322         (ix86_option_override): New.
12323         (TARGET_OPTION_OVERRIDE): Define.
12324         * config/i386/i386.h (OVERRIDE_OPTION): Remove.
12325         * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
12326         * config/ia64/ia64.c (ia64_file_start): Update comment referring
12327         to ia64_override_options.
12328         * config/iq2000/iq2000-protos.h (override_options): Remove.
12329         * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
12330         (override_options): Rename to iq2000_option_override.  Make static.
12331         * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
12332         * config/lm32/lm32-protos.h (lm32_override_options): Remove.
12333         * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
12334         (lm32_override_options): Rename to lm32_option_override.  Make static.
12335         * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
12336         * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
12337         (m32r_option_override): New.
12338         (m32r_init): Update comment.
12339         * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
12340         * config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
12341         * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
12342         (m68hc11_override_options): Rename to m68hc11_option_override.
12343         Make static.  Return void.
12344         * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
12345         * config/m68k/m68k-protos.h (override_options): Remove.
12346         * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
12347         (override_options): Rename to m68k_option_override.  Make static.
12348         * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
12349         * config/mcore/mcore-protos.h (mcore_override_options): Remove.
12350         * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
12351         (mcore_override_options): Rename to mcore_option_override.  Make
12352         static.
12353         * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
12354         * config/mep/mep-protos.h (mep_override_options): Remove.
12355         * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
12356         (mep_override_options): Rename to mep_option_override.  Make static.
12357         * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
12358         * config/mmix/mmix-protos.h (mmix_override_options): Remove.
12359         * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
12360         (mmix_override_options): Rename to mmix_option_override.  Make static.
12361         * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
12362         * config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
12363         * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
12364         (mn10300_override_options): Rename to mn10300_option_override.
12365         Make static.
12366         * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
12367         * config/moxie/moxie-protos.h (moxie_override_options): Remove.
12368         * config/moxie/moxie.c (moxie_override_options): Rename to
12369         moxie_option_override.  Make static.
12370         (TARGET_OPTION_OVERRIDE): Define.
12371         * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
12372         * config/picochip/picochip-protos.h (picochip_override_options):
12373         Remove.  Update comment referring to picochip_override_options.
12374         * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
12375         (picochip_override_options): Rename to picochip_option_override.
12376         Make static.  Update comment and definition of
12377         TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
12378         * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
12379         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
12380         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
12381         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
12382         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
12383         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
12384         * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
12385         instead of OVERRIDE_OPTIONS.
12386         * config/rs6000/rs6000-modes.def: Update comment referring to
12387         rs6000_override_options.
12388         * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
12389         * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
12390         (rs6000_override_options): Rename to
12391         rs6000_option_override_internal.  Make static.  Commented
12392         referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
12393         (rs6000_option_override): New.
12394         * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
12395         instead of OVERRIDE_OPTIONS.
12396         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
12397         * config/s390/s390-protos.h (override_options): Remove.
12398         * config/s390/s390.c (override_options): Rename to
12399         s390_option_override.  Make static.
12400         (TARGET_OPTION_OVERRIDE): Define.
12401         * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
12402         * config/score/score-protos.h (score_override_options): Remove.
12403         * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
12404         (score_override_options): Rename to score_option_override.  Make
12405         static.
12406         * config/score/score.h (OVERRIDE_OPTIONS): Remove.
12407         Update comment referring to override_options.
12408         * config/score/score3.c (score3_override_options): Rename to
12409         score3_option_override.
12410         * config/score/score3.h (score3_override_options): Rename to
12411         score3_option_override.
12412         * config/score/score7.c (score7_override_options): Rename to
12413         score7_option_override.
12414         * config/score/score7.h (score7_override_options): Rename to
12415         score7_option_override.
12416         * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
12417         * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
12418         (sparc_override_options): Rename to sparc_option_override.  Make
12419         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
12420         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
12421         * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
12422         instead of OVERRIDE_OPTIONS.
12423         * config/spu/spu-protos.h (spu_override_options): Remove.
12424         * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
12425         (spu_override_options): Rename to spu_option_override.  Make
12426         static.
12427         * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
12428         * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
12429         OVERRIDE_OPTIONS.
12430         * config/vax/vax-protos.h (override_options): Remove.
12431         * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
12432         (override_options): Rename to vax_option_override.  Make static.
12433         Call SUBTARGET_OVERRIDE_OPTIONS.
12434         * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
12435         * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
12436         * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
12437         * config/xtensa/xtensa-protos.h (override_options): Remove.
12438         * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
12439         (override_options): Rename to xtensa_option_override.  Make static.
12440         * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
12441
12442 2010-09-16  Richard Guenther  <rguenther@suse.de>
12443
12444         PR tree-optimization/45623
12445         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
12446         (get_constraint_for_component_ref): If computing a constraint
12447         for the rhs handle type punning through unions.
12448         (get_constraint_for_address_of): Adjust.
12449         (get_constraint_for_1): Likewise.
12450         (get_constraint_for): Likewise.
12451         (get_constraint_for_rhs): New function.
12452         (do_structure_copy): Adjust.
12453         (make_constraint_to): Likewise.
12454         (handle_const_call): Likewise.
12455         (find_func_aliases): Likewise.
12456         (process_ipa_clobber): Likewise.
12457         (create_variable_info_for): Likewise.
12458
12459 2010-09-16  Ira Rosen  <irar@il.ibm.com>
12460
12461         * tree-vectorizer.c: Fix documentation.
12462         * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
12463         (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
12464         is_pattern_stmt_p, is_loop_header_bb_p,
12465         stmt_vinfo_set_inside_of_loop_cost,
12466         stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
12467         known_alignment_for_access_p): Likewise.
12468         * tree-vect-loop.c: Fix documentation.
12469         (vect_get_cost): Start function name from new line.
12470         * tree-vect-data-refs.c: Fix documentation.
12471         * tree-vect_stmts.c: Likewise.
12472         (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
12473         (vectorizable_store): Free vec_oprnds if allocated.
12474         (vectorizable_condition): Initialize several variables to avoid
12475         warnings.
12476         * tree-vect-slp.c: Fix documentation.
12477
12478 2010-09-16  Richard Guenther  <rguenther@suse.de>
12479
12480         * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
12481         is TS_TRANSLATION_UNIT_DECL.
12482         (initialize_tree_contains_struct): Adjust.
12483         (all_translation_units): New global vector.
12484         (build_translation_unit_decl): New function.
12485         * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
12486         (struct tree_translation_unit_decl): New.
12487         (all_translation_units): Declare.
12488         (union tree_node): Add translation_unit_decl member.
12489         (build_translation_unit_decl): Declare.
12490         * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
12491         * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
12492         New function.
12493         (pack_value_fields): Call it.
12494         (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
12495         (lto_output_ts_translation_unit_decl_tree_pointers): New function.
12496         (lto_output_tree_pointers): Call it.
12497         * lto-streamer-in.c (lto_input_tree_ref): Handle references
12498         to TRANSLATION_UNIT_DECL.
12499         (unpack_ts_translation_unit_decl_value_fields): New function.
12500         (unpack_value_fields): Call it.
12501         (lto_input_ts_translation_unit_decl_tree_pointers): New function.
12502         (lto_input_tree_pointers): Call it.
12503         * lto-streamer.c (check_handled_ts_structures): Adjust.
12504         * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
12505         * c-decl.c (all_translation_units): Remove.
12506         (pop_scope): Use build_translation_unit_decl.
12507         (collect_all_refs): Adjust.
12508         (for_each_global_decl): Likewise.
12509         (c_write_global_declarations): Likewise.
12510
12511 2010-09-16  Jakub Jelinek  <jakub@redhat.com>
12512
12513         PR bootstrap/45686
12514         * fold-const.c (fold_checksum_tree): Change slot from const void **
12515         to void **, use CONST_CAST_TREE to store into *slot.
12516
12517 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
12518
12519         * config/i386/i386.md: Remove unneeded empty conditions and
12520         preparation statements from expanders.
12521         * config/i386/mmx.md: Ditto.
12522         * config/i386/sse.md: Ditto.
12523
12524 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
12525
12526         * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
12527
12528 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
12529
12530         PR rtl-optimization/45593
12531         * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
12532         insns that were in delay slots as stand-alone insns.
12533
12534 2010-09-15  Ian Lance Taylor  <iant@google.com>
12535
12536         * incpath.c (remove_duplicates): If name is not a directory, issue
12537         a warning rather than an error.
12538
12539 2010-09-15  Martin Jambor  <mjambor@suse.cz>
12540
12541         PR middle-end/45644
12542         * tree-sra.c (create_access): Check for bit-fields directly.
12543
12544 2010-09-15  Jakub Jelinek  <jakub@redhat.com>
12545
12546         PR tree-optimization/45633
12547         * tree-cfg.c (verify_gimple_assign_binary): Allow
12548         MINUS_EXPR with lhs and rhs1 pointer vector and
12549         rhs2 sizetype vector.
12550         * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
12551         or vector pointer use TER to optimize pointer subtraction.
12552
12553 2010-09-15  Jie Zhang  <jie@codesourcery.com>
12554
12555         * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
12556         fcmpd to fcmps.
12557
12558 2010-09-15  Ian Lance Taylor  <iant@google.com>
12559
12560         * config/i386/i386.md (truncxf<mode>2): Fix indentation.
12561
12562 2010-09-15  Ian Lance Taylor  <iant@google.com>
12563
12564         * function.c (get_arg_pointer_save_area): Set
12565         arg_pointer_save_area_init to true.
12566
12567 2010-09-15  Martin Jambor  <mjambor@suse.cz>
12568
12569         * tree-sra.c (generate_subtree_copies): Updated comment.
12570         (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
12571         obtained from the statement iterator instead.
12572         (load_assign_lhs_subreplacements): Removed parameters lhs and
12573         right_offset, which is obtained from top_racc instead.  Parameter lacc
12574         is now expected to be the root of the processed tree rather than root's
12575         first child.  Updated all callers.
12576
12577 2010-09-15  Joseph Myers  <joseph@codesourcery.com>
12578
12579         * config/pdp11/pdp11.c (register_move_cost): Rename to
12580         pdp11_register_move_cost.
12581         * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
12582         pdp11_register_move_cost.
12583         * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
12584         pdp11_register_move_cost instead of register_move_cost.
12585
12586 2010-09-15  Tejas Belagod  <tejas.belagod@arm.com>
12587
12588         * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
12589         pattern for vmovn. Expansion in case of non
12590         -mvectorize-with-neon-quad.
12591         (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
12592         non- -mvectorize-with-neon-quad case.
12593         (move_lo_quad_<mode>): New expansion to vmov into low part.
12594         (move_hi_quad_<mode>): New expansion to vmov into high part.
12595         (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
12596         (move_lo_quad_v4sf): Likewise.
12597         (move_lo_quad_v8hi): Likewise.
12598         (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
12599         low part.
12600         (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
12601         high part.
12602         * config/arm/iterators.md (ANY128): New mode iterator.
12603         (V_narrow_pack): New mode attribute.
12604         (V_HALF): Add attribute.
12605         (V_DOUBLE): Add attribute.
12606         (V_mode_nunits): Add attribute.
12607
12608 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
12609
12610         * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
12611         is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
12612
12613 2010-09-15  Olivier Hainque  <hainque@adacore.com>
12614             Jose Ruiz  <ruiz@adacore.com>
12615
12616         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
12617         * config/alpha/osf5-unwind.h: New file.
12618
12619 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
12620
12621         PR bootstrap/45672
12622         * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
12623         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
12624         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
12625
12626 2010-09-15  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
12627
12628         * c-lang.h (struct lang_type): Add variable_size GTY option.
12629
12630 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
12631
12632         PR bootstrap/45672
12633         * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
12634
12635 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
12636
12637         * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
12638         result isn't used in memory address.
12639
12640 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
12641
12642         * defaults.h (UNITS_PER_SIMD_WORD): Removed.
12643         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
12644         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
12645         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
12646         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
12647         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
12648
12649         * target.def: Add units_per_simd_word to vectorize.
12650
12651         * targhooks.c (default_units_per_simd_word): New.
12652         * targhooks.h (default_units_per_simd_word): Likewise.
12653         * config/arm/arm.c (arm_units_per_simd_word): Likewise.
12654         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
12655         * config/mips/mips.c (mips_units_per_simd_word): Likewise.
12656         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
12657         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
12658         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
12659         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
12660         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
12661
12662         * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
12663         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
12664
12665         * tree-vect-stmts.c: Don't include "tm_p.h".
12666         (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
12667         with targetm.vectorize.units_per_simd_word.
12668
12669         * system.h (UNITS_PER_SIMD_WORD): Poisoned.
12670
12671         * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
12672
12673         * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
12674         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
12675
12676         * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD.  Add
12677         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
12678
12679         * doc/tm.texi: Regenerated.
12680
12681 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
12682
12683         * tree-vect-stmts.c: Include "tm_p.h".
12684
12685         * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
12686         out of RTX_CODE.
12687
12688 2010-09-14  Martin Jambor  <mjambor@suse.cz>
12689
12690         * tree-sra.c (build_ref_for_offset): Loc made a parameter.  Set the
12691         location of generated statement.  Changed all callers.
12692         (build_ref_for_model): New parameter loc which used to set location of
12693         all generated expressions.  Changed all callers.
12694         (generate_subtree_copies): Likewise.
12695         (init_subtree_with_zero): Likewise.
12696         (sra_modify_expr): Set locations of all generated statements and
12697         expressions to the location the original statement.
12698         (handle_unscalarized_data_in_subtree): Likewise.
12699         (load_assign_lhs_subreplacements): Likewise.
12700         (sra_modify_constructor_assign): Likewise.
12701         (sra_modify_assign): Likewise.
12702
12703 2010-09-14  Eric Botcazou  <ebotcazou@adacore.com>
12704
12705         PR target/45277
12706         PR target/45363
12707         PR target/45407
12708         * doc/install.texi (sparc*-*-*): New section.
12709         (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
12710
12711 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
12712
12713         PR middle-end/45567
12714         * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
12715         expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
12716         (expand_builtin): Adjust caller.
12717         (expand_builtin_unop): Only use subtarget if it has the right mode.
12718
12719 2010-09-14  Tristan Gingold  <gingold@adacore.com>
12720
12721         * configure.ac (plugins): Fix typos.
12722         * configure: Regenerate.
12723
12724 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
12725
12726         PR debug/45660
12727         * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
12728         gen_type_die for function/method return type.
12729
12730 2010-09-14  Ira Rosen  <irar@il.ibm.com>
12731
12732         PR tree-optimization/45470
12733         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
12734         can throw an exception.
12735         * tree-vect-stmts.c (vectorizable_call): Likewise.
12736
12737 2010-09-14  DJ Delorie  <dj@redhat.com>
12738
12739         PR target/44749
12740         * config/mep/mep-protos.h (mep_save_register_info,
12741         mep_reinit_regs, mep_init_regs): Declare.
12742
12743         * config/mep/mep.c: Move all target definitions to the end of the
12744         file to avoid the need for duplicate declarations.
12745         (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
12746         (mep_reorg_erepeat): Remove unused variables.
12747         (mep_expand_builtin): Likewise.
12748
12749         * config/mep/mep-pragma.c: Don't include rtl.h.
12750         (INVALID_REGNUM): New.
12751         (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
12752         functions.
12753         (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
12754         Avoid enum/integer math.
12755
12756 2010-09-13  Joseph Myers  <joseph@codesourcery.com>
12757
12758         PR target/44749
12759         * config/mep/t-mep (GTM_H): Add insn-constants.h.
12760         * config/mep/mep.c (mep_conditional_register_usage): Take no
12761         parameters.
12762         * config/mep/mep-protos.h (mep_conditional_register_usage): Update
12763         prototype.
12764         * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
12765         call to mep_conditional_register_usage.
12766
12767 2010-09-13  Eric Botcazou  <ebotcazou@adacore.com>
12768
12769         PR debug/43937
12770         * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
12771         the DECL as well.
12772
12773 2010-09-13  Jakub Jelinek  <jakub@redhat.com>
12774
12775         PR rtl-optimization/45617
12776         * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
12777         even if low N bits of X aren't known to be zero.
12778
12779 2010-09-13  H.J. Lu  <hongjiu.lu@intel.com>
12780
12781         * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
12782
12783         * config/i386/i386.c (initial_ix86_tune_features): Add
12784         X86_TUNE_VECTORIZE_DOUBLE.
12785         (ix86_units_per_simd_word): New.
12786
12787         * config/i386/i386.h (ix86_tune_indices): Add
12788         X86_TUNE_VECTORIZE_DOUBLE.
12789         (TARGET_VECTORIZE_DOUBLE): New.
12790         (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
12791
12792 2010-09-13  Pat Haugen  <pthaugen@us.ibm.com>
12793
12794         * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
12795         (new_temp_expr_table): Allocate call_cnt vector.
12796         (free_temp_expr_table): Free it.
12797         (process_replaceable): Add call_cnt parm and set in vector.
12798         (find_replaceable_in_bb): Skip replacement if def/use span a call.
12799         (debug_ter): Dump call_cnt value, remove stderr uses.
12800
12801 2010-09-13  Jan Hubicka  <jh@suse.cz>
12802
12803         * tree.c (build_zero_cst): New.
12804         * tree.h (build_zero_cst): Declare.
12805         * tree-ssa-ccp.c (get_constant_value): Accept general operands.
12806         (get_base_constructor): Break out from ...
12807         (fold_const_aggregate_ref): Here; handle empty constructors.
12808
12809 2010-09-13  Marcus Shawcroft  <marcus.shawcroft@arm.com>
12810
12811         * config/arm/arm.md: (define_attr "conds"): Update comment.
12812         * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
12813         conds attribute to clob.
12814         (arm_sync_compare_and_swapsi): Likewise.
12815         (arm_sync_compare_and_swap<mode>): Likewise.
12816         (arm_sync_lock_test_and_setsi): Likewise.
12817         (arm_sync_lock_test_and_set<mode>): Likewise.
12818         (arm_sync_new_<sync_optab>si): Likewise.
12819         (arm_sync_new_nandsi): Likewise.
12820         (arm_sync_new_<sync_optab><mode>): Likewise.
12821         (arm_sync_new_nand<mode>): Likewise.
12822         (arm_sync_old_<sync_optab>si): Likewise.
12823         (arm_sync_old_nandsi): Likewise.
12824         (arm_sync_old_<sync_optab><mode>): Likewise.
12825         (arm_sync_old_nand<mode>): Likewise.
12826
12827 2010-09-13  Olivier Hainque  <hainque@adacore.com>
12828
12829         * fwprop.c (forward_propagate_and_simplify): Only attach a
12830         REG_EQUAL note to an insn if the destination is a register.
12831         * gcse.c (try_replace_reg): Likewise.
12832
12833 2010-09-13  Richard Guenther  <rguenther@suse.de>
12834
12835         PR tree-optimization/45611
12836         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
12837         (copy_ref_info): Likewise.
12838
12839 2010-09-13  Alexandre Oliva  <aoliva@redhat.com>
12840
12841         PR debug/45604
12842         PR debug/45419
12843         PR debug/45408
12844         * tree-pretty-print.c (dump_generic_node): Disregard top-level
12845         types of MEM_REF pointer types to the same type.
12846
12847 2010-09-13  Hans-Peter Nilsson  <hp@axis.com>
12848
12849         PR rtl-optimization/41087
12850         * ifcvt.c (noce_get_condition): Don't allow conditions with
12851         side-effects.
12852
12853 2010-09-12  Anatoly Sokolov  <aesok@post.ru>
12854
12855         * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
12856         * config/frv/frv-protos.h (frv_register_move_cost): Remove.
12857         * config/frv/frv.c (frv_register_move_cost): Make static. Change
12858         arguments type to reg_class_t. Add mode argument.
12859         (frv_memory_move_cost): New.
12860         (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
12861
12862 2010-09-12  Bernd Schmidt  <bernds@codesourcery.com>
12863
12864         * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
12865         arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
12866
12867 2010-09-10  Jan Hubicka  <jh@suse.cz>
12868
12869         * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
12870
12871 2010-09-10  Richard Guenther  <rguenther@suse.de>
12872
12873         * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
12874         * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
12875         * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
12876         not stream TYPE_DEBUG_REPRESENTATION_TYPE.
12877         * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
12878
12879 2010-09-10  Richard Guenther  <rguenther@suse.de>
12880
12881         * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
12882         for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
12883         * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
12884         using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
12885
12886 2010-09-10  H.J. Lu  <hongjiu.lu@intel.com>
12887
12888         PR middle-end/45634
12889         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
12890         of string folding is of integral type.
12891
12892 2010-09-10  Ryan Mansfield  <rmansfield@qnx.com>
12893
12894         * doc/invoke.texi (-x): Fix typo.
12895
12896 2010-09-10  Richard Guenther  <rguenther@suse.de>
12897
12898         PR debug/44115
12899         * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
12900         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
12901         Output DECL_DEBUG_EXPR.
12902         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
12903         Input DECL_DEBUG_EXPR.
12904
12905 2010-09-10  Richard Guenther  <rguenther@suse.de>
12906
12907         * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
12908         (build_index_type): Implement in terms of build_range_type.
12909         (build_range_type): Do not allow NULL_TREE type, improve
12910         hashing to cover more cases.  Set TYPE_STRUCTURAL_EQUALITY_P
12911         if we didn't hash.
12912         * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
12913         create a distinct copy of the type.
12914
12915 2010-09-10  Kai Tietz  <kai.tietz@onevision.com>
12916
12917         * configure: Regenerated.
12918         * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
12919
12920 2010-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12921
12922         * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
12923         * config/arm/cortex-a9-neon.md: New and partially generated.
12924         * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
12925
12926 2010-09-10  Richard Guenther  <rguenther@suse.de>
12927
12928         * tree.h (build_index_2_type): Remove.
12929         * tree.c (build_index_2_type): Remove.
12930
12931 2010-09-10  Jakub Jelinek  <jakub@redhat.com>
12932
12933         PR bootstrap/45630
12934         * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
12935         HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
12936         (implicit_ptr_descriptor): Return NULL if dwarf_strict.
12937
12938 2010-09-10  Martin Jambor  <mjambor@suse.cz>
12939
12940         PR tree-optimization/44972
12941         * tree-sra.c: Include toplev.h.
12942         (build_ref_for_offset): Entirely reimplemented.
12943         (build_ref_for_model): New function.
12944         (build_user_friendly_ref_for_offset): New function.
12945         (analyze_access_subtree): Removed build_ref_for_offset check.
12946         (propagate_subaccesses_across_link): Likewise.
12947         (create_artificial_child_access): Use
12948         build_user_friendly_ref_for_offset.
12949         (propagate_subaccesses_across_link): Likewise.
12950         (ref_expr_for_all_replacements_p): Removed.
12951         (generate_subtree_copies): Updated comment.  Use build_ref_for_model.
12952         (sra_modify_expr): Use build_ref_for_model.
12953         (load_assign_lhs_subreplacements): Likewise.
12954         (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
12955         checks for return values of build_ref_for_offset.
12956         * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
12957         build_ref_for_offset.
12958         * ipa-prop.h: Include gimple.h
12959         * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
12960         (ipa_analyze_indirect_call_uses): Update comment.
12961         * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
12962         (IPA_PROP_H): Likewise.
12963
12964 2010-09-10  Martin Jambor  <mjambor@suse.cz>
12965
12966         PR tree-optimization/44972
12967         * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
12968         calling build_ref_for_offset.
12969
12970 2010-09-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12971
12972         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
12973         * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
12974         * config/arm/arm-tune.md: Regenerate.
12975         * doc/invoke.texi (ARM Options): Document it.
12976
12977 2010-09-09  Reza Yazdani  <reza.yazdani@amd.com>
12978
12979         * config/i386/i386.c: Include sched-int.h.
12980         (TARGET_SCHED_DISPATCH): Defined.
12981         (TARGET_SCHED_DISPATCH_DO): Defined.
12982         (DISPATCH_WINDOW_SIZE): Defined.
12983         (MAX_DISPATCH_WINDOWS): Defined.
12984         (MAX_INSN): Defined.
12985         (MAX_IMM): Defined.
12986         (MAX_IMM_SIZE): Defined.
12987         (MAX_IMM_32): Defined.
12988         (MAX_IMM_64): Defined.
12989         (MAX_LOAD): Defined.
12990         (MAX_STORE): Defined.
12991         (BIG): Defined.
12992         (dispatch_group): New.
12993         (num_allowable_groups): New.
12994         (group_name): New.
12995         (sched_insn_info_s): New.
12996         (dispatch_windows_s): New.
12997         (imm_info_s): New.
12998         (dispatch_window_list): New.
12999         (dispatch_window_list1): New.
13000         (get_mem_group): New.
13001         (is_cmp): New.
13002         (dispatch_violation): New.
13003         (is_branch): New.
13004         (is_prefetch): New.
13005         (init_window): New.
13006         (allocate_window): New.
13007         (init_dispatch_sched): New.
13008         (is_end_basic_block): New.
13009         (process_end_window): New.
13010         (allocate_next_window): New.
13011         (find_constant_1): New.
13012         (find_constant): New.
13013         (get_num_immediates): New.
13014         (has_immediate): New.
13015         (get_insn_path): New.
13016         (get_insn_group): New.
13017         (count_num_restricted): New.
13018         (fits_dispatch_window): New.
13019         (add_insn_window): New.
13020         (add_to_dispatch_window): New.
13021         (debug_dispatch_window_file): New.
13022         (debug_dispatch_window): New.
13023         (debug_insn_dispatch_info_file): New.
13024         (debug_ready_dispatch): New.
13025         (do_dispatch): New.
13026         (has_dispatch): New.
13027         * config/i386/i386.h (debug_ready_dispatch): Declared.
13028         (debug_dispatch_window): Declared.
13029         * config/i386/i386.opt (mdispatch-scheduler): New flag.
13030         * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
13031         (TARGET_SCHED_DISPATCH_DO): New.
13032         * doc/tm.texi: Regererated.
13033         * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
13034         ready_remove_first_dispatch
13035         (schedule_block): Call targetm.sched.dispatch and
13036         targetm.sched.dispatch_do.
13037         (sched_init): Call targetm.sched.dispatch and
13038         targetm.sched.dispatch_do.
13039         (ready_remove_first_dispatch): New.
13040         (number_in_ready): New.
13041         (get_ready_element): New.
13042         * hooks.c (hook_bool_rtx_int_false): New.
13043         (hook_void_rtx_int): New.
13044         * hooks.h (hook_bool_rtx_int_false): Declared.
13045         (hook_void_rtx_int): Declared.
13046         * sched-int.h (IS_DISPATCH_ON): Defined.
13047         (IS_CMP): Defined.
13048         (DISPATCH_VIOLATION): Defined.
13049         (FITS_DISPATCH_WINDOW): Defined.
13050         (DISPATCH_INIT): Defined.
13051         (ADD_TO_DISPATCH_WINDOW): Defined.
13052         (get_ready_element): Declared.
13053         (number_in_ready): Declared.
13054         * target.def (dispatch): Defined.
13055         (dispatch_do): Defined.
13056
13057 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
13058
13059         PR middle-end/45312
13060         * reload1.c (merge_assigned_reloads): Remove.
13061         (reload_as_needed): Don't call it.
13062
13063 2010-09-09  Anatoly Sokolov  <aesok@post.ru>
13064
13065         * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
13066         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
13067         * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
13068
13069 2010-09-09  Matthias Klose  <doko@ubuntu.com>
13070
13071         PR bootstrap/43847
13072         * configure.ac (--enable-plugin): Enhance for cross builds.
13073         * configure: Regenerate.
13074
13075 2010-09-09  Jan Hubicka  <jh@suse.cz>
13076
13077         PR tree-optimization/45598
13078         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
13079         string folding is of integral type.
13080
13081 2010-09-09  Nathan Sidwell  <nathan@codesourcery.com>
13082
13083         * configure.ac (gnu_indirect_function): New test.
13084         * configure: Rebuilt.
13085         * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
13086         * defaults.h (IFUNC_ASM_TYPE): Provide default.
13087
13088         * doc/extend.texi (Function Attributes): Document ifunc.
13089         * varasm.c (do_assemble_alias): Deal with ifuncs too.
13090
13091 2010-09-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
13092
13093         * config/picochip/picochip.c (picochip_reorg): Check for note_p for
13094         epilogue instruction move.
13095
13096 2010-09-09  Jan Hubicka  <jh@suse.cz>
13097
13098         * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
13099         command line to allow more partitions than input files.
13100
13101 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
13102
13103         PR middle-end/44554
13104         * ira.c (ira): Switch off sharing spill slots if setjmp is called.
13105
13106 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
13107
13108         PR middle-end/40386
13109         * ira.c (pseudo_for_reload_consideration_p): Don't use
13110         flag_ira_share_spill_slots.
13111
13112 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13113
13114         * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
13115         point zero operands that fit into a single GPR.
13116         (s390_preferred_reload_class): Ensure we only return general-purpose
13117         register classes.
13118         * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
13119         floating-point zero operands into GPRs.
13120         ("*mov<mode>_64"): Likewise.
13121         ("mov<mode>"): Likewise using lhi.
13122
13123 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13124
13125         * config/s390/s390.c (s390_symref_operand_p): Return false for
13126         literal pool references.
13127         (s390_check_qrst_address): Update caller.
13128
13129 2010-09-09  Uros Bizjak  <ubizjak@gmail.com>
13130
13131         * config/i386/predicates.md (ext_register_operand): Check that
13132         SUBREG_REG is really a register before looking for REGNO.
13133         (reg_not_xmm0_operand): Handle SUBREGs correctly.
13134         (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
13135
13136 2010-09-09  Jakub Jelinek  <jakub@redhat.com>
13137
13138         * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
13139         * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
13140         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
13141         * print-rtl.c (print_rtx): Likewise.
13142         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
13143         * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
13144         for ADDR_EXPR with non-addressable object.
13145         * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
13146         (struct dw_val_struct): Add v.val_decl_ref.
13147         (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
13148         Handle DW_OP_GNU_implicit_pointer.
13149         (size_of_loc_descr): Likewise.  Fix up DW_OP_call_ref size.
13150         (get_ref_die_offset_label): New function.
13151         (implicit_ptr_descriptor): New function.
13152         (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
13153         (loc_descriptor): Likewise.
13154         (gen_variable_die): Put even definitions into decl_die_table.
13155         (resolve_addr_in_expr): Resolve still unresolved
13156         DW_OP_GNU_implicit_pointer operands, if it can't be resolved
13157         return false.
13158         (dwarf2out_finish): Call output_location_lists after outputting
13159         .debug_info and .debug_abbrev instead of before.
13160
13161 2010-09-09  Roland McGrath  <roland@redhat.com>
13162
13163         * dwarf2out.c (DWARF_REF_SIZE): Define.
13164         (size_of_loc_descr): Use it for DW_OP_call_ref.
13165
13166 2010-09-09  Alan Modra  <amodra@gmail.com>
13167
13168         * doc/invoke.text: Reinstate mcmodel=medium.
13169         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
13170         CMODEL_MEDIUM as default.
13171         * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
13172         * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
13173         (toc_relative_ok, offsettable_ok_by_alignment): New functions.
13174         (rs6000_emit_move): Reinstate mcmodel=medium optimization.
13175
13176 2010-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13177
13178         PR target/45250
13179         * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
13180         hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
13181         (builtin_longjmp): Likewise.
13182         (allocate_stack): Use hard_frame_pointer_rtx instead of
13183         frame_pointer_rtx.
13184         * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
13185         * config/pa/pa.c (pa_internal_arg_pointer): Declare.
13186         (pa_can_eliminate): Likewise.
13187         (TARGET_INTERNAL_ARG_POINTER): Define.
13188         (TARGET_CAN_ELIMINATE): Define.
13189         (hppa_expand_prologue): Use hard frame pointer instead of soft frame
13190         pointer.
13191         (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
13192         (pa_internal_arg_pointer, pa_can_eliminate,
13193         pa_initial_elimination_offset): New.
13194         * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
13195         (HARD_FRAME_POINTER_REGNUM): Set to register three.
13196         (INITIAL_FRAME_POINTER_OFFSET): Delete.
13197         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
13198         Define.
13199         (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
13200         REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
13201         * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
13202         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
13203         REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
13204         new soft frame pointer.
13205         * config/pa/pa64-regs.h: Likewise.
13206
13207 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
13208
13209         * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
13210         numerical constant.
13211         (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
13212
13213 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
13214
13215         PR debug/45531
13216         * cfglayout.c (fixup_reorder_chain): Skip debug insns.
13217
13218 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
13219
13220         PR debug/45419
13221         PR debug/45408
13222         * tree-pretty-print.c (dump_generic_node): Disregard top-level
13223         qualifiers in otherwise equal MEM_REF pointer types.
13224         * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
13225         * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
13226
13227 2010-09-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13228
13229         PR target/44392
13230         * config/arm/arm.md (bswapsi2): Handle condition correctly
13231         for armv6 and optimize_size.
13232
13233 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
13234
13235         PR other/18555
13236         * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
13237
13238 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
13239
13240         * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
13241         symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
13242         ix86_expand_strlen, legitimate_pic_address_disp_p,
13243         ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
13244         ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
13245         ix86_check_movabs, ix86_secondary_memory_needed): Change function
13246         prototype to bool.
13247         * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
13248         return_in_memory_ms_64, ix86_check_movabs,
13249         symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
13250         legitimate_pic_address_disp_p, ix86_binary_operator_ok,
13251         ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
13252         ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
13253         ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
13254         ix86_secondary_memory_needed): Change to bool.  Return
13255         "true" and "false" values.
13256         * config/i386/i386.md: Return "true" and "false" values.
13257
13258 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13259
13260         * doc/sourcebuild.texi (Effective-Target Keywords): Document
13261         run_expensive_tests.
13262
13263 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13264
13265         * toplev.c (output_stack_usage): Use lbasename instead of basename.
13266
13267 2010-09-08  Martin Jambor  <mjambor@suse.cz>
13268
13269         PR other/45443
13270         * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
13271         at -O3.
13272
13273 2010-09-08  Richard Guenther  <rguenther@suse.de>
13274
13275         * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
13276         (visit): Adjust.
13277         (iterative_hash_gimple_type): Likewise.
13278         (gimple_type_hash): Likewise.
13279         (gimple_register_type): Likewise.
13280         (print_gimple_types_stats): Likewise.
13281         (free_gimple_type_tables): Likewise.
13282
13283 2010-09-08  Michael Matz  <matz@suse.de>
13284
13285         PR tree-optimization/43430
13286         * tree-vect-stmts.c (vectorizable_condition): Support multiple
13287         copies for conditional statements if it's not part of a reduction.
13288
13289 2010-09-08  Michael Matz  <matz@suse.de>
13290
13291         PR tree-optimization/33244
13292         * tree-ssa-sink.c (statement_sink_location): Don't sink into
13293         empty loop latches.
13294
13295 2010-09-08  Richard Guenther  <rguenther@suse.de>
13296
13297         PR tree-optimization/45578
13298         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
13299         Be more careful when transfering alignment information to
13300         the new induction variable.
13301         (copy_ref_info): Likewise.
13302
13303 2010-09-08  Richard Guenther  <rguenther@suse.de>
13304
13305         * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
13306         * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
13307
13308 2010-09-08  Arnaud Charlet  <charlet@adacore.com>
13309
13310         * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
13311         * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
13312
13313 2010-09-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
13314
13315         PR doc/45587
13316         * doc/md.texi: Fixed modes on several standard pattern names.
13317
13318 2010-09-08  Mingjie Xing  <mingjie.xing@gmail.com>
13319
13320         * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
13321         (ashl<mode>3): ...this.
13322         (loongson_psra<V_suffix>): Rename to...
13323         (ashr<mode>3): ...this.
13324         (loongson_psrl<V_suffix>): Rename to...
13325         (lshr<mode>3): ...this.
13326         * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
13327         (CODE_FOR_loongson_psllw): Define.
13328         (CODE_FOR_loongson_psrlh): Define.
13329         (CODE_FOR_loongson_psrlw): Define.
13330         (CODE_FOR_loongson_psrah): Define.
13331         (CODE_FOR_loongson_psraw): Define.
13332
13333 2010-09-07  Richard Henderson  <rth@redhat.com>
13334
13335         * tree-vect-data-refs.c: Include tm_p.h.
13336         * Makefile.in (tree-vect-data-refs.o): Update deps.
13337         * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
13338         Move delarations outside #ifdef RTX_CODE.
13339
13340 2010-09-07  Richard Henderson  <rth@redhat.com>
13341
13342         * final.c (rest_of_handle_final): Unconditionally do
13343         output_function_exception_table before assemble_end_function.
13344
13345 2010-09-07  Jan Hubicka  <jh@suse.cz>
13346
13347         * tree-inline.c (tree_inlinable_function_p): Do not test
13348         DECL_REPLACEABLE_P.
13349         * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
13350         update_callee_keys, cgraph_decide_inlining): Test function availability.
13351         * cif-code.def (OVERWRITABLE): New code.
13352
13353 2010-09-07  H.J. Lu  <hjl.tools@gmail.com>
13354             Jack Howarth  <howarth@bromo.med.uc.edu>
13355
13356         PR target/36502
13357         PR target/42313
13358         PR target/44651
13359         * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
13360         profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
13361         (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
13362         MAX macro.
13363
13364 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
13365
13366         * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
13367         Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
13368
13369 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
13370
13371         * config.gcc: Don't append t-android for Android targets.
13372
13373         * config/t-android: Removed.
13374
13375 2010-09-07  Richard Henderson  <rth@redhat.com>
13376
13377         * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
13378         * doc/tm.texi.in: Add doc marker.
13379         * doc/tm.texi: Rebuild.
13380         * except.c (switch_to_exception_section): Always build.
13381         (output_one_function_exception_table): Move section switch,
13382         personality output, and label output ...
13383         (output_function_exception_table): ... here.  Use the new
13384         personality hook.
13385
13386         * config/ia64/ia64.c (ia64_asm_emit_except_personality,
13387         ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
13388         TARGET_ASM_INIT_SECTIONS): New.
13389         (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
13390         make static.
13391         (TARGET_ASM_UNWIND_EMIT): Update to match.
13392         * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
13393
13394         * config/arm/arm.c (arm_asm_emit_except_personality): New.
13395         (arm_asm_init_sections): New.
13396         (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
13397
13398 2010-09-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13399
13400         * config/arm/arm.md: Remove unused variable.
13401
13402 2010-09-07  Anatoly Sokolov  <aesok@post.ru>
13403
13404         * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
13405         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
13406         (m32r_memory_move_cost): New function.
13407
13408 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
13409
13410         * config.gcc: Append t-android for Android targets.
13411
13412         * config/t-android: New.
13413
13414 2010-09-07  Richard Henderson  <rth@redhat.com>
13415
13416         * target.def (unwind_emit_before_insn): New hook.
13417         * doc/tm.texi.in: Add @hook marker for it.
13418         * doc/tm.texi: Rebuild.
13419         * final.c (final_scan_insn): Respect unwind_emit_before_insn.
13420
13421 2010-09-07  Martin Jambor  <mjambor@suse.cz>
13422
13423         PR fortran/43665
13424         * ipa-cp.c (ipcp_versionable_function_p): Return false if there
13425         are any type attributes.
13426
13427 2010-09-07  Jan Hubicka  <jh@suse.cz>
13428
13429         * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
13430         array_ref_low_bound in string access folding.
13431
13432 2010-09-07  Uros Bizjak  <ubizjak@gmail.com>
13433
13434         PR target/45206
13435         * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
13436         eh_return fixup sequence.
13437
13438 2010-09-07  Jan Hubicka  <jh@suse.cz>
13439
13440         * gimple-fold.c (maybe_fold_reference): Verify that operand is
13441         gimple_min_invariant.
13442
13443 2010-09-07  Richard Guenther  <rguenther@suse.de>
13444
13445         PR middle-end/45569
13446         * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
13447         nor CONSTRUCTOR can trap.
13448         * tree-complex.c (update_complex_assignment): Update EH info.
13449
13450 2010-09-07  Richard Guenther  <rguenther@suse.de>
13451
13452         PR middle-end/45569
13453         * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
13454         * passes.c (execute_function_todo): Do not verify anything if
13455         we saw errors.
13456
13457 2010-09-07  Richard Guenther  <rguenther@suse.de>
13458
13459         * tree-pretty-print.c (dump_generic_node): Dump void types as void.
13460
13461 2010-09-07  Bernd Schmidt  <bernds@codesourcery.com>
13462
13463         PR target/43137
13464         * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
13465         New define_mode_attrs.
13466         * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
13467         arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
13468         (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
13469         (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
13470         Remove pool_range attribute.
13471         (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
13472         arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
13473         pool_range and neg_pool_range attributes.
13474         * config/arm/thumb2.md (thumb2_zero_extendsidi2,
13475         thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
13476         thumb2_extendhidi2, thumb2_extendqidi2): Delete.
13477
13478 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
13479
13480         * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
13481         check glibc.
13482
13483 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
13484
13485         PR target/22152
13486         * config/i386/mmx.md (*mov<mode>_internal_rex64,
13487         *mov<mode>_internal_avx, *mov<mode>_internal,
13488         *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
13489         *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
13490
13491 2010-09-06  Mark Mitchell  <mark@codesourcery.com>
13492
13493         * c-typeck.c (do_warn_double_promotion): Remove.
13494         * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
13495         Objective-C++ too.
13496
13497 2010-09-06  Anatoly Sokolov  <aesok@post.ru>
13498
13499         * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
13500         * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
13501         * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
13502         argument type to reg_class_t. Change result type to bool.
13503         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
13504
13505 2010-09-06  Nicola Pero  <nicola.pero@meta-innovation.com>
13506
13507         PR libobjc/19850
13508         * gthr-posix.h (__gthread_objc_thread_detach): Use
13509         _objc_thread_attribs when detaching a thread.
13510         * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
13511
13512 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
13513
13514         PR target/45524
13515         * configure.ac (enable_decimal_float): Set to $default_decimal_float.
13516         * configure: Regenerated.
13517
13518 2010-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13519
13520         * combine.c (try_combine): Set subst_low_luid to i0.
13521
13522 2010-09-06  Richard Guenther  <rguenther@suse.de>
13523
13524         * tree.def (MISALIGNED_INDIRECT_REF): Remove.
13525         * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
13526         (build_aligned_type): Declare.
13527         * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
13528         (check_aligned_type): New function.
13529         (build_aligned_type): Likewise.
13530         * expr.c (expand_assignment): Handle misaligned stores via
13531         TARGET_MEM_REF and MEM_REF using movmisalign_optab.
13532         (expand_expr_real_1): Likewise.
13533         (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
13534         * tree-vect-stmts.c (vectorizable_store): Do not build
13535         MISALIGNED_INDIRECT_REF but initialize alignment information.
13536         (vectorizable_load): Likewise.
13537         * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
13538         handling.
13539         * cfgexpand.c (expand_debug_expr): Likewise.
13540         * dwarf2out.c (loc_list_from_tree): Likewise.
13541         * fold-const.c (maybe_lvalue_p): Likewise.
13542         (operand_equal_p): Likewise.
13543         (build_fold_addr_expr_with_type_loc): Likewise.
13544         * gimplify.c (gimplify_addr_expr): Likewise.
13545         (gimplify_expr): Likewise.
13546         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
13547         (verify_gimple_assign_single): Likewise.
13548         * tree-dump.c (dequeue_and_dump): Likewise.
13549         (tree_could_trap_p): Likewise.
13550         * tree-predcom.c (ref_at_iteration): Likewise.
13551         * tree-pretty-print.c (dump_generic_node): Likewise.
13552         (op_code_prio): Likewise.
13553         (op_symbol_code): Likewise.
13554         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
13555         * tree-ssa-loop-im.c (for_each_index): Likewise.
13556         (gen_lsm_tmp_name): Likewise.
13557         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
13558         (find_interesting_uses_address): Likewise.
13559         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
13560         * tree-ssa-operands.c (get_expr_operands): Likewise.
13561         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
13562         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
13563         (ao_ref_init_from_vn_reference): Likewise.
13564         * tree.c (staticp): Likewise.
13565         (build1_stat): Likewise.
13566         (reference_alias_ptr_type): Likewise.
13567         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
13568         * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
13569         MISALIGNED_INDIRECT_REF handling.
13570
13571 2010-09-06  Richard Guenther  <rguenther@suse.de>
13572
13573         PR tree-optimization/45534
13574         * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
13575         (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
13576         on the target.
13577         (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
13578         valid on the target.
13579
13580 2010-09-06  Andreas Schwab  <schwab@redhat.com>
13581
13582         * configure.ac: Quote argument of AC_MSG_WARN.
13583         * configure: Regenerate.
13584
13585 2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
13586
13587         * sel-sched.c (move_cond_jump): Correct arguments to
13588         maybe_tidy_empty_bb.
13589         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
13590
13591 2010-09-06  Andrey Belevantsev  <abel@ispras.ru>
13592
13593         PR rtl-optimization/44919
13594         * sel-sched.c (move_cond_jump): Remove assert, check that
13595         the several blocks case can only happen with mutually exclusive
13596         insns instead.  Rewrite the movement code to support moving through
13597         several basic blocks.
13598
13599 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
13600
13601         * config/i386/i386.md (iptrsize): New mode attribute.
13602         (tp_seg): Ditto.
13603         (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
13604         mode iterator.
13605         (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
13606         (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
13607         (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
13608         (stack_tls_protect_set_<mode>): Ditto from
13609         stack_tls_protect_set_{si,di}.  Use %@ to output segment register
13610         of thread base pointer load.
13611         (stack_tls_protect_test_<mode>): Ditto from
13612         stack_tls_protect_test_{si,di}.  Use %@ to output segment register
13613         of thread base pointer load.
13614         (stack_protect_set): Rewrite using indirect functions.
13615         (stack_protect_test): Ditto.
13616         * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
13617         (ix86_print_operand): Handle '@'.
13618
13619 2010-09-05  Giuseppe Scrivano  <gscrivano@gnu.org>
13620
13621         * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
13622         MINUS_EXPR.
13623
13624 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
13625
13626         * doc/invoke.texi: Document -Wdouble-promotion.
13627         * c-typeck.c (convert_arguments): Check for implicit conversions
13628         from float to double.
13629         (do_warn_double_promotion): New function.
13630         (build_conditional_expr): Use it.
13631         (build_binary_op): Likewise.
13632
13633 2010-09-05  Richard Guenther  <rguenther@suse.de>
13634
13635         PR tree-optimization/45535
13636         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
13637         handle TMR_INDEX2.  Make sure TMR_INDEX is not NULL before
13638         dereferencing it.
13639         (indirect_refs_may_alias_p): Likewise.
13640
13641 2010-09-05  Naveen H.S  <naveen.S@kpitcummins.com>
13642
13643         * config/sh/sh.c (sh_option_override): Make static.
13644         Adjust comments.  Declare.
13645         (sh_function_value_regno_p): Likewise.
13646         (sh_register_move_cost): Modify the arguments, make static.
13647         Adjust comments.  Declare.
13648         (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
13649         TARGET_FUNCTION_VALUE_REGNO_P): Define.
13650         * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
13651         REGISTER_MOVE_COST): Delete.
13652         * config/sh/sh-protos.h (sh_override_options): Delete.
13653         (sh_register_move_cost): Delete.
13654         (sh_function_value_regno_p): Delete.
13655
13656 2010-09-04  Anatoly Sokolov  <aesok@post.ru>
13657
13658         * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
13659         m32r_function_value_regno_p): New functions.
13660         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
13661         TARGET_FUNCTION_VALUE_REGNO_P): Declare.
13662         * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
13663         FUNCTION_VALUE_REGNO_P): Remove.
13664
13665 2010-09-04  Jan Hubicka  <jh@suse.cz>
13666
13667         * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
13668         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
13669         fold_read_from_constant_string.
13670
13671         * gimple.h (canonicalize_constructor_val): Declare.
13672         * gimple-fold.c (canonicalize_constructor_val): New function.
13673         (get_symbol_constant_value):Use it.
13674         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
13675
13676 2010-09-04  Jan Hubicka  <jh@suse.cz>
13677
13678         * tree-switch-conversion.c (build_one_array): Set constructor to be
13679         static.
13680         * varpool.c (varpool_finalize_decl): Compute const_value_known.
13681
13682 2010-09-04  Richard Guenther  <rguenther@suse.de>
13683
13684         PR bootstrap/45519
13685         * tree-flow.h (force_gimple_operand_1): Declare.
13686         (force_gimple_operand_gsi_1): Likewise.
13687         * gimplify.c (force_gimple_operand_1): New worker taking a
13688         gimple predicate for ...
13689         (force_gimple_operand): ... which now wraps it.
13690         (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
13691         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
13692         last change.
13693         * tree-ssa-address.c (gimplify_mem_ref_parts): Use
13694         force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
13695         (create_mem_ref): Likewise.
13696
13697 2010-09-04  Uros Bizjak  <ubizjak@gmail.com>
13698
13699         * config/i386/predicates.md (sse_reg_operand): New predicate.
13700         * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
13701         predicate for operand 1.
13702         (XFmode push splitter): Use fp_register_operand predicate
13703         for operand 1.
13704         (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
13705         (SF-DF float_extend push splitter): Add reload_completed insn
13706         predicate.
13707         ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
13708         MODEF mode macro.  Add reload_completed insn predicate.
13709
13710 2010-09-04  Paolo Bonzini  <bonzini@gnu.org>
13711
13712         * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
13713         (struct df_extract_ref): Remove.
13714         (union df_ref_d): Remove extract_ref member.
13715         (df_ref_create): Remove last three arguments.
13716         (DF_REF_LOC): Remove DF_REF_EXTRACT case.
13717         * df-scan.c (df_ref_record): Remove last three arguments, do not
13718         pass them to df_ref_create_structure.
13719         (df_uses_record): Remove first and last three arguments.  Replace
13720         first argument with DF_REF_REGULAR, adjust calls to remove the
13721         width, offset and mode.  Always call recursively on the second
13722         and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
13723         (df_ref_create_structure): Remove first argument.
13724         (struct df_scan_problem_data): Remove ref_extract_pool.
13725         (df_scan_free_internal): Do not free it.
13726         (df_scan_alloc): Do not allocate it.
13727         (df_ref_create): Remove last three arguments, do not pass them to
13728         df_ref_create_structure.
13729         (df_free_ref): Remove DF_REF_EXTRACT case.
13730         (df_notes_rescan): Adjust call to df_uses_record.
13731         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
13732         Remove DF_REF_EXTRACT case.
13733         (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
13734         Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
13735         and SUBREG definitions.
13736         (df_get_conditional_uses): Remove references to width/offset/mode,
13737         adjust call to df_ref_create_structure.
13738         (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
13739         df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
13740         calls to df_uses_record and df_ref_record.
13741         * fwprop.c (update_df): Remove references to width/offset/mode,
13742         adjust call to df_ref_create.
13743
13744 2010-09-03  Jan Hubicka  <jh@suse.cz>
13745
13746         * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
13747         (build_cdtor_fns): Update use of build_cdtor.
13748
13749 2010-09-03  Joseph Myers  <joseph@codesourcery.com>
13750
13751         * doc/options.texi (SeparateAlias): Document.
13752         * opt-functions.awk (switch_flags): Handle SeparateAlias.
13753         * opth-gen.awk: Generate enumeration names for options marked
13754         SeparateAlias, but not for those marked Ignore.
13755         * opts-common.c (generate_canonical_option): Don't output separate
13756         argument for options marked CL_SEPARATE_ALIAS.
13757         (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
13758         * opts.h (CL_SEPARATE_ALIAS): New.
13759         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
13760         CL_COMMON): Adjust definitions.
13761         * config/i386/darwin.opt, config/mips/sde.opt: New.
13762         * common.opt (fdump-final-insns): New.
13763         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
13764         i386/darwin.opt.
13765         (mips*-sde-elf*): Add mips/sde.opt.
13766         * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
13767         -mno-data-in-code and -mcode-xonly here.
13768         * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
13769         * gcc.c (option_map): Add "j" to --dump entry.
13770         (translate_options): Don't translate -d to -foutput-class-dir= here.
13771
13772 2010-09-03  Sebastian Pop  <sebastian.pop@amd.com>
13773
13774         * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
13775         DR_IS_WRITE.
13776         (compute_all_dependences): Same.
13777         (create_rdg_edge_for_ddr): Same.
13778         * tree-data-ref.h (DR_IS_WRITE): New.
13779         (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
13780         * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
13781         (write_memrefs_written_at_least_once): Same.
13782         * tree-predcom.c (suitable_component_p): Same.
13783         (determine_roots_comp): Same.
13784         (execute_load_motion): Same.
13785         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
13786         (vect_enhance_data_refs_alignment): Same.
13787         (vect_analyze_group_access): Same.
13788
13789 2010-09-03  Joern Rennecke  <joern.rennecke@embecosm.com>
13790
13791         PR testsuite/42843
13792         * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
13793         (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
13794
13795 2010-09-03  Marcin Baczynski  <marbacz@gmail.com>
13796
13797         * dwarf2out.c (file scope): Remove #if0'd code.
13798         (gen_subprogram_die): Same.
13799
13800 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
13801
13802         PR middle-end/45484
13803         * dwarf2out.c (flush_queued_reg_saves): Rename to...
13804         (dwarf2out_flush_queued_reg_saves): ... this.  No longer static.
13805         (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
13806         * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
13807         * config/i386/i386.c (output_set_got): Call it.
13808
13809 2010-09-03  Michael Matz  <matz@suse.de>
13810
13811         PR middle-end/45415
13812         * tree-sra.c (sra_modify_assign): If we modify the statement,
13813         say so.
13814
13815         * tree-ssa.c (verify_ssa): Check number of operands and links
13816         per statement to agree.
13817
13818 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
13819             Iain Sandoe  <iains@gcc.gnu.org>
13820
13821         PR target/45476
13822         * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
13823         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
13824         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
13825
13826 2010-09-03  Richard Guenther  <rguenther@suse.de>
13827
13828         * lto-streamer-out.c (output_function): Output function
13829         start and end loci.
13830         * lto-streamer-in.c (input_function): Input function start
13831         and end loci.
13832
13833 2010-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13834
13835         * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
13836         * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
13837         * configure: Regenerate.
13838         * aclocal.m4: Regenerate.
13839
13840 2010-09-03  Jan Hubicka  <jh@suse.cz>
13841
13842         PR lto/44812
13843         * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
13844         on functions/variables in other partition.
13845
13846 2010-09-03  Jan Hubicka  <jh@suse.cz>
13847
13848         * cgraph.h (struct varpool_node): Add const_value_known.
13849         (varpool_decide_const_value_known): Declare.
13850         * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
13851         * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
13852         (input_varpool_node): Restore const_value_known.
13853         * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
13854         initializer folding.
13855         * ipa.c (ipa_discover_readonly_nonaddressable_var,
13856         function_and_variable_visibility): Compute const_value_known.
13857         * gimple-fold.c (get_symbol_constant_value): Use varpool for
13858         initializer folding.
13859         * varpool.c (varpool_decide_const_value_known): New function.
13860
13861 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
13862
13863         * config/i386/i386.md: Remove empty preparation statements
13864         from splitters.
13865
13866 2010-09-03  Jan Hubicka  <jh@suse.cz>
13867
13868         * passes.c (rest_of_decl_compilation): Do not add local vars into
13869         varpool.
13870         * varpool.c (varpool_get_node, varpool_node): Sanity check that only
13871         static or extern vars are in varpool.
13872         (varpool_finalize_decl): Sanity check that only static vars are
13873         finalized.
13874
13875 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
13876
13877         PR debug/45500
13878         * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
13879         not just generic vectors with BLKmode.
13880
13881 2010-09-03  Richard Guenther  <rguenther@suse.de>
13882
13883         * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
13884         Move TMR_OFFSET to second operand.  Add TMR_INDEX2.
13885         * tree.h (TMR_SYMBOL): Remove.
13886         (TMR_BASE, TMR_OFFSET): Adjust.
13887         (TMR_INDEX2): New.
13888         * alias.c (ao_ref_from_mem): Use TMR_BASE.
13889         * builtins.c (get_object_alignment): Merge TMR_BASE and
13890         TMR_SYMBOL handling.
13891         * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
13892         * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
13893         handling.  Also allow TARGET_MEM_REF as base address.
13894         (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
13895         * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
13896         base.  Gimplify TMR_INDEX2.
13897         * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
13898         * tree-dfa.c (get_ref_base_and_extent): Likewise.
13899         (get_addr_base_and_unit_offset): Likewise.
13900         * tree-eh.c (tree_could_trap_p): Likewise.
13901         * tree-pretty-print.c (dump_generic_node): Likewise.
13902         * tree-ssa-address.c (tree_mem_ref_addr): Simplify.  Handle TMR_INDEX2.
13903         (create_mem_ref_raw): Merge symbol and base.  Move 2ndary
13904         base to index2.
13905         (get_address_description): Reconstruct addres description
13906         from merged TMR_BASE and TMR_INDEX2.
13907         (maybe_fold_tmr): Fold propagated addresses.
13908         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
13909         MEM_REF and TARGET_MEM_REF paths.
13910         (indirect_refs_may_alias_p): Likewise.
13911         * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
13912         instead of TMR_SYMBOL.
13913         * tree-ssa-operands.c (get_tmr_operands): Simplify.
13914         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
13915         according to changes ...
13916         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
13917         Split TARGET_MEM_REF into two fields plus the base.
13918         * tree.c (mem_ref_offset): Simplify.
13919         * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
13920         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
13921         Strip NOPs when folding MEM_REF addresses.
13922         * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
13923         * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
13924         (fold_gimple_assign): ... not here.
13925
13926 2010-09-03  Mingjie Xing  <mingjie.xing@gmail.com>
13927
13928         * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
13929         * config/mips/mips.c (mips_shift_truncation_mask): New function.
13930         (TARGET_SHIFT_TRUNCATION_MASK): Define.
13931
13932 2010-09-02  Richard Henderson  <rth@redhat.com>
13933
13934         * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
13935         instead of readelf in the test.
13936         (gcc_cv_as_cfi_sections_directive): Check for correct relocation
13937         in the .debug_frame section for coff targets.
13938         * configure: Rebuild.
13939
13940 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
13941
13942         * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
13943         * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
13944         * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
13945         (m32c_class_likely_spilled_p): Make static. Change argument type to
13946         reg_class_t. Change result type to bool.
13947
13948 2010-09-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
13949
13950         * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
13951         to convert (double)(long) into a single FRIZ instruction or not
13952         when -ffast-math is used.
13953
13954         * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
13955         (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
13956         or FRIZ instruction if -ffast-math.
13957         * config/rs6000/rs6000.md (friz): Ditto.
13958
13959         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
13960
13961 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
13962
13963         * opth-gen.awk (quote, comma): Remove unused variables.
13964
13965 2010-09-02  Ryan Mansfield  <rmansfield@qnx.com>
13966
13967         * arm.c (arm_override_options): Correct fall-back code to use
13968         SUBTARGET_CPU_DEFAULT.
13969
13970 2010-09-02  Julian Brown  <julian@codesourcery.com>
13971
13972         * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
13973         unspecs.
13974         (vcond<mode>, vcondu<mode>): New expanders.
13975         (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
13976         comparisons with zero.
13977         (neon_vcle<mode>, neon_vclt<mode>): New patterns.
13978         * config/arm/constraints.md (Dz): New constraint.
13979
13980 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
13981
13982         * target.def (class_likely_spilled_p): New hook.
13983         * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
13984         * doc/tm.texi: Regenerate.
13985         * targhooks.c (default_class_likely_spilled_p): New function.
13986         * targhooks.h (default_class_likely_spilled_p): Declare.
13987         * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
13988         * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
13989         TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
13990         Use fixed_reg_set instead of fixed_regs.
13991         * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
13992         * calls.c (avoid_likely_spilled_reg): Ditto.
13993         * ira-conflicts.c (ira_build_conflicts): Ditto.
13994         * ira.c (update_equiv_regs): Ditto.
13995         * mode-switching.c (create_pre_exit): Ditto.
13996         * regmove.c (find_matches): Ditto.
13997         (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
13998         * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
13999         (small_register_class_p): New inline function.
14000         (push_secondary_reload, find_reusable_reload, find_reloads): Use
14001         small_register_class_p instead of SMALL_REGISTER_CLASS_P.
14002
14003         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
14004         * config/i386/i386.c (ix86_class_likely_spilled_p): New.
14005         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
14006
14007 2010-09-02  Richard Guenther  <rguenther@suse.de>
14008
14009         PR tree-optimization/44937
14010         PR tree-optimization/45412
14011         * ipa-split.c (split_function): Properly remove PHI nodes.
14012
14013 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
14014
14015         * opts.h (struct cl_option): Add warn_message field.
14016         (struct cl_decoded_option): Add warn_message field.
14017         * doc/options.texi (Ignore, Warn): Document.
14018         * opt-functions.awk (needs_state_p): Don't consider aliases or
14019         ignored options to need state saved.
14020         * optc-gen.awk: Handle Warn and Ignore.
14021         * opth-gen.awk: Output OPT_SPECIAL_ignore.
14022         * opts-common.c (decode_cmdline_option): Set warn_message field.
14023         Handle ignored options.
14024         (decode_cmdline_options_to_array, generate_option,
14025         generate_option_input_file): Set warn_message field.
14026         (read_cmdline_option): Generate warnings from warn_message field.
14027         Handle ignored options.
14028         * common.opt (Wunreachable-code, fargument-alias,
14029         fargument-noalias, fargument-noalias-global,
14030         fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
14031         floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
14032         fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
14033         ftree-salias): Mark Ignore.
14034         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
14035         -mintel-syntax and -mno-intel-syntax here.
14036         * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
14037         using Warn.
14038         * opts.c (common_handle_option): Don't handle options marked as
14039         ignored.
14040         (enable_warning_as_error): Handle ignored options.
14041
14042 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
14043
14044         PR driver/44076
14045         * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
14046         alias_target fields.
14047         * opt-functions.awk (opt_sanitized_name): Don't handle
14048         finline-limit=, Wlarger-than= and ftemplate-depth= specially.
14049         * optc-gen.awk: Generate alias fields.
14050         * opth-gen.awk: Explicitly give values for OPT_* enum constants.
14051         Don't generate such constants for aliases.
14052         * opts-common.c (generate_canonical_option): New.
14053         (decode_cmdline_option): Handle aliases.  Use
14054         generate_canonical_option for known options instead of copying the
14055         input option text.
14056         * doc/options.texi (Alias): Document.
14057         * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
14058         fstack-check, specs): Mark as aliases.
14059         * gcc.c (driver_handle_option): Canonicalize -L options to joined
14060         arguments.
14061         (driver_handle_option): Don't handle OPT_specs.
14062         * opts.c (common_handle_option): Don't handle options marked as
14063         aliases.
14064         (enable_warning_as_error): Handle aliases.
14065         * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
14066         OPT_Wlarger_than_eq.
14067         * tree-optimize.c (tree_rest_of_compilation): Use
14068         OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
14069
14070 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
14071
14072         * config/i386/i386.md (nonmemory_operand): New mode attribute.
14073         (push memory peephole2): Macroize peepholes using SWI mode iterator.
14074         (move immediate to memory peephole2): Macroize peepholes using
14075         SWI124 mode iterator.
14076         (non-pairable NOT peephole2): Macroize peepholes using SWI124
14077         mode iterator.
14078         (simple lea add peephole2): Macroize peepholes using SWI48
14079         mode iterator.
14080         (simple lea mult peephole2): Ditto.
14081         (imul by 3,5,9 to lea peephole2): Ditto.
14082         (mov $-1, reg peephole2): Macroize peepholes using SWI248
14083         mode iterator.
14084         (imul $32bit_imm,mem,reg peephole2): Ditto.
14085         (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
14086
14087 2010-09-02  Ian Bolton  <ian.bolton@arm.com>
14088
14089         * tree-ssa-loop-prefetch.c: Fix comment at head of file.
14090
14091 2010-09-02  Olivier Hainque  <hainque@adacore.com>
14092
14093         PR middle-end/44763
14094         * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
14095         (allocno_priority_compare_func): Use it instead of a straight
14096         difference computation over priorities.
14097
14098 2010-09-02  Andi Kleen  <ak@linux.intel.com>
14099
14100         * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
14101
14102 2010-09-02  Ira Rosen  <irar@il.ibm.com>
14103
14104         * tree-vectorizer.h (get_later_stmt): New function.
14105         (vect_analyze_data_ref_dependences): Add argument.
14106         * tree-vect-loop.c (vect_analyze_loop): Update call to
14107         vect_analyze_data_ref_dependences.
14108         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
14109         New function.
14110         (vect_analyze_data_ref_dependence): Add argument for basic block
14111         dependencies. Check dependencies in basic block vectorization.
14112         (vect_analyze_data_ref_dependences): Add argument and update call to
14113         vect_analyze_data_ref_dependences.
14114         * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
14115         (vect_bb_vectorizable_with_dependencies): New.
14116         (vect_slp_analyze_bb): Check dependencies in basic block.
14117         (vect_schedule_slp_instance): Insert stores before the last store in
14118         SLP instance.
14119
14120 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
14121
14122         PR target/45476
14123         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
14124         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
14125
14126 2010-09-01  Jakub Jelinek  <jakub@redhat.com>
14127
14128         PR middle-end/45458
14129         * bb-reorder.c (add_labels_and_missing_jumps): Treat
14130         bbs ending with throwing insns like blocks ending with a call.
14131         (fix_up_fall_thru_edges): Likewise.
14132
14133 2010-09-01  Nathan Froyd  <froydnj@codesourcery.com>
14134
14135         * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
14136         (m32c_function_arg_advance): Delete.
14137         * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
14138         * config/m32c/m32c.c (m32c_function_arg): Make static.  Adjust
14139         comments.  Take a const_tree and a bool.  Declare.
14140         (m32c_function_arg_advance): Likewise.
14141         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14142
14143 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
14144
14145         PR target/45476
14146         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
14147         LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
14148         * config/i386/mingw32.h: ... here.
14149
14150 2010-09-01  Andi Kleen  <ak@linux.intel.com>
14151
14152         PR lto/45475
14153         * lto-streamer-in.c (lto_input_ts_target_option): Add.
14154         (lto_input_tree_pointers): Call lto_input_ts_target_option.
14155         * lto-streamer-out (lto_output_ts_target_option): Add.
14156         (lto_output_tree_pointers): Call lto_output_ts_target_option.
14157
14158 2010-09-01  Kai Tietz  <kai.tietz@onevision.com>
14159
14160         PR/target 45452
14161         * config/i386/cygwin.h: Change order of specified import libraries.
14162         * config/i386/mingw32.h: Likewise.
14163         * config/i386/t-cygwin: Likewise.
14164         * config/i386/t-mingw32: Likewise.
14165         * config/i386/t-mingw-w32: Likewise.
14166         * config/i386/t-mingw-w64: Likewise.
14167
14168 2010-09-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14169
14170         * config/arm/neon-schedgen.ml (core): New type.
14171         (allCores): List of supported cores.
14172         (availability_table): Add supported cores.
14173         (collate_bypasses): Accept core as a parameter.
14174         (worst_case_latencies_and_bypasses): Accept core as a parameter.
14175         (emit_insn_reservations): Accept core as a parameter.  Use tuneStr
14176         and coreStr to get tune attribute and prefix for functional units.
14177         (emit_bypasses): Accept core name and use it.
14178         (calculate_per_core_availability_table): New.
14179         (filter_core): New.
14180         (calculate_core_availability_table): New.
14181         (main): Use calculate_core_availablity_table.
14182         * config/arm/cortex-a8-neon.md: Update copyright year.
14183         Regenerated from ml file and merged in.
14184         (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
14185         cortex_a8_neon_mrc.
14186
14187 2010-09-01  Ian Bolton  <ian.bolton@arm.com>
14188
14189         * Makefile.in (tree-switch-conversion.o): Update dependencies.
14190
14191 2010-09-01  Richard Guenther  <rguenther@suse.de>
14192
14193         * alias.c (ao_ref_from_mem): Adjust.
14194         * builtins.c (get_object_alignment): Likewise.
14195         * cfgexpand.c (expand_debug_expr): Likewise.
14196         * gimple.c (get_base_address): Likewise.
14197         * tree-dfa.c (get_ref_base_and_extent): Likewise.
14198         (get_addr_base_and_unit_offset): Likewise.  Fix for
14199         both TMR_SYMBOL and TMR_BASE being set.
14200         * tree-eh.c (tree_could_trap_p): Likewise.
14201         * gimplify.c (gimplify_expr): Do not attempt to gimplify
14202         TMR_SYMBOL.  Always gimplify TMR_BASE.
14203         * tree-cfg.c (verify_types_in_gimple_reference): Verify
14204         TMR_BASE if there is a TMR_SYMBOL.
14205         * tree-pretty-print.c (dump_generic_node): Adjust.
14206         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
14207         (tree_mem_ref_addr): Likewise.
14208         (create_mem_ref_raw): Likewise.
14209         (move_fixed_address_to_symbol): Likewise.
14210         (create_mem_ref): Likewise.
14211         (dump_mem_address): Likewise.
14212         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
14213         Fix for both TMR_SYMBOL and TMR_BASE being set.
14214         (indirect_refs_may_alias_p): Likewise.
14215         * tree-ssa-operands.c (get_tmr_operands): Adjust.
14216         * tree.def (TARGET_MEM_REF): Adjust documentation.
14217
14218 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
14219
14220         * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
14221         Rename from X86_TUNE_ADD_ESP_4.
14222         <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
14223         <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
14224         <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
14225         (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
14226         (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
14227         (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
14228         (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
14229         * config/i386/i386.c (initial_ix86_tune_features)
14230         <X86_TUNE_SINGLE_POP>: Invert members.
14231         <X86_TUNE_DOUBLE_POP>: Ditto.
14232         <X86_TUNE_SINGLE_PUSH>: Ditto.
14233         <X86_TUNE_DOUBLE_PUSH>: Ditto.
14234         * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
14235         No longer exported.
14236         (push peephole2 patterns): Macroize peepholes using P mode iterator.
14237         Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
14238         (pop peephole2 patterns): Macroize peepholes using P mode iterator.
14239         Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
14240
14241 2010-09-01  Eric Botcazou  <ebotcazou@adacore.com>
14242
14243         * gimplify.c (gimplify_init_constructor): Do not create a temporary for
14244         a volatile LHS if the constructor has only one element.
14245
14246 2010-09-01  Mikael Pettersson  <mikpe@it.uu.se>
14247
14248         PR bootstrap/45321
14249         * tree.c (stdarg_p): Make fntype parameter const.
14250         * tree.h (stdarg_p): Likewise.
14251         (function_args_iterator): Remove unused fntype field.
14252         (function_args_iter_init): Do not initialize fntype
14253         field.  Make fntype parameter const.
14254
14255 2010-09-01  Richard Guenther  <rguenther@suse.de>
14256
14257         * tree-vrp.c (adjust_range_with_scev): Use number of iteration
14258         estimate.
14259         (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
14260         (execute_vrp): Compute number of iteration estimates.
14261         * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
14262         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
14263         * tree-data-ref.c (estimated_loop_iterations): Adjust.
14264         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
14265         Infer loop bounds from undefined behavior based on a new parameter.
14266         (estimate_numbers_of_iterations): Likewise.
14267         (scev_probably_wraps_p): Adjust.
14268         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
14269
14270 2010-09-01  Nick Clifton  <nickc@redhat.com>
14271
14272         * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
14273         where appropriate.
14274         (xstormy16_legitimate_address_p): Use true and false instead of 1
14275         and 0.
14276         (xstormy16_expand_prologue): Delete unused local variable 'insn'.
14277         (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
14278         magic constant 2.
14279         (xstormy16_expand_call): Fix comment at start of function.
14280
14281 2010-09-01  Nick Clifton  <nickc@redhat.com>
14282
14283         * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
14284         when pushing accumulator register.
14285         (rx_get_stack_layout): Always save call clobbered registers inside
14286         interrupt handlers.
14287         * config/rx/rx-modes.def: Fix descriptive comment at start of file.
14288
14289 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
14290
14291         * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
14292         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
14293
14294         * libgcc-std.ver (GCC_4.6.0): Define version.
14295
14296 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
14297
14298         * tree-nested.c (convert_all_function_calls): Iterate until after the
14299         sum of static chains in the nest doesn't change.
14300
14301 2010-08-31  Anatoly Sokolov  <aesok@post.ru>
14302
14303         * config/m32c/m32c.c (classes_intersect): Remove.
14304         (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
14305         reg_classes_intersect_p instead of classes_intersect.
14306         (class_can_hold_mode): Change arguments type from enum reg_class to
14307         reg_class_t.  Use reg_class_contents instead of class_contents.
14308         (m32c_register_move_cost): Make static. Change arguments type from
14309         enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
14310         classes_intersect. Use reg_class_contents instead of class_contents.
14311         (m32c_memory_move_cost): Make static. Change arguments type from
14312         enum reg_class to reg_class_t.
14313         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
14314         * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
14315         * config/m32c/m32c-protos.h (m32c_register_move_cost,
14316         m32c_memory_move_cost): Remove.
14317
14318 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
14319
14320         * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
14321         (arm_function_arg): Delete.
14322         (arm_needs_doubleword_align): Take a const_tree.
14323         * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
14324         * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
14325         (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
14326         (arm_function_arg): Make static.  Take a const_tree and a bool.
14327         (arm_function_arg_advance): Likewise.
14328         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14329
14330 2010-08-31  Andi Kleen  <ak@linux.intel.com>
14331
14332         * common.opt (fwhopr=): Update for -fwhopr=jobserver
14333         * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
14334         * lto-wrapper.c (run_gcc): Add jobserver mode.
14335         * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
14336         argument.
14337
14338 2010-08-31  Uros Bizjak  <ubizjak@gmail.com>
14339
14340         * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
14341         (popsi1): Ditto.
14342         (*popdi1_epilogue): Ditto.
14343         (*popsi1_epilogue): Ditto.
14344         (popsi, popdi peephole2 patterns): Update peepholes for changed
14345         pop{si,di}1 and *pop{si,di}1_epilogue patterns.
14346
14347         (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
14348         (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
14349
14350         * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
14351         (override_options): Do not initialize removed ix86_gen_pop1.
14352         (gen_pop): New static function.
14353         (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
14354         (release_scratch_register_on_entry): Ditto.
14355         (ix86_restore_reg_using_pop): Ditto.
14356         (ix86_expand_epilogue): Ditto.
14357
14358 2010-08-31  Jakub Jelinek  <jakub@redhat.com>
14359
14360         PR middle-end/45461
14361         * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
14362
14363 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
14364
14365         * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
14366         semicolons.
14367
14368 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
14369
14370         * doc/extend.texi: Fix documentation of the return value of
14371         __builtin_choose_expr.
14372
14373 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
14374
14375         * config/v850/v850-protos.h (function_arg): Delete.
14376         * config/v850/v850.h (FUNCTION_ARG): Delete.
14377         (FUNCTION_ARG_ADVANCE): Move code to...
14378         * config/v850/v850.c (v850_function_arg_advance): ...here.
14379         (v850_function_arg): Make static.  Take a const_tree and a bool.
14380         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14381
14382 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
14383
14384         * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
14385         these...
14386         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
14387         ...and these...
14388         * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
14389         ..to here..
14390         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
14391         ...and here.
14392         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14393
14394 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
14395
14396         * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
14397         Delete.
14398         * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
14399         * config/rx/rx.c (rx_function_arg_size): Make static.
14400         (rx_function_arg): Likewise.
14401         (rx_function_arg_advance): New function.
14402         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14403
14404 2010-08-31  John Tytgat  <John.Tytgat@aaug.net>
14405
14406         * config/arm/arm.c (arm_override_options): Remove superfluous test.
14407         Fix indentation.
14408
14409 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
14410
14411         * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
14412         (dwarf2out_decl) <CONST_DECL>: Likewise.
14413
14414 2010-08-30  Eric Botcazou  <ebotcazou@adacore.com>
14415
14416         Stack usage support
14417         * common.opt (-fstack-usage): New option.
14418         * doc/invoke.texi (Debugging options): Document it.
14419         * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
14420         allocate_dynamic_stack_space.
14421         (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
14422         and propagate it to allocate_dynamic_stack_space.
14423         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
14424         * calls.c (initialize_argument_information): Pass TRUE as 4th
14425         argument to allocate_dynamic_stack_space.
14426         (expand_call): Set current_function_has_unbounded_dynamic_stack_size
14427         to 1 when pushing a variable-sized argument onto the stack.  Pass
14428         TRUE as 4th argument to allocate_dynamic_stack_space.
14429         Update current_function_pushed_stack_size.
14430         (emit_library_call_value_1): Likewise.
14431         * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
14432         CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
14433         attempt to find an upper bound.  Remove redundant code for the
14434         SETJMP_VIA_SAVE_AREA case.
14435         * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
14436         * function.h (struct stack_usage): New structure.
14437         (current_function_static_stack_size): New macro.
14438         (current_function_dynamic_stack_size): Likewise.
14439         (current_function_pushed_stack_size): Likewise.
14440         (current_function_dynamic_alloc_count): Likewise.
14441         (current_function_has_unbounded_dynamic_stack_size): Likewise.
14442         (current_function_allocates_dynamic_stack_space): Likewise.
14443         (struct function): Add new field 'su'.
14444         * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
14445         add the value of the dynamic offset to the dynamic stack usage.
14446         (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
14447         for variable-sized objects.
14448         (prepare_function_start): Allocate cfun->su if flag_stack_usage.
14449         (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
14450         * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
14451         BUILT_IN_ALLOCA for variable-sized objects.
14452         * output.h (output_stack_usage): Declare.
14453         * toplev.c (stack_usage_file): New file pointer.
14454         (output_stack_usage): New function.
14455         (open_auxiliary_file): Likewise.
14456         (lang_dependent_init): Open file if flag_stack_usage is set.
14457         (finalize): Close file if stack_usage_file is not null.
14458         * tree.h (ALLOCA_FOR_VAR_P): New macro.
14459         * config/alpha/alpha.c (compute_frame_size): New function.
14460         (alpha_expand_prologue): Use it.
14461         (alpha_start_function): Likewise.
14462         (alpha_expand_epilogue): Likewise.  Set stack usage info.
14463         * config/i386/i386.c (ix86_expand_prologue): Likewise.
14464         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
14465         * config/mips/mips.c (mips_expand_prologue): Likewise.
14466         * config/pa/pa.c (hppa_expand_prologue): Likewise.
14467         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
14468         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
14469
14470 2010-08-30  Zdenek Dvorak  <ook@ucw.cz>
14471
14472         PR tree-optimization/45427
14473         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
14474         Handle the case that the exit is never taken correctly.
14475         (number_of_iterations_ne): Pass exit_must_be_taken to
14476         number_of_iterations_ne_max.
14477
14478 2010-08-30  Catherine Moore  <clm@codesourcery.com>
14479
14480         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
14481         Infer -mdspr2 for the the 74K.
14482
14483 2010-08-30  Jakub Jelinek  <jakub@redhat.com>
14484
14485         PR debug/45419
14486         * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
14487
14488         PR middle-end/45423
14489         * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
14490         and TRUTH_{AND,OR,XOR}_EXPR.
14491         * c-parser.c (c_parser_omp_atomic): Handle boolean
14492         {PRE,POST}_{INC,DEC}REMENT.
14493
14494 2010-08-30  Nathan Froyd  <froydnj@codesourcery.com>
14495
14496         * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
14497         (function_arg): Delete.
14498         * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
14499         (FUNCTION_INCOMING_ARG): Delete.
14500         * config/xtensa/xtensa.c (function_arg_advance): Rename to...
14501         (xtensa_function_arg_advance): ...this.  Make static. Take a const_tree
14502         and a bool.
14503         (function_arg): Rename to...
14504         (xtensa_function_arg_1): ...this.  Make static.  Take a const_tree and
14505         a bool.
14506         (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
14507         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14508         (TARGET_FUNCTION_INCOMING_ARG): Define.
14509
14510 2010-08-30  Richard Guenther  <rguenther@suse.de>
14511
14512         PR tree-optimization/21602
14513         * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
14514         using points-to information.
14515
14516 2010-08-30  H.J. Lu  <hongjiu.lu@intel.com>
14517
14518         * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
14519
14520 2010-08-30  Richard Guenther  <rguenther@suse.de>
14521
14522         PR tree-optimization/45449
14523         * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
14524         variables.
14525
14526 2010-08-30  Joseph Myers  <joseph@codesourcery.com>
14527
14528         * opts.h (CL_ERR_NEGATIVE): Define.
14529         * opts.c (unknown_option_callback): Don't postpone warnings for
14530         options marked with CL_ERR_NEGATIVE.
14531         * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
14532         for negative versions of CL_REJECT_NEGATIVE options.
14533
14534 2010-08-30  Uros Bizjak  <ubizjak@gmail.com>
14535
14536         * config/i386/i386.md (zero_extendsidi2_1): Rename from
14537         zero_extendsidi2_32.
14538         (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
14539         using SWI12 mode iterator.
14540         (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
14541         to define_insn_and_split pattern.
14542         (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
14543         using SWI24 mode iterator.
14544         (*zero_extendqi<mode>2_and): Macroize insn from
14545         *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
14546         (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
14547         *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
14548         SWI24 mode iterator.
14549         (*zero_extendqi<mode>2_movzbl): Ditto from
14550         *zero_extendqi{hi,si}2_movzbl.
14551         (extendsidi2_1): Rename from extendsidi2_32.
14552         (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
14553         SWI12 mode iterator.
14554
14555 2010-08-29  Eric Botcazou  <ebotcazou@adacore.com>
14556
14557         * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
14558         general purpose registers.
14559         (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
14560         * config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
14561         with general purpose registers and memory operands.  Add associated
14562         CCImode post-reload splitter.
14563         * config/ia64/div.md: Change BImode to CCImode throughout.
14564
14565 2010-08-28  Eric Botcazou  <ebotcazou@adacore.com>
14566
14567         * config/ia64/ia64.md (cstorebi4): Fix thinko.
14568
14569 2010-08-28  Hariharan Sandanagobalane  <hariharan@picochip.com>
14570
14571         * config/picochip/picochip.c (reorder_var_tracking_notes): This
14572         function was dropping debug insns which caused PR45299.
14573
14574 2010-08-28  Uros Bizjak  <ubizjak@gmail.com>
14575
14576         * config/i386/sse.md (extsuffix): New code attribute.
14577         (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
14578         and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
14579         (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
14580         and sse4_1_zero_extendv4qiv4si2.
14581         (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
14582         and sse4_1_zero_extendv2qiv2di2.
14583         (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
14584         and sse4_1_zero_extendv4hiv4si2.
14585         (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
14586         and sse4_1_zero_extendv2hiv2di2.
14587         (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
14588         and sse4_1_zero_extendv2siv2di2
14589
14590         (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
14591         using any_extend code iterator.
14592         (*avx_<s>mulv8hi3_highpart): Macroize insn from
14593         *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
14594         (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
14595
14596         * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
14597         gen_sse4_1_sign_extend* functions.
14598         (struct builtin_description bdesc_args): Ditto.
14599
14600 2010-08-27  Xinliang David Li  <davidxl@google.com>
14601
14602         PR/45422
14603         * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
14604         (iv_ca_set_no_cp): Update used inv expr count.
14605         (iv_ca_set_cp): Ditto.
14606         (iv_ca_new): Initialize new member.
14607         (iv_ca_free): Free memory.
14608
14609 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
14610
14611         * config/sh/sh-protos.h (sh_function_arg): Delete.
14612         (sh_function_arg_advance): Delete.
14613         * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
14614         (PASS_IN_REG_P): Eliminate cast.
14615         * config/sh/sh.c (sh_function_arg_advance): Make static.  Take a
14616         const_tree and a bool.
14617         (sh_function_arg): Likewise.
14618         (sh_output_mi_thunk): Call sh_function_arg_advance) and
14619         sh_function_arg.
14620         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14621
14622 2010-08-27  Naveen H.S  <naveen.S@kpitcummins.com>
14623             Kaz Kojima  <kkojima@gcc.gnu.org>
14624
14625         * config/sh/sh.c (push_regs): Emit movml for interrupt handler
14626         when possible.
14627         (sh_expand_epilogue): Likewise.
14628         * config/sh/sh.md (movml_push_banked): New insn.
14629         (movml_pop_banked): Likewise.
14630
14631 2010-08-28  Bernd Schmidt  <bernds@codesourcery.com>
14632
14633         * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
14634         gen_regexp_oneof, gen_regexp_sequence): Use the string found
14635         in vector element 0 rather than the original string when there's
14636         only one element.
14637         (gen_regexp): Remove extra semicolon.
14638
14639         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
14640         thumb2_movsf_vfp): Set attribute "insn".
14641         * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
14642         not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
14643         thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
14644         arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
14645         arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
14646         thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
14647         thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
14648         movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
14649         if_not_move, if_shift_move, if_move_shift, if_shift_shift,
14650         if_not_arith, if_arith_not, cond_move_not): Likewise.
14651
14652 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
14653
14654         * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
14655         New declaration.
14656         (rs6000_allocate_stack_temp): Ditto.
14657         (rs6000_expand_convert_si_to_sfdf): Ditto.
14658
14659         * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
14660         line.  Update the options set if power6 or power7 server/embedded
14661         type options are used.  If we give a warning for no vsx under
14662         -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
14663         (rs6000_allocate_stack_temp): New function to allocate a stack
14664         tempoary and adjust the address so it meets either REG+OFFSET or
14665         REG+REG addressing requirements.
14666         (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
14667         that they can be used with the LFIWAX/LFIWZX instrucitons.
14668         (rs6000_expand_convert_si_to_sfdf): New helper funciton for
14669         converting signed/unsigned SImode to either SFmode/DFmode.
14670
14671         * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
14672         whether certain instructions can be generated.
14673         (TARGET_FCTIDZ): Ditto.
14674         (TARGET_STFIWX): Ditto.
14675         (TARGET_LFIWAX): Ditto.
14676         (TARGET_LFIWZX): Ditto.
14677         (TARGET_FCFIDS): Ditto.
14678         (TARGET_FCFIDU): Ditto.
14679         (TARGET_FCFIDUS): Ditto.
14680         (TARGET_FCTIDUZ): Ditto.
14681         (TARGET_FCTIWUZ): Ditto.
14682
14683         * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
14684         (UNSPEC_FCTID): Ditto.
14685         (UNSPEC_LFIWAX): Ditto.
14686         (UNSPEC_LFIWZX): Ditto.
14687         (UNSPEC_FCTIWUZ): Ditto.
14688         (rreg): Use correct constraints.
14689         (SI_CONVERT_FP): New mode attribute for floating point conversion
14690         tests.
14691         (E500_CONVERT): Ditto.
14692         (lfiwax): New insns for converting from integer to floating point
14693         utilizing newer instructions.  Attempt to optimize conversions
14694         that come from memory so that we don't load the value into a GPR,
14695         spill it to the stack and reload it into a FPR.
14696         (floatsi<mode>2_lfiwax): Ditto.
14697         (floatsi<mode>2_lfiwax_mem): Ditto.
14698         (floatsi<mode>2_lfiwax_mem2): Ditto.
14699         (lfiwzx): Ditto.
14700         (floatunssi<mode>2_lfiwzx): Ditto.
14701         (floatunssi<mode>2_lfiwzx_mem): Ditto.
14702         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
14703         (floatdidf2_mem): Ditto.
14704         (floatunsdidf2_fcfidu): Ditto.
14705         (floatunsdidf2_mem): Ditto.
14706         (floatunsdisf2): Ditto.
14707         (floatunsdisf2_fcfidus): Ditto.
14708         (floatunsdisf2_mem): Ditto.
14709         (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
14710         Use FCFID on 32-bit hosts that support it.
14711         (floatsidf2_internal): Ditto.
14712         (floatunssisf2): Ditto.
14713         (floatunssidf2): Ditto.
14714         (floatunssidf2_internal): Ditto.
14715         (floatsisf2): Ditto.
14716         (floatdidf2): Ditto.
14717         (floatdidf2_fpr): Ditto.
14718         (floatunsdidf2): Ditto.
14719         (floatdisf2): Ditto.
14720         (floatdisf2_fcfids): Ditto.
14721         (floatdisf2_internal1): Ditto.
14722         (fixuns_truncsfsi2): Delete, merge into common pattern for both
14723         SF/DF.  Add power7 support.
14724         (fix_truncsfsi2): Ditto.
14725         (fixuns_truncdfsi2): Ditto.
14726         (fixuns_truncdfdi2): Ditto.
14727         (fix_truncdfsi2): Ditto.
14728         (fix_truncdfsi2_internal): Ditto.
14729         (fix_truncdfsi2_internal_gfxopt): Ditto.
14730         (fix_truncdfsi2_mfpgpr): Ditto.
14731         (fctiwz): Ditto.
14732         (btruncdf2): Ditto.
14733         (btruncdf2_fpr): Ditto.
14734         (btructsf2): Ditto.
14735         (ceildf2): Ditto.
14736         (ceildf2_fpr): Ditto.
14737         (ceilsf2): Ditto.
14738         (floordf2): Ditto.
14739         (floordf2_fpr): Ditto.
14740         (floorsf2): Ditto.
14741         (rounddf2): Ditto.
14742         (rounddf2_fpr): Ditto.
14743         (roundsf2): Ditto.
14744         (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
14745         (fix_trunc<mode>di2): Ditto.
14746         (fixuns_trunc<mode>si2): Ditto.
14747         (fixuns_trunc<mode>di2): Ditto.
14748         (fctiwz_<mode>): Ditto.
14749         (btrunc<mode>2): Ditto.
14750         (btrunc<mode>2_fpr): Ditto.
14751         (ceil<mode>2): Ditto.
14752         (ceil<mode>2_fpr): Ditto.
14753         (floor<mode>2): Ditto.
14754         (float<mode>2_fpr): Ditto.
14755         (round<mode>2): Ditto.
14756         (round<mode>2_fpr): Ditto.
14757         (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
14758         (fixuns_trunc<mode>si2_stfiwx): Ditto.
14759         (fix_truncdfsi2_internal): Ditto.
14760         (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
14761         converted value on stack, loaded into GPR, and then stored into
14762         the final destination.
14763         (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
14764         FCTIDZ.
14765         (lrint<mode>di2): New insn, provide the lrint builtin functions.
14766         (ftruncdf2): Delete, unused.
14767         (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
14768
14769         * config/rs6000/vsx.md (toplevel): Update copyright year.
14770         (VSr2): Use "ws" contraint for DFmode, not "!r#r".
14771         (VSr3): Ditto.
14772
14773 2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
14774             Jeremie Salvucci  <jeremie.salvucci@free.fr>
14775
14776         * gengtype.c (output_type_enum): Test the right union member.
14777
14778 2010-08-27  Uros Bizjak  <ubizjak@gmail.com>
14779
14780         PR target/41484
14781         * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
14782         operands for operand 1.
14783         (sse4_1_extendv4qiv4si2): Ditto.
14784         (sse4_1_extendv2qiv2di2): Ditto.
14785         (sse4_1_extendv4hiv4si2): Ditto.
14786         (sse4_1_extendv2hiv2di2): Ditto.
14787         (sse4_1_extendv2siv2di2): Ditto.
14788         (sse4_1_zero_extendv8qiv8hi2): Ditto.
14789         (sse4_1_zero_extendv4qiv4si2): Ditto.
14790         (sse4_1_zero_extendv2qiv2di2): Ditto.
14791         (sse4_1_zero_extendv4hiv4si2): Ditto.
14792         (sse4_1_zero_extendv2hiv2di2): Ditto.
14793         (sse4_1_zero_extendv2siv2di2): Ditto.
14794         (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
14795         (*sse4_1_extendv4qiv4si2): Ditto.
14796         (*sse4_1_extendv2qiv2di2): Ditto.
14797         (*sse4_1_extendv4hiv4si2): Ditto.
14798         (*sse4_1_extendv2hiv2di2): Ditto.
14799         (*sse4_1_extendv2siv2di2): Ditto.
14800         (*sse4_1_zero_extendv8qiv8hi2): Ditto.
14801         (*sse4_1_zero_extendv4qiv4si2): Ditto.
14802         (*sse4_1_zero_extendv2qiv2di2): Ditto.
14803         (*sse4_1_zero_extendv4hiv4si2): Ditto.
14804         (*sse4_1_zero_extendv2hiv2di2): Ditto.
14805         (*sse4_1_zero_extendv2siv2di2): Ditto.
14806
14807 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
14808
14809         * config/mips/mips-protos.h (mips_function_arg_advance): Delete
14810         (mips_function_arg): Delete.
14811         (mips_function_arg_boundary): Take a const_tree.
14812         * config/mips/mips.c (mips_function_arg_boundary): Likewise.
14813         (mips_arg_info): Likewise.
14814         (mips_setup_incoming_varargs): Call mips_function_arg_advance
14815         instead of FUNCTION_ARG_ADVANCE.
14816         (mips_function_arg_advance): Adjust prototype.  Make static.
14817         (mips_function_arg): Likewise.
14818         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14819         * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
14820
14821 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
14822
14823         * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
14824         * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
14825         (function_arg): Delete.
14826         (function_arg_boundary): Take a const_tree.
14827         * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
14828         (rs6000_spe_function_arg): Likewise.
14829         (rs6000_parm_start): Likewise.
14830         (rs6000_arg_size): Likewise.
14831         (rs6000_darwin64_record_arg_advance_recurse): Likewise.
14832         (rs6000_darwin64_record_arg): Likewise.  Take a bool instead of an int.
14833         (rs6000_mixed_function_arg): Likewise.
14834         (function_arg): Rename to...
14835         (rs6000_function_arg): ...this.
14836         (function_arg_advance): Rename to...
14837         (rs6000_function_arg_advance_1): ...this
14838         (rs6000_function_arg_advance): New function.  Call it.
14839         (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
14840         (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
14841         (rs6000_function_value): Likewise.
14842         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14843
14844 2010-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14845
14846         * config/arm/arm.md (enabled): Test the value of arch_enabled
14847         rather than just using it.
14848
14849 2010-08-27  Olivier Hainque  <hainque@adacore.com>
14850             Eric Botcazou  <ebotcazou@adacore.com>
14851
14852         * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
14853         cover all the possible offsets from this base.
14854         (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
14855
14856 2010-08-26  Jakub Jelinek  <jakub@redhat.com>
14857
14858         PR tree-optimization/44485
14859         * calls.c (flags_from_decl_or_type): For const or pure
14860         noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
14861         together with ECF_CONST resp. ECF_PURE.
14862         * builtins.c (expand_builtin): Use flags_from_decl_or_type
14863         instead of querying flags directly.
14864         * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
14865         * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
14866
14867 2010-08-26  Richard Guenther  <rguenther@suse.de>
14868
14869         PR tree-optimization/45255
14870         * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
14871         and externals are also invariant.
14872
14873 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
14874
14875         PR rtl-optimization/44858
14876         * combine.c (try_combine): If recog_for_combine added CLOBBERs to
14877         newi2pat, make sure they don't affect newpat.
14878
14879         PR rtl-optimization/45400
14880         * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
14881         SUBREG_REG if both modes are of MODE_INT class.
14882
14883 2010-08-25  Julian Brown  <julian@codesourcery.com>
14884
14885         * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
14886         * config/arm/arm.md (generic_sched): No for Cortex-A5.
14887         (generic_vfp): Likewise.
14888         (cortex-a5.md): Include.
14889         * config/arm/cortex-a5.md: New.
14890
14891 2010-08-25  Richard Guenther  <rguenther@suse.de>
14892
14893         * alias.c (get_alias_set): Assign a single alias-set to all pointers.
14894         * gimple.c (gimple_get_alias_set): Remove special handling
14895         for pointers.
14896
14897 2010-08-25  Bernd Schmidt  <bernds@codesourcery.com>
14898
14899         PR middle-end/45355
14900         * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
14901         dead_or_set_p when computing i0_feeds_i2_n.
14902
14903         * combine.c (find_split_point): Undo canonicalization of multiply-add
14904         to (minus x (mult)) when it seems likely that this will increase the
14905         chances of a split.
14906
14907 2010-08-25  Richard Guenther  <rguenther@suse.de>
14908
14909         PR lto/44562
14910         * lto-streamer.c (lto_record_common_node): Do not mess with
14911         TYPE_CANONICAL when not in lto.
14912         * gimple.c (gimple_register_type): Likewise.
14913
14914 2010-08-25  Richard Guenther  <rguenther@suse.de>
14915
14916         PR tree-optimization/45316
14917         * tree-ssa-pre.c (eliminate): Properly clean EH info.
14918
14919 2010-08-25  Richard Guenther  <rguenther@suse.de>
14920
14921         PR tree-optimization/45393
14922         * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
14923         and clean EH info.  Avoid SSA update.
14924         (execute_cse_sincos): Cleanup the CFG if it has changed.
14925
14926 2010-08-25  Richard Guenther  <rguenther@suse.de>
14927
14928         PR middle-end/45379
14929         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
14930         TARGET_MEM_REF in alignment computation.
14931
14932 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
14933
14934         PR tree-optimization/45059
14935         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
14936         type conversions from newop{1,2}.  Assert t is a comparison and
14937         newop{1,2} after the stripping are gimple vals.
14938
14939 2010-08-25  Tejas Belagod  <tejas.belagod@arm.com>
14940
14941         * config/arm/iterators.md (VU, SE, V_widen_l): New.
14942         (V_unpack, US): New.
14943         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
14944         (vec_unpack<US>_lo_<mode>): Likewise.
14945         (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
14946         (neon_vec_unpack<US>_lo_<mode>): Likewise.
14947         (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
14948         (vec_widen_<US>mult_hi_<mode>): Likewise.
14949         (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
14950         (neon_vec_<US>mult_hi_<mode>"): Likewise.
14951         (neon_unpack<US>_<mode>): Widening move intermediate step for
14952         vectorizing without -mvectorize-with-neon-quad.
14953         (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
14954         for vectorizing without -mvectorize-with-neon-quad.
14955         * config/arm/predicates.md (vect_par_constant_high): Check for
14956         high-half lanes of a vector.
14957         (vect_par_constant_low): Check for low-half lanes of a vector.
14958
14959 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
14960
14961         * tree-if-conv.c (struct ifc_dr): New.
14962         (IFC_DR): New.
14963         (DR_WRITTEN_AT_LEAST_ONCE): New.
14964         (DR_RW_UNCONDITIONALLY): New.
14965         (memref_read_or_written_unconditionally): Use the cached values
14966         when possible.
14967         (write_memref_written_at_least_once): Same.
14968         (if_convertible_loop_p): Initialize and free DR->aux fields.
14969
14970 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
14971
14972         * gimple.c (gimple_could_trap_p_1): Not static anymore.
14973         Pass an extra bool parameter include_mem.
14974         (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
14975         (gimple_assign_rhs_could_trap_p): Same.
14976         * gimple.h (gimple_could_trap_p_1): Declared.
14977         * tree-data-ref.h (same_data_refs_base_objects): New.
14978         (same_data_refs): New.
14979         * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
14980         (write_memrefs_written_at_least_once): New.
14981         (ifcvt_memrefs_wont_trap): New.
14982         (operations_could_trap): New.
14983         (ifcvt_could_trap_p): New.
14984         (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
14985         Gets a vector of data refs.
14986         (if_convertible_stmt_p): Same.
14987         (if_convertible_loop_p_1): New.
14988         (if_convertible_loop_p): Call if_convertible_loop_p_1.
14989
14990 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
14991
14992         * common.opt (ftree-loop-if-convert-stores): New flag.
14993         * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
14994         * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
14995         the created statement before GSI.
14996         (if_convertible_phi_p): Allow virtual phi nodes when
14997         flag_loop_if_convert_stores is set.
14998         (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
14999         Do not handle types that do not match is_gimple_reg_type.
15000         Remove loop and bb parameters.  Call gimple_could_trap_p instead of
15001         when flag_loop_if_convert_stores is set, as LHS can contain
15002         memory refs.
15003         (if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
15004         to if_convertible_gimple_assign_stmt_p.
15005         (if_convertible_loop_p): Update call to if_convertible_stmt_p.
15006         (replace_phi_with_cond_gimple_assign_stmt): Renamed
15007         predicate_scalar_phi.  Do not handle virtual phi nodes.
15008         (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
15009         Call predicate_scalar_phi.
15010         (insert_gimplified_predicates): Insert the gimplified predicate of a BB
15011         just after the labels for flag_loop_if_convert_stores, otherwise
15012         insert the predicate in the end of the BB.
15013         (predicate_mem_writes): New.
15014         (combine_blocks): Call predicate_all_scalar_phis.  When
15015         flag_loop_if_convert_stores is set, call predicate_mem_writes.
15016         (tree_if_conversion): Call mark_sym_for_renaming when
15017         flag_loop_if_convert_stores is set.
15018         (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
15019         flag_loop_if_convert_stores is set.
15020
15021 2010-08-24  Anatoly Sokolov  <aesok@post.ru>
15022
15023         * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
15024         pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
15025         (pa_function_value): Make static.
15026         (override_options): Rename to...
15027         (pa_option_override): ...this. Make static.
15028         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
15029         TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
15030         TARGET_OPTION_OVERRIDE): Define.
15031         * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
15032         LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
15033         Remove.
15034         * config/pa/pa-protos.h (override_options): Remove.
15035
15036 2010-08-24  Richard Guenther  <rguenther@suse.de>
15037
15038         PR middle-end/45379
15039         * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
15040         if addr->index is NULL or zero.
15041         * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
15042         TARGET_MEM_REF more properly.
15043         (indirect_ref_may_alias_decl_p): Likewise.
15044         * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
15045         * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
15046
15047 2010-08-23  Anatoly Sokolov  <aesok@post.ru>
15048
15049         * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
15050         (m32c_override_options): Rename to...
15051         (m32c_option_override): ...this. Make static.
15052         (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
15053         * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
15054         Remove.
15055         * config/m32c/m32c-protos.h (m32c_override_options,
15056         m32c_function_value_regno_p): Remove.
15057
15058 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
15059
15060         * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
15061         Fix a typo in a previous commit.
15062
15063 2010-08-23  Kai Tietz  <kai.tietz@onevision.com>
15064
15065         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
15066         Pre-initialize innerloop_iters to one.
15067
15068 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
15069
15070         * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
15071         existing static function global.
15072
15073         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
15074         is changed to global.
15075
15076         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
15077         may_be_nonaddressable_p on base, and don't collect this reference
15078         if the address of the base could not be taken.
15079
15080 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
15081
15082         * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
15083         enable the compiler to autovectorize mathmetical functions for
15084         power7 using the Mathematical Acceleration Subsystem library.
15085
15086         * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
15087         handle which vector math library we have.
15088         (rs6000_override_options): Add -mveclibabi=mass support.
15089         (rs6000_builtin_vectorized_libmass): New function to handle auto
15090         vectorizing math functions that are in the MASS library.
15091         (rs6000_builtin_vectorized_function): Call it.
15092
15093         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
15094         -mveclibabi=mass.
15095
15096 2010-08-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15097
15098         PR boehm-gc/34544
15099         * gthr-posix.h (__gthread_active_init): Delete.
15100         (__gthread_active_p): Do activity check here.
15101         Don't include errno.h on hppa-hpux.  Update comment.
15102         * gthr-posix95.h (__gthread_active_init): Delete.
15103         (__gthread_active_p): Do activity check here.
15104         Don't include errno.h on hppa-hpux.  Update comment.
15105         * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
15106         * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
15107         add -lpthread when -mt or -pthread is specified.
15108         * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
15109         (LINK_GCC_C_SEQUENCE_SPEC): Define.
15110         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
15111         (stublib.c, pthread_default_stacksize_np-stub.o,
15112         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
15113         $(T)libgcc_stub.a): Add methods.
15114         * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
15115         (stublib.c, pthread_default_stacksize_np-stub.o,
15116         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
15117         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
15118         pthread_mutex_unlock): New stubs.
15119
15120 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
15121
15122         * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
15123         * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
15124         options.
15125         * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
15126         * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
15127         * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
15128         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
15129         * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
15130         "-l".
15131         * cppspec.c: Include opts.h.
15132         (lang_specific_driver): Use cl_decoded_option structures.
15133         * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
15134         * doc/tm.texi: Regenerate.
15135         * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
15136         (driver_handle_option): Allow driver options needing no special
15137         processing.
15138         (process_command): Decode options before call to
15139         lang_specific_driver.  Pass decoded options to
15140         lang_specific_driver.
15141         * gcc.h (lang_specific_driver): Update prototype.
15142         * gccspec.c: Include opts.h.
15143         (lang_specific_driver): Use cl_decoded_option structures.
15144         * opts-common.c (option_ok_for_language, generate_option,
15145         generate_option_input_file): New.
15146         (decode_cmdline_option): Use option_ok_for_language.
15147         (decode_cmdline_options_to_array): Use generate_option_input_file.
15148         (handle_generated_option): Use generate_option.
15149         * opts.h (generate_option, generate_option_input_file): Declare.
15150
15151 2010-08-22  Anatoly Sokolov  <aesok@post.ru>
15152
15153         * config/mips/mips.c (mips_override_options): Rename to...
15154         (mips_option_override): ...this. Make static.
15155         (TARGET_OPTION_OVERRIDE): Define.
15156         (mips_in_small_data_p): Update comment.
15157         * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
15158         (FIXED_REGISTERS): Update comment.
15159         * config/mips/mips-protos.h (mips_override_options): Remove.
15160
15161 2010-08-21  Olivier Hainque  <hainque@adacore.com>
15162
15163         * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
15164
15165 2010-08-21  Olivier Hainque  <hainque@adacore.com>
15166
15167         * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
15168         ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
15169
15170 2010-08-20  Jan Hubicka  <jh@suse.cz>
15171
15172         * tree-pass.h (pass_ipa_cdtor_merge): New function.
15173         * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
15174         heap allocated.
15175         (record_cdtor_fn): Move to ipa.c; do not test for
15176         have_ctors_dtors.
15177         (build_cdtor): Move to ipa.c; add code avoiding construction
15178         when target have ctors/dtors and there is only one ctor/dtor at given
15179         priority.
15180         (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
15181         sort; reverse order of constructors.
15182         (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
15183         (cgraph_finalize_function): Do not call record_cdtor_fn.
15184         (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
15185         (cgraph_build_static_cdtor): Move to ipa.c.
15186         * ipa.c: Include target.h and tree-iterator.h.
15187         (cgraph_build_static_cdtor, static_ctors, static_dtors,
15188         record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
15189         build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
15190         pass_ipa_cdtor_merge): New.
15191         * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
15192         * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
15193         bounds access.
15194
15195 2010-08-20  Jan Hubicka  <jh@suse.cz>
15196
15197         PR c++/45307
15198         PR c++/17736
15199         * cgraph.h (cgraph_only_called_directly_p,
15200         cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
15201         static cdtors.
15202         * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
15203         are not needed.
15204         (cgraph_finalize_function): Static cdtors are reachable.
15205         (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
15206
15207 2010-08-20  Jan Hubicka  <jh@suse.cz>
15208
15209         * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
15210         flag_wpa.
15211         * lto-streamer-out.c (lto_output): Likewise.
15212         * passes.c (ipa_write_optimization_summaries): Initialize statement
15213         uids.
15214
15215 2010-08-20  Olivier Hainque  <hainque@adacore.com>
15216
15217         * tree.h (alias_diag_flags): New enum.
15218         (alias_pair): Add an 'emitted_diags' field.
15219         * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
15220         (assemble_alias): Initialize emitted_diags of new pairs.
15221
15222 2010-08-20  Eric Botcazou  <ebotcazou@adacore.com>
15223
15224         * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
15225         * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
15226         * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
15227         (STACK_CHECK_PROTECT): Define.
15228         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
15229         (output_probe_stack_range): Likewise.
15230         (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
15231         builtin stack checking is enabled.
15232         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
15233         * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
15234         (probe_stack_range): New insn.
15235
15236 2010-08-20  H.J. Lu  <hongjiu.lu@intel.com>
15237
15238         PR target/45336
15239         * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
15240         short first.
15241
15242         * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
15243         char first.
15244
15245 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
15246
15247         PR target/45336
15248         * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
15249         to cover zero extension into 64-bit register.
15250         (*sse2_pextrw): Likewise.
15251         (*sse4_1_pextrd_zext): New insn.
15252
15253 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
15254
15255         revert r163410, partially revert r163267.
15256         * config/rs6000/darwin.h (LIB_SPEC): Remove.
15257         * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
15258         Darwin versions.
15259
15260 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
15261
15262         PR middle-end/44974
15263         * builtins.c (expand_builtin): Don't optimize away
15264         calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
15265
15266 2010-08-20  Uros Bizjak  <ubizjak@gmail.com>
15267
15268         * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
15269         (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
15270         alternative 1 of operand 2.
15271
15272 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
15273             Paolo Bonzini  <bonzini@gnu.org>
15274
15275         * simplify-rtx.c (simplify_unary_operation_1): Optimize
15276         (sign_extend (zero_extend (...)) and
15277         ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
15278
15279 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
15280
15281         PR rtl-optimization/45353
15282         * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
15283         after bb_note is a BARRIER.
15284
15285 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
15286
15287         * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
15288         linking libgcc.a.
15289
15290 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
15291             Michael Matz  <matz@suse.de>
15292
15293         * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
15294
15295 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
15296
15297         * ggc-common.c (ggc_mark_root_tab): New function, split out from...
15298         (ggc_mark_roots): ...here.
15299
15300 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
15301
15302         * vec.h (FOR_EACH_VEC_ELT): Define.
15303         * c-decl.c: Use it.
15304         * cfgloop.c: Likewise.
15305         * cfgloopmanip.c: Likewise.
15306         * cgraph.c: Likewise.
15307         * cgraphunit.c: Likewise.
15308         * combine.c: Likewise.
15309         * config/bfin/bfin.c: Likewise.
15310         * config/mips/mips.c: Likewise.
15311         * config/rs6000/rs6000.c: Likewise.
15312         * dbxout.c: Likewise.
15313         * df-scan.c: Likewise.
15314         * dominance.c: Likewise.
15315         * dse.c: Likewise.
15316         * dwarf2out.c: Likewise.
15317         * except.c: Likewise.
15318         * expr.c: Likewise.
15319         * function.c: Likewise.
15320         * gcse.c: Likewise.
15321         * genattr.c: Likewise.
15322         * ggc-common.c: Likewise.
15323         * gimplify.c: Likewise.
15324         * graphite-blocking.c: Likewise.
15325         * graphite-clast-to-gimple.c: Likewise.
15326         * graphite-dependences.c: Likewise.
15327         * graphite-interchange.c: Likewise.
15328         * graphite-poly.c: Likewise.
15329         * graphite-scop-detection.c: Likewise.
15330         * graphite-sese-to-poly.c: Likewise.
15331         * graphite.c: Likewise.
15332         * haifa-sched.c: Likewise.
15333         * ifcvt.c: Likewise.
15334         * implicit-zee.c: Likewise.
15335         * ipa-prop.c: Likewise.
15336         * ipa-struct-reorg.c: Likewise.
15337         * ipa.c: Likewise.
15338         * ira-build.c: Likewise.
15339         * ira-color.c: Likewise.
15340         * ira-emit.c: Likewise.
15341         * lambda-code.c: Likewise.
15342         * loop-invariant.c: Likewise.
15343         * loop-unroll.c: Likewise.
15344         * lower-subreg.c: Likewise.
15345         * lto-cgraph.c: Likewise.
15346         * lto-opts.c: Likewise.
15347         * lto-streamer-in.c: Likewise.
15348         * lto-streamer-out.c: Likewise.
15349         * lto-streamer.c: Likewise.
15350         * lto-symtab.c: Likewise.
15351         * matrix-reorg.c: Likewise.
15352         * opts.c: Likewise.
15353         * predict.c: Likewise.
15354         * print-tree.c: Likewise.
15355         * sdbout.c: Likewise.
15356         * sel-sched-dump.c: Likewise.
15357         * sel-sched-ir.c: Likewise.
15358         * sel-sched.c: Likewise.
15359         * sese.c: Likewise.
15360         * stor-layout.c: Likewise.
15361         * tree-cfg.c: Likewise.
15362         * tree-cfgcleanup.c: Likewise.
15363         * tree-chrec.c: Likewise.
15364         * tree-data-ref.c: Likewise.
15365         * tree-emutls.c: Likewise.
15366         * tree-inline.c: Likewise.
15367         * tree-into-ssa.c: Likewise.
15368         * tree-loop-distribution.c: Likewise.
15369         * tree-loop-linear.c: Likewise.
15370         * tree-mudflap.c: Likewise.
15371         * tree-outof-ssa.c: Likewise.
15372         * tree-parloops.c: Likewise.
15373         * tree-predcom.c: Likewise.
15374         * tree-pretty-print.c: Likewise.
15375         * tree-scalar-evolution.c: Likewise.
15376         * tree-ssa-live.c: Likewise.
15377         * tree-ssa-loop-im.c: Likewise.
15378         * tree-ssa-loop-ivcanon.c: Likewise.
15379         * tree-ssa-loop-ivopts.c: Likewise.
15380         * tree-ssa-loop-manip.c: Likewise.
15381         * tree-ssa-loop-niter.c: Likewise.
15382         * tree-ssa-loop-prefetch.c: Likewise.
15383         * tree-ssa-phiprop.c: Likewise.
15384         * tree-ssa-pre.c: Likewise.
15385         * tree-ssa-reassoc.c: Likewise.
15386         * tree-ssa-sccvn.c: Likewise.
15387         * tree-ssa-structalias.c: Likewise.
15388         * tree-ssa.c: Likewise.
15389         * tree-vect-data-refs.c: Likewise.
15390         * tree-vect-loop-manip.c: Likewise.
15391         * tree-vect-loop.c: Likewise.
15392         * tree-vect-patterns.c: Likewise.
15393         * tree-vect-slp.c: Likewise.
15394         * tree-vect-stmts.c: Likewise.
15395         * tree-vrp.c: Likewise.
15396         * tree.c: Likewise.
15397         * value-prof.c: Likewise.
15398         * var-tracking.c: Likewise.
15399         * varasm.c: Likewise.
15400         * vmsdbgout.c: Likewise.
15401
15402 2010-08-19  Nathan Sidwell  <nathan@codesourcery.com>
15403             Richard Guenther  <richard.guenther@gmail.com>
15404
15405         * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
15406         copy the src value and return a copy.
15407         * doc/extend.texi (Volatiles): Move from C++ to C and expand.
15408         (C++ Volatiles): Adjust to describe C++ semantics only.
15409
15410 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
15411
15412         * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
15413         be zero or nonzero.
15414         * doc/tm.texi: Regenerate.
15415         * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
15416         * df-scan.c (df_get_exit_block_use_set), reginfo.c
15417         (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
15418         Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
15419         * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
15420         to 1.
15421
15422 2010-08-20  Olivier Hainque  <hainque@adacore.com>
15423
15424         * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
15425         an extra nop past a sibling call at the very end.
15426
15427 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
15428
15429         PR bootstrap/45350
15430         * combine.c (try_combine): Initialize i1_is_used and i2_is_used.  Fix
15431         a comment.
15432
15433 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
15434
15435         * target.def (function_arg, function_incoming_arg): Remove const
15436         qualifier on CUMULATIVE_ARGS parameter.
15437         * targhooks.h (default_function_arg, default_function_incoming_arg):
15438         Likewise.
15439         * targhooks.c (default_function_arg, default_function_incoming_arg):
15440         Likewise.
15441         * config/i386/i386.c (ix86_function_arg): Likewise.
15442
15443 2010-08-19  Jakub Jelinek  <jakub@redhat.com>
15444
15445         PR target/45336
15446         * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
15447         SIGN_EXTENDs or ZERO_EXTENDs.
15448
15449 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
15450
15451         PR target/42172
15452         * combine.c (combine_validate_cost): New arg I0.  All callers changed.
15453         Take its cost into account if nonnull.
15454         (insn_a_feeds_b): New static function.
15455         (combine_instructions): Look for four-insn combinations.
15456         (can_combine_p): New args PRED2, SUCC2.  All callers changed.  Take
15457         them into account when computing all_adjacent and looking for other
15458         uses.
15459         (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC.  All callers
15460         changed.  Treat them like I1DEST and I1_NOT_IN_SRC.
15461         (try_combine): New arg I0.  Handle four-insn combinations.
15462         (distribute_notes): New arg ELIM_I0.  All callers changed.  Treat it
15463         like ELIM_I1.
15464
15465 2010-08-19  Jason Merrill  <jason@redhat.com>
15466
15467         PR c++/45307
15468         * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
15469         if ctor is empty.
15470         (gimplify_modify_expr_rhs): Adjust.
15471
15472 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
15473
15474         * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
15475         bitmap_bit_p.
15476         * config/bfin/bifn.c (bfin_discover_loop): Likewise.
15477         * dominance.c (iterate_fix_dominators): Likewise.
15478         * dse.c (set_usage_bits): Likewise.
15479         (set_position_unneeded, record_store): Likewise.
15480         * gimple-fold.c (get_maxval_strlen): Likewise.
15481         * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
15482         * ipa-inline.c (update_caller_keys): Likewise.
15483         * ipa-split.c (verify_non_ssa_vars): Likewise.
15484         * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
15485         (close_type_exposed_parameter, close_type_full_escape): Likewise.
15486         (close_addressof_down): Likewise.
15487         * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
15488         (setup_allocno_left_conflicts_size): Likewise.
15489         (ira_reassign_conflict_allocnos): Likewise.
15490         (ira_reassign_pseudos): Likewise.
15491         * ira-emit.c (change_loop): Likewise.
15492         * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
15493         * lto-streamer-out.c (write_symbol): Likewise.
15494         * predict.c (expr_expected_value_1): Likewise.
15495         * regstat.c (regstat_bb_compute_ri): Likewise.
15496         * sel-sched.c (create_block_for_bookkeeping): Likewise.
15497         (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
15498         * stmt.c (expand_case): Likewise.
15499         * tree-eh.c (emit_eh_dispatch): Likewise.
15500         * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
15501         * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
15502         Likewise.
15503         (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
15504         (rdg_build_components): Likewise.
15505         * tree-object-size.c (collect_object_sizes_for): Likewise.
15506         * tree-sra.c (convert_callers): Likewise.
15507         * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
15508         * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
15509         * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
15510
15511 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
15512
15513         * config/i386/i386.md (*lea_1): Use P mode iterator.
15514         (lea add splitter): Also handle DImode operands.
15515         (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
15516         predicate.  Do not use ix86_lea_for_add_ok.
15517         (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
15518         (lea ashift splitter): Also handle DImode operands.
15519         (DImode lea ashift splitter): Remove splitter.
15520
15521 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
15522
15523         * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
15524         ix86_binary_operator_ok.
15525
15526 2010-08-19  Andrey Belevantsev  <abel@ispras.ru>
15527
15528         PR rtl-optimization/44691
15529         * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
15530         is not a register.
15531
15532 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
15533
15534         PR target/45070
15535         * config/arm/arm.c (arm_output_epilogue): Ensure that return
15536          value of size 1-3 is handled correctly.
15537
15538 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
15539
15540         * tree-switch-conversion.c (gen_inbound_check): Ensure that the
15541         type for the conditional has wide enough range.
15542
15543 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
15544
15545         PR target/45327
15546         * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
15547         ix86_binary_operator_ok.
15548
15549 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
15550
15551         * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
15552         <default>:  Swap operands 1 and 2 for alternative 2 to use existing
15553         code to output insn mnemonic.  Fix comment.
15554         (*addsi_1_zext): Add r-r-0 alternative 1.
15555         <TYPE_LEA>: Split insn to lea.
15556         <default>: Handle alternative 1.
15557         (*addhi_1_lea): Add r-r-0 alternative 2.  Use cond RTX instead of
15558         multi-level if_then_else RTX to set "type" attribute.
15559         <default>: Handle alternative 2.
15560         (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
15561         Use cond RTX instead of multi-level if_then_else RTX to set
15562         "type" attribute.
15563         <default>: Handle alternatives 2 and 4.
15564         (lea splitters): Update calls to ix86_lea_for_add_ok.
15565
15566         * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
15567         argument.
15568         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
15569
15570 2010-08-18  Richard Guenther  <rguenther@suse.de>
15571
15572         * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
15573         use operand helpers.
15574
15575 2010-08-18  Paolo Bonzini  <bonzini@gnu.org>
15576
15577         PR middle-end/45292
15578         * optabs.c (expand_bool_compare_and_swap): Expand pending
15579         pops before trying the optab.
15580
15581 2010-08-18  Yao Qi  <yao@codesourcery.com>
15582
15583         PR target/45094
15584         * config/arm/arm.c (output_move_double): Fix typo generating
15585         instructions ('ldr'->'str').
15586
15587 2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
15588
15589         PR rtl-optimization/42575
15590         * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
15591         live ranges.
15592
15593 2010-08-18  Marcus Shawcroft  <marcus.shawcroft@arm.com>
15594
15595         * config/arm/arm-protos.h (arm_expand_sync): New.
15596         (arm_output_memory_barrier, arm_output_sync_insn): New.
15597         (arm_sync_loop_insns): New.
15598         * config/arm/arm.c (FL_ARCH7): New.
15599         (FL_FOR_ARCH7): Include FL_ARCH7.
15600         (arm_arch7): New.
15601         (arm_print_operand): Support %C markup.
15602         (arm_legitimize_sync_memory): New.
15603         (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
15604         (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
15605         (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
15606         (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
15607         (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
15608         (arm_process_output_sync_insn, arm_output_sync_insn): New.
15609         (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
15610         * config/arm/arm.h (struct arm_sync_generator): New.
15611         (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
15612         (TARGET_HAVE_MEMORY_BARRIER): New.
15613         (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
15614         * config/arm/arm.md: Include sync.md.
15615         (UNSPEC_MEMORY_BARRIER): New.
15616         (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
15617         (VUNSPEC_SYNC_OP):New.
15618         (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
15619         (sync_result, sync_memory, sync_required_value): New attributes.
15620         (sync_new_value, sync_t1, sync_t2): Likewise.
15621         (sync_release_barrier, sync_op): Likewise.
15622         (length): Add logic to length attribute defintion to call
15623         arm_sync_loop_insns when appropriate.
15624         * config/arm/sync.md: New file.
15625
15626 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
15627
15628         * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
15629         ENABLE_TREE_CHECKING.
15630         (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
15631         and GCC >= 4.3.
15632
15633 2010-08-17  H.J. Lu  <hongjiu.lu@intel.com>
15634
15635         * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
15636         or optimizing for size, always avoid lea if possible.
15637
15638         * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
15639
15640 2010-08-17  Iain Sandoe  <iains@gcc.gnu.org>
15641
15642         * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
15643         Dunmmy function with NULL return unless the target is
15644         OSX >= 10.6 (Darwin10).
15645
15646 2010-08-17  Jack Howarth  <howarth@bromo.med.uc.edu>
15647
15648         * gcc.c (spec_function): Add remove-outfile.
15649         (remove_outfile_spec_function): New function.
15650         * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
15651         * invoke.texi (replace-outfile): Document.
15652
15653 2010-08-17  Uros Bizjak  <ubizjak@gmail.com>
15654
15655         PR target/45296
15656         * reginfo.c (globalize_reg): Reject stack registers.
15657
15658 2010-08-17  Richard Guenther  <rguenther@suse.de>
15659
15660         * tree-ssa-dom.c (struct edge_info): Use a VEC for the
15661         list of conditional equivalences.
15662         (free_all_edge_infos): Adjust.
15663         (record_equivalences_from_incoming_edge): Likewise.
15664         (record_cond): Likewise.
15665         (build_and_record_new_cond): Likewise.
15666         (record_conditions): Likewise.
15667         (dom_opt_leave_block): Likewise.
15668
15669 2010-08-17  Kai Tietz  <kai.tietz@onevision.com>
15670
15671         * doc/invoke.texi (ms-extension): Add documentation.
15672
15673 2010-08-17  Richard Guenther  <rguenther@suse.de>
15674
15675         * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
15676
15677 2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>
15678
15679         PR c/40563
15680         * c-decl.c (diagnose_uninitialized_cst_member): New function.
15681         (finish_decl): Use it to issue a -Wc++-compat warning about
15682         uninitialized const field in struct or union.
15683
15684         (finish_struct): Use strip_array_types.
15685
15686 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
15687
15688         * function.c (block_fragments_nreverse, blocks_nreverse_all): New
15689         functions.
15690         (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
15691         (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL.  Don't
15692         call block_nreverse here.
15693         (blocks_nreverse): Rename decl temporary to block.
15694
15695 2010-08-16  Bernd Schmidt  <bernds@codesourcery.com>
15696
15697         * config/arm/thumb2.md (thumb2_notsi_shiftsi,
15698         thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
15699         thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
15700         thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
15701         thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
15702         thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
15703         thumb2_iorsi3): Delete.
15704         (orsi_notsi_si): No longer a named pattern.
15705         (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
15706         * config/arm/predicates.md (shift_amount_operand): New.
15707         (mult_operator): New.
15708         * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
15709         attr enabled): New.
15710         (iorsi3_insn): Renamed from arm_iorsi3.  Handle a new alternative if
15711         arch matches t2.
15712         (not_shiftsi): Renamed from arm_notsi_shiftsi.  Handle Thumb2 variant.
15713         (not_shiftsi_compare0): Likewise, renamed from
15714         arm_notsi_shiftsi_compare0.
15715         (not_shiftsi_compare0_scratch): Likweise, renamed from
15716         arm_notsi_shiftsi_compare0_scratch.
15717         (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
15718         (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
15719         (arith_shiftsi): Handle Thumb2 variant.  Set insn_enabled attribute
15720         so that the register alternative is disabled when the shift_operator
15721         is MULT.  Use "M" as the constraint for constants.
15722         (arith_shiftsi splitter): Enable for TARGET_32BIT.
15723         (arith_shiftsi_compare0): Handle Thumb2 variant.  Use "M" as the
15724         constraint for constants.
15725         (arith_shiftsi_compare0_scratch): Likewise.
15726         (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
15727         Handle Thumb2 alternative.
15728
15729 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
15730
15731         * doc/options.texi (NoDriverArg): Document.
15732         * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
15733         -MDX and -MMDX.
15734         * opt-functions.awk (switch_flags): Handle NoDriverArg.
15735         * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
15736         marking for CL_NO_DRIVER_ARG options when in the driver.
15737         * opts.h (CL_NO_DRIVER_ARG): Define.
15738         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
15739         CL_COMMON): Update values.
15740
15741 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
15742
15743         * common.opt: Add driver options.
15744         (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
15745         * doc/options.texi (Driver, RejectDriver): Document.
15746         * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
15747         print_prog_name, print_multi_directory, print_sysroot,
15748         print_multi_os_directory, print_multi_lib,
15749         print_sysroot_headers_suffix, report_times, combine_flag,
15750         use_pipes, wrapper_string): Remove.
15751         (save_switch, driver_unknown_option_callback,
15752         driver_wrong_lang_callback, driver_post_handling_callback,
15753         driver_handle_option): New.
15754         (spec_lang, last_language_n_infiles): Make file-scope static
15755         instead of local to process_command.
15756         (process_command): Use decode_cmdline_options_to_array and
15757         read_cmdline_option for option processing.  Compute have_c in
15758         prescan of decoded options.
15759         * opt-functions.awk (switch_flags): Handle Driver and
15760         RejectDriver.
15761         (var_type, var_type_struct): Handle Separate options as generating
15762         const char * variables.
15763         * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
15764         CL_TARGET to be passed by caller if required.
15765         (decode_cmdline_options_to_array): Update comment.
15766         * opts.c (complain_wrong_lang): Handle options only valid for the
15767         driver.
15768         (decode_options): Update call to decode_cmdline_options_to_array.
15769         (print_filtered_help): Ignore driver-only options.
15770         (print_specific_help): Ignore CL_DRIVER.
15771         (common_handle_option): Don't call print_specific_help for CL_DRIVER.
15772         * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
15773         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
15774         Update values.
15775
15776 2010-08-16  Richard Guenther  <rguenther@suse.de>
15777
15778         * tree-cfg.c (verify_types_in_gimple_reference): Verify
15779         TARGET_MEM_REF a bit.
15780         * tree-ssa-address.c (addr_for_mem_ref): Adjust.
15781         (create_mem_ref_raw): Always create TMR_OFFSET, store the
15782         alias pointer type via it.
15783         (copy_mem_ref_info): Adjust.
15784         (maybe_fold_tmr): Likewise.
15785         * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
15786         (reference_alias_ptr_type): Likewise.
15787         * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
15788         adjust documentation of TMR_OFFSET operand.
15789         * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
15790         use the alias pointer type.
15791         * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
15792         initialize mem attrs but the TMR itself.
15793         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
15794         similar to MEM_REF.
15795         * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
15796         * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
15797         (unshare_and_remove_ssa_names): Likewise.
15798         (copy_ref_info): Adjust.
15799         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
15800         TARGET_MEM_REF case.
15801         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
15802         at TMR_ORIGINAL.
15803         * tree.h (TMR_ORIGINAL): Remove.
15804         * gimple.c (get_base_address): For TARGET_MEM_REF with a
15805         symbol return that.
15806         * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
15807         with a symbol.
15808         (get_addr_base_and_unit_offset): Likewise.
15809         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
15810         TARGET_MEM_REFs.
15811         (indirect_ref_may_alias_decl_p): Likewise.
15812         (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
15813
15814 2010-08-15  Uros Bizjak  <ubizjak@gmail.com>
15815
15816         * doc/invoke.texi (-fomit-frame-pointer): Document that starting
15817         with GCC version 4.6, the default setting (when not optimizing
15818         for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
15819         been changed to -fomit-frame-pointer.
15820
15821 2010-08-15  Iain Sandoe  <iains@gcc.gnu.org>
15822
15823         * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
15824         Darwin10.  Do not link libgcc.a for Darwin >= 9.
15825
15826 2010-08-15  Gerald Pfeifer  <gerald@pfeifer.com>
15827
15828         * doc/invoke.texi (Warning Options): Fix terminology and markup
15829         in the description of how unknown warning options are handled.
15830
15831 2010-08-15  Ira Rosen  <irar@il.ibm.com>
15832
15833         * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
15834         in basic blocks.
15835         (vect_supportable_dr_alignment): Check alignment for basic blocks.
15836         * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
15837         data references.
15838         (vect_bb_vectorization_profitable_p): New function.
15839         (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
15840         check if it's worthwhile to vectorize the basic block.
15841
15842 2010-08-14  Anatoly Sokolov  <aesok@post.ru>
15843
15844         * reload.h (register_move_cost, memory_move_secondary_cost,
15845         secondary_reload_class): Adjust prototype.
15846         * rtl.h (reg_class_subset_p): Adjust prototype.
15847         * reload.c (secondary_reload_class): Change arguments type from
15848         enum reg_class to reg_class_t. Change result type to reg_class_t.
15849         * reginfo.c (register_move_cost, reg_class_subset_p): Change
15850         arguments type from enum reg_class to reg_class_t.
15851         (memory_move_secondary_cost): Change arguments type from
15852         enum reg_class to reg_class_t. Change type of saved_flags to
15853         reg_class_t.
15854
15855         * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
15856         Remove macros.
15857         (mips_cost): Remove.
15858         (struct mips_rtx_cost_data): Moved to mips.c.
15859         * config/mips/mips-protos.h (mips_register_move_cost): Remove.
15860         * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
15861         (mips_cost): Make static.
15862         (mips_canonicalize_move_class): Change argument type to reg_class_t.
15863         Change result type to reg_class_t.
15864         (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
15865         type from enum reg_class to reg_class_t.
15866         (mips_register_move_cost): Make static. Change arguments
15867         type from enum reg_class to reg_class_t.
15868         (mips_memory_move_cost): New function.
15869         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
15870
15871 2010-08-14  Richard Sandiford  <rdsandiford@googlemail.com>
15872
15873         PR rtl-optimization/43358
15874         * ira-lives.c (process_single_reg_class_operands): Adjust the costs
15875         of a single hard register, using simplify_subreg_regno to decide
15876         what that register should be.
15877
15878 2010-08-14  Mingjie Xing  <mingjie.xing@gmail.com>
15879
15880         * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
15881         * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
15882         (loongson_pmull<V_suffix>): Rename to...
15883         (mul<mode>3): ...this and use MULT instead of an UNSPEC.
15884
15885 2010-08-13  Jack Howarth  <howarth@bromo.med.uc.edu>
15886
15887         * configure.ac: Enable -fomit-frame-pointer on darwin
15888         which support dwarf2.
15889         * config/i386/i386.c (override_options): Same.
15890
15891 2010-08-13  Jie Zhang  <jie@codesourcery.com>
15892
15893         * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
15894
15895 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
15896
15897         * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
15898         -MMD.
15899
15900 2010-08-12  Changpeng Fang  <changpeng.fang@amd.com>
15901
15902         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
15903         up dot_prod pattern searching if a stmt is outside the loop.
15904
15905 2010-08-12  H.J. Lu  <hongjiu.lu@intel.com>
15906             Uros Bizjak  <ubizjak@gmail.com>
15907
15908         * config.gcc: Handle --enable-frame-pointer.
15909
15910         * configure.ac: Add --enable-frame-pointer.
15911         * configure: Regenerated.
15912
15913         * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
15914         (override_options): If not configured with --enable-frame-pointer,
15915         enable -fomit-frame-pointer (but not for TARGET_MACHO or when
15916         optimizing for size), -fasynchronous-unwind-tables and
15917         -maccumulate-outgoing-args by default.
15918
15919 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
15920
15921         * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
15922
15923         PR middle-end/45262
15924         * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
15925         -a overflows.  Normalize the range.
15926
15927 2010-08-12  Richard Guenther  <rguenther@suse.de>
15928
15929         PR tree-optimization/45232
15930         * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
15931         for types with undefined overflow.
15932         (reassociate_bb): Allow re-associating of bit and min/max
15933         operations for types with undefined overflow.
15934         * tree-ssa-forwprop.c (associate_plusminus): New function.
15935         (tree_ssa_forward_propagate_single_use_vars): Call it.
15936
15937 2010-08-12  Richard Guenther  <rguenther@suse.de>
15938
15939         * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
15940         * tree-ssa-alias.c (get_ptr_info): Move ...
15941         * tree-ssanames.c (get_ptr_info): ... here.  Initialize
15942         align and misalign fields conservatively.
15943         * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
15944         derive alignment information.
15945         (evaluate_stmt): Derive alignment information from memory
15946         allocation functions.
15947         * tree.h (get_pointer_alignment): Make unsigned.
15948         * builtins.c (get_object_alignment): Use alignment information we
15949         have computed for pointers.
15950         (get_pointer_alignment): Likewise.  Make conservative, return
15951         and unsigned value.
15952         (expand_builtin_strlen): Adjust.
15953         (expand_builtin_memcmp): Likewise.
15954         (expand_builtin_strcmp): Likewise.
15955         (expand_builtin_strncmp): Likewise.
15956         (get_builtin_sync_mem): Use at least mode alignment.
15957         (fold_builtin_memset): Adjust.
15958         (fold_builtin_memory_op): Likewise.
15959         * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
15960         information also dump pointer alignment knowledge.
15961         (dump_gimple_stmt): Likewise.
15962
15963 2010-08-12  Uros Bizjak  <ubizjak@gmail.com>
15964
15965         * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
15966         (EMPTY_FIELD_BOUNDARY): Remove.
15967         * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
15968
15969 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
15970
15971         PR debug/45259
15972         * caller-save.c (save_call_clobbered_regs): Only swap notes with
15973         DEBUG_INSNs if n_regs_saved.
15974
15975 2010-08-12  Wei Guozhi  <carrot@google.com>
15976
15977         PR target/44999
15978         * config/arm/arm.md (andsi3): Change to zero extension if possible.
15979         * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
15980
15981 2010-08-11  Vladimir Makarov  <vmakarov@redhat.com>
15982
15983         * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
15984
15985         * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
15986
15987 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15988
15989         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
15990         the case removed in the previous patch, when the only phi argument
15991         is defined in the same loop as the phi node itself.  Handle it
15992         separately from the invariant case by both propagating it outside
15993         the region and replacing the phi node with an assign.
15994
15995 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15996
15997         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
15998         constant phi nodes with one argument are is_gimple_min_invariant
15999         and SSA_NAME_IS_DEFAULT_DEF.
16000
16001 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
16002
16003         * graphite-cloog-util.c (oppose_constraint):
16004         Extend loop counter's value range (CLOOG_ORG).
16005         (cloog_matrix_to_ppl_constraint): Same.
16006         (new_Constraint_System_from_Cloog_matrix): Same.
16007         * graphite-cloog-compat.h (matrix_num_type): New.
16008
16009 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
16010
16011         * graphite.c (graphite_initialize): Do not initialize
16012         CLooG and initialize the Parma Polyhedra Library
16013         manually when using CLOOG_ORG.
16014         (graphite_finalize): Do not finalize CLooG and finalize
16015         the Parma Polyhedra Library manually when using CLOOG_ORG.
16016         * graphite-cloog-compat.h (cloog_initialize): Hide function
16017         when using CLOOG_ORG.
16018         (cloog_finalize): Same.
16019
16020 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
16021
16022         * graphite-clast-to-gimple.c (free_scattering): Change
16023         CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
16024         (CLOOG_ORG).
16025         (build_cloog_prog): Same.
16026         * graphite-cloog-compat.h (cloog_domain): Removed.
16027         (cloog_scattering): New.
16028         (cloog_set_domain): Removed.
16029         (cloog_set_scattering): New.
16030         (cloog_next_domain): Removed.
16031         (cloog_next_scattering): New.
16032         (cloog_set_next_domain): Removed.
16033         (cloog_set_next_scattering): New.
16034         (CloogScatteringList): New.
16035         (CloogScattering): New.
16036         (cloog_scattering_free): New.
16037         (new_Cloog_Scattering_from_ppl_Polyhedron): New.
16038         * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
16039         New.
16040
16041 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
16042
16043         * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
16044         CloogState.
16045         (set_cloog_options): Same.
16046         (print_clast_stmt): Same.
16047         (scop_to_clast): Same.
16048         (print_generated_program): Same.
16049         (gloog): Same.
16050         * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
16051         (scop_to_clast): Extend with CloogState.
16052         * graphite-cloog-util.c: Include graphite-cloog-compat.h
16053         (new_Cloog_Domain_from_ppl_Polyhedron):
16054         Extend with CloogState.  Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
16055         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
16056         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
16057         * graphite-cloog-util.h (build_cloog_prog): Same.
16058         * graphite-cloog-copat.h (build_cloog_prog): New.
16059         (CloogState): New.
16060         (cloog_state_malloc): New.
16061         (cloog_state_free): New.
16062         (cloog_loop_malloc): New.
16063         (cloog_options_malloc): New.
16064         (cloog_statement_alloc): New.
16065         (cloog_domain_from_cloog_matrix): New.
16066         (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
16067         (new_Cloog_Domain_from_ppl_Polyhedron): New.
16068
16069 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
16070
16071         * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
16072         type of NAME now depends on used CLooG version.
16073         (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
16074         (gcc_type_for_clast_expr): Same.
16075         (print_clast_stmt): Replace pprint with clast_pprint.
16076         * graphite-cloog-compat.h: Provide compatibility macros for
16077         CLooG Legacy.
16078         (clast_name_p): New.
16079         (clast_expr_term): New.
16080         (clast_expr_red): New.
16081         (clast_expr_bin): New.
16082         (clast_pprint): New.
16083
16084 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
16085
16086         * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
16087         compatible to newer CLooG releases (CLOOG_ORG).
16088         (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
16089         (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
16090         * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
16091         (build_cloog_prog) : New.
16092         (cloog_program_extract_scalars): New.
16093         (cloog_program_scatter): New.
16094
16095 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
16096
16097         * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
16098         conditionally (CLOOG_ORG).
16099         * graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
16100         (cloog_statement_usr): New.
16101         (cloog_domain): Same.
16102         (cloog_set_domain): Same.
16103         (cloog_next_domain): Same.
16104         (cloog_set_next_domain): Same.
16105         (cloog_program_nb_scattdims): Same.
16106         (cloog_program_set_nb_scattdims): Same.
16107         (cloog_program_names): Same.
16108         (cloog_program_set_names): Same.
16109         (cloog_program_set_context): Same.
16110         (cloog_program_set_loop): Same.
16111         (cloog_program_blocklist): Same.
16112         (cloog_program_set_blocklist): Same.
16113         (cloog_program_scaldims): Same.
16114         (cloog_program_set_scaldims): Same.
16115         (cloog_names_nb_parameters): Same.
16116         (cloog_names_set_nb_parameters): Same.
16117         (cloog_names_parameters): Same.
16118         (cloog_names_set_parameters): Same.
16119         (cloog_names_set_nb_iterators): Same.
16120         (cloog_names_set_iterators): Same.
16121         (cloog_names_set_nb_scattering): Same.
16122         (cloog_names_set_scattering): Same.
16123         (cloog_statement_set_usr): Same.
16124         (cloog_loop_set_next): Same.
16125         (cloog_loop_set_domain): Same.
16126         (cloog_loop_set_block): Same.
16127         (cloog_block_list_next): Same.
16128         (cloog_block_list_set_next):
16129         (cloog_block_list_set_block): Same.
16130
16131 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16132
16133         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
16134         a bool.
16135         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
16136         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
16137         (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
16138         when something has been changed.
16139         (rewrite_commutative_reductions_out_of_ssa): Same.
16140
16141 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16142
16143         * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
16144         handle the case when def is in the sese region.
16145         (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
16146         for invariant expressions.
16147         (rewrite_cross_bb_phi_deps): Removed.
16148         (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
16149         (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
16150         rewrite_cross_bb_phi_deps.
16151
16152 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16153
16154         * graphite-sese-to-poly.c
16155         (rewrite_commutative_reductions_out_of_ssa_loop): Call
16156         scev_analyzable_p only on is_gimple_reg
16157
16158 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16159
16160         * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
16161         (rewrite_close_phi_out_of_ssa): Propagate constant values or
16162         parametric expressions outside the scop region.
16163         (rewrite_cross_bb_scalar_deps): Same.
16164         * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
16165
16166 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16167
16168         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
16169         SSA_NAME_DEF_STMT only on SSA_NAMEs.
16170
16171 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16172
16173         * tree-scalar-evolution.c (instantiate_scev_name): Do not
16174         instantiate default definitions.
16175
16176 2010-08-11  Vladimir Kargov  <kargov@gmail.com>
16177             Sebastian Pop  <sebastian.pop@amd.com>
16178
16179         * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
16180         (loop_exits_from_bb_p): New.
16181         * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
16182         (loop_exits_from_bb_p): Declared.
16183         * graphite-scop-detection.c (scopdet_basic_block_info): Call
16184         loop_exits_to_bb_p.
16185
16186 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16187
16188         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
16189         extra parameter for the region.  Call scev_analyzable_p.
16190         (rewrite_reductions_out_of_ssa): Update call to
16191         rewrite_close_phi_out_of_ssa.
16192         (rewrite_cross_bb_phi_deps): Same.
16193         (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
16194         parameter for the region.  Call scev_analyzable_p.
16195         (rewrite_commutative_reductions_out_of_ssa): Update call to
16196         rewrite_commutative_reductions_out_of_ssa_loop.
16197
16198 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16199
16200         * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
16201
16202 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16203
16204         * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
16205         SSA scalar phi nodes that can be scev_analyzable_p.
16206
16207 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16208
16209         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
16210         handle SSA_NAME_IS_DEFAULT_DEF.
16211
16212 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16213
16214         * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
16215
16216 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16217
16218         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
16219         case non close-phi nodes with one argument.
16220
16221 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16222
16223         * sese.h (scev_analyzable_p): Scevs could be expressions without
16224         chrecs and still be scev_analyzable_p.
16225
16226 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16227
16228         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
16229
16230 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16231
16232         * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
16233         * cfgloop.h (struct loop): Remove single_iv field.
16234         * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
16235         (scop_canonicalize_loops): Removed.
16236         (scop_ivs_can_be_represented): Do not use loop->single_iv.  Iterate
16237         over all the loop phi nodes in loop->header.
16238         (build_poly_scop): Remove use of scop_canonicalize_loops.
16239
16240 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16241
16242         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
16243         handle GIMPLE_CALL.
16244
16245 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16246
16247         * tree-chrec.c (chrec_apply): Should only apply to the specified
16248         variable.  Also handle multivariate chains of recurrences that
16249         satisfy evolution_function_is_affine_p.  Also handle CASE_CONVERT.
16250
16251 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16252
16253         * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
16254         (debug_clast_name_indexes_1): Removed.
16255         (debug_clast_name_indexes): Removed.
16256         (pbb_to_depth_to_oldiv): Removed.
16257         (build_iv_mapping): Replace the use of rename_map with iv_map.
16258         (translate_clast_user): Remove uses of rename_map.  Allocate and
16259         free iv_map.
16260         (translate_clast_for_loop): Remove uses of rename_map.
16261         (translate_clast_for): Same.
16262         (translate_clast_guard): Same.
16263         (translate_clast): Same.
16264         (gloog): Same.
16265         * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
16266         * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
16267         * sese.c (set_rename): Now static.
16268         (rename_variables_in_stmt): Removed.
16269         (rename_uses): New.
16270         (is_parameter): Removed.
16271         (is_iv): Removed.
16272         (expand_scalar_variables_call): Removed.
16273         (expand_scalar_variables_ssa_name): Removed.
16274         (expand_scalar_variables_expr): Removed.
16275         (expand_scalar_variables_stmt): Removed.
16276         (expand_scalar_variables): Removed.
16277         (rename_variables): Removed.
16278         (remove_condition): Removed.
16279         (get_true_edge_from_guard_bb): Removed.
16280         (get_false_edge_from_guard_bb): Removed.
16281         (struct igp): Removed.
16282         (default_before_guard): Removed.
16283         (convert_for_phi_arg): Removed.
16284         (add_guard_exit_phis): Removed.
16285         (insert_guard_phis): Removed.
16286         (graphite_copy_stmts_from_block): Now also uses iv_map and a
16287         region.  Do not copy conditions.  Do not copy induction variables.
16288         Call rename_uses.
16289         (copy_bb_and_scalar_dependences): Allocate a local rename_map for
16290         the translated statement.  Use the iv_map for the induction
16291         variable renaming.
16292         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
16293         (set_rename): Removed declaration.
16294         (scev_analyzable_p): ...here.
16295         * tree-chrec.c (chrec_apply_map): New.
16296         * tree-chrec.h (chrec_apply_map): Declared.
16297
16298 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16299
16300         * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
16301         insert_loop_close_phis.
16302         * sese.c (name_defined_in_loop_p): Removed.
16303         (expr_defined_in_loop_p): Removed.
16304         (alive_after_loop): Removed.
16305         (close_phi_not_yet_inserted_p): Removed.
16306         (struct alep): Removed.
16307         (add_loop_exit_phis): Removed.
16308         (insert_loop_close_phis): Removed.
16309
16310 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
16311
16312         * graphite-cloog-util.c
16313         (cloog_matrix_to_ppl_constraint): Fix flipped condition.
16314         * graphite-poly.c
16315         (psct_scattering_dim_for_loop_depth): Same.
16316
16317 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
16318
16319         * graphite-cloog-util.h: Added cloog.h.
16320         * graphite-blocking.c: Removed cloog.h.
16321         * graphite-dependences.c: Same.
16322         * graphite-interchange.c: Same.
16323         * graphite-poly.c: Same.
16324         * graphite-ppl.c: Same.
16325         * graphite-scop-detection.c: Same.
16326         * graphite-sese-to-poly.c:
16327         Removed cloog.h.
16328         Removed graphite-clast-to-gimple.h.
16329         (check_poly_representation): Removed (unused).
16330         * graphite-sese-to-poly.h
16331         (check_poly_representation): Removed (unused).
16332
16333 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
16334
16335         * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
16336         (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
16337         (graphite-cloog-util.o): New.
16338         (graphite-ppl.o): Added graphite-cloog-util.h.
16339         * graphite-clast-to-gimple.c:
16340         Added graphite-cloog-util.h to include statements.
16341         * graphite-cloog-util.c: New.
16342         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
16343         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
16344         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
16345         (new_C_Polyhedron_from_Cloog_Matrix): Same.
16346         (insert_constraint_into_matrix): Same.
16347         (ppl_Constrain_System_number_of_constraints): Same.
16348         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
16349         (oppose_constraint): Same.
16350         (cloog_matrix_to_ppl_constraint): Same.
16351         (new_Constraint_System_from_Cloog_Matrix): Same.
16352         * graphite-cloog-util.h: New.
16353         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
16354         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
16355         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
16356         (new_C_Polyhedron_from_Cloog_Matrix): Same.
16357         (insert_constraint_into_matrix): Same.
16358         * graphite-ppl.c:
16359         Added graphite-cloog-util.h to include statements.
16360         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
16361         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
16362         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
16363         (new_C_Polyhedron_from_Cloog_Matrix): Same.
16364         (insert_constraint_into_matrix): Same.
16365         (ppl_Constrain_System_number_of_constraints): Same.
16366         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
16367         (oppose_constraint): Same.
16368         (cloog_matrix_to_ppl_constraint): Same.
16369         (new_Constraint_System_from_Cloog_Matrix): Same.
16370         * graphite-ppl.h:
16371         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
16372         graphite-cloog-util.h.
16373         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
16374         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
16375         (new_C_Polyhedron_from_Cloog_Matrix): Same.
16376         (insert_constraint_into_matrix): Same.
16377
16378 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
16379
16380         * graphite-clast-to-gimple.c
16381         (precision_for_value): Resolve value_* calls to matching mpz_* calls.
16382         (precision_for_interval): Same.
16383         (gcc_type_for_interval): Same.
16384         (compute_type_for_level): Same.
16385         * graphite-interchange.c
16386         (lst_interchange_profitable_p): Same.
16387         * graphite-poly.c
16388         (psct_scattering_dim_for_loop_depth): Same.
16389         * graphite-ppl.c
16390         (ppl_max_for_le_pointset): Same.
16391         (ppl_min_for_le_pointset): Same.
16392
16393 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16394
16395         * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
16396         (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
16397
16398 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16399
16400         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
16401         rewrite_close_phi_out_of_ssa.
16402
16403 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16404
16405         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
16406
16407 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16408
16409         * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
16410         rename_map.
16411         * sese.c (debug_rename_map): Same.
16412         (get_rename): Same.
16413         (set_rename): Same.
16414         (rename_variables_in_stmt): Same.
16415         (expand_scalar_variables_call): Same.
16416         (expand_scalar_variables_ssa_name): Same.
16417         (expand_scalar_variables_expr): Same.
16418         (expand_scalar_variables_stmt): Same.
16419         (expand_scalar_variables): Same.
16420         (rename_variables): Same.
16421         (graphite_copy_stmts_from_block): Same.
16422         (copy_bb_and_scalar_dependences): Same.
16423
16424 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16425
16426         * graphite-clast-to-gimple.c (copy_renames): Removed.
16427         (translate_clast_for): Do not call copy_renames.
16428         (translate_clast_guard): Same.
16429
16430 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16431
16432         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
16433         (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
16434         (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
16435         before rewrite_cross_bb_scalar_deps.
16436
16437 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16438
16439         * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
16440         Early return in when flag_associative_math is not set.
16441
16442 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16443
16444         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
16445         of SSA copies on edges except for loop->latch.
16446
16447 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16448
16449         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
16450         Split out of rewrite_reductions_out_of_ssa.
16451         * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
16452         Declared.
16453         * graphite.c (graphite_transform_loops): Call it.
16454
16455 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16456
16457         * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
16458
16459 2010-08-11  Alexander Monakov  <amonakov@ispras.ru>
16460
16461         * dbgcnt.def (graphite_scop): New counter.
16462         * graphite.c: Include dbgcnt.h.
16463         (graphite_transform_loops): Use new counter to limit transformations.
16464         * Makefile.in (graphite.o): Depend on DBGCNT_H.
16465
16466 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16467
16468         * passes.c (init_optimization_passes): Add pass_graphite.
16469         Schedule a pass_copy_prop before pass_graphite_transforms.
16470         * timevar.def (TV_GRAPHITE): Declared.
16471         * tree-pass.h (pass_graphite): Declared.
16472         * tree-ssa-loop.c (pass_graphite): New.
16473
16474 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16475
16476         * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
16477         Remove calls to rename_nb_iterations and rename_sese_parameters.
16478         * graphite-clast-to-gimple.h (gloog): Update declaration.
16479         * graphite.c (graphite_transform_loops): Update call to gloog.
16480         * sese.c (rename_variables_in_expr): Removed.
16481         (rename_nb_iterations): Removed.
16482         (rename_sese_parameters): Removed.
16483         * sese.h (rename_nb_iterations): Removed.
16484         (rename_sese_parameters): Removed.
16485
16486 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16487
16488         * graphite-clast-to-gimple.c (gloog): Remove call to
16489         sese_adjust_liveout_phis.
16490         * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
16491         SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
16492         (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
16493         rewrite_phi_out_of_ssa.
16494         * sese.c (get_vdef_before_sese): Removed.
16495         (sese_adjust_vphi): Removed.
16496         (sese_adjust_liveout_phis): Removed.
16497         * sese.h (sese_adjust_liveout_phis): Removed.
16498
16499 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16500
16501         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
16502         argument for the place after which to insert the out of SSA copy.
16503         (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
16504         (rewrite_phi_out_of_ssa): Same.
16505         (rewrite_cross_bb_scalar_deps): Same.
16506         (insert_copyout): Removed.
16507         (insert_copyin): Removed.
16508         (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
16509         insert_out_of_ssa_copy_on_edge instead of insert_copyout and
16510         insert_copyin.
16511
16512 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16513
16514         * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
16515         (rewrite_reductions_out_of_ssa): Same.
16516         (rewrite_commutative_reductions_out_of_ssa): Same.
16517         (build_poly_scop): Do not call these functions.
16518         * graphite-sese-to-poly.h (build_poly_scop): Declared.
16519         (rewrite_reductions_out_of_ssa): Declared.
16520         (rewrite_commutative_reductions_out_of_ssa): Declared.
16521         * graphite.c (graphite_transform_loops): Call on every scop
16522         rewrite_commutative_reductions_out_of_ssa before calling
16523         rewrite_reductions_out_of_ssa and build_scop_bbs.
16524
16525 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16526
16527         * graphite-dependences.c (dot_deps): Make system call to dotty run
16528         in background.
16529         (dot_deps_stmt): Same.
16530         * graphite-poly.c (dot_lst): Same.
16531
16532 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16533
16534         * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
16535         phi_arg_in_outermost_loop.
16536         (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
16537         (remove_invariant_phi): Same.
16538
16539 2010-08-11  Anatoly Sokolov  <aesok@post.ru>
16540
16541         * target.def (output_addr_const_extra): New hook.
16542         * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
16543         * doc/tm.texi: Regenerate.
16544         * targhooks.c (default_asm_output_addr_const_extra): New function.
16545         * targhooks.h (default_asm_output_addr_const_extra): Declare.
16546         * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
16547         target hook.
16548
16549         * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
16550         * config/i386/i386-protos.h (output_addr_const_extra): Remove.
16551         * config/i386/i386.h (output_addr_const_extra): Rename to...
16552         (i386_asm_output_addr_const_extra): ...this. Make static.
16553         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
16554
16555 2010-08-11  Richard Henderson  <rth@redhat.com>
16556
16557         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
16558
16559 2010-08-11  Nick Clifton  <nickc@redhat.com>
16560
16561         * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
16562         * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
16563         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
16564         stormy16-lib2-cmpsi.c.
16565
16566         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
16567         -O2.
16568
16569 2010-08-11  Joseph Myers  <joseph@codesourcery.com>
16570
16571         * opts.h (struct cl_option_handler_func): Make handler take
16572         cl_decoded_option structure as parameter, not individual elements.
16573         (struct cl_option_handlers): Make callbacks take cl_decoded_option
16574         structure as parameter, not individual elements.
16575         (handle_option): Take cl_decoded_option structure as parameter,
16576         not individual elements.
16577         (handle_generated_option): Declare.
16578         * opts-common.c (handle_option): Take cl_decoded_option structure
16579         as parameter, not individual elements.  Update calls to callback
16580         and handler functions.
16581         (handle_generated_option): New.
16582         (read_cmdline_option): Update calls to callback functions and
16583         handle_option.
16584         * opts.c (common_handle_option, complain_wrong_lang,
16585         unknown_option_callback, post_handling_callback,
16586         lang_handle_option, target_handle_option): Take cl_decoded_option
16587         structure as parameter, not individual elements.
16588         (lang_handle_option, target_handle_option, common_handle_option):
16589         Assert option has at most one argument.
16590         (enable_warning_as_error): Call handle_generated_option instead of
16591         handle_option.  Do not pass -Werror argument as argument of
16592         generated option.
16593
16594 2010-08-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16595
16596         * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
16597         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
16598         (SUBWORD_BOOL_CAS): Likewise.
16599         (SUBWORD_SYNC_OP): Likewise.
16600         (SUBWORD_TEST_AND_SET): Likewise.
16601         (FETCH_AND_OP_WORD): Parenthesise INF_OP
16602         (SUBWORD_SYNC_OP): Likewise.
16603         (OP_AND_FETCH_WORD): Likewise.
16604
16605 2010-08-10  Xinliang David Li  <davidxl@google.com>
16606
16607         * tree-ssa-loop-ivopts.c (get_address_cost): Properly
16608         compute max/min offset in address.
16609
16610 2010-08-10  Vladimir Makarov  <vmakarov@redhat.com>
16611
16612         * ira-live.c: Include sbitmap.h.
16613         (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
16614         Compress live ranges even more.
16615
16616 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
16617
16618         * coverage.c (ctr_labels): Delete.
16619
16620 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
16621
16622         PR bootstrap/45177
16623         * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
16624         test here from arm_gen_load_multiple_1.
16625         (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
16626         multiple_operation_profitable_p.
16627
16628 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
16629
16630         * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
16631         (fini_pre): Call free_aux_for_blocks.  Delete unused bb variable.
16632
16633 2010-08-10  Richard Henderson  <rth@redhat.com>
16634
16635         * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
16636         after saving registers.  Assert that SSE registers are only saved
16637         with a sufficiently aligned frame.
16638         (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
16639         remove stack_realign_fp handling.
16640         (ix86_expand_prologue): Save int registers before stack_realign_fp,
16641         and do not mark the stack alignment as frame related.
16642         (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
16643
16644         * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
16645         saves when re-aligning the stack.
16646
16647 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
16648
16649         * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
16650         * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
16651         (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
16652
16653 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
16654
16655         * dwarf2out.c (struct die_struct): Move die_tag to the end.
16656
16657 2010-08-09  Sofiane Naci  <sofiane.naci@arm.com>
16658
16659         * config/arm/iterators.md: New file.
16660         * config/arm/arm.md: Include iterators.md.
16661         (QHSI): Move to new file.
16662         (LTUGEU, cnb, optab, ior_xor): Likewise.
16663         * config/arm/iwmmxt.md (VMMX): Move to new file.
16664         (VSHFT, MMX_char): Likewise.
16665         * config/arm/neon.md (VD): Move to new file.
16666         (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
16667         (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
16668         (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
16669         (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
16670         (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
16671         (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
16672         (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
16673         (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
16674         (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
16675         (Is_d_reg, V_mode_nunits): Likewise.
16676         * config/arm/vec-common.md (VALL): Move to new file.
16677         (VALLW, VINT, VINTW): Likewise.
16678
16679 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
16680
16681         PR middle-end/45182
16682         * combine.c (make_compound_operation): Don't try to convert
16683         shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
16684
16685 2010-08-10  Richard Guenther  <rguenther@suse.de>
16686
16687         * tree.h (get_object_alignment): Adjust prototype.
16688         * builtins.c (get_object_alignment): Return unsigned int,
16689         drop the align parameter.  Handle MEM_REF, MISALIGNED_INDIRECT_REF
16690         and TARGET_MEM_REF properly.
16691         (get_pointer_alignment): Adjust.
16692         * emit-rtl.c (get_mem_align_offset): Adjust comment.
16693         (set_mem_attributes_minus_bitpos): Adjust.
16694         * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
16695
16696 2010-08-10  Richard Guenther  <rguenther@suse.de>
16697
16698         * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
16699         (copy_prop_visit_assignment): Simplify.
16700         (copy_prop_visit_stmt): Also visit assignments from
16701         constants.
16702         (copy_prop_visit_phi_node): Use operand_equal_p.
16703
16704 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
16705
16706         * ipa-split.c (find_split_points): Free stack.
16707
16708 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
16709
16710         * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
16711         * tree.c (tree_node_kind): Delete corresponding entries.
16712
16713 2010-08-09  H.J. Lu  <hongjiu.lu@intel.com>
16714
16715         * alias.c (may_alias_p): Remove unused ret.
16716
16717 2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
16718
16719         * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
16720         alias_sets_conflict_p.
16721         (walk_mems_1): Moved from alias.c.
16722         (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
16723         in alias.c.
16724         (add_inter_loop_mem_dep): Use insns_may_alias_p now.
16725         * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
16726         * alias.c (walk_mems_2): Moved to ddg.c.
16727         (walk_mems_1): Ditto.
16728         (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
16729         to ddg.c.
16730         (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
16731         disambiguation.
16732         *(may_alias_p): New function to check whether two memory expression
16733         may alias or not. Currently used in buidling inter-iteration memory
16734         dependence.
16735         *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
16736         (insn_alias_sets_conflict_p): Removed
16737         *rtl.h (may_alias_p): New function prototype.
16738
16739 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
16740
16741         * tree.c (nreverse): Assert that we don't have a BLOCK.
16742
16743 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
16744
16745         * builtins.c (fold_builtin_next_arg): Use stdarg_p.
16746         * config/arm/arm.c (arm_get_pcs_model): Likewise.
16747         * config/avr/avr.c (init_cumulative_args): Likewise.
16748         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
16749         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
16750         * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
16751         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
16752         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
16753         * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
16754         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
16755         * dwarf2out.c (gen_subprogram_die): Likewise.
16756         * function.c (allocate_struct_function): Likewise.
16757         * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
16758         (deserves_ellipsis): Delete.
16759
16760 2010-08-09  Richard Guenther  <rguenther@suse.de>
16761
16762         * tree-ssa-copy.c (cached_last_copy_of): Remove.
16763         (valueize_val): New function.
16764         (get_last_copy_of): Remove.
16765         (set_copy_of_val): Simplify.
16766         (dump_copy_of): Likewise.
16767         (copy_prop_visit_cond_stmt): Use valueize_val.
16768         (copy_prop_visit_phi_node): Properly handle unvisited names.
16769         Drop code managing copy-of chains.
16770         (init_copy_prop): Adjust.
16771         (fini_copy_prop): Likewise.
16772         (execute_copy_prop): Remove obsolete comment.
16773
16774 2010-08-09  Richard Guenther  <rguenther@suse.de>
16775
16776         PR middle-end/44632
16777         * function.c (gimplify_parameters): Do not clear addressable
16778         bit of the original parameter.
16779
16780 2010-08-09  Richard Guenther  <rguenther@suse.de>
16781
16782         PR middle-end/45212
16783         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
16784         alignment from MEM_REF offset only if we took it from the
16785         base object.
16786
16787 2010-08-09  Eric Fisher  <joefoxreal@gmail.com>
16788
16789         * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
16790
16791 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
16792
16793         * c-tree.h (build_arg_info): Declare.
16794         * c-decl.c (build_arg_info): Define.
16795         (get_parm_info): Call it.  Delete initialization code.
16796         * c-parser.c (c_parser_parms_declarator): Likewise.
16797         (c_parser_parms_list_declaractor): Likewise.
16798
16799 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
16800
16801         * c-tree.h (c_arg_tag): Define.  Define a VEC containing it.
16802         (struct c_arg_info): Change type of tags field.
16803         * c-decl.c (grokdeclarator): Update for changed type of tags field.
16804         (get_parm_info): Likewise.
16805         (store_parm_decls_newstyle): Likewise.
16806
16807 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
16808
16809         * config/rs6000/rs6000.c (branch_island): Define.  Define a VEC of it.
16810         (branch_island_list): Delete.
16811         (branch_islands): Declare.
16812         (add_compiler_branch_island): Adjust for branch_islands instead of
16813         branch_island_list.
16814         (macho_branch_islands): Likewise.
16815         (no_previous_def): Likewise.
16816         (get_prev_label): Likewise.
16817
16818 2010-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16819
16820         PR boehm-gc/34544
16821         * gthr-posix.h (__gthread_start): Delete.
16822         (__gthread_active_init): Use pthread_default_stacksize_np instead of
16823         pthread_create to determine if hpux pthreads are active.
16824         * gthr-posix95.h (__gthread_start): Delete.
16825         (__gthread_active_init): Likewise use pthread_default_stacksize_np.
16826
16827 2010-08-08  Kai Tietz  <kai.tietz@onevision.com>
16828
16829         * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
16830         _WIN64 not expanded.
16831
16832 2010-08-07  Uros Bizjak  <ubizjak@gmail.com>
16833             H.J. Lu  <hongjiu.lu@intel.com>
16834
16835         PR target/45213
16836         * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
16837         to output 32bit SFmode immediate as 8 byte sign extended value.
16838
16839 2010-08-07  Marcus Shawcroft  <marcus.shawcroft@arm.com>
16840
16841         * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
16842         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
16843         (SUBWORD_BOOL_CAS): Likewise.
16844         (SUBWORD_SYNC_OP): Likewise.
16845         (SUBWORD_TEST_AND_SET): Likewise.
16846         (FETCH_AND_OP_WORD): Parenthesise INF_OP
16847         (SUBWORD_SYNC_OP): Likewise.
16848         (OP_AND_FETCH_WORD): Likewise.
16849
16850 2010-08-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16851
16852         * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
16853         * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
16854         (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
16855         (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
16856         generic part.
16857         (cortex_a9_sched_adjust_cost): New function.
16858         (xscale_sched_adjust_cost): New function.
16859         * config/arm/arm-protos.h (struct tune_params): New field
16860         sched_adjust_cost.
16861         * config/arm/arm-cores.def: Adjust costs for cortex-a9.
16862
16863 2010-08-06  Eric Botcazou  <ebotcazou@adacore.com>
16864
16865         PR target/44942
16866         * config/sparc/sparc.c (function_arg_advance): Always take into account
16867         the padding, if any.
16868
16869 2010-08-06  Richard Guenther  <rguenther@suse.de>
16870
16871         * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
16872         (dump_lattice_value): Dump it.
16873         (get_default_value): Adjust.
16874         (get_constant_value): Likewise.
16875         (set_value_varying): Likewise.
16876         (set_lattice_value): Make sure to not go up the lattice
16877         with bitwise constant values.
16878         (get_value_for_expr): Handle ADDR_EXPRs.
16879         (value_to_double_int): New function.
16880         (get_value_from_alignment): Likewise.
16881         (do_dbg_cnt): Adjust.
16882         (ccp_lattice_meet): Handle partially constant values.
16883         (bit_value_unop_1): New function.
16884         (bit_value_binop_1): Likewise.
16885         (bit_value_unop): Likewise.
16886         (bit_value_binop): Likewise.
16887         (evaluate_stmt): Track partially constant values if
16888         flag_tree_bit_ccp is set.
16889         (ccp_fold_stmt): Dump if we folded a predicate.
16890         (ccp_visit_stmt): Adjust.
16891         * common.opt (ftree-bit-ccp): New flag.
16892         * doc/invoke.texi (ftree-bit-ccp): Document.
16893         * opts.c (decode_options): Enable bit-CCP at -O1.
16894
16895 2010-08-06  Alan Modra  <amodra@gmail.com>
16896
16897         * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
16898         and -mrelocatable-lib description.
16899
16900 2010-08-05  Bernd Schmidt  <bernds@codesourcery.com>
16901
16902         From Martin Thuresson  <martint@google.com>
16903         * postreload.c (reload_cse_simplify_operands): Use
16904         SET_REGNO_RAW instead of SET_REGNO.
16905         * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
16906         SET_REGNO.
16907         * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
16908         instead of SET_REGNO.
16909         * rtl.h (SET_REGNO_RAW): New macro.
16910
16911 2010-08-05  Eric Botcazou  <ebotcazou@adacore.com>
16912
16913         * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
16914         computations.  Fix formatting issues.
16915         (num_sign_bit_copies1): Likewise.
16916         (canonicalize_condition): Likewise.
16917
16918 2010-08-05  Richard Henderson  <rth@redhat.com>
16919
16920         * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
16921         (floor_log2): Use clz_hwi.
16922         (exact_log2): Use ctz_hwi.
16923         * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
16924         * builtins.c (fold_builtin_bitop): Use them.
16925         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
16926         * combine.c (get_pos_from_mask): Use ctz_hwi.
16927         * double-int.c (double_int_ctz): Likewise.
16928         * explow.c (force_reg): Likewise.
16929         * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
16930
16931 2010-08-05  Richard Henderson  <rth@redhat.com>
16932
16933         PR target/45189
16934         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
16935         the alignment constant is properly sign-extended.
16936
16937 2010-08-05  Richard Guenther  <rguenther@suse.de>
16938
16939         * expr.c (store_expr): Use emit_block_move only if both
16940         source and target are MEMs.  Use store_bit_field if only
16941         the target is a MEM.
16942
16943 2010-08-05  Richard Henderson  <rth@redhat.com>
16944
16945         PR debug/45188
16946         * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
16947         (INCOMING_RETURN_ADDR_RTX): Likewise.
16948         (dwarf2out_do_frame): Remove conditional compilation.
16949         (dwarf2out_frame_init): Likewise.
16950
16951 2010-08-05  Nicolas Setton  <setton@adacore.com>
16952
16953         * gcov.c (flag_display_progress): New static variable.
16954         (main): Display progress info on standard output if requested.
16955         (options): Add -d/--display-progress.
16956         (print_usage): Print them.
16957         (process_args): Handle them.
16958         * doc/gcov.texi: Document them.
16959
16960 2010-08-05  Martin Jambor  <mjambor@suse.cz>
16961
16962         * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
16963         (ipcp_insert_stage): Redirect only edges not flagged with
16964         indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
16965         discovered constants.
16966
16967 2010-08-05  Martin Jambor  <mjambor@suse.cz>
16968
16969         * ipa-prop.h (enum ipa_lattice_type): Changed comments.
16970         (struct ipa_param_descriptor): New fields types and
16971         cannot_devirtualize.
16972         (ipa_param_cannot_devirtualize_p): New function.
16973         (ipa_param_types_vec_empty): Likewise.
16974         (ipa_make_edge_direct_to_target): Declare.
16975         * ipa-cp.c: Fixed first stage driver name in initial comment,
16976         described devirtualization there too.
16977         (ipcp_analyze_node): Call ipa_analyze_params_uses.
16978         (ipcp_print_all_lattices): Print devirtualization info.
16979         (ipa_set_param_cannot_devirtualize): New function.
16980         (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
16981         lattice to BOTTOM.
16982         (ipcp_init_stage): Merged into...
16983         (ipcp_generate_summary): ...its caller.
16984         (ipcp_change_tops_to_bottom): Also process type lists.
16985         (ipcp_add_param_type): New function.
16986         (ipcp_copy_types): Likewise.
16987         (ipcp_propagate_types): Likewise.
16988         (ipcp_propagate_stage): Also propagate types.
16989         (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
16990         Also return true if propagated types require it.
16991         (ipcp_update_callgraph): Dump redirection info.
16992         (ipcp_process_devirtualization_opportunities): New function.
16993         (ipcp_const_param_count): Include known type information.
16994         (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
16995         on new node.  Fixed formatting.
16996         * ipa-prop.c (make_edge_direct_to_target): Renamed to
16997         ipa_make_edge_direct_to_target and changed all callers.  Made
16998         externally visible.
16999         (ipa_node_duplication_hook): Duplicate types vector.
17000         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
17001         redirect outgoing calls for which we can't get a decl from the
17002         statement.  Check that we can get a decl from the call statement.
17003         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
17004         ipa_analyze_params_uses only when ipa-cp is disabled.
17005         * tree-inline.c (get_indirect_callee_fndecl): Removed.
17006         (expand_call_inline): Do not call get_indirect_callee_fndecl.
17007         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
17008         * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
17009
17010 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
17011
17012         * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
17013         temporary. Emit move from temporary to accum, so REG_EQUAL note will
17014         be attached to this insn in correct mode.
17015
17016 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
17017
17018         * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
17019         using REGNO of base_reg directly.
17020
17021 2010-08-05  Jie Zhang  <jie@codesourcery.com>
17022
17023         PR tree-optimization/45144
17024         * tree-sra.c (type_consists_of_records_p): Return false
17025         if the record contains bit-field.
17026
17027 2010-08-04  Richard Henderson  <rth@redhat.com>
17028
17029         * config/i386/i386.c (struct ix86_frame): Remove padding and
17030         to_allocate members.
17031         (ix86_compute_frame_layout): Don't store them.
17032         (ix86_can_use_return_insn_p): Use a more direct and more obviously
17033         correct condition for the position of the stack pointer.
17034         (ix86_expand_prologue): Compute remaining stack allocation based
17035         on the ultimate stack pointer offset.
17036         (ix86_expand_epilogue): Use more obvious expressions testing for
17037         the stack pointer already pointing to the saved registers.
17038
17039         * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
17040         duplication deconstructing the frame pointer.  Simplify
17041         deallocation of the local stack frame.
17042
17043         * reg-notes.def (CFA_EXPRESSION): New.
17044         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
17045         (dwarf2out_frame_debug_cfa_expression): New.
17046         (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
17047
17048         * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
17049         * config/i386/i386.c (ix86_expand_prologue): Set it.
17050         (ix86_expand_epilogue): Clear it.
17051         (ix86_emit_save_reg_using_mov): For registers saved in a realigned
17052         context, add REG_CFA_EXPRESSION notes.
17053
17054         * config/i386/i386.h (struct machine_frame_state): Rename from
17055         machine_cfa_state.  Add members tracking SP and FP regardless
17056         of the current CFA register.
17057         (ix86_cfa_state): Remove.
17058         * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
17059         and sse_reg_save_offset members.
17060         (ix86_compute_frame_layout): Set them.
17061         (gen_push): Increment sp_offset too.
17062         (choose_baseaddr_len, choose_baseaddr): New.
17063         (ix86_emit_save_reg_using_mov): New.
17064         (ix86_emit_save_regs_using_mov): Use it.
17065         (ix86_emit_save_sse_regs_using_mov): Likewise.
17066         (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
17067         compare vs the saved red_zone_offset.
17068         (pro_epilogue_adjust_stack): Adjust sp_offset.
17069         (ix86_adjust_stack_and_probe): Likewise.
17070         (ix86_expand_prologue): Set up, use, and validate the new
17071         frame_state_info members.  Use gen_frame_mem.
17072         (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
17073         (ix86_emit_restore_reg_using_pop): Likewise.  Use and update the
17074         new frame_state_info members.
17075         (ix86_emit_leave): Likewise.
17076         (ix86_emit_restore_regs_using_mov): Likewise.  Don't check for
17077         out-of-range stack pointer offsets here.
17078         (ix86_emit_restore_sse_regs_using_mov): Likewise.
17079         (ix86_expand_epilogue): Use and validate the new frame_state_info
17080         members.  Break up and simplify the logic selecting the
17081         restore_regs_via_mov code path.  Ensure that there will be no
17082         out-of-range stack pointer offsets.
17083
17084         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
17085
17086         * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
17087         argument name to reflect the expected tree; fix indentation.
17088         (ix86_asm_output_function_label): Output the entire 32-bit
17089         ms_hook here as bytes ...
17090         (ix86_expand_prologue): ... not here as insns.  Attach the
17091         unwind info for the ms_hook to a blockage insn.
17092         (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
17093         (ix86_ms_bitfield_layout_p): Fix indentation.
17094         * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
17095
17096         * config/i386/i386.c (ix86_using_red_zone): New.
17097         (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
17098         ix86_expand_prologue, ix86_force_to_memory): Use it.
17099
17100         * config/i386/i386.c (ix86_expand_prologue): Simplify logic
17101         saving the int registers.
17102
17103         * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
17104         and DWARF2_UNWIND_INFO conditional compilation.
17105
17106 2010-08-04  Richard Henderson  <rth@redhat.com>
17107
17108         PR debug/45171
17109         * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
17110         an is_naming_typedef_decl.
17111
17112 2010-08-04  Bernd Schmidt  <bernds@codesourcery.com>
17113
17114         PR rtl-optimization/45162
17115         * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
17116         * dce.c (word_dce_process_block): Likewise.
17117
17118 2010-08-04  Steve Ellcey  <sje@cup.hp.com>
17119
17120         PR target/44583
17121         * config/ia64/constraints.md (Z): New.
17122         * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
17123         (xfreg_or_signed_fp01_operand): New.
17124         * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
17125         with fr_reg_or_signed_fp01_operand and constraint G with Z.
17126         (subsf3): Ditto.
17127         (*maddsf4): Ditto.
17128         (*msubsf4): Ditto.
17129         (adddf3): Ditto.
17130         (adddf3_trunc): Ditto.
17131         (subdf3): Ditto.
17132         (*subdf3_trunc): Ditto.
17133         (*madddf4): Ditto.
17134         (*madddf4_trunc): Ditto.
17135         (*msubdf4): Ditto.
17136         (*msubdf4_trunc): Ditto.
17137         (addxf3): Replace xfreg_or_fp01_operand with
17138         xfreg_or_signed_fp01_operand and constraint G with Z.
17139         (*addxf3_truncsf): Ditto.
17140         (*addxf3_truncdf): Ditto.
17141         (subxf3): Ditto.
17142         (*subxf3_truncsf): Ditto.
17143         (*subxf3_truncdf): Ditto.
17144         (*maddxf4): Ditto.
17145         (*maddxf4_truncsf): Ditto.
17146         (*maddxf4_truncdf): Ditto.
17147         (*msubxf4): Ditto.
17148         (*msubxf4_truncsf): Ditto.
17149         (*msubxf4_truncdf): Ditto.
17150
17151 2010-08-04  Richard Guenther  <rguenther@suse.de>
17152
17153         * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
17154         if either alias-set is zero.
17155
17156 2010-08-04  Richard Guenther  <rguenther@suse.de>
17157
17158         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
17159         * tree-ssa-ccp.c: ... here.
17160         * tree-ssa-copy.c: ... and here.
17161         * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
17162         value_range_t): Move ...
17163         * tree-vrp.c: ... here.
17164         * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
17165         (substitute_and_fold): Adjust prototype.
17166         * tree-ssa-propagate.c (replace_uses_in): Adjust.
17167         (replace_phi_args_in): Likewise.
17168         (substitute_and_fold): Take callback to query lattice instead
17169         of pointer to lattice.  Replace SSA name defs with lattice
17170         values first.
17171         * tree-ssa-ccp.c (ccp_finalize): Adjust.
17172         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
17173         (get_value): New function.
17174         (fini_copy_prop): Adjust.
17175         * tree-vrp.c (vrp_finalize): Adjust.
17176
17177 2010-08-04  Richard Guenther  <rguenther@suse.de>
17178
17179         PR middle-end/45176
17180         * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
17181         points-to set for original MEM_REF.
17182
17183 2010-08-04  Richard Guenther  <rguenther@suse.de>
17184
17185         * tree-ssa-ccp.c (get_constant_value): New function.
17186         (get_rhs_assign_op_for_ccp): Remove.
17187         (valueize_op): New function.
17188         (ccp_fold): Use get_constant_value and valueize_op.
17189         (fold_const_aggregate_ref): Likewise.
17190         (ccp_fold_stmt): Likewise.
17191         (visit_assignment): Simplify.
17192
17193 2010-08-04  Richard Guenther  <rguenther@suse.de>
17194
17195         * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
17196         * double-int.h (double_int_ctz): Declare.
17197         * double-int.c (double_int_ctz): New function.
17198
17199 2010-08-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
17200
17201         * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
17202         Define.
17203         picochip_expand_movmemhi : Expand movmem pattern.
17204         * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
17205         Declare.
17206         * config/picochip/picochip.md (movmemhi) : New pattern.
17207
17208 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
17209
17210         * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
17211
17212 2010-08-03  Bernd Schmidt  <bernds@codesourcery.com>
17213
17214         * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
17215         NEG as operand of a MULT by merging it with the other operand.
17216         * combine.c (make_compound_operation): Use trunc_int_for_mode when
17217         generating a MULT with constant.  Canonicalize PLUS and MINUS involving
17218         MULT.
17219         * config/arm/constraints.md (M): Examine only 32 bits of a
17220         HOST_WIDE_INT.
17221         * config/arm/predicates.md (power_of_two_operand): Likewise.
17222
17223 2010-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17224
17225         * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
17226         non-NOTE insns.
17227
17228 2010-08-03  Jan Hubicka  <jh@suse.cz>
17229
17230         * ipa-split.c (struct split_point): Add split_part_set_retval.
17231         (find_retval): Forward declare.
17232         (test_nonssa_use, mark_nonssa_use): Special case return by reference.
17233         (consider_split): Compute current->split_part_set_retval.
17234         (visit_bb): Do not look into return value.
17235         (split_function): Handle !split_part_set_retval
17236
17237 2010-08-03  Martin Jambor  <mjambor@suse.cz>
17238
17239         * tree-sra.c (completely_scalarize_record): New parameter REF, create
17240         its own access->expr intead of using build_ref_for_offset.
17241
17242 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
17243
17244         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
17245         * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
17246         * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
17247         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
17248         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
17249         * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
17250         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
17251         DEFAULT_SWITCH_TAKES_ARG.
17252         * config/rx/rx.opt (-patch=): Remove option.
17253         * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
17254         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
17255         * doc/invoke.texi (RX Options): Remove -patch=.
17256         * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
17257         (option_map): Remove --profile-blocks, --quiet and --silent.
17258
17259 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
17260
17261         * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
17262         * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
17263         (ix86_expand_branch): Add op0 and op1 arguments.  Do not access
17264         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
17265         Update calls to ix86_expand_compare and ix86_expand_branch.
17266         (ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
17267         ix86_expand_compare.
17268         (ix86_expand_compare): Add op0 and op1 arguments.  Do not access
17269         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
17270         Make static.
17271         (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
17272         and ix86_compare_op1.  Update calls to ix86_expand_compare.
17273         (ix86_expand_int_movcc): Ditto.
17274         (ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
17275         * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
17276         (ix86_expand_setcc): Ditto.
17277         (ix86_expand_compare): Remove prototype.
17278         * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
17279         ix86_compare_op0 and ix86_compare_op1.  Update calls
17280         to ix86_expand_branch to directly pass operands[1] and operands[2].
17281         (cbranchxf4): Ditto.
17282         (cbranch<MODEF:mode>4): Ditto.
17283         (cbranchcc4): Ditto.
17284         (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
17285         Update calls to ix86_expand_setcc to directly pass operands[2] and
17286         operands[3].
17287         (cstorexf4): Ditto.
17288         (cstore<MODEF:mode>4): Ditto.
17289         (cstorecc4): Ditto.
17290
17291 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
17292
17293         PR target/45063
17294         * caller-save.c (save_call_clobbered_regs): Remove regs from
17295         hard_regs_saved when they are set.
17296
17297 2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
17298
17299         PR target/41089
17300         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
17301         as volatile.
17302
17303 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
17304
17305         * common.opt (ftree-loop-distribute-patterns): New.
17306         * invoke.texi (-ftree-loop-distribute-patterns): Documented.
17307         * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
17308         at -O3.
17309         * tree-data-ref.c (stores_zero_from_loop): New.
17310         * tree-data-ref.h (stores_zero_from_loop): Declared.
17311         * tree-loop-distribution.c (tree_loop_distribution): Call
17312         stores_zero_from_loop.
17313         (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
17314
17315 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
17316
17317         * postreload.c (reload_cse_simplify_operands): Take attribute enabled
17318         into account.
17319
17320         * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
17321         * config/arm/arm.c (thumb1_code): New variable.
17322         (arm_override_options): Set it.
17323         (thumb1_final_prescan_insn): Keep track of condition code status.
17324         (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
17325         jumps that depend on them.
17326         * config/arm/arm.h (thumb1_code): Declare variable.
17327         (struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
17328         members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
17329         thumb1_cc_mode.
17330         (CC_STATUS_INIT): New macro.
17331         * config/arm/constraints.md (Pd): New constraint.
17332         * config/arm/predicates.md (noov_comparison_operator): New predicate.
17333         * config/arm/arm.md (is_thumb1): New define_attr.
17334         (conds): Set default to "clob" when generating Thumb1 code.
17335         (thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
17336         code are set.  Use two-operand assembly syntax.
17337         (thumb1_subsi3_insn): Condition codes are set.  Now a properly named
17338         pattern.
17339         (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
17340         codes are set.  Use two-operand assembly syntax.
17341         (zero_extendhisi splitter): Remove constraints.
17342         (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
17343         thumb1_movsf_insn): Set conds attribute as appropriate.
17344         (cbranchsi4_insn): Use condition code status from struct
17345         machine_function to determine whether the comparison can be eliminated.
17346         Discourage the alternative using high registers.
17347         (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
17348         orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
17349         bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
17350         subsi3_cbranch): Delete.
17351         (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
17352         one subtract and one cbranch insn.
17353
17354         * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
17355         thumb2_movdf_soft_insn): Delete patterns.
17356         * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
17357         arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
17358         (pool_range, neg_pool_range): Use them to define defaults.
17359         (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
17360         and allow for TARGET_32BIT.
17361
17362         PR target/40457
17363         * config/arm/arm.h (arm_regs_in_sequence): Declare.
17364         * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
17365         load_multiple_sequence, store_multiple_sequence): Delete
17366         declarations.
17367         (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
17368         declarations.
17369         * config/arm/ldmstm.md: New file.
17370         * config/arm/arm.c (arm_regs_in_sequence): New array.
17371         (load_multiple_sequence): Now static.  New args SAVED_ORDER,
17372         CHECK_REGS.  All callers changed.
17373         If SAVED_ORDER is nonnull, copy the computed order into it.
17374         If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
17375         (store_multiple_sequence): Now static.  New args NOPS_TOTAL,
17376         SAVED_ORDER, REG_RTXS and CHECK_REGS.  All callers changed.
17377         If SAVED_ORDER is nonnull, copy the computed order into it.
17378         If CHECK_REGS is false, don't sort REGS.  Set up REG_RTXS just
17379         like REGS.  Handle Thumb mode.
17380         (arm_gen_load_multiple_1): New function, broken out of
17381         arm_gen_load_multiple.
17382         (arm_gen_store_multiple_1): New function, broken out of
17383         arm_gen_store_multiple.
17384         (arm_gen_multiple_op): New function, with code from
17385         arm_gen_load_multiple and arm_gen_store_multiple moved here.
17386         (arm_gen_load_multiple, arm_gen_store_multiple): Now just
17387         wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
17388         changed.
17389         (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
17390         * config/arm/predicates.md (commutative_binary_operator): New.
17391         (load_multiple_operation, store_multiple_operation): Handle more
17392         variants of these patterns with different starting offsets.  Handle
17393         Thumb-1.
17394         * config/arm/arm.md: Include "ldmstm.md".
17395         (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
17396         ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
17397         stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
17398         peepholes): Delete.
17399         * config/arm/ldmstm.md: New file.
17400         * config/arm/arm-ldmstm.ml: New file.
17401
17402         * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
17403         if statement which adds extra costs to frame-related expressions.
17404
17405 2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
17406
17407         * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
17408
17409 2010-08-01  Uros Bizjak  <ubizjak@gmail.com>
17410
17411         PR target/45142
17412         * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
17413         alternative 2.
17414         (vec_set<mode>_0 splitter): Use SSEMODE4S mode iterator to also
17415         split V4SI operands.
17416
17417 2010-08-01  Anatoly Sokolov  <aesok@post.ru>
17418
17419         * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
17420         * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
17421         * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
17422         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
17423
17424 2010-07-31  Kai Tietz  <kai.tietz@onevision.com>
17425
17426         * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
17427         LOCAL_INCLUDE_DIR.
17428
17429 2010-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
17430
17431         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
17432         used in the call to optab_for_tree_code.  Fix the second
17433         is_widening_mult_p call.  Check that both unwidened operands
17434         have the same sign.
17435
17436 2010-07-31  John Tytgat  <John.Tytgat@aaug.net>
17437
17438         * config/arm/arm.c (arm_function_arg): Remove superfluous test.
17439
17440 2010-07-31  Anatoly Sokolov  <aesok@post.ru>
17441
17442         * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
17443
17444 2010-07-30  DJ Delorie  <dj@redhat.com>
17445
17446         * config/rx/predicates.md (rx_constshift_operand): New.
17447         * config/rx/rx.md (zs_cond): New.
17448         (cbranchsi4): Remove mode.
17449         (*cbranchsi4_<code>): Likewise.
17450         (*tstbranchsi4_<code>): New.
17451         (*tstbranchsi4r_<code>): New.
17452         (*tstbranchsi4m_eq): New.
17453         (*tstbranchsi4m_ne): New.
17454         (cbranchsf4): Remove mode.
17455         (*cbranchsf4_<code>): Likewise.
17456
17457 2010-07-30  Bernd Schmidt  <bernds@codesourcery.com>
17458
17459         * rtlanal.c (simplify_subreg_regno): Don't treat
17460         HARD_FRAME_POINTER_REGNUM specially.
17461
17462 2010-07-30  Joseph Myers  <joseph@codesourcery.com>
17463
17464         * common.opt (-G): Don't define option here.
17465         * config/g.opt: New.
17466         * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
17467         rs6000/powerpc and score targets.
17468         * opts.c (common_handle_option): Don't handle -G here.
17469         * config/alpha/alpha.c (alpha_handle_option): Handle -G.
17470         * config/frv/frv.c (frv_handle_option): Handle -G.
17471         * config/ia64/ia64.c (ia64_handle_option): Handle -G.
17472         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
17473         * config/m32r/m32r.c (m32r_handle_option): Handle -G.
17474         * config/mips/mips.c (mips_handle_option): Handle -G.
17475         * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
17476         * config/score/score.c (score_handle_option): Handle -G.
17477
17478 2010-07-30  Anatoly Sokolov  <aesok@post.ru>
17479
17480         * config/mmix/mmix.c: Include basic-block.h.
17481
17482 2010-07-30  Jakub Jelinek  <jakub@redhat.com>
17483
17484         PR debug/45055
17485         PR rtl-optimization/45137
17486         * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
17487         prototypes.
17488         * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
17489         New functions.
17490         * combine.c (next_nonnote_nondebug_insn): Removed.
17491         * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
17492         * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
17493         * sched-deps.c (sched_analyze_insn): Likewise.
17494         (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
17495         * rtlanal.c (canonicalize_condition): Likewise.
17496         * postreload.c (reload_combine_recognize_pattern): Likewise.
17497         (reload_cse_move2add): Use next_nonnote_nondebug_insn.
17498
17499 2010-07-29  Uros Bizjak  <ubizjak@gmail.com>
17500
17501         * config/i386/i386.md (int_cond): Remove code iterator.
17502         (fp_cond): Ditto.
17503         (cbranch<mode>4): Use ordered_comparison_operator predicate
17504         for operator0.
17505         (cstore<mode>4): Ditto for operator1.
17506         (mov<SWIM:mode>cc and corresponding splitter): Ditto.
17507         (add<mode>cc): ditto.
17508
17509 2010-07-30  Richard Guenther  <rguenther@suse.de>
17510
17511         PR middle-end/45141
17512         * expr.c (expand_expr_real_1): Check for not handled base address.
17513
17514 2010-07-30  Richard Guenther  <rguenther@suse.de>
17515
17516         * ipa-prop.c (ipa_modify_formal_parameters): Use
17517         build_distinct_type_copy.
17518
17519 2010-07-30  Anthony Green  <green@moxielogic.com>
17520
17521         * config/moxie/rtems.h: New file.
17522         * config.gcc: Add moxie-rtems support.
17523
17524 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
17525
17526         * dce.c (run_word_dce): Take flag_dce into account.  Clear and restore
17527         df flags as in run_fast_df_dce.
17528
17529 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
17530
17531         Revert:
17532         2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
17533
17534         * rtl.def (NOTE): Swap operands 4 and 5.
17535         * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
17536         NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
17537         Adjust accordingly.
17538         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
17539
17540 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
17541
17542         PR debug/45110
17543         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
17544         (gen_formal_types_die): Add DW_AT_object_pointer in methods.
17545         (gen_subprogram_die): Likewise.  Remove it when removing declaration's
17546         formal parameters.
17547         (gen_decl_die): Change return type to dw_die_ref, return what
17548         gen_formal_parameter_die returned.
17549
17550 2010-07-29  Martin Jambor  <mjambor@suse.cz>
17551
17552         * dbgcnt.def (eipa_sra): New counter.
17553         * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
17554
17555 2010-07-29  Xinliang David Li  <davidxl@google.com>
17556
17557         PR bootstrap/45119
17558         * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
17559         in revision 162652.
17560
17561 2010-07-29  Richard Guenther  <rguenther@suse.de>
17562
17563         * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
17564         (TV_TREE_STORE_CCP): Likewise.
17565         (TV_TREE_REDPHI): Likewise.
17566
17567 2010-07-29  Richard Guenther  <rguenther@suse.de>
17568
17569         * double-int.h (double_int_and_not): New function.
17570         * combine.c (try_combine): Use it.
17571         * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
17572
17573 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
17574
17575         PR rtl-optimization/42575
17576         * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
17577         Argument AU removed.  All callers changed.  Ignore artificial refs.
17578         Use return value of df_word_lr_simulate_defs to decide whether an insn
17579         is necessary.
17580         (fast_dce): Rename arg to WORD_LEVEL.
17581         (run_word_dce): Renamed from rest_of_handle_fast_byte_dce.  No longer
17582         static.
17583         (pass_fast_rtl_byte_dce): Delete.
17584         * dce.h (run_word_dce): Declare.
17585         * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
17586         All callers changed.  Simplify code to only deal with two-word regs.
17587         * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
17588         (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
17589         (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
17590         (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
17591         (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
17592         (df_word_lr_mark_ref): Declare.
17593         (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
17594         df_word_lr_simulate_uses): Declare or rename from byte variants.
17595         (df_byte_lr_simulate_artificial_refs_at_top,
17596         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
17597         df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
17598         declarations.
17599         (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
17600         (enum df_mm): Delete.
17601         * df-byte-scan.c: Delete file.
17602         * df-problems.c (df_word_lr_problem_data): Renamed from
17603         df_byte_lr_problem_data, all members deleted except for
17604         WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS.  Uses changed.
17605         (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
17606         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
17607         df_byte_lr_get_regno_len, df_byte_lr_check_regs,
17608         df_byte_lr_confluence_0): Delete functions.
17609         (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
17610         callers changed.
17611         (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
17612         Don't initialize members that were deleted, don't try to discover data
17613         about registers.  Ignore hard regs.
17614         (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
17615         (df_word_lr_mark_ref): New function.
17616         (df_word_lr_bb_local_compute): Renamed from
17617         df_byte_bb_lr_local_compute; all callers changed.  Use
17618         df_word_lr_mark_ref.  Assert that artificial refs don't include
17619         pseudos.  Ignore hard registers.
17620         (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
17621         Assert that exit block uses don't contain pseudos.
17622         (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
17623         (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
17624         callers changed.  Ignore hard regs.
17625         (df_word_lr_transfer_function): Renamed from
17626         df_byte_lr_transfer_function; all callers changed.
17627         (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
17628         (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
17629         changed.
17630         (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
17631         callers changed.
17632         (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
17633         confluence operator 0 set to NULL.
17634         (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
17635         callers changed.
17636         (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
17637         Return bool, true if bitmap changed or insn otherwise necessary.
17638         All callers changed.  Simplify using df_word_lr_mark_ref.
17639         (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
17640         all callers changed.  Simplify using df_word_lr_mark_ref.
17641         * lower-subreg.c: Include "dce.h"
17642         (decompose_multiword_subregs): Call run_word_dce if df available.
17643         * Makefile.in (lower-subreg.o): Adjust dependencies.
17644         (df-byte-scan.o): Delete.
17645         * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
17646
17647 2010-07-29  Richard Guenther  <rguenther@suse.de>
17648
17649         * tree.c (build_vector): Assert that the vector constant
17650         has enough elements.
17651         (build_vector_from_ctor): Pad with trailing zeros.
17652
17653 2010-07-29  Richard Guenther  <rguenther@suse.de>
17654
17655         PR tree-optimization/45120
17656         * tree-ssa-structalias.c (get_constraint_for_component_ref):
17657         Handle offset in DEREFs properly.
17658         (get_constraint_for_1): Handle MEM_REF offset properly.
17659
17660 2010-07-29  Richard Guenther  <rguenther@suse.de>
17661
17662         PR middle-end/45034
17663         * convert.c (convert_to_integer): Always use an unsigned
17664         type for narrowed negate and bitwise not.
17665
17666 2010-07-29  Ira Rosen  <irar@il.ibm.com>
17667
17668         * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
17669         to outer loop when creating reduction epilogue for double reduction,
17670         and switch back to the inner loop when updating the phi nodes.
17671         Update uses of outer loop exit phi nodes in double reduction (instead
17672         of uses of reduction).
17673
17674 2010-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
17675
17676         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
17677         popcount on power7 and parity on power6 systems.
17678         (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
17679         (rs6000_emit_parity): Add support for power6 prtyd/prtyw
17680         instructions.
17681
17682         * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
17683         (UNSPEC_PARITY): Ditto.
17684         (SFDF): New iterator for SF/DF.
17685         (rreg2): New mode attribute for floating register constraint.
17686         (TARGET_FLOAT): New mode attribute for whether single/double float
17687         is supported.
17688         (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
17689         pattern.
17690         (parity<mode>2_cmpb): New insn for parity on power6 and newer
17691         machines.
17692         (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
17693         pattern.  Add support for fcpsgn instruction added in power6.
17694         (copysignsf3): Delete.
17695         (copysigndf3): Delete.
17696         (copysign<mode>3_fcpsgn): New insn to generate fcpsgn.  Use UNSPEC
17697         instead of if_then_else in RTL to avoid problems with -0.
17698
17699         * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
17700         of if_then_else to mirror scalar code.
17701         (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
17702         rs6000.md.
17703
17704         * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
17705         instead of if_then_else.
17706
17707 2010-07-28  Xinliang David Li  <davidxl@google.com>
17708
17709         * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
17710         (dump_cand): Dump var_before/after.
17711         (htab_inv_expr_eq): New function.
17712         (htab_inv_expr_hash): New function.
17713         (tree_ssa_iv_optimize_init): Support pseudo invariants.
17714         (add_candidate_1): consider base type precision.
17715         (set_use_iv_cost): New parameter.
17716         (adjust_setup_cost): Use profile information.
17717         (get_address_cost): Do not hard code width in computing address
17718         offset limits.
17719         (compare_aff_trees): New function.
17720         (get_loop_invariant_expr_id): New function.
17721         (get_computation_cost_at): New parameter and use profile information.
17722         (get_computation_cost): New parameter.
17723         (determine_use_iv_cost_generic): Pass new parameter.
17724         (determine_use_iv_cost_address): Ditto.
17725         (determine_use_iv_cost_condition): Ditto.
17726         (autoinc_possible_for_pair): Ditto.
17727         (determine_use_iv_costs): More dumps.
17728         (iv_ca_get_num_inv_exprs): New function.
17729         (iv_ca_recount_cost): Consider loop invariants in register pressure
17730         cost.
17731         (iv_ca_add_use): New parameter.
17732         (iv_ca_dump): Better dumping.
17733         (iv_ca_extend): New parameter.
17734         (try_add_cand_for): Attempt to get better partial solution.
17735         (try_improve_iv_set): Pass new parameter to iv_ca_extend.
17736         (create_new-ivs): More dumps.
17737         (rewrite_use_compare): Ditto.
17738         (free_loop_data): More cleanup.
17739         (treee_ssa_iv_optimize_finalize): Ditto.
17740
17741 2010-07-28  Kai Tietz  <kai.tietz@onevision.com>
17742
17743         * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
17744         * config/i386/i386.c (ix86_profile_before_prologue): New.
17745         (override_options): Add special handling for -mfentry.
17746         (ix86_function_regparm): Likewise.
17747         (ix86_function_sseregparm): Likewise.
17748         (ix86_frame_pointer_required): Likewise.
17749         (ix86_expand_prologue): Check for ms_hook_prologue.
17750         (x86_function_profiler): Adjust mcount output.
17751         (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
17752         * config/i386/i386.opt (mfentry): New.
17753         * doc/invoke.texi (mfentry): Add documentation.
17754         * doc/tm.texi: Regenerated..
17755         * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
17756         * final.c (final_start_function): Replace macro
17757         PROFILE_BEFORE_PROLOGUE by target hook.
17758         * function.c (thread_prologue_and_epilogue_insns): Likewise.
17759         * target.def (profile_before_prologue): New hook.
17760         * targhooks.c (default_profile_before_prologue): New.
17761         * targhooks.h (default_profile_before_prologue): New.
17762
17763 2010-07-28  Jakub Jelinek  <jakub@redhat.com>
17764
17765         PR debug/45105
17766         * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
17767
17768         PR debug/45103
17769         * dwarf2out.c (dwarf2out_var_location): Always consider
17770         NOTE_DURING_CALL_P notes, even when not followed by real instructions.
17771
17772 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
17773
17774         PR rtl-optimization/45107
17775         * gcse.c (hash_scan_set): Use max_distance for gcse-las.
17776
17777 2010-07-28  Richard Guenther  <rguenther@suse.de>
17778
17779         * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
17780         (set_lattice_value): Do not query an old default value.
17781         (get_value_for_expr): New function.  Properly canonicalize
17782         float values.
17783         (ccp_visit_phi_node): Use it.
17784
17785 2010-07-28  Chung-Lin Tang  <cltang@codesourcery.com>
17786
17787         * config/arm/arm.c (arm_pcs_default): Remove static.
17788         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
17789         __ARM_PCS_VFP to indicate soft/hard-float calling convention.
17790         (arm_pcs_default): Declare.
17791
17792 2010-07-28  Iain Sandoe  <iains@gcc.gnu.org>
17793
17794         * config/rs6000/rs6000.c (rs6000_override_options):
17795         Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
17796         ... to darwin_rs6000_override_options.
17797         (rs6000_return_in_memory): Update preceding comment for darwin
17798         64 bit ABI.  Use TARGET_MACHO inline.
17799         (rs6000_darwin64_struct_check_p): New.
17800         (function_arg_advance): Use rs6000_darwin64_struct_check_p.
17801         (function_arg): Likewise.
17802         (rs6000_arg_partial_bytes): Likewise.
17803         (rs6000_function_value): Likewise.
17804
17805 2010-07-28  Andi Kleen  <ak@linux.intel.com>
17806
17807         * lto-opts.c (lto_file_read_options): Add loop over all inputs.
17808
17809 2010-07-28  Richard Guenther  <rguenther@suse.de>
17810
17811         PR middle-end/44903
17812         * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
17813         targets try harder to not generate unaligned accesses.
17814
17815 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
17816
17817         PR rtl-optimization/45101
17818         * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
17819         for gcse-las.
17820
17821 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
17822
17823         PR tree-optimization/44885
17824         * tree-sra.c (find_param_candidates): Skip pointer types to arrays
17825         with non-aliased component.
17826
17827 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
17828
17829         * config/darwin-driver.c (SWITCH_TAKES_ARG,
17830         WORD_SWITCH_TAKES_ARG): Remove.
17831         * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
17832         * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
17833         DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
17834         (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
17835         definitions from gcc.c.
17836         * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
17837         defaults.h.
17838         * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
17839         Move to defaults.h.
17840         * opts-common.c: Include tm.h.
17841         (decode_cmdline_option): Use SWITCH_TAKES_ARG and
17842         WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
17843         Handle more than one argument.  Set canonical_option_num_elements.
17844         (decode_cmdline_options_to_array): Set
17845         canonical_option_num_elements and trailing elements of
17846         canonical_option.
17847         * opts.h (struct cl_decoded_option): Allow four elements in
17848         canonical_option.  Add field canonical_option_num_elements.
17849         * Makefile.in (opts-common.o): Update dependencies.
17850
17851 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
17852
17853         PR middle-end/44790
17854         PR middle-end/44993
17855         * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change.  Make
17856         sure the base has address_mode before adding the offset.
17857
17858 2010-07-27  Xinliang David Li  <davidxl@google.com>
17859
17860         * tree-flow.h (create_mem_ref): Add one new parameter.
17861         * tree-ssa-address.c (create_mem_ref): New parameter.
17862         (addr_to_parts): Ditto.
17863         (move_variant_to_index): New function.
17864         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
17865
17866 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
17867
17868         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
17869         4 and 5.
17870         * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
17871         NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
17872         NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
17873         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
17874         CODE_LABELs and NOTEs.
17875         * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
17876         * combine.c (try_combine): Likewise.
17877         * ira.c (setup_prohibited_mode_move_regs): Likewise.
17878         * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
17879
17880 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
17881
17882         * coretypes.h (struct cl_option_handlers): Declare.
17883         * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
17884         * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
17885         * langhooks-def.h (lhd_handle_option): Declare.
17886         (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
17887         * langhooks.c (lhd_handle_option): New.
17888         * langhooks.h (struct lang_hooks): Update prototype and return
17889         value type of handle_option hook.
17890         * optc-gen.awk: Generate target_flags_explicit definition for the
17891         driver.
17892         * opts-common.c: Include diagnostic.h.
17893         (handle_option): Move from opts.c.  Update prototype and return
17894         value type.  Use handlers structure.
17895         (read_cmdline_option): Move from opts.c.  Update prototype.  Use
17896         handlers structure.
17897         (set_option): Move from opts.c.
17898         * opts.c (common_handle_option): Update prototype and return value
17899         type.  Update calls to handle_option and enable_warning_as_error.
17900         (unknown_option_callback, post_handling_callback,
17901         lang_handle_option, target_handle_option): New.
17902         (handle_option, read_cmdline_option): Move to opts-common.c.
17903         (read_cmdline_options): Update prototype.  Update call to
17904         read_cmdline_option.
17905         (decode_options): Initialize and use handlers structure.
17906         (set_option): Move to opts-common.c.
17907         (enable_warning_as_error): Update prototype.  Update call to
17908         handle_option.
17909         * opts.h (struct cl_option_handler_func, struct
17910         cl_option_handlers): New.
17911         (handle_option, enable_warning_as_error): Update prototypes.
17912         (read_cmdline_option): Declare.
17913         * Makefile.in (opts-common.o): Update dependencies.
17914
17915 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17916
17917         * config/arm/arm.c (params.h): Include.
17918         (arm_override_options): Tune gcse-unrestricted-cost.
17919         * config/arm/t-arm (arm.o): Define dependencies.
17920
17921 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17922
17923         PR target/42495
17924         PR middle-end/42574
17925         * basic-block.h (get_dominated_to_depth): Declare.
17926         * dominance.c (get_dominated_to_depth): New function, use
17927         get_all_dominated_blocks as a base.
17928         (get_all_dominated_blocks): Use get_dominated_to_depth.
17929
17930         * gcse.c (occr_t, VEC (occr_t, heap)): Define.
17931         (hoist_exprs): Remove.
17932         (alloc_code_hoist_mem, free_code_hoist_mem): Update.
17933         (compute_code_hoist_vbeinout): Add debug print outs.
17934         (hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.
17935
17936         * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
17937         quadratic behavior.
17938         * params.h (MAX_HOIST_DEPTH): New macro.
17939         * doc/invoke.texi (max-hoist-depth): Document.
17940
17941 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17942
17943         PR rtl-optimization/40956
17944         * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
17945         constants.
17946
17947 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17948
17949         PR target/42495
17950         PR middle-end/42574
17951         * config/arm/arm.c (legitimize_pic_address): Use
17952         gen_calculate_pic_address pattern to emit calculation of PIC address.
17953         (will_be_in_index_register): New function.
17954         (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
17955         (thumb1_legitimate_address_p): Use it provided !strict_p.
17956         * config/arm/arm.md (calculate_pic_address): New expand and split.
17957
17958 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17959
17960         PR target/42495
17961         PR middle-end/42574
17962         * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
17963         * config/arm/arm.md (define_split "J", define_split "K"): Make
17964         IRA/reload friendly.
17965
17966 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17967
17968         * gcse.c (insert_insn_end_basic_block): Update signature, remove
17969         unused checks.
17970         (pre_edge_insert, hoist_code): Update.
17971
17972 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17973
17974         PR target/42495
17975         PR middle-end/42574
17976         * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
17977
17978 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17979
17980         * gcse.c (hoist_code): Generate new pseudo for every new set insn.
17981
17982 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17983
17984         PR rtl-optimization/40956
17985         PR target/42495
17986         PR middle-end/42574
17987         * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
17988         for hoisting.
17989         (hoist_code): Count occurences in current block too.
17990
17991 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17992
17993         * gcse.c (struct expr:max_distance): New field.
17994         (doing_code_hoisting_p): New static variable.
17995         (want_to_gcse_p): Change signature.  Allow constrained hoisting of
17996         simple expressions, don't change behavior for PRE.  Set max_distance.
17997         (insert_expr_in_table): Set new max_distance field.
17998         (hash_scan_set): Update.
17999         (hoist_expr_reaches_here_p): Stop search after max_distance
18000         instructions.
18001         (find_occr_in_bb): New static function.  Use it in ...
18002         (hoist_code): Calculate sizes of basic block before any changes are
18003         done.  Pass max_distance to hoist_expr_reaches_here_p.
18004         (one_code_hoisting_pass): Set doing_code_hoisting_p.
18005
18006         * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
18007         (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
18008         * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
18009         macros.
18010         * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
18011         Document.
18012
18013 2010-07-27  Jeff Law  <law@redhat.com>
18014             Maxim Kuvyrkov  <maxim@codesourcery.com>
18015
18016         * gcse.c (compute_transpout, transpout): Remove, move logic
18017         to prune_expressions.
18018         (compute_pre_data): Move pruning of trapping expressions ...
18019         (prune_expressions): ... here.  New static function.
18020         (compute_code_hoist_data): Use it.
18021         (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
18022
18023 2010-07-27  Xinliang David Li  <davidxl@google.com>
18024
18025         * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
18026         (rewrite_use_address): Adjust iv update position when needed.
18027
18028 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
18029
18030         * dbgcnt.def (hoist_insn): New debug counter.
18031         * gcse.c (hoist_code): Use it.
18032
18033 2010-07-27  Xinliang David Li  <davidxl@google.com>
18034
18035         * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
18036         (niter_for_single_dom_exit): Passes additional parameter.
18037         (iv_period): Fix comments.
18038         (may_eliminate_iv): Handles multiple exit loops properly.
18039         (free_tree_niter_desc): New function.
18040         (free_loop_data): Frees up loop iteration descriptors.
18041
18042 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
18043
18044         PR target/44542
18045         * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
18046         of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
18047         instead of MAX_SUPPORTED_STACK_ALIGNMENT.
18048         (expand_one_var): Don't consider DECL_ALIGN for variables for
18049         which expand_one_stack_var_at has been already called.
18050
18051         PR testsuite/44701
18052         * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
18053         constraints on IA-64.
18054
18055 2010-07-27  Jie Zhang  <jie@codesourcery.com>
18056
18057         PR target/44290
18058         Revert:
18059         2010-07-23  Jie Zhang  <jie@codesourcery.com>
18060
18061         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
18062         false if ! tree_versionable_function_p.
18063
18064 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
18065
18066         * dwarf2out.c (add_data_member_location_attribute): Use
18067         add_AT_unsigned instead of add_AT_int if offset is non-negative.
18068
18069 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
18070
18071         * postreload.c (try_replace_in_use): New static function.
18072         (reload_combine_recognize_const_pattern): Use it here.  Allow
18073         substituting into a final add insn, and substituting into a memory
18074         reference in an insn that sets the reg.
18075
18076 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
18077
18078         * common.opt (o): Add MissingArgError.
18079         * doc/options.texi (MissingArgError): Document.
18080         * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
18081         * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
18082         * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
18083         (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
18084         * langhooks.h (struct lang_hooks): Remove missing_argument.
18085         * optc-gen.awk: Handle MissingArgError and output new structure
18086         field initializers.
18087         * opts.c (read_cmdline_option): Use missing_argument_error field
18088         instead of missing_argument langhook.
18089         * opts.h (struct cl_option): Add missing_argument_error field.
18090         * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
18091
18092 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
18093
18094         PR target/29090
18095         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
18096         Darwin64 ABI, for zero-sized objects.
18097
18098 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
18099
18100         PR target/35491
18101         PR target/29090
18102
18103         Merge from Apple local 4.2.1.
18104         2005-05-11  Stan Shebs  <shebs@apple.com>
18105         Fix 64-bit varargs for Darwin (Radar 4028089).
18106         * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
18107         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
18108         Add argument, add case for 8-byte register half-filled with a float.
18109         (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
18110         single-precision floats specially.
18111
18112 2010-07-27  Ira Rosen  <irar@il.ibm.com>
18113
18114         PR tree-optimization/44152
18115         * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
18116         complex numbers for further check.
18117         (vect_supported_load_permutation_p): Check nodes with
18118         complex numbers.
18119
18120 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
18121
18122         * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
18123         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
18124         (LANG_HOOKS_INIT_OPTIONS): Update default definition.
18125         (LANG_HOOKS_INITIALIZER): Add new hooks.
18126         * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
18127         * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
18128         and complain_wrong_lang_p.  Update init_options prototype.
18129         * c-objc-common.c (c_initialize_diagnostics): First call
18130         c_common_initialize_diagnostics.
18131         * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
18132         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
18133         * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
18134         * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
18135         (hook_uint_void_0): New.
18136         * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
18137         (hook_uint_void_0): New.
18138         * opts-common.c (decode_cmdline_option,
18139         decode_cmdline_options_to_array): Also fill in canonical_option field.
18140         * opts.c (complain_wrong_lang): Use langhook to determine whether
18141         to complain instead of special-casing LTO.
18142         (decode_options): Separate lang_mask determination with
18143         option_lang_mask hook from call of init_options hook.
18144         * opts.h (struct cl_decoded_option): Add canonical_option.
18145
18146 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
18147
18148         PR tree-optimization/45083
18149         * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
18150
18151 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
18152
18153         * postreload.c (reload_combine_recognize_const_pattern): Move test
18154         for limiting the insn movement to the right scope.
18155
18156         PR rtl-optimization/45051
18157         * reload1.c (delete_output_reload): Use refers_to_regno_p rather
18158         than reg_mentioned_p.
18159
18160 2010-07-26  Richard Henderson  <rth@redhat.com>
18161
18162         PR target/44132
18163         * tree-emutls.c: New file.
18164         * Makefile.in (OBJS-common): Add it.
18165         * tree-pass.h (pass_ipa_lower_emutls): Declare.
18166         * passes.c (init_optimization_passes): Add it.
18167
18168         * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
18169         pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
18170         * expr.c (emutls_var_address): Delete.
18171         (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
18172         * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
18173         (emutls_finish): Delete.
18174         * toplev.c (compile_file): Don't call it.
18175         * tree.h (emutls_decl): Delete.
18176         * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
18177         (emutls_finish, emutls_finalize_control_var): Delete.
18178         (emutls_object_type): Move to tree-emutls.c.
18179         (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
18180         default_emutls_var_fields, get_emutls_object_type,
18181         get_emutls_init_templ_addr, emutls_decl, emutls_common_1
18182         default_emutls_var_init): Likewise.
18183         (get_variable_section): Don't special case emutls.
18184         (assemble_variable, do_assemble_alias, categorize_decl_for_section,
18185         default_elf_select_section, default_unique_section,
18186         default_encode_section_info): Likewise.
18187         * varpool.c (decide_is_variable_needed): Likewise.
18188         * gimple-iterator.c (update_call_edge_frequencies): New
18189         (gsi_insert_on_edge_immediate): Use it.
18190         (gsi_insert_seq_on_edge_immediate): Likewise.
18191         (gsi_commit_one_edge_insert): Likewise.
18192
18193         * config/i386/i386.c (x86_64_elf_select_section): Don't handle
18194         SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
18195         (x86_64_elf_unique_section): Likewise.
18196
18197 2010-07-26  Jan Hubicka  <jh@suse.cz>
18198
18199         * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
18200         GTY((skip)).
18201
18202 2010-07-26  Anatoly Sokolov  <aesok@post.ru>
18203
18204         * target.def (output_source_filename): New hook.
18205         * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
18206         * doc/tm.texi: Regenerate.
18207         * toplev.c (output_file_directive) Remove function.
18208         * toplev.h (output_file_directive) Remove.
18209         * output.h (default_asm_output_source_filename,
18210         output_file_directive): Declare.
18211         * varasm.h (default_asm_output_source_filename,
18212         output_file_directive): New functions.
18213
18214         * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
18215         * config/mips/mips-protos.h (mips_output_filename): Remove.
18216         * config/mips/mips.c (mips_output_filename): Make Static.
18217         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
18218
18219 2010-07-26  Richard Guenther  <rguenther@suse.de>
18220
18221         PR tree-optimization/43784
18222         * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
18223         if the destination is used by the call.
18224
18225 2010-07-26  Richard Guenther  <rguenther@suse.de>
18226
18227         PR middle-end/45073
18228         * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
18229         SSA updating on being in SSA form.
18230
18231 2010-07-26  Richard Guenther  <rguenther@suse.de>
18232
18233         PR middle-end/45056
18234         * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
18235
18236 2010-07-26  Richard Guenther  <rguenther@suse.de>
18237
18238         PR tree-optimization/45071
18239         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
18240         adjust op->opcode.
18241
18242 2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>
18243
18244         * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
18245         save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
18246         save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
18247         save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
18248         save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
18249         save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
18250         save_r31, return_r31, save_interrupt, return_interrupt,
18251         save_all_interrupt, return_all_interrupt, L_save_r2_r31,
18252         L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
18253         L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
18254         new ABI requirements.
18255         (save_r6_r9, L_callt_save_r6_r9): Remove.
18256         * config/v850/predicates.md (even_reg_operand, disp23_operand,
18257         const_float_1_operand const_float_0_operand): New Predicates.
18258         (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
18259         pattern_is_ok_for_epilogue): Update as per the ABI requirements.
18260         * config/v850/t-v850: Update multilibs for new target variants.
18261         (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
18262         * config/v850/t-v850e: Likewise.
18263         * config/v850/v850.c (v850_issue_rate): New.
18264         (v850_strict_argument_naming): New.
18265         (function_arg): Modify to generate a different ABI.
18266         (print_operand): Update case 'z' to support float modes.
18267         (output_move_single): Modify to generate appropriate and better
18268         assembly.
18269         (v850_float_z_comparison_operator, v850_select_cc_mode,
18270         v850_float_nz_comparison_operator,  v850_gen_float_compare,
18271         v850_gen_compare): New functions to support comparison of float values.
18272         (ep_memory_offset): Add support for V850E2 targets.
18273         (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
18274         (INTERRUPT_REGPARM_NUM): Remove.
18275         (compute_register_save_size): Add extra case to save/restore long call.
18276         (use_prolog_function): New function to support prologue.
18277         (expand_prologue): Add support for V850E2 targets and modified
18278         as per the current ABI requirements.
18279         (expand_epilogue): Likewise.
18280         (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
18281         (construct_save_jarl): Likewise.
18282         (construct_dispose_instruction): Update as per the current ABI
18283         requirements.
18284         (construct_prepare_instruction): Likewise.
18285         * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
18286         (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
18287         (CPP_SPEC): Updated to support v850e2 targets.
18288         (STRICT_ALIGNMENT): Modified.
18289         (FIRST_PSEUDO_REGISTER): Updated to add even registers.
18290         (FIXED_REGISTERS): Likewise.
18291         (CALL_USED_REGISTERS): Likewise.
18292         (CONDITIONAL_REGISTER_USAGE): Updated.
18293         (HARD_REGNO_MODE_OK): Updated.
18294         (reg_class): Updated to add even registers.
18295         (REG_CLASS_NAMES): Likewise.
18296         (REG_CLASS_CONTENTS): Likewise.
18297         (REGNO_REG_CLASS): Updated for CC registers.
18298         (REG_CLASS_FROM_LETTER): Added support for even registers.
18299         (REGNO_OK_FOR_BASE_P): Updated for CC registers.
18300         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
18301         ARG_POINTER_REGNUM): Updated.
18302         (FUNCTION_ARG_ADVANCE): Define.
18303         (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
18304         (OUTGOING_REG_PARM_STACK_SPACE): Remove.
18305         (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
18306         (GO_IF_LEGITIMATE_ADDRESS): Updated.
18307         (SELECT_CC_MODE): Define.
18308         (REGISTER_NAMES): Updated to add psw and fcc registers.
18309         (ADDITIONAL_REGISTER_NAMES): Updated.
18310         (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
18311         (JUMP_TABLES_IN_TEXT_SECTION): Updated.
18312         * config/v850/v850.md (define_constants): Define new constants.
18313         (type): Update store,bit1,macc,div,fpu and single attributes.
18314         (cpu): New attribute.
18315         (cc): Add set_z attribute.
18316         (unsign23byte_load, sign23byte_load, unsign23hword_load,
18317         sign23hword_load, 23word_load, 23byte_store, 23hword_store,
18318         23word_store): New instructions for 23-bit displacement load and store.
18319         (movqi_internal, movhi_internal): Update the attributes.
18320         (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
18321         (movsi_internal_v850e, movsi_internal, movsf_internal): Update
18322         the attributes.
18323         (v850_tst1): Modified using CC_REGNUM.
18324         (tstsi): Remove.
18325         (cmpsi): Modified as define_expand from define_insn.
18326         (cmpsi_insn, cmpsf, cmpdf): New instructions.
18327         (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
18328         udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
18329         v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
18330         one_cmplsi2): Clobber the CC_REGNUM register.
18331         (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
18332         v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
18333         v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
18334         (setf_insn, set_z_insn, set_nz_insn): New instructions for
18335         v850e2v3 target.
18336         (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
18337         (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
18338         targets.
18339         (sasf_1, sasf_2): Remove.
18340         (sasf): New instruction.
18341         (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
18342         targets. CC_REGNUM register is clobbered and attributes are
18343         updated.
18344         (branch_z_normal, branch_z_invert, branch_nz_normal,
18345         branch_nz_invert): New branch related instructions.
18346         (jump): Updated the attributes.
18347         (switch): Update to support new targets. CC_REGNUM register is
18348         clobbered and attributes are updated.
18349         (call_internal_short, call_internal_long, call_value_internal_short,
18350         call_value_internal_long): Updated the attributes.
18351         (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
18352         clobbered and attributes are updated.
18353         (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
18354         Update to support new targets. CC_REGNUM register is clobbered.
18355         (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
18356         instructions.
18357         (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
18358         are updated.
18359         (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
18360         divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
18361         negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
18362         floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
18363         rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
18364         cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
18365         cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
18366         cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
18367         movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
18368         movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
18369         point instructions defined for V850e2v3 target.
18370         (callt_save_interrupt, callt_return_interrupt, return_interrupt):
18371         Add support for V850E2 targets and CC_REGNUM register is clobbered.
18372         (callt_save_all_interrupt, callt_restore_all_interrupt): Add
18373         support for new targets.
18374         * config/v850/v850-modes.def: New file.
18375         * config/v850/v850.opt(mstrict-align): Remove.
18376         (mno-strict-align, mjump-tables-in-data-section, mv850e2,
18377         mv850e2v3): New command line options for V850.
18378         * config.gcc: Update the newly added files.
18379         * doc/invoke.texi: Update the newly added command line options for
18380         V850 target.
18381
18382 2010-07-26  Richard Guenther  <rguenther@suse.de>
18383
18384         PR tree-optimization/45052
18385         * ipa-pure-const.c (check_stmt): Check volatileness.
18386
18387 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
18388
18389         PR target/44707
18390         * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
18391         * config/sparc/sparc.c: Include reload.h.
18392         (legitimize_tls_address): Rename into...
18393         (sparc_legitimize_tls_address): ...this.
18394         (legitimize_pic_address): Rename into...
18395         (sparc_legitimize_pic_address): ...this.
18396         (sparc_expand_move): Adjust to above renaming.
18397         (sparc_tls_referenced_p): Likewise.
18398         (sparc_legitimize_tls_address): Likewise.
18399         (sparc_legitimize_pic_address): Likewise.
18400         (sparc_legitimize_address): Likewise.
18401         (sparc_output_mi_thunk): Likewise.
18402         (sparc_legitimize_reload_address): New global function.  Recognize
18403         (lo_sum (high ...) ...) patterns generated by earlier passes.
18404         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
18405
18406 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
18407
18408         PR target/44484
18409         * config/sparc/predicates.md (memory_reg_operand): Delete.
18410         * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
18411         (*sync_compare_and_swap): Encode the address form in the pattern.
18412         (*sync_compare_and_swapdi_v8plus): Likewise.
18413
18414 2010-07-24  Gerald Pfeifer  <gerald@pfeifer.com>
18415
18416         * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
18417         Streamline paragraph on compatibility with the system compiler.
18418
18419 2010-07-24  Steven Bosscher  <steven@gcc.gnu.org>
18420
18421         PR middle-end/45035
18422         * alias.c (true_dependence_1): Fix thinko in merge of old
18423         true_dependence and canon_true_dependence.
18424
18425 2010-07-23  Jan Hubicka  <jh@suse.cz>
18426
18427         * lto-streamer-out.c (write_symbol): Fix visibilities of external
18428         references.
18429
18430 2010-07-23  Le-Chun Wu  <lcwu@google.com>
18431
18432         * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
18433         * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
18434         and an unnecessary assignment.
18435         * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
18436         self-assign warning.
18437         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
18438         unnecessary self-init.
18439
18440 2010-07-23  Richard Guenther  <rguenther@suse.de>
18441
18442         PR lto/43071
18443         * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
18444         for -flto and -fwhopr.
18445
18446 2010-07-23  Kai Tietz  <kai.tietz@onevision.com>
18447
18448         PR target/41943
18449         * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
18450         (stmp-int-hdrs): Prefix/postfix headers by include_next.
18451         * config.gcc (user_headers_inc_next_pre): New.
18452         (user_headers_inc_next_post): Likewise.
18453         (*-w64-mingw*): Use for float.h post-fixing, and for
18454         stddef.h/stdarg.h pre-fixing by include_next.
18455         * configure.ac (user_headers_inc_next_post): New.
18456         (user_headers_inc_next_pre): New.
18457         * configure: Regenerated.
18458
18459 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18460
18461         * configure.ac: Don't disable TLS on Solaris 8/9 by default
18462         Set tga_func for Solaris 2/x86 resp. SPARC.
18463         Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
18464         (LIB_THREAD_LDFLAGS_SPEC): Define.
18465         (LIB_TLS_SPEC): Define.  Check for required Sun ld version.
18466         * configure: Regenerate.
18467         * config.in: Regenerate.
18468         * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
18469         -pthread, -threads, LIB_TLS_SPEC with -pthread.
18470         * doc/install.texi (Specific, *-*-solaris2*): Document use of
18471         alternate thread libraries on Solaris 8.
18472         Document TLS patch requirements.
18473         * doc/sourcebuild.texi (Add Options): Sort alphabetically.
18474         Document tls.
18475
18476         PR target/18788
18477         * config/sol2.h (LIB_SPEC): Link with thread libraries even with
18478         -shared.
18479
18480 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
18481
18482         * tree.h (struct tree_base): Add nameless_flag bitfield.
18483         (TYPE_NAMELESS, DECL_NAMELESS): Define.
18484         * omp-low.c (create_omp_child_function, scan_omp_parallel,
18485         scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
18486         DECL_ARTIFICIAL where needed.
18487         * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
18488         (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
18489         has DECL_NAMELESS set.
18490
18491 2010-07-23  Martin Jambor  <mjambor@suse.cz>
18492
18493         PR tree-optimization/44915
18494         * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
18495         * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
18496         (analyze_function): Likewise.
18497
18498 2010-07-23  Martin Jambor  <mjambor@suse.cz>
18499
18500         PR tree-optimization/44914
18501         * tree-sra.c (sra_modify_function_body): Return true if CFG was
18502         changed, add purging dead eh edges.
18503         (ipa_sra_modify_function_body): Return true if CFG was changed,
18504         simplify purging dead eh edges.
18505         (modify_function): Return true if CFG was changed.
18506         (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
18507         was changed.
18508         (ipa_early_sra): Likewise.
18509
18510 2010-07-23  Jie Zhang  <jie@codesourcery.com>
18511
18512         PR target/44290
18513         * attribs.c (decl_attributes): Insert "noinline" and "noclone"
18514         if "naked".
18515         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
18516         false if ! tree_versionable_function_p.
18517
18518 2010-07-23  Nathan Froyd  <froydnj@codesourcery.com>
18519
18520         * builtins.def (BUILT_IN_ARGS_INFO): Remove.
18521         * ipa-pure-const.c (special_builtlin_state): Remove
18522         BUILT_IN_ARGS_INFO case.
18523         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
18524         * builtins.c (expand_builtin): Likewise.
18525         (expand_builtin_args_info): Remove.
18526         * doc/tm.texi (__builtin_args_info): Remove.
18527         (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
18528         * doc/tm.text.in: Likewise.
18529
18530 2010-07-23  Richard Guenther  <rguenther@suse.de>
18531
18532         * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
18533         (lto_symtab_merge_decls_2): Likewise.
18534         * tree-ssa.c (useless_type_conversion_p): Likewise.
18535         * lto-streamer-in.c (input_gimple_stmt): Likewise.
18536         * gimple.c (gtc_visited2, gtc_ob2): Remove.
18537         (struct type_pair_d): Make same_p an array indexed by mode.
18538         Update comment.
18539         (lookup_type_pair): Update initialization.
18540         (struct sccs): Adjust same_p type.
18541         (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
18542         Adjust.
18543         (print_gimple_types_stats): Likewise.
18544         * gimple.h (enum gtc_mode): New.
18545         (gimple_types_compatible_p): Adjust prototype.
18546
18547 2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
18548
18549         * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
18550         again after processing insn.
18551
18552 2010-07-23  Jie Zhang  <jie@codesourcery.com>
18553
18554         * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
18555         proper words when !tree_versionable_function_p.
18556
18557 2010-07-23  Richard Guenther  <rguenther@suse.de>
18558
18559         PR tree-optimization/45037
18560         * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
18561
18562 2010-07-23  Jie Zhang  <jie@codesourcery.com>
18563
18564         * doc/extend.texi: Remove IP2K from the description of naked attribute.
18565         Add MCORE instead.
18566
18567 2010-07-10  Andi Kleen  <ak@linux.intel.com>
18568
18569         PR lto/44992
18570         * lto-opts.c (lto_write_options): Add NULL file_data argument to
18571         lto_get_section_name.
18572         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
18573         * lto-streamer-out.c (produce_asm): Likewise.
18574         (copy_function): Likewise.
18575         (produce_symtab): Likewise.
18576         (produce_asm_for_decls): Likewise.
18577         * lto-streamer.c (lto_get_section_name): Add file_data argument.
18578         Rewrite to add random postfix to LTO sections.
18579         * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
18580         (lto_get_section_name): Add file_data argument to prototype.
18581
18582 2010-07-10  Andi Kleen  <ak@linux.intel.com>
18583
18584         * lto-section-in.c (lto_section_name): Synchronize names
18585         with lto_get_section_name.
18586
18587 2010-07-10  Andi Kleen  <ak@linux.intel.com>
18588
18589         * lto-opts.c (lto_read_file_options): Check for missing section.
18590
18591 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
18592
18593         * ira.c (check_allocation): Correctly handle the case where an allocno
18594         with two objects was allocated to a single reg.
18595
18596 2010-07-22  Richard Sandiford  <rdsandiford@googlemail.com>
18597
18598         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
18599         (is_widening_mult_p): Likewise.
18600         (convert_to_widen): Use them.
18601         (convert_plusminus_to_widen): Likewise.  Handle fixed-point types as
18602         well as integer ones.
18603
18604 2010-07-22  Steven Bosscher  <steven@gcc.gnu.org>
18605
18606         * alias.c (true_dependence_1): New function, merged version of
18607         true_dependence and canon_true_dependence.
18608         (true_dependence): Simplify.
18609         (canon_true_dependence): Simplify.
18610
18611 2010-07-22  Richard Henderson  <rth@redhat.com>
18612
18613         PR target/45027
18614         * config/i386/i386.c (setup_incoming_varargs_64): Force the use
18615         of V4SFmode for the SSE saves; increase stack alignment if needed.
18616         (ix86_gimplify_va_arg): Don't increase stack alignment here.
18617
18618 2010-07-22  Jakub Jelinek  <jakub@redhat.com>
18619
18620         PR bootstrap/45028
18621         * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
18622         call cprop_find_used_regs again via note_uses.
18623
18624 2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>
18625
18626         * alias.c (get_alias_set): Fix formatting issues.
18627
18628 2010-07-22  Steve Ellcey  <sje@cup.hp.com>
18629
18630         PR middle-end/44878
18631         * stmt.c (expand_value_return):  Call promote_function_mode with
18632         a for_return argument of 2 when returning by reference.
18633
18634 2010-07-22  Dodji Seketeli  <dodji@redhat.com>
18635
18636         PR debug/45024
18637         * dwarf2out.c (scope_die_for): Don't fall back to the compilation
18638         unit DIE if we can find the scope DIE.
18639
18640 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
18641
18642         * ira-build.c (ira_create_object): New arg SUBWORD; all callers
18643         changed.  Initialize OBJECT_SUBWORD.
18644         (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
18645         (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
18646         all callers changed.
18647         (merge_hard_reg_conflicts): Iterate over allocno subobjects.
18648         (finish_allocno): Likewise.
18649         (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
18650         (remove_low_level_allocnos): Likewise.
18651         (update_bad_spill_attribute): Likewise.
18652         (setup_min_max_allocno_live_range_point): Likewise.
18653         (sort_conflict_id_map): Likewise.
18654         (ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
18655         (ior_hard_reg_conflicts): New function.
18656         (ior_allocate_object_conflicts): Renamed first argument to OBJ.
18657         (compress_conflict_vecs): Iterate over objects, not allocnos.
18658         (ira_add_live_range_to_object): New function.
18659         (object_range_compare_func): Renamed from allocno_range_compare_func.
18660         All callers changed.
18661         (setup_min_max_conflict_allocno_ids): For allocnos with multiple
18662         subobjects, widen the min/max range of the lowest-order object to
18663         potentially include all other such low-order objects.
18664         * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
18665         (check_allocation): Likewise.  Use more fine-grained tests for register
18666         conflicts.
18667         * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
18668         allocno subobjects.
18669         (assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
18670         choices about which bits to set in each set.  Don't use
18671         ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
18672         using the multiple sets we computed.
18673         (push_allocno_to_stack): Iterate over allocno subobjects.
18674         (all_conflicting_hard_regs_coalesced): New static function.
18675         (setup_allocno_available_regs_num): Use it.
18676         (setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
18677         subobjects.
18678         (coalesced_allocno_conflict): Test subobject 0 in each allocno.
18679         (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
18680         by ALLOCNO_NUM_OBJECTS.
18681         (calculate_spill_cost): Likewise.
18682         (color_pass): Express if statement in a more normal way.
18683         (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
18684         (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
18685         (setup_slot_coalesced_allocno_live_ranges): Likewise.
18686         (allocno_reload_assign): Likewise.
18687         (ira_reassign_pseudos): Likewise.
18688         (fast_allocation): Likewise.
18689         * ira-conflicts.c (build_conflict_bit_table): Likewise.
18690         (print_allocno_conflicts): Likewise.
18691         (ira_build_conflicts): Likewise.
18692         (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
18693         callers changed.  Test subword 0 of each allocno for conflicts.
18694         (build_object_conflicts): Renamed from build_allocno_conflicts.  All
18695         callers changed.  Iterate over allocno subobjects.
18696         * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
18697         * ira-int.h (struct ira_allocno): New member: num_objects.
18698         Rename object to objects and change it into an array.
18699         (ALLOCNO_OBJECT): Add new argument N.
18700         (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
18701         (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
18702         (ior_hard_reg_conflicts): Declare.
18703         (ira_add_live_range_to_object): Declare.
18704         (ira_allocno_object_iterator): New.
18705         (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
18706         (FOR_EACH_ALLOCNO_OBJECT): New macro.
18707         * ira-lives.c (objects_live): Renamed from allocnos_live; all
18708         uses changed.
18709         (allocnos_processed): New sparseset.
18710         (make_object_born): Renamed from make_allocno_born; take an
18711         ira_object_t argument.  All callers changed.
18712         (make_object_dead): Renamed from make_allocno_dead; take an
18713         ira_object_t argument.  All callers changed.
18714         (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
18715         All callers changed.
18716         (mark_pseudo_regno_live): Iterate over allocno subobjects.
18717         (mark_pseudo_regno_dead): Likewise.
18718         (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
18719         functions.
18720         (mark_ref_live): Detect subword accesses and call
18721         mark_pseudo_regno_subword_live as appropriate.
18722         (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
18723         (process_bb_nodes_live): Deal with object-related updates first; set
18724         and test bits in allocnos_processed to avoid computing allocno
18725         statistics more than once.
18726         (create_start_finish_chains): Iterate over objects, not allocnos.
18727         (print_object_live_ranges): New function.
18728         (print_allocno_live_ranges): Use it.
18729         (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
18730         and objects_live.
18731
18732 2010-07-22  Richard Guenther  <rguenther@suse.de>
18733
18734         PR lto/42451
18735         * gimple.c (gtc_next_dfs_num): New global.
18736         (struct sccs): Make value a union, add integer same_p member.
18737         (gtc_visit): New function.
18738         (gimple_types_compatible_p_1): New function, split out from ...
18739         (gimple_types_compatible_p): ... here.  Start a DFS walk here.
18740         (iterative_hash_gimple_type): Adjust for sccs change.
18741
18742 2010-07-22  Martin Jambor  <mjambor@suse.cz>
18743
18744         PR tree-optimization/44891
18745         * tree-sra.c: Include gimple-pretty-print.h.
18746         (replace_uses_with_default_def_ssa_name): Renamed to
18747         get_repl_default_def_ssa_name, return the new SSA name instead of
18748         replacing the old one.
18749         (sra_modify_assign): Dump a message when removing a load, if the LHS
18750         is an SSA_NAME, do not do any propagation, just set the RHS to a
18751         default definition SSA NAME, type convert if necessary.
18752         * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
18753
18754 2010-07-22  Richard Guenther  <rguenther@suse.de>
18755
18756         PR tree-optimization/45017
18757         * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
18758         TYPE_PRECISION of integral types in addition to size.
18759
18760 2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
18761
18762         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
18763         when no C library is specified.
18764
18765 2010-07-22  Martin Jambor  <mjambor@suse.cz>
18766
18767         * ipa-prop.h (struct ipa_node_params): Updated comment.
18768         (struct ipa_edge_args): Likewise.
18769         * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
18770
18771 2010-07-22  Martin Jambor  <mjambor@suse.cz>
18772
18773         * cgraphunit.c (verify_edge_count_and_frequency): New function.
18774         (verify_cgraph_node): Verify frequencies of indirect edges.
18775         * tree-inline.c (tree_function_versioning): Update frequencies of
18776         indirect edges.
18777
18778 2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18779
18780         PR target/43698
18781         * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
18782         Set *arm_rev to be predicable.
18783
18784 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
18785
18786         * config/darwin.h (LINK_COMMAND_SPEC): Split into...
18787         (LINK_COMMAND_SPEC_A): New.
18788         (DSYMUTIL): New.
18789         (DSYMUTIL_SPEC): New.
18790         * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
18791         (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
18792
18793 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
18794
18795         * calls.c (load_register_parameters): Move check for zero
18796         sized items so that only the call to
18797         mem_overlaps_already_clobbered_arg_p () is protected.
18798
18799 2010-07-22  Jan Hubicka  <jh@suse.cz>
18800
18801         * ipa-pure-const.c (varying_state): Break out from ...
18802         (get_function_state): ... here; always return varying_state
18803         when state would be NULL otherwise.
18804         (remove_node_data): Do not free varying state.
18805
18806 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
18807
18808         PR bootstrap/44970
18809         PR middle-end/45009
18810         * postreload.c: Include "target.h".
18811         (reload_combine_closest_single_use): Don't take DEBUG_INSNs
18812         into account.
18813         (fixup_debug_insns): Don't copy the rtx.
18814         (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
18815         Don't copy when replacing.  Call fixup_debug_insns in the case where
18816         we merged one add with another.
18817         (reload_combine_recognize_pattern): Fail if there aren't any uses.
18818         Try harder to determine whether we're picking a valid index register.
18819         Don't set store_ruid for an insn we're going to scan in the
18820         next iteration.
18821         (reload_combine): Remove unused code.
18822         (reload_combine_note_use): When updating use information for
18823         an old insn, ignore a use that occurs after store_ruid.
18824         * Makefile.in (postreload.o): Update dependencies.
18825
18826         * function.c (record_hard_reg_sets): Restrict the previous change
18827         to cases where the incoming nominal mode is the same as the
18828         incoming promoted mode and everything happens in MODE_INT.
18829
18830 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
18831
18832         PR debug/45015
18833         * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
18834         ASM_OPERANDS_OUTPUT_IDX.
18835         (adjust_insn): For inline asm with multiple sets ensure first
18836         ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
18837         the insn.
18838
18839 2010-07-21  Richard Henderson  <rth@redhat.com>
18840
18841         * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
18842         comparison for avoiding xmm register saves.  Emit the xmm register
18843         saves explicitly.
18844         * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
18845         (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
18846         (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
18847         Remove patterns and the associated splitters.
18848
18849 2010-07-21  Changpeng Fang  <changpeng.fang@amd.com>
18850
18851         * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
18852         and imagine parts of a complex, so that they can have the same
18853         base and fall into the same group.
18854
18855 2010-07-21  Richard Guenther  <rguenther@suse.de>
18856
18857         PR lto/45018
18858         * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
18859         of TYPE_DECLs.  Do not follow TYPE_NEXT_VARIANT,
18860         TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
18861
18862 2010-07-21  Martin Jambor  <mjambor@suse.cz>
18863
18864         PR tree-optimization/44900
18865         * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
18866         (sra_modify_assign): Move gsi to the next statmenent unconditionally.
18867
18868 2010-07-21  Bernd Schmidt  <bernds@codesourcery.com>
18869
18870         PR middle-end/44738
18871         * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
18872
18873 2010-07-21  Richard Guenther  <rguenther@suse.de>
18874
18875         PR middle-end/45013
18876         * tree-ssa.c (useless_type_conversion_p): Dispatch to
18877         gimple_types_compatible_p only when in lto.
18878         * gimple.c (gimple_types_compatible_p): Use canonical types
18879         to speed up comparison.
18880
18881 2010-07-21  Richard Guenther  <rguenther@suse.de>
18882
18883         * tree-flow.h (referenced_var): Move define ...
18884         * tree-flow-inline.h (referenced_var): ... here as an inline
18885         function.  Assert here ...
18886         * tree-dfa.c (referenced_var_lookup): ... instead of here.
18887         * tree-ssa.c (maybe_optimize_var): Check if the variable
18888         is in referenced vars.
18889         (execute_update_addresses_taken): Remove old broken check.
18890         * gimple-pretty-print.c (pp_points_to_solution): Use
18891         referenced_var_lookup.
18892         * tree-into-ssa.c (dump_decl_set): Likewise.
18893
18894 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
18895
18896         PR debug/45003
18897         * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
18898         * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
18899         ZERO_EXTEND here.
18900
18901 2010-07-20  Richard Henderson  <rth@redhat.com>
18902
18903         * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
18904
18905 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
18906
18907         * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
18908         computing the sum of the stack pointer and a large constant.
18909         * config/arm/constraints.md (M): Remove superfluous parentheses.
18910         (Pc): New constraint.
18911
18912 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
18913
18914         PR debug/45006
18915         * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
18916         operand's type if exp is tcc_unary class tree.
18917
18918 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
18919
18920         * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
18921         Reverse sense of if_then_else condition.
18922
18923 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
18924
18925         * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
18926         * config/rs6000/rs6000.c (rs6000_override_options): Set
18927         rs6000_block_move_inline_limit appropriately.
18928         (expand_block_move): Use rs6000_block_move_inline_limit.
18929         * doc/invoke.texi (mblock-move-inline-limit): Document.
18930
18931 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
18932
18933         * postreload.c (fixup_debug_insns): Remove arg REGNO.  New args
18934         FROM and TO.  All callers changed.  Don't look for tracked uses,
18935         just scan the RTL for DEBUG_INSNs and substitute.
18936         (reload_combine_recognize_pattern): Call fixup_debug_insns.
18937         (reload_combine): Ignore DEBUG_INSNs.
18938
18939 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
18940
18941         * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
18942         depth to 8 from 5.
18943
18944         PR debug/45003
18945         * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
18946         or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
18947         instead of the result's type.
18948
18949 2010-07-20  Richard Guenther  <rguenther@suse.de>
18950
18951         PR tree-optimization/44977
18952         * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
18953         SSA form.
18954
18955 2010-07-20  Richard Guenther  <rguenther@suse.de>
18956
18957         * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
18958         (lto_symtab_merge_decls_2): Likewise.
18959         * gimple.h (gimple_types_compatible_p): Declare.
18960         * gimple.c (gimple_queue_type_fixup): Remove.
18961         (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
18962         (gimple_compatible_complete_and_incomplete_type_p): New function.
18963         (gimple_types_compatible_p): Adjust.
18964         (gimple_register_type): Remove type fixup code.
18965         (print_gimple_types_stats): Adjust.
18966         (free_gimple_type_tables): Likewise.
18967         * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
18968         * tree-ssa.c (useless_type_conversion_p): Likewise.
18969
18970 2010-07-20  Richard Guenther  <rguenther@suse.de>
18971
18972         PR middle-end/44971
18973         PR middle-end/44988
18974         * tree-ssa.c (maybe_optimize_var): New function split out from ...
18975         (execute_update_addresses_taken): ... here.
18976         (non_rewritable_mem_ref_base): Likewise.
18977         (execute_update_addresses_taken): Do not iterate over all referenced
18978         vars but just all local decls and parms.
18979         Properly check call and asm arguments and rewrite call arguments.
18980
18981 2010-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
18982
18983         * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
18984         to top level.
18985         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
18986         definitions ...
18987         * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
18988         New macro.
18989         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
18990
18991 2010-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
18992
18993         * gengtype.c (start_root_entry): New function, split out from
18994         write_root.  Check whether V is null and raise an error if so.
18995         (write_field_root): Check for V being null.  Don't raise an error here;
18996         set V to null instead.
18997         (write_root): Update comment above function.  Use start_root_entry.
18998
18999 2010-07-19  Xinliang David Li  <davidxl@google.com>
19000
19001         PR testsuite/44932
19002         * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
19003         def edges.
19004         (find_uninit_use): Add dump.
19005         (is_use_properly_guarded): Ditto.
19006         (warn_uninitialized_phi): Ditto.
19007         (execute_late_warn_uninitialized): Ditto.
19008
19009 2010-07-19  Richard Guenther  <rguenther@suse.de>
19010
19011         PR middle-end/44941
19012         * expr.c (emit_block_move_hints): Move zero size check first.
19013         Move asserts to more useful places.
19014         * calls.c (load_register_parameters): Check for zero size.
19015
19016 2010-07-19  Richard Henderson  <rth@redhat.com>
19017
19018         * tree-optimize.c (execute_all_early_local_passes): New.  Change
19019         cgraph_state here ...
19020         (execute_early_local_optimizations): ... not here.  Remove.
19021         (pass_early_local_passes, pass_all_early_optimizations): Update.
19022
19023 2010-07-19  Bernd Schmidt  <bernds@codesourcery.com>
19024
19025         * postreload.c (reload_combine_closest_single_use): Ignore the
19026         number of uses for DEBUG_INSNs.
19027         (fixup_debug_insns): New static function.
19028         (reload_combine_recognize_const_pattern): Use it.  Don't let the
19029         main loop be affected by DEBUG_INSNs.
19030         Really disallow moving adds past a jump insn.
19031         (reload_combine_recognize_pattern): Don't update use_ruid here.
19032         (reload_combine_note_use): Do it here.
19033         (reload_combine): Use control_flow_insn_p rather than JUMP_P.
19034
19035 2010-07-19  Bingfeng Mei  <bmei@broadcom.com>
19036
19037         * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
19038         of a loop.
19039         * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
19040
19041 2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>
19042
19043         * config/i386/darwin.h: Define darwin_emit_branch_islands.
19044         (TARGET_MACHO_BRANCH_ISLANDS): New.
19045         (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
19046         * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
19047         default value.
19048         * config/i386/i386.c (output_pic_addr_const): Do not emit
19049         branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
19050         (x86_output_mi_thunk): Adjust symbol creation.
19051         * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
19052         Remove out of date comment.
19053         * config/rs6000/rs6000.c (print_operand): Adjust symbol.
19054         (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
19055         (DARWIN_GENERATE_ISLANDS): Ditto.
19056         (output_call):  Do not emit branch islands unless
19057         darwin_emit_branch_islands is set.
19058         * config/darwin.c: Declare darwin_emit_branch_islands.
19059         (machopic_indirect_data_reference): Do not emit unless
19060         darwin_emit_branch_islands is set.
19061         (darwin_override_options): Set darwin_emit_branch_islands
19062         where it is needed.
19063         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
19064
19065 2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19066
19067         * doc/sourcebuild.texi (Effective-Target Keywords): Document
19068         sse_runtime, sse2_runtime.
19069
19070 2010-07-18  Richard Sandiford  <rdsandiford@googlemail.com>
19071
19072         * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
19073         low half of a single-register SCmode return value before ORing
19074         it with the high half.
19075         * config/mips/mips16.S (MERGE_GPRf): Likewise.
19076
19077 2010-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19078
19079         PR target/44805
19080         * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
19081         on all targets.
19082
19083 2010-07-17  Bernd Schmidt  <bernds@codesourcery.com>
19084
19085         PR target/42235
19086         * postreload.c (reload_cse_move2add): Return bool, true if anything.
19087         changed.  All callers changed.
19088         (move2add_use_add2_insn): Likewise.
19089         (move2add_use_add3_insn): Likewise.
19090         (reload_cse_regs): If reload_cse_move2add changed anything, rerun
19091         reload_combine.
19092         (RELOAD_COMBINE_MAX_USES): Bump to 16.
19093         (last_jump_ruid): New static variable.
19094         (struct reg_use): New members CONTAINING_MEM and RUID.
19095         (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
19096         (reload_combine_split_one_ruid, reload_combine_split_ruids,
19097         reload_combine_purge_insn_uses, reload_combine_closest_single_use
19098         reload_combine_purge_reg_uses_after_ruid,
19099         reload_combine_recognize_const_pattern): New static functions.
19100         (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
19101         is true for our reg and that we have available index regs.
19102         (reload_combine_note_use): New args RUID and CONTAINING_MEM.  All
19103         callers changed.  Use them to initialize fields in struct reg_use.
19104         (reload_combine): Initialize last_jump_ruid.  Be careful when to
19105         take PREV_INSN of the scanned insn.  Update REAL_STORE_RUID fields.
19106         Call reload_combine_recognize_const_pattern.
19107         (reload_combine_note_store): Update REAL_STORE_RUID field.
19108
19109 2010-07-16  Jason Merrill  <jason@redhat.com>
19110
19111         * Makefile.in (opts-common.o): Depend on options.h.
19112
19113 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
19114
19115         * tree.c (build_common_builtin_nodes): Use build_function_type_list
19116         instead of build_function_type.
19117         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
19118         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
19119
19120 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
19121
19122         * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
19123         do all the work.
19124         (rs6000_emit_int_cmove): Use function pointers for insn generation.
19125         Don't force values into registers unnecessarily.
19126         (output_isel): Assert that we're not given conditions we can't handle.
19127         Delete corresponding code.
19128         * config/rs6000/rs6000.md (isel_signed_<mode>): Use
19129         scc_comparison_operator constraint.  Permit 0 for the consequent
19130         operand.  Permit any GPR for the alternative operand.
19131         (isel_unsigned_<mode>): Likewise.
19132
19133 2010-07-16  Jakub Jelinek  <jakub@redhat.com>
19134
19135         PR target/44942
19136         * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
19137         argument to const_tree.
19138         * config/i386/i386.c (function_arg_advance): If padding needs to be
19139         inserted before argument, increment cum->words by number of padding
19140         words as well.
19141         (contains_aligned_value_p): Change argument to const_tree.
19142         (ix86_function_arg_boundary): Change second argument to const_tree.
19143
19144 2010-07-16  Bernd Schmidt  <bernds@codesourcery.com>
19145
19146         PR target/42235
19147         * function.c (record_hard_reg_sets): New static function.
19148         (assign_parm_setup_reg): If an optab for extending exists and the
19149         generated code clobbbers no hard regs, emit the insn directly and
19150         create a REG_EQUIV note.
19151
19152 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
19153
19154         * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
19155         TREE_CHAIN.
19156         * c-typeck.c (push_init_level): Likewise.
19157         (process_init_element): Likewise.
19158
19159 2010-07-15  Anatoly Sokolov  <aesok@post.ru>
19160
19161         * tree.h (enum tree_index): Add TI_INTEGER_THREE.
19162         (integer_three_node): Add.
19163         * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
19164         NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
19165         * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
19166         of call build_int_cst.
19167         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
19168         * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
19169         (find_interesting_uses_address): Ditto.
19170         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
19171         * tree-eh.c (lower_eh_constructs_2): Ditto.
19172         * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
19173         * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
19174         * expmed.c (expand_divmod): Ditto.
19175         * tree-mudflap.c (mx_register_decls): Ditto.
19176         * varasm.c (array_size_for_constructor): Ditto.
19177         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
19178         * c-parser.c (c_parser_postfix_expression): Ditto.
19179
19180 2010-07-15  Bernd Schmidt  <bernds@codesourcery.com>
19181
19182         * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
19183         New static variables.
19184         (reload_combine_recognize_pattern): New static function, broken out
19185         of reload_combine.
19186         (reload_combine): Use it.  Only initialize first_index_reg and
19187         last_index_reg once.
19188
19189 2010-07-15  Richard Henderson  <rth@redhat.com>
19190
19191         * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
19192         when done.
19193
19194 2010-07-15  Jan Hubicka  <jh@suse.cz>
19195
19196         * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
19197         comdats for broken gold.
19198         (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
19199
19200 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
19201
19202         * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
19203
19204 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
19205
19206         * tree.h (DECL_CHAIN): Define.
19207         * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
19208         * c-decl.c: Likewise.
19209         * c-parser.c: Likewise.
19210         * c-typeck.c: Likewise.
19211         * cfgexpand.c: Likewise.
19212         * cgraph.c: Likewise.
19213         * cgraphunit.c: Likewise.
19214         * combine.c: Likewise.
19215         * config/alpha/alpha.c: Likewise.
19216         * config/arm/arm.c: Likewise.
19217         * config/frv/frv.c: Likewise.
19218         * config/i386/i386.c: Likewise.
19219         * config/i386/winnt-cxx.c: Likewise.
19220         * config/ia64/ia64.c: Likewise.
19221         * config/iq2000/iq2000.c: Likewise.
19222         * config/mep/mep.c: Likewise.
19223         * config/mips/mips.c: Likewise.
19224         * config/pa/som.h: Likewise.
19225         * config/rs6000/rs6000.c: Likewise.
19226         * config/s390/s390.c: Likewise.
19227         * config/sh/sh.c: Likewise.
19228         * config/sh/symbian-cxx.c: Likewise.
19229         * config/sparc/sparc.c: Likewise.
19230         * config/spu/spu.c: Likewise.
19231         * config/stormy16/stormy16.c: Likewise.
19232         * config/vxworks.c: Likewise.
19233         * config/xtensa/xtensa.c: Likewise.
19234         * coverage.c: Likewise.
19235         * dbxout.c: Likewise.
19236         * dwarf2out.c: Likewise.
19237         * emit-rtl.c: Likewise.
19238         * expr.c: Likewise.
19239         * function.c: Likewise.
19240         * gimple-low.c: Likewise.
19241         * gimple-pretty-print.c: Likewise.
19242         * gimplify.c: Likewise.
19243         * integrate.c: Likewise.
19244         * ipa-inline.c: Likewise.
19245         * ipa-prop.c: Likewise.
19246         * ipa-split.c: Likewise.
19247         * ipa-struct-reorg.c: Likewise.
19248         * ipa-type-escape.c: Likewise.
19249         * langhooks.c: Likewise.
19250         * lto-cgraph.c: Likewise.
19251         * omp-low.c: Likewise.
19252         * stor-layout.c: Likewise.
19253         * tree-cfg.c: Likewise.
19254         * tree-complex.c: Likewise.
19255         * tree-dfa.c: Likewise.
19256         * tree-dump.c: Likewise.
19257         * tree-inline.c: Likewise.
19258         * tree-mudflap.c: Likewise.
19259         * tree-nested.c: Likewise.
19260         * tree-object-size.c: Likewise.
19261         * tree-pretty-print.c: Likewise.
19262         * tree-sra.c: Likewise.
19263         * tree-ssa-live.c: Likewise.
19264         * tree-ssa-loop-niter.c: Likewise.
19265         * tree-ssa-math-opts.c: Likewise.
19266         * tree-ssa-reassoc.c: Likewise.
19267         * tree-ssa-sccvn.c: Likewise.
19268         * tree-ssa-structalias.c: Likewise.
19269         * tree-tailcall.c: Likewise.
19270         * tree-vrp.c: Likewise.
19271         * tree.c: Likewise.
19272         * var-tracking.c: Likewise.
19273         * varasm.c: Likewise.
19274
19275 2010-07-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19276
19277         PR target/44877
19278         * config/spu/spu.c (spu_expand_builtin_1): Allow references
19279         (as well as pointers) as argument to mask_for_load builtins.
19280
19281 2010-07-15  Richard Guenther  <rguenther@suse.de>
19282
19283         PR tree-optimization/44946
19284         * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
19285         with accessing only padding properly.
19286
19287 2010-07-15  Jan Hubicka  <jh@suse.cz>
19288
19289         * ipa.c (function_and_variable_visibility): Variables marked as used
19290         should not be localized.
19291
19292 2010-07-15  Jan Hubicka  <jh@suse.cz>
19293
19294         * cgraph.c: Include lto-streamer.h
19295         (change_decl_assembler_name): Work when assembler name hash is at place.
19296         (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
19297         be sure to rename it to avoid name clash.
19298         * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
19299         Localize hidden symbols only when locally defined.
19300
19301 2010-07-15  Uros Bizjak  <ubizjak@gmail.com>
19302
19303         * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
19304
19305 2010-07-15  Magnus Granberg  <zorry@gentoo.org>
19306             Kevin F. Quinn  <kevquinn@gentoo.org>
19307
19308         * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
19309         * common.opt: Add -Wtrampolines.
19310         * doc/invoke.texi: Add -Wtrampolines.
19311
19312 2010-07-15  Jie Zhang  <jie@codesourcery.com>
19313
19314         * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
19315         cortex_a8_issue_ls.
19316
19317 2010-07-15  Dave Korn  <dave.korn.cygwin@gmail.com>
19318
19319         * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
19320         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
19321
19322 2010-07-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19323
19324         * config/spu/spu.c (reg_names): Remove prototype.
19325         (call_used_regs): Likewise.
19326
19327 2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
19328
19329         * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
19330         "unused" with attribute "used".
19331         (__JCR_END__): Likewise.
19332         * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
19333         "used" attribute.
19334         (__JCR_LIST__): Replace attribute "unused" with attribute "used".
19335
19336 2010-07-14  Richard Guenther  <rguenther@suse.de>
19337
19338         * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
19339         (maybe_fixup_decls): Likewise.
19340         (input_gimple_stmt): Do not fixup anything.
19341         * lto-streamer-out.c (output_gimple_stmt): Make sure all
19342         non-automatic variable uses are wrapped inside a MEM_REF.
19343
19344 2010-07-14  Richard Henderson  <rth@redhat.com>
19345
19346         * passes.c (rest_of_decl_compilation): Do not call assemble_variable
19347         for functions.
19348         * varasm.c (assemble_variable): Remove early exit for functions;
19349         assert that we're given a variable.
19350
19351 2010-07-14  Jie Zhang  <jie@codesourcery.com>
19352
19353         * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
19354         cortex_a8_default when neon_type is not none.
19355
19356 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
19357
19358         * lower-subreg.c (subreg_context): New static bitmap.
19359         (decompose_multiword_subregs): Allocate and free it.
19360         (find_decomposable_subregs): Set a bit in it for a register that
19361         occurs in a subreg that changes mode but not size.
19362         (can_decompose_p): Test it instead of non_decomposable_context.
19363
19364 2010-07-14  Richard Guenther  <rguenther@suse.de>
19365
19366         PR tree-optimization/44824
19367         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
19368         is_gimple_mem_ref_addr.
19369         (tree_ssa_forward_propagate_single_use_vars): Do not propagate
19370         non-decl_address_invariant_p addresses.
19371
19372 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
19373
19374         * reload.c (find_reloads): Revert code to penalize small register
19375         classes that was brought in with the IRA merge.
19376
19377 2010-07-14  Richard Guenther  <rguenther@suse.de>
19378
19379         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
19380         as base of ARRAY_REFs.
19381
19382 2010-07-14  Richard Guenther  <rguenther@suse.de>
19383
19384         PR middle-end/44930
19385         * tree-pretty-print.c (do_niy): Do not print a newline.
19386
19387 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
19388
19389         * ira-int.h (struct ira_object): New.
19390         (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
19391         (struct ira_allocno): Remove members min, max,
19392         conflict_allocno_array, conflict_id, conflict_allocno_array_size,
19393         conflict_allocnos_num and conflict_vec_p.  Add new member object.
19394         (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
19395         OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
19396         OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
19397         OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
19398         ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
19399         ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
19400         ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
19401         ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
19402         an ira_object_t rather than ira_allocno_t.  All uses changed.
19403         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
19404         contains a vector of ira_object_t; all uses changed.
19405         (ira_objects_num): Declare variable.
19406         (ira_create_allocno_object): Declare function.
19407         (ira_conflict_vector_profitable_p): Adjust prototype.
19408         (ira_allocate_conflict_vec): Renamed from
19409         ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
19410         (ira_allocate_object_conflicts): Renamed from
19411         ira_allocate_allocno_conflicts; first arg now ira_object_t.
19412         (struct ira_object_iterator): New.
19413         (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
19414         (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
19415         to conflict_vec_p.  All uses changed.
19416         (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
19417         Changed to take into account that conflicts are now tracked for
19418         objects.
19419         * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
19420         Args changed to accept ira_object_t.  All uses changed.
19421         (allocnos_conflict_p): New static function.
19422         (collected_conflict_objects): Renamed from collected_allocno_objects;
19423         now a vector of ira_object_t.  All uses changed.
19424         (build_conflict_bit_table): Changed to take into account that
19425         conflicts are now tracked for objects.
19426         (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
19427         (print_allocno_conflicts, ira_build_conflicts): Likewise.
19428         * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
19429         setup_allocno_left_conflicts_size, allocno_reload_assign,
19430         fast_allocation): Likewise.
19431         * ira-lives.c (make_hard_regno_born, make_allocno_born)
19432         process_single_reg_class_operands, process_bb_node_lives): Likewise.
19433         * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
19434         Likewise.
19435         * ira-build.c (ira_objects_num): New variable.
19436         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
19437         contains a vector of ira_object_t; all uses changed.
19438         (ira_object_id_map_vec): Corresponding change.
19439         (object_pool): New static variable.
19440         (initiate_allocnos): Initialize it.
19441         (finish_allocnos): Free it.
19442         (ira_create_object, ira_create_allocno_object, create_allocno_objects):
19443         New functions.
19444         (ira_create_allocno): Don't set members that were removed.
19445         (ira_set_allocno_cover_class): Don't change conflict hard regs.
19446         (merge_hard_reg_conflicts): Changed to take into account that
19447         conflicts are now tracked for objects.
19448         (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
19449         allocate_conflict_bit_vec, ira_allocate_object_conflicts,
19450         compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
19451         setup_min_max_allocno_live_range_point, allocno_range_compare_func,
19452         setup_min_max_conflict_allocno_ids, ):  Likewise.
19453         (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
19454         to ira_object_t; all callers changed.
19455         (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
19456         to ira_object_t, all callers changed.
19457         (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
19458         to ira_object_t, all callers changed.
19459         (conflict_check, curr_conflict_check_tick): Renamed from
19460         allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
19461         changed.
19462         (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
19463         arg changed to ira_object_t, all callers changed.
19464         (create_cap_allocno): Call ira_create_allocno_object.
19465         (finish_allocno): Free the corresponding object.
19466         (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
19467         callers changed.  Adjusted for dealing with objects.
19468         (ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
19469         dealing with objects.
19470         * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
19471
19472         * ira-int.h (struct live_range): Rename allocno member to object
19473         and change type to ira_object_t.
19474         (struct ira_object): New member live_ranges.
19475         (struct ira_allocno): Remove member live_ranges.
19476         (ALLOCNO_LIVE_RANGES): Remove.
19477         (OBJECT_LIVE_RANGES): New macro.
19478         (ira_create_live_range, ira_copy_live_range_list,
19479         ira_merge_live_range_list, ira_live_ranges_intersect_p,
19480         ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
19481         * ira-build.c (ira_create_object): Initialize live ranges here.
19482         (ira_create_allocno): Not here.
19483         (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
19484         changed to ira_object_t, all callers changed.
19485         (copy_live_range): Rename from copy_allocno_live_range, all callers
19486         changed.
19487         (ira_copy_live_range_list): Rename from
19488         ira_copy_allocno_live_range_list, all callers changed.
19489         (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
19490         all callers changed.
19491         (ira_live_ranges_intersect_p): Rename from
19492         ira_allocno_live_ranges_intersect_p, all callers changed.
19493         (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
19494         callers changed.
19495         (ira_finish_live_range_list): Rename from
19496         ira_finish_allocno_live_range_list, all callers changed.
19497         (change_object_in_range_list): Rename from change_allocno_in_range_list,
19498         last arg changed to ira_object_t, all callers changed.
19499         (finish_allocno): Changed to expect live ranges in the allocno's object.
19500         (move_allocno_live_ranges, copy_allocno_live_ranges,
19501         update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
19502         ira_flattening, ira_build): Likewise.
19503         * ira-color.c (allocnos_have_intersected_live_ranges_p,
19504         slot_coalesced_allocno_live_ranges_intersect,
19505         setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
19506         * ira-conflicts.c (build_conflict_bit_table): Likewise.
19507         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
19508         * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
19509         make_allocno_dead, create_start_finish_chains,
19510         remove_some_program_points_and_update_live_ranges,
19511         ira_debug_live_range_list): Likewise.
19512
19513         * ira-int.h (ira_object_conflict_iterator): Rename from
19514         ira_allocno_conflict_iterator.
19515         (ira_object_conflict_iter_init): Rename from
19516         ira_allocno_conflict_iter_init, second arg changed to
19517         * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
19518         FOR_EACH_ALLOCNO_CONFLICT.
19519         * ira-color.c (assign_hard_reg, push_allocno_to_stack)
19520         setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
19521         ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
19522         * ira-conflicts.c (print_allocno_conflicts): Likewise.
19523
19524 2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
19525
19526         PR other/44874
19527         * tree-dump.c (dump_options): Add enumerate_locals entry.
19528         Add TDF_NOID exclusion to all entry.
19529         * tree-dump.h (dump_enumerated_decls): Declare.
19530         * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
19531         Don't display type uid.
19532         (print_declaration): Don't crash on TREE_TYPE (t) == 0.
19533         * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
19534         * tree-ssa-live.c: Include gimple.h.
19535         (numbered_tree_d): New struct.
19536         (numbered_tree): New typedef.
19537         (DEF_VEC_O (numbered_tree): New.
19538         (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
19539         (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
19540         (dump_enumerated_decls): Likewise.
19541         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
19542         debug info and flag_dump_final_insns, call dump_enumerated_decls.
19543         * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
19544         * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
19545
19546 2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
19547
19548         * expmed.h (MAX_BITS_PER_WORD): Move to...
19549         * defaults.h (MAX_BITS_PER_WORD): ...here.
19550
19551 2010-07-13  DJ Delorie  <dj@redhat.com>
19552
19553         * config/h8300/h8300.c (h8300_init_once): Default to
19554         -fstrict_volatile_bitfields.
19555
19556         * config/sh/sh.c (sh_override_options): Default to
19557         -fstrict_volatile_bitfields.
19558
19559         * config/rx/rx.c (rx_option_override): New.
19560
19561         * config/m32c/m32c.c (m32c_override_options): Default to
19562         -fstrict_volatile_bitfields.
19563
19564 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
19565
19566         * tree.h (build_function_call_expr): Delete.
19567         (build_call_expr_loc_array): New function.
19568         (build_call_expr_loc_vec): New function.
19569         * tree-flow.h (struct omp_region): Change type of ws_args field
19570         to a VEC.
19571         * builtins.c (build_function_call_expr): Delete.
19572         (build_call_expr_loc_array): New function.
19573         (build_call_expr_loc): Call it.  Use XALLOCAVEC.
19574         (build_call_expr): Likewise.
19575         (build_call_expr_loc_vec): New function.
19576         * cgraphunit.c (build_cdtor): Call build_call_expr instead of
19577         build_function_call_expr.
19578         * expr.c (emutls_var_address): Likewise.
19579         * varasm.c (emutls_common_1): Likewise.
19580         * omp-low.c (expand_omp_atomic_mutex): Likewise.
19581         (expand_omp_taskreg): Adjust for new type of region->ws_args.
19582         (get_ws_args_for): Return a VEC instead of a tree.
19583         (expand_parallel_call): Call build_call_expr_loc_vec instead of
19584         build_function_call_expr.
19585         * stor-layout.c (self_referential_size): Likewise.
19586
19587 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
19588
19589         PR testsuite/44701
19590         * recog.c (constrain_operands): Allow side-effects in memory
19591         operands if either < or > constraint is used, rather than if
19592         both < and > is used.
19593
19594 2010-07-13  Richard Guenther  <rguenther@suse.de>
19595
19596         PR middle-end/44911
19597         * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
19598         MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
19599         without name.
19600
19601 2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
19602
19603         PR target/44761
19604         * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
19605         to variable emited.
19606         * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
19607         * config/sh/sh.md (symGOT_load): Likewise.
19608         (symDTPOFF2reg): Likewise.
19609         (symTPOFF2reg): Likewise.
19610
19611 2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19612
19613         * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
19614         * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
19615
19616 2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19617
19618         * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
19619         explanation.
19620         Find ucontext_t * on Solaris 11.
19621         (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
19622         Handle new Solaris 11 __sighndlr patterns.
19623
19624 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
19625
19626         PR debug/44901
19627         * vec.h (VEC_block_remove): Fix comment.
19628         * tree-ssa-live.c (remove_unused_locals): Don't use
19629         VEC_unordered_remove on local_decls, instead replace a single
19630         vector element in each iteration if at least one element had
19631         to be removed and VEC_truncate at the end.
19632         * omp-low.c (expand_omp_taskreg): Likewise.
19633
19634 2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19635
19636         * c-decl.c (finish_function): Fix typo in comment.
19637
19638 2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
19639
19640         PR bootstrap/44921
19641         * postreload.c (move2add_use_add3_insn): Silence gcc warning
19642         on min_regno.
19643
19644 2010-07-12  Jakub Jelinek  <jakub@redhat.com>
19645
19646         * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
19647         (simplify_stmt_using_ranges): Use it.
19648
19649 2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19650
19651         * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
19652         member.  Do not mark as GTY(()).
19653         * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
19654         (spu_builtin_decls): New static variable.
19655         (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
19656         (spu_init_builtins): Likewise.
19657         (spu_builtin_mul_widen_even): Likewise.
19658         (spu_builtin_mul_widen_odd): Likewise.
19659         (spu_builtin_mask_for_load): Likewise.
19660         (spu_builtin_vec_perm): Likewise.
19661         * config/spu/spu-c.c: Include "target.h".
19662         (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
19663         of using spu_builtins[].fndecl.
19664
19665 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19666
19667         * config/mips/mips.c (mips_override_options): Make -mflip-mips16
19668         imply -minterlink-mips16.
19669
19670 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19671
19672         * config/mips/mips.h (mips16_globals): Declare.
19673         (SWITCHABLE_TARGET): Define.
19674         * config/mips/mips.c: Include target-globals.h.
19675         (mips16_globals): New variable.
19676         (mips_set_mips16_mode): Use save_target_globals and
19677         restore_target_globals instead of target_reinit.
19678
19679 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19680
19681         * reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
19682         to say that the function can be called more than once.
19683         * target-globals.c (save_target_globals): Call init_reg_sets.
19684
19685 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19686
19687         * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
19688         * bb-reorder.h: New file.
19689         * bb-reorder.c (default_target_bb_reorder): New variable.
19690         (this_target_bb_reorder): New conditional variable.
19691         (uncond_jump_length): Redefine as a macro.
19692         * target-globals.h (this_target_bb_reorder): Declare.
19693         (target_globals): Add a bb_reorder field.
19694         (restore_target_globals): Copy the bb_reorder field to
19695         this_target_bb-reorder.
19696         * target-globals.c: Include bb-reorder.h.
19697         (default_target_globals): Initialize the bb_reorder field.
19698         (save_target_globals): Likewise.
19699
19700 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19701
19702         * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
19703         * gcse.h: New file.
19704         * gcse.c: Include gcse.h.
19705         (default_target_gcse): New variable.
19706         (this_target_gcse): New conditional variable.
19707         (can_copy): Redefine as a macro.
19708         (can_copy_init_p): New macro.
19709         (can_copy_p): Remove can_copy_init_p.
19710         * target-globals.h (this_target_gcse): Declare.
19711         (target_globals): Add a gcse field.
19712         (restore_target_globals): Copy the gcse field to this_target_gcse.
19713         * target-globals.c: Include gcse.h.
19714         (default_target_globals): Initialize the gcse field.
19715         (save_target_globals): Likewise.
19716
19717 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19718
19719         * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
19720         and x_ira_prohibited_mode_move_regs_initialized_p.
19721         (ira_prohibited_mode_move_regs): Redefine as a macro.
19722         * ira.c (ira_prohibited_mode_move_regs): Delete.
19723         (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
19724
19725 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19726
19727         * reload.h (target_reload): Add x_cached_reg_save_code and
19728         x_cached_reg_restore_code.
19729         * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
19730         Redefine as macros.
19731
19732 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19733
19734         * Makefile.in (target-globals.o): Depend on builtins.h.
19735         * builtins.h: New file.
19736         * builtins.c: Include builtins.h.
19737         (default_target_builtins): New variable.
19738         (this_target_builtins): New conditional variable.
19739         (apply_args_mode, apply_result_mode): Redefine as macros.
19740         * target-globals.h (this_target_builtins): Declare.
19741         (target_globals): Add a builtins field.
19742         (restore_target_globals): Copy the builtins field to
19743         this_target_builtins.
19744         * target-globals.c: Include builtins.h.
19745         (default_target_globals): Initialize the builtins field.
19746         (save_target_globals): Likewise.
19747
19748 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19749
19750         * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
19751         (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
19752         from expmed.c.
19753         (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
19754         (alg_hash, alg_hash_used_p): New macros.
19755         * expmed.c (init_expmed): Clear alg_hash if reinitializing.
19756         (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
19757         (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
19758
19759 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19760
19761         * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
19762         x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
19763         * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
19764         (this_op_costs, costs_classes): Redefine as macros.
19765         (record_reg_classes): Don't take op_costs as a parameter.
19766         (record_operand_costs): Likewise.  Update calls to record_reg_classes.
19767         (scan_one_insn): Update call to record_operand_costs.
19768
19769 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19770
19771         * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
19772         * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
19773         (target_ira_int): New structure.
19774         (default_target_ira_int): Declare.
19775         (this_target_ira_int): Declare as a variable or define as a macro.
19776         (ira_reg_mode_hard_regset, ira_register_move_cost)
19777         (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
19778         (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
19779         (prohibited_class_mode_regs, ira_important_classes_num)
19780         (ira_important_classes, ira_reg_class_intersect)
19781         (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
19782         (ira_reg_class_union): Redefine as macros.
19783         * ira.h (target_ira): New structure.
19784         (default_target_ira): Declare.
19785         (this_target_ira): Declare as a variable or define as a macro.
19786         (ira_available_class_regs, ira_hard_regno_cover_class)
19787         (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
19788         (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
19789         (ira_class_hard_regs_num): Redefine as macros.
19790         * ira.c (default_target_ira, default_target_ira_int): New variables.
19791         (this_target_ira, this_target_ira_int): New conditional variables.
19792         (ira_reg_mode_hard_regset, ira_memory_move_cost)
19793         (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
19794         (ira_class_subset_p): Delete.
19795         (no_unit_alloc_regs): Redefine as a macro.
19796         (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
19797         (ira_class_hard_regs_num, ira_class_hard_reg_index)
19798         (ira_available_class_regs): Delete.
19799         (alloc_reg_class_subclasses): Redefine as a macro.
19800         (ira_reg_class_cover_size, ira_reg_class_cover)
19801         (ira_important_classes_num, ira_important_classes)
19802         (ira_important_class_nums, ira_class_translate): Delete.
19803         (cover_class_order): Document the variable's lifetime.
19804         (reorder_important_classes): Don't set ira_important_class_nums.
19805         (ira_reg_class_intersect, ira_reg_classes_intersect_p)
19806         (ira_reg_class_super_classes, ira_reg_class_union)
19807         (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
19808         Delete.
19809         (setup_reg_class_nregs): Don't set ira_max_regs.
19810         (prohibited_class_mode_regs): Delete.
19811         * target-globals.h (this_target_ira, this_target_ira_int): Declare.
19812         (target_globals): Add ira and ira_int fields.
19813         (restore_target_globals): Copy the ira field to this_target_ira
19814         and the ira_int field to this_target_ira_int.
19815         * target-globals.c: Include ira-int.h.
19816         (default_target_globals): Initialize the ira and ira_int fields.
19817         (save_target_globals): Likewise.
19818
19819 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19820
19821         * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
19822         * cfgloop.h (target_cfgloop): New structure.
19823         (default_target_cfgloop): Declare.
19824         (this_target_cfgloop): Declare as a variable or define as a macro.
19825         (target_avail_regs, target_clobbered_regs, target_res_regs)
19826         (target_reg_cost, target_spill_cost): Redefine as macros.
19827         * cfgloopanal.c (default_target_cfgloop): New variable.
19828         (this_target_cfgloop): New conditional variable.
19829         (target_avail_regs, target_clobbered_regs, target_res_regs)
19830         (target_reg_cost, target_spill_cost): Delete.
19831         * target-globals.h (this_target_cfgloop): Declare.
19832         (target_globals): Add a cfgloop field.
19833         (restore_target_globals): Copy the cfgloop field to
19834         this_target_cfgloop.
19835         * target-globals.c: Include cfgloop.h.
19836         (default_target_globals): Initialize the cfgloop field.
19837         (save_target_globals): Likewise.
19838
19839 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19840
19841         * regs.h (target_regs): Add x_direct_load, x_direct_store and
19842         x_float_extend_from_mem.
19843         (direct_load, direct_store, float_extend_from_mem): New macros.
19844         * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
19845
19846 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19847
19848         * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
19849         (target-globals.o): Depend on $(LIBFUNCS_H).
19850         * libfuncs.h: Include hashtab.h.
19851         (libfunc_entry): Moved from optabs.c.
19852         (target_libfuncs): New structure.
19853         (default_target_libfuncs): Declare.
19854         (this_target_libfuncs): Declare as a variable or define as a macro.
19855         (libfunc_table): Redefine as a macro.
19856         * optabs.c (default_target_libfuncs): New variable.
19857         (this_target_libfuncs): New conditional variable.
19858         (libfunc_table): Delete.
19859         (libfunc_entry): Moved to optabs.h.
19860         (libfunc_hash): Redefine as a macro.
19861         (hash_libfunc, eq_libfunc): Fix comments.
19862         (init_optabs): Use libfunc_hash to detect cases where the function
19863         has already been called.  Clear the hash table instead of
19864         recreating it.
19865         * target-globals.h (this_target_libfuncs): Declare.
19866         (target_globals): Add a libfuncs field.
19867         (restore_target_globals): Copy the libfuncs field to
19868         this_target_libfuncs.
19869         * target-globals.c: Include libfuncs.h.
19870         (default_target_globals): Initialize the libfuncs field.
19871         (save_target_globals): Likewise.
19872
19873 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19874
19875         * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
19876         in all dependency lists.
19877
19878 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19879
19880         * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
19881         * optabs.h (target_optabs): New structure.
19882         (default_target_optabs): Declare.
19883         (this_target_optabs): Declare as a variable or define as a macro.
19884         (optab_table, convert_optab_table, direct_optab_table): Redefine
19885         as macros.
19886         * optabs.c (default_target_optabs): New variable.
19887         (this_target_optabs): New conditional variable.
19888         (optab_table, convert_optab_table, direct_optab_table): Delete.
19889         * target-globals.h (this_target_optabs): Declare.
19890         (target_globals): Add a optabs field.
19891         (restore_target_globals): Copy the optabs field to
19892         this_target_optabs.
19893         * target-globals.c: Include expr.h and optabs.h.
19894         (default_target_globals): Initialize the optabs field.
19895         (save_target_globals): Likewise.
19896
19897 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19898
19899         * flags.h (target_flagstate): Add x_flag_excess_precision.
19900         (flag_excess_precision): Redefine as a macro.
19901         * toplev.c (flag_excess_precision): Delete.
19902
19903 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19904
19905         * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
19906         * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
19907         * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
19908         (no_caller_save_reg_set): Redefine as a macro.
19909         * reload.h (target_reload): Add x_caller_save_initialized_p and
19910         x_regno_save_mode.
19911         (caller_save_initialized_p): Redefine as a macro.
19912         * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
19913         (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
19914         (regno_save_mode): Redefine as a macro.
19915
19916 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19917
19918         * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
19919         * expmed.h: New file.
19920         * expmed.c (default_target_costs): New variable.
19921         (this_target_costs): New conditional variable.
19922         (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
19923         (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
19924         (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
19925         * target-globals.h (this_target_expmed): Declare.
19926         (target_globals): Add a expmed field.
19927         (restore_target_globals): Copy the expmed field to
19928         this_target_expmed.
19929         * target-globals.c: Include expmed.h.
19930         (default_target_globals): Initialize the expmed field.
19931         (save_target_globals): Likewise.
19932
19933 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19934
19935         * Makefile.in (target-globals.o): Depend on reload.h.
19936         * reload.h (target_reload): New structure.
19937         (default_target_reload): Declare.
19938         (this_target_reload): Declare as a variable or define as a macro.
19939         (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
19940         * reload1.c (default_target_reload): New variable
19941         (this_target_reload): New conditional variable.
19942         (indirect_symref_ok, double_reg_address_ok): Delete.
19943         (spill_indirect_levels): Redefine as a macro.
19944         * target-globals.h (this_target_reload): Declare.
19945         (target_globals): Add a reload field.
19946         (restore_target_globals): Copy the reload field to
19947         this_target_reload.
19948         * target-globals.c: Include hard-reg-set.h.
19949         (default_target_globals): Initialize the reload field.
19950         (save_target_globals): Likewise.
19951
19952 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19953
19954         * rtl.h (target_rtl): Add x_static_reg_base_value.
19955         * alias.c (static_reg_base_value): Redefine as a macro.
19956
19957 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19958
19959         * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
19960         (GTFILES): Remove reginfo.c.
19961         * rtl.h (target_rtl): Add x_top_of_stack.
19962         (top_of_stack): New macro.
19963         * reginfo.c: Don't include ggc.h or gt-reginfo.h.
19964         (top_of_stack): Delete.
19965
19966 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19967
19968         * regs.h (target_regs): Add x_hard_regs_of_mode,
19969         x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
19970         x_may_move_out_cost and x_last_mode_for_init_move_cost.
19971         (have_regs_of_mode, contains_reg_of_mode, move_cost)
19972         (may_move_in_cost, may_move_out_cost): Redefine as macros.
19973         * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
19974         (may_move_in_cost, may_move_out_cost): Delete.
19975         (last_mode_for_init_move_cost): Redefine as a macro.
19976
19977 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19978
19979         * hard-reg-set.h (target_hard_regs): New structure.
19980         (default_target_hard_regs): Declare.
19981         (this_target_hard_regs): Declare as a variable or define as a macro.
19982         (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
19983         (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
19984         (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
19985         (reg_class_size, reg_class_subclasses, reg_class_subunion)
19986         (reg_class_superunion, reg_names): Redefine as macros.
19987         * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
19988         (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
19989         (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
19990         (reg_class_contents, reg_class_size, reg_class_subclasses)
19991         (reg_class_subunion, reg_class_superunion, reg_names): Delete.
19992         (default_target_hard_regs): New variable
19993         (this_target_hard_regs, initial_call_really_used_regs)
19994         (initial_reg_alloc_order): New conditional variables.
19995         (initial_reg_names): New variable.
19996         (init_reg_sets): Assert that initial_call_really_used_regs,
19997         initial_reg_alloc_order and initial_reg_names
19998         are all the same size as their variable counterparts.  Use them to
19999         initialize those counterparts.
20000         * target-globals.h (this_target_hard_regs): Declare.
20001         (target_globals): Add a hard_regs field.
20002         (restore_target_globals): Copy the hard_regs field to
20003         this_target_hard_regs.
20004         * target-globals.c: Include hard-reg-set.h.
20005         (default_target_globals): Initialize the hard_regs field.
20006         (save_target_globals): Likewise.
20007
20008 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20009
20010         * Makefile.in (target-globals.o): Depend on $(RTL_H).
20011         * rtl.h (target_rtl): New structure.
20012         (default_target_rtl): Declare.
20013         (this_target_rtl): Declare as a variable or define as a macro.
20014         (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
20015         Redefine as macros.
20016         * emit-rtl.c (default_target_rtl): New variable.
20017         (this_target_rtl): New conditional variable.
20018         (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
20019         (return_address_pointer_rtx): Delete.
20020         (initial_regno_reg_rtx): New macro.
20021         (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
20022         (init_emit_regs): Likewise.
20023         * target-globals.h (this_target_rtl): Declare.
20024         (target_globals): Add a rtl field.
20025         (restore_target_globals): Copy the rtl field to this_target_rtl.
20026         * target-globals.c: Include rtl.h.
20027         (default_target_globals): Initialize the rtl field.
20028         (save_target_globals): Likewise.
20029
20030 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20031
20032         * Makefile.in (target-globals.o): Depend on $(REGS_H).
20033         * regs.h (target_reg_modes): New structure.
20034         (default_target_reg_modes): Declare.
20035         (this_target_reg_modes): Declare as a variable or define as a macro.
20036         (hard_regno_nregs, reg_raw_mode): Redefine as macros.
20037         * reginfo.c (default_target_reg_modes): New variable.
20038         (this_target_reg_modes): New conditional variable.
20039         (hard_regno_nregs, reg_raw_mode): Delete.
20040         * target-globals.h (this_target_regs): Declare.
20041         (target_globals): Add a regs field.
20042         (restore_target_globals): Copy the regs field to this_target_regs.
20043         * target-globals.c: Include regs.h.
20044         (default_target_globals): Initialize the regs field.
20045         (save_target_globals): Likewise.
20046
20047 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20048
20049         * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
20050         * doc/tm.texi: Regenerate.
20051         * Makefile.in (OBJS-common): Add target-globals.o.
20052         (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
20053         and target-globals.h.
20054         (target-globals.o): New rule.
20055         (GTFILES): Include $(srcdir)/target-globals.h.
20056         * defaults.h (SWITCHABLE_TARGET): Define.
20057         * gengtype.c (open_base_files): Add target-globals.h to the
20058         list of includes.
20059         * target-globals.h: New file.
20060         * target-globals.c: Likewise.
20061
20062         * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
20063         * flags.h (target_flag_state): New structure.
20064         (default_target_flag_state): Declare.
20065         (this_target_flag_state): Declare as a variable or define as a macro.
20066         (align_loops_log): Redefine as a macro.
20067         (align_loops_max_skip, align_jumps_log): Likewise.
20068         (align_jumps_max_skip, align_labels_log): Likewise.
20069         (align_labels_max_skip, align_functions_log): Likewise.
20070         * toplev.c (default_target_flag_state): New variable.
20071         (this_target_flag_state): New conditional variable.
20072         (align_loops_log): Delete.
20073         (align_loops_max_skip, align_jumps_log): Likewise.
20074         (align_jumps_max_skip, align_labels_log): Likewise.
20075         (align_labels_max_skip, align_functions_log): Likewise.
20076         * target-globals.h (this_target_flag_state): Declare.
20077         (target_globals): Add a flag_state field.
20078         (restore_target_globals): Copy the flag_state field to
20079         this_target_flag_state.
20080         * target-globals.c: Include flags.h.
20081         (default_target_globals): Initialize the flag_state field.
20082         (save_target_globals): Likewise.
20083
20084 2010-07-12  Jie Zhang  <jie@codesourcery.com>
20085
20086         * postreload.c (reg_symbol_ref[]): New.
20087         (move2add_use_add2_insn): New.
20088         (move2add_use_add3_insn): New.
20089         (reload_cse_move2add): Handle SYMBOL + OFFSET case.
20090         (move2add_note_store): Likewise.
20091
20092 2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
20093
20094         PR rtl-optimization/44752
20095         * genautomata.c (main): Don't emit an empty file even if there
20096         is no automaton.
20097
20098 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20099
20100         * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
20101         ix86_solaris_return_in_memory.
20102         * config/i386-protos.h: Reflect this.
20103         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
20104         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
20105         Move ...
20106         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
20107
20108 2010-07-12  Jie Zhang  <jie@codesourcery.com>
20109
20110         * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
20111         align the stack when it's going to be saved.
20112
20113 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20114
20115         PR pch/14940
20116         * config/host-solaris.c (mmap_fixed): New function.
20117         (sol_gt_pch_get_address): Use it.
20118         (sol_gt_pch_use_address): Likewise.
20119
20120 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20121
20122         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
20123         pentiumpro on Solaris 8 and 9/x86.
20124         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
20125         Document SSE/SSE2 support.
20126         * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
20127
20128 2010-07-12  Andi Kleen  <ak@linux.intel.com>
20129
20130         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
20131         instead of gcc_assert to print better error message for multiple
20132         prevailing defs.
20133
20134 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
20135
20136         * config/i386/i386.c (ix86_asm_output_function_label): Change format
20137         string placeholder from 0x%x to %#x.
20138         (ix86_code_end): Use putc to output '\n'.
20139         (ix86_print_operand) <case ';'>: Use putc to output ';'.
20140
20141 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
20142
20143         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
20144         in directive -export.
20145
20146 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
20147
20148         * reginfo.h (reg_classes_intersect_p): Change arguments type to
20149         reg_class_t.
20150         * rtl.h (reg_classes_intersect_p): Adjust prototype.
20151
20152         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
20153         Remove macros.
20154         * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
20155         rs6000_memory_move_cost): Remove
20156         * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
20157         TARGET_MEMORY_MOVE_COST): Define.
20158         (rs6000_register_move_cost): Make static. Change arguments type from
20159         enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
20160         (rs6000_memory_move_cost): Make static. Change arguments type from
20161         'enum reg_class' to reg_class_t.
20162
20163 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
20164
20165         PR middle-end/42505
20166         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
20167         lookup code into....
20168         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
20169         new functions.
20170         * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
20171         * cfgloopanal.c (target_clobbered_regs): Define.
20172         (init_set_costs): Initialize target_clobbered_regs.
20173         (estimate_reg_pressure_cost): Add call_p argument.  When true,
20174         adjust the number of available registers to exclude the
20175         call-clobbered registers.
20176         * cfgloop.h (target_clobbered_regs): Declare.
20177         (estimate_reg_pressure_cost): Adjust declaration.
20178         * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
20179         (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
20180         (determine_set_costs): Dump target_clobbered_regs.
20181         (loop_body_includes_call): New function.
20182         (tree_ssa_iv_optimize_loop): Use it to initialize new field.
20183         * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
20184         call_p flag through.
20185         (best_gain_for_invariant): Likewise.
20186         (find_invariants_to_move): Likewise.
20187         (move_single_loop_invariants): Likewise, using already-computed
20188         has_call field.
20189
20190 2010-07-10  Richard Guenther  <rguenther@suse.de>
20191             Joern Rennecke  <joern.rennecke@embecosm.com>
20192
20193         PR debug/44832
20194         * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
20195         (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
20196         unless they have DECL_IGNORED_P set.
20197
20198 2010-07-10  Richard Guenther  <rguenther@suse.de>
20199
20200         PR lto/44889
20201         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
20202         helper function.
20203         (gimple_types_compatible_p): Similar to pointed-to
20204         types allow and merge a mix of complete and incomplete aggregate.
20205         Use gimple_fixup_complete_and_incomplete_subtype_p for that.
20206         (iterative_hash_gimple_type): Adjust for that.
20207
20208 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
20209
20210         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
20211
20212 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
20213
20214         PR objc/44140
20215         * config/darwin.c (output_objc_section_asm_op): Save and restore
20216         section when outputting ObjC section list.
20217
20218 2010-07-09  Jan Hubicka  <jh@suse.cz>
20219
20220         * lto-streamer-out.c (produce_symtab): Do not write alias
20221         cgraph/varpool nodes.
20222
20223 2010-07-09  Jan Hubicka  <jh@suse.cz>
20224
20225         * tree-inline.c (declare_return_variable): Fix ICE while
20226         inlining DECL_BY_VALUE function not in SSA form
20227
20228 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
20229
20230         PR tree-optimization/44576
20231         * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
20232         New.  Pull out from is_loop_prefetching_profitable to implement
20233         the trip count to ahead ratio heuristic.
20234         (mem_ref_count_reasonable_p): New.  Pull out from
20235         is_loop_prefetching_profitable to implement the instruction to
20236         memory reference ratio heuristic.  Also consider not reasonable if
20237         the memory reference count is above a threshold (to avoid
20238         explosive compilation time.
20239         (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
20240         is_loop_prefetching_profitable to implement the instruction to
20241         prefetch ratio heuristic.
20242         (is_loop_prefetching_profitable): Removed.
20243         (loop_prefetch_arrays): Distribute the cost analysis across the
20244         function to allow early exit of the prefetch analysis.
20245         is_loop_prefetching_profitable is splitted into three functions,
20246         with each one called as early as possible.
20247         (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
20248         number of memory references in a loop is considered too many.
20249
20250 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
20251
20252         * reload.c (find_reloads): Don't clear badop if we have a winreg
20253         alternative, but not win, and the class only has fixed regs.
20254         * hard-reg-set.h (class_only_fixed_regs): Declare.
20255         * reginfo.c (class_only_fixed_regs): New array.
20256         (init_reg_sets_1): Initialize it.
20257         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
20258         discourage alternatives using the stack pointer.
20259
20260         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
20261
20262         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
20263
20264         * config/arm/arm.md (cbranchqi4): Fix array size.
20265         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
20266         calculating length.
20267
20268 2010-07-09  Richard Guenther  <rguenther@suse.de>
20269
20270         * gimple.c (struct type_fixup_s): New struct and VEC type.
20271         (gimple_register_type_fixups): New static global.
20272         (gimple_queue_type_fixup): New function.
20273         (gimple_types_compatible_p): Queue type fixups instead of
20274         applying them here.
20275         (gimple_register_type): Apply queued fixups for the
20276         canonical type.  Empty the type fixup queue.
20277
20278 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
20279
20280         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
20281         * configure: Regenerate.
20282         * config.in: Ditto.
20283
20284 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
20285             Denys Vlasenko  <dvlasenk@redhat.com>
20286             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
20287
20288         PR tree-optimization/28632
20289         * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
20290         (extract_range_from_binary_expr): Further optimize
20291         BIT_AND_EXPR and BIT_IOR_EXPR.
20292
20293 2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
20294
20295         * tree-if-conv.c (fold_or_predicates): New.
20296         (add_to_predicate_list): Call it.
20297
20298 2010-07-09  Richard Guenther  <rguenther@suse.de>
20299
20300         PR middle-end/44890
20301         * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
20302         if base is a pointer.
20303         * tree-cfg.c (verify_expr): Update MEM_REF checking.
20304
20305 2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
20306
20307         PR target/44877
20308         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
20309         POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
20310         builtin mask for load/store builtins.
20311
20312 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
20313
20314         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
20315         for "lock addl".
20316         * configure: Regenerate.
20317         * config/i386/i386.c (ix86_print_operand) <case ';'>:
20318         Remove TARGET_MACHO.
20319
20320 2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
20321
20322         * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
20323         default ISA flags.
20324         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
20325
20326 2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
20327
20328         * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
20329
20330 2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
20331
20332         * config/picochip/picochip.md (commsTestPort): Emit more
20333         efficient sequence for tstport instruction.
20334
20335 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
20336
20337         * config/i386/i386.c (ix86_veclib_handler): Make static.
20338
20339 2010-07-09  Richard Guenther  <rguenther@suse.de>
20340
20341         PR tree-optimization/44852
20342         * tree-ssa-alias.c: Include toplev.h for exact_log2.
20343         (indirect_ref_may_alias_decl_p): Properly handle negative offsets
20344         in MEM_REF.
20345         (indirect_refs_may_alias_p): Likewise.
20346         * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
20347
20348 2010-07-09  Richard Guenther  <rguenther@suse.de>
20349
20350         PR tree-optimization/44882
20351         * tree-vect-stmts.c (vectorizable_store): Do not assert alias
20352         sets do conflict.
20353         (vectorizable_load): Likewise.
20354
20355 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
20356
20357         PR target/40657
20358         * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
20359         All callers changed.
20360         Handle the case when we're called for the epilogue.
20361         (thumb_unexpanded_epilogue): Use it.
20362         (thumb1_expand_epilogue): Likewise.
20363
20364 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
20365
20366         * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
20367         both ranges are range_int_cst_p with non-negative minimum,
20368         try harder to derive smaller range.
20369
20370 2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20371
20372         * genrecog.c: Include diagnostic-core.h before toplev.h.
20373         * genoutput.c: Likewise.
20374         * genextract.c: Likewise.
20375         * genautomata.c: Likewise.
20376         * genemit.c: Likewise.
20377         * genpeep.c: Likewise.
20378         * genattrtab.c: Likewise.
20379         * genconditions.c: Likewise.
20380         * genpreds.c: Likewise.
20381
20382 2010-07-08  Andi Kleen  <ak@linux.intel.com>
20383
20384         * lto-section-in.c (lto_section_name): Add missing comma.
20385
20386 2010-07-08  Anatoly Sokolov  <aesok@post.ru>
20387
20388         * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
20389         * config/ia64/ia64-protos.h (ia64_override_options): Remove.
20390         * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
20391         (ia64_override_options): Rename to...
20392         (ia64_option_override): ... this one. Make static.
20393
20394 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
20395
20396         PR middle-end/44843
20397         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
20398         pointed-to type of the offset in a MEM_REF to compute the alignment.
20399
20400 2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
20401
20402         * final.c (final_scan_insn): Replace
20403         TARGET_UNWIND_INFO macro check by unwind_emit
20404         hook NULL check.
20405         * targhooks.c (default_unwind_emit): Removed.
20406         * targhooks.h (default_unwind_emit): Likewise.
20407         * target.def (unwind_emit): Set default value to NULL.
20408
20409         * config/i386/i386-protos.h (ix86_asm_output_function_label):
20410         New prototype.
20411         * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
20412         for NULL fntype argument and allow 64-bit targets.
20413         (ix86_asm_output_function_label): New function.
20414         (ix86_expand_prologue): Handle 64-bit ms hook prologue.
20415         (ix86_handle_fndecl_attribute): Likewise.
20416         * doc/extend.texi (ms_hook_prologue): Adjust documentation.
20417         * doc/doc/tm.texi: Regenerated.
20418         * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
20419         (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
20420         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
20421         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
20422         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
20423         * config/elfos.h: Likewise.
20424         * config/i386/cygming.h: Likewise.
20425         * config/netbsd-aout.h: Likewise.
20426         * config/openbsd.h: Likewise.
20427         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
20428         by ix86_asm_output_function_label function call.
20429         * varasm.c (assemble_start_function): Use
20430         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
20431
20432 2010-07-08  Jan Hubicka  <jh@suse.cz>
20433
20434         * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
20435         New function.
20436         * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
20437         Declare.
20438         * ipa-cp.c (ipcp_estimate_growth): Use it.
20439         * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
20440         Likewise.
20441
20442 2010-07-08  Jan Hubicka  <jh@suse.cz>
20443
20444         * tree-inline.c (declare_return_variable): Allocate annotation for new
20445         temporary.
20446
20447 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
20448
20449         PR tree-optimization/44710
20450         * tree-if-conv.c (parse_predicate): New.
20451         (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
20452         Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
20453
20454 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
20455
20456         * common.opt (ftree-loop-if-convert): New flag.
20457         * doc/invoke.texi (ftree-loop-if-convert): Documented.
20458         * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
20459         when flag_tree_loop_if_convert is set.
20460
20461 2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
20462
20463         * config/i386/i386.c: Use short syntax for function calls
20464         through function pointers.
20465         * config/i386/i386.md: Ditto.
20466
20467 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
20468
20469         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
20470
20471 2010-07-08  Richard Guenther  <rguenther@suse.de>
20472
20473         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
20474         stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
20475
20476 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
20477
20478         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
20479         instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
20480         (loc_list_from_tree): Likewise.
20481         (output_loc_operands): Handle outputting DW_OP_const[48]u
20482         with loc->dtprel set.
20483         (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
20484
20485 2010-07-08  Jan Hubicka  <jh@suse.cz>
20486
20487         * ipa.c: Include pointer-set.h
20488         (cgraph_externally_visible_p): New attribute ALIASED;
20489         when in LTO, hidden symbols are local unless they are aliased.
20490         (function_and_variable_visibility): Compute aliased nodes;
20491         handle LTO and hidden symbol on functions and vars.
20492         * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
20493         for COMDAT symbols; handle COMDAT_GROUPS also at vars.
20494
20495 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
20496
20497         * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
20498         * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
20499         * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
20500         * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
20501         * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
20502         * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
20503         (ix86_gen_probe_stack_range): Likewise.
20504         (override_options): Set them.
20505         (ix86_target_stack_probe): New function.
20506         (ix86_compute_frame_layout): Force use of push instructions to
20507         save registers if stack checking with probes is enabled.
20508         (get_scratch_register_on_entry): New function.
20509         (release_scratch_register_on_entry): Likewise.
20510         (ix86_adjust_stack_and_probe): Likewise.
20511         (output_adjust_stack_and_probe): Likewise.
20512         (ix86_emit_probe_stack_range): Likewise.
20513         (output_probe_stack_range): Likewise.
20514         (ix86_expand_prologue): Emit stack checking code if static built-in
20515         stack checking is enabled.
20516         Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
20517         * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
20518         (output_adjust_stack_and_probe): Likewise.
20519         (output_probe_stack_range): Likewise.
20520         * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
20521         (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
20522         TARGET_STACK_PROBE.
20523         (allocate_stack_worker_64): Likewise.
20524         (allocate_stack): Likewise.
20525         (adjust_stack_and_probe): New insn.
20526         (probe_stack_range): Likewise.
20527
20528 2010-07-08  Richard Guenther  <rguenther@suse.de>
20529
20530         PR tree-optimization/44831
20531         * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
20532         a MEM_REF preserving TBAA info of the original dereference.
20533         Dereference the original pointer if the address is not invariant.
20534         (propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
20535         at least one invariant address that we are going to dereference.
20536
20537 2010-07-08  Richard Guenther  <rguenther@suse.de>
20538
20539         PR tree-optimization/44861
20540         * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
20541         information when building MEM_REFs.
20542         (vectorizable_load): Likewise.
20543         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
20544
20545 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
20546
20547         * config/sol2-c.c: Do not include diagnostic-core.h.
20548
20549 2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
20550
20551         PR bootstrap/44768
20552         * cfgexpand.c (estimated_stack_frame_size): Make self-contained
20553         with respect to current_function_decl. Pass decl of the function.
20554         * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
20555         * ipa-inline.c (compute_inline_parameters): Pass decl to
20556         estimated_stack_frame_size.
20557
20558 2010-07-08  Richard Guenther  <rguenther@suse.de>
20559
20560         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
20561         New function.
20562         (valueize_refs): Call it.
20563
20564 2010-07-08  Richard Guenther  <rguenther@suse.de>
20565
20566         PR rtl-optimization/44838
20567         * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
20568         SSA form do not use pointer equivalence.
20569
20570 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
20571
20572         * dwarf2out.c (AT_linkage_name): Delete.
20573         (add_linkage_attr): New function.
20574         (add_linkage_name): Call it to emit the linkage attribute.
20575         (dwarf2out_finish): Likewise.
20576         (move_linkage_attr): Explicitly accept both attribute variants.
20577
20578 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20579
20580         * toplev.h: Do not include diagnostic-core.h.
20581         Include diagnostic-core.h in every file that includes toplev.h.
20582         * c-tree.h: Do not include toplev.h.
20583         * pretty-print.h: Update comment.
20584         * Makefile.in: Update dependencies.
20585         * alias.c: Include diagnostic-core.h in every file that includes
20586         toplev.h.
20587         * attribs.c: Likewise.
20588         * auto-inc-dec.c: Likewise.
20589         * bb-reorder.c: Likewise.
20590         * bt-load.c: Likewise.
20591         * caller-save.c: Likewise.
20592         * calls.c: Likewise.
20593         * cfg.c: Likewise.
20594         * cfganal.c: Likewise.
20595         * cfgbuild.c: Likewise.
20596         * cfgcleanup.c: Likewise.
20597         * cfghooks.c: Likewise.
20598         * cfgloop.c: Likewise.
20599         * combine.c: Likewise.
20600         * config/alpha/alpha.c: Likewise.
20601         * config/arc/arc.c: Likewise.
20602         * config/arm/arm.c: Likewise.
20603         * config/arm/pe.c: Likewise.
20604         * config/avr/avr.c: Likewise.
20605         * config/bfin/bfin.c: Likewise.
20606         * config/cris/cris.c: Likewise.
20607         * config/crx/crx.c: Likewise.
20608         * config/darwin-c.c: Likewise.
20609         * config/darwin.c: Likewise.
20610         * config/fr30/fr30.c: Likewise.
20611         * config/frv/frv.c: Likewise.
20612         * config/h8300/h8300.c: Likewise.
20613         * config/host-darwin.c: Likewise.
20614         * config/i386/i386.c: Likewise.
20615         * config/i386/netware.c: Likewise.
20616         * config/i386/nwld.c: Likewise.
20617         * config/i386/winnt-cxx.c: Likewise.
20618         * config/i386/winnt-stubs.c: Likewise.
20619         * config/i386/winnt.c: Likewise.
20620         * config/ia64/ia64-c.c: Likewise.
20621         * config/ia64/ia64.c: Likewise.
20622         * config/iq2000/iq2000.c: Likewise.
20623         * config/lm32/lm32.c: Likewise.
20624         * config/m32c/m32c-pragma.c: Likewise.
20625         * config/m32c/m32c.c: Likewise.
20626         * config/m32r/m32r.c: Likewise.
20627         * config/m68hc11/m68hc11.c: Likewise.
20628         * config/m68k/m68k.c: Likewise.
20629         * config/mcore/mcore.c: Likewise.
20630         * config/mep/mep-pragma.c: Likewise.
20631         * config/mep/mep.c: Likewise.
20632         * config/mmix/mmix.c: Likewise.
20633         * config/mn10300/mn10300.c: Likewise.
20634         * config/moxie/moxie.c: Likewise.
20635         * config/pa/pa.c: Likewise.
20636         * config/pdp11/pdp11.c: Likewise.
20637         * config/picochip/picochip.c: Likewise.
20638         * config/rs6000/rs6000-c.c: Likewise.
20639         * config/rs6000/rs6000.c: Likewise.
20640         * config/rx/rx.c: Likewise.
20641         * config/s390/s390.c: Likewise.
20642         * config/score/score.c: Likewise.
20643         * config/score/score3.c: Likewise.
20644         * config/score/score7.c: Likewise.
20645         * config/sh/sh.c: Likewise.
20646         * config/sh/symbian-base.c: Likewise.
20647         * config/sh/symbian-c.c: Likewise.
20648         * config/sh/symbian-cxx.c: Likewise.
20649         * config/sol2-c.c: Likewise.
20650         * config/sol2.c: Likewise.
20651         * config/sparc/sparc.c: Likewise.
20652         * config/spu/spu.c: Likewise.
20653         * config/stormy16/stormy16.c: Likewise.
20654         * config/v850/v850-c.c: Likewise.
20655         * config/v850/v850.c: Likewise.
20656         * config/vax/vax.c: Likewise.
20657         * config/vxworks.c: Likewise.
20658         * config/xtensa/xtensa.c: Likewise.
20659         * convert.c: Likewise.
20660         * cse.c: Likewise.
20661         * cselib.c: Likewise.
20662         * dbgcnt.c: Likewise.
20663         * dbxout.c: Likewise.
20664         * ddg.c: Likewise.
20665         * dominance.c: Likewise.
20666         * emit-rtl.c: Likewise.
20667         * explow.c: Likewise.
20668         * expmed.c: Likewise.
20669         * fixed-value.c: Likewise.
20670         * fold-const.c: Likewise.
20671         * fwprop.c: Likewise.
20672         * gcse.c: Likewise.
20673         * ggc-common.c: Likewise.
20674         * ggc-page.c: Likewise.
20675         * ggc-zone.c: Likewise.
20676         * gimple-low.c: Likewise.
20677         * gimplify.c: Likewise.
20678         * graph.c: Likewise.
20679         * haifa-sched.c: Likewise.
20680         * ifcvt.c: Likewise.
20681         * implicit-zee.c: Likewise.
20682         * integrate.c: Likewise.
20683         * ira-build.c: Likewise.
20684         * ira-color.c: Likewise.
20685         * ira-conflicts.c: Likewise.
20686         * ira-costs.c: Likewise.
20687         * ira-lives.c: Likewise.
20688         * ira.c: Likewise.
20689         * lists.c: Likewise.
20690         * loop-doloop.c: Likewise.
20691         * loop-iv.c: Likewise.
20692         * lto-opts.c: Likewise.
20693         * lto-symtab.c: Likewise.
20694         * main.c: Likewise.
20695         * modulo-sched.c: Likewise.
20696         * optabs.c: Likewise.
20697         * params.c: Likewise.
20698         * plugin.c: Likewise.
20699         * postreload-gcse.c: Likewise.
20700         * postreload.c: Likewise.
20701         * predict.c: Likewise.
20702         * profile.c: Likewise.
20703         * real.c: Likewise.
20704         * regcprop.c: Likewise.
20705         * reginfo.c: Likewise.
20706         * regmove.c: Likewise.
20707         * reorg.c: Likewise.
20708         * resource.c: Likewise.
20709         * rtl.c: Likewise.
20710         * rtlanal.c: Likewise.
20711         * sched-deps.c: Likewise.
20712         * sched-ebb.c: Likewise.
20713         * sched-rgn.c: Likewise.
20714         * sdbout.c: Likewise.
20715         * sel-sched-dump.c: Likewise.
20716         * sel-sched-ir.c: Likewise.
20717         * simplify-rtx.c: Likewise.
20718         * stmt.c: Likewise.
20719         * stor-layout.c: Likewise.
20720         * store-motion.c: Likewise.
20721         * targhooks.c: Likewise.
20722         * tree-cfg.c: Likewise.
20723         * tree-cfgcleanup.c: Likewise.
20724         * tree-dump.c: Likewise.
20725         * tree-eh.c: Likewise.
20726         * tree-inline.c: Likewise.
20727         * tree-nomudflap.c: Likewise.
20728         * tree-object-size.c: Likewise.
20729         * tree-optimize.c: Likewise.
20730         * tree-outof-ssa.c: Likewise.
20731         * tree-phinodes.c: Likewise.
20732         * tree-profile.c: Likewise.
20733         * tree-ssa-ccp.c: Likewise.
20734         * tree-ssa-coalesce.c: Likewise.
20735         * tree-ssa-live.c: Likewise.
20736         * tree-ssa-loop-niter.c: Likewise.
20737         * tree-ssa-loop-prefetch.c: Likewise.
20738         * tree-ssa-loop.c: Likewise.
20739         * tree-ssa-structalias.c: Likewise.
20740         * tree-ssa-uninit.c: Likewise.
20741         * tree-ssa.c: Likewise.
20742         * tree-vect-data-refs.c: Likewise.
20743         * tree-vect-loop-manip.c: Likewise.
20744         * tree-vect-loop.c: Likewise.
20745         * tree-vect-patterns.c: Likewise.
20746         * tree-vect-stmts.c: Likewise.
20747         * tree-vrp.c: Likewise.
20748         * varasm.c: Likewise.
20749         * vec.c: Likewise.
20750         * web.c: Likewise.
20751         * xcoffout.c: Likewise.
20752
20753 2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
20754
20755         * gengtype.c (write_field_root): New function.
20756         (write_root): Use it.
20757
20758 2010-07-07  Wei Guozhi  <carrot@google.com>
20759
20760         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
20761         of lowest bits to lshift/compare): Add a missing line.
20762
20763 2010-07-07  Wei Guozhi  <carrot@google.com>
20764
20765         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
20766         of lowest bits to lshift/compare): New.
20767
20768 2010-07-07  Tom Tromey  <tromey@redhat.com>
20769
20770         * doc/tm.texi: Update.
20771         * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
20772         Add @hook.
20773         * target.def (want_debug_pub_sections): New hook.
20774         * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
20775         * dwarf2out.c (add_pubname_string): Check
20776         targetm.want_debug_pub_sections.
20777         (add_pubname): Likewise.
20778         (add_pubtype): Likewise.
20779
20780 2010-07-07  Jie Zhang  <jie@codesourcery.com>
20781
20782         * genautomata.c (output_automata_list_min_issue_delay_code):
20783         Correctly decompress min_issue_delay.
20784
20785 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
20786
20787         PR rtl-optimization/44404
20788         * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
20789         possible, use reg_overlap_mentioned_p instead.
20790
20791 2010-07-07  Duncan Sands  <baldrick@free.fr>
20792
20793         PR middle-end/41355
20794         * tree.c (build_function_type_skip_args): Copy the original type using
20795         build_distinct_type_copy rather than copy_node.
20796
20797 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
20798
20799         PR target/44850
20800         * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
20801         revision 161876.
20802         (ix86_expand_prologue): Likewise.
20803         (ix86_handle_fndecl_attribute): Likewise.
20804         (ix86_asm_declare_function_name): Likewise.
20805         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
20806         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
20807         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
20808         * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
20809         * doc/extend.texi: Likewise.
20810
20811 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
20812
20813         PR target/44844
20814         * config/i386/i386.md (rdrand<mode>): Changed to expand to
20815         retry if the carry flag isn't valid.
20816         (rdrand<mode>_1): New.
20817
20818 2010-07-07  Richard Guenther  <rguenther@suse.de>
20819
20820         PR middle-end/44790
20821         * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
20822         for expanding the constant offset for MEM_REFs.
20823
20824 2010-07-07  Richard Guenther  <rguenther@suse.de>
20825
20826         * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
20827         * tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
20828         * gimple.h (is_gimple_operand): Remove.
20829         * gimple.c (is_gimple_operand): Likewise.
20830         (walk_gimple_op): Fix wi->val_only setting for calls.
20831         * tree-cfg.c (verify_gimple_call): Fix argument validation.
20832         * tree-profile.c (tree_gen_ic_func_profiler): Do not create
20833         invalid gimple calls.
20834
20835 2010-07-06  Jan Hubicka  <jh@suse.cz>
20836
20837         * lto-cgraph.c (output_cgraph): Add missing declaration.
20838
20839 2010-07-06  Jan Hubicka  <jh@suse.cz>
20840
20841         * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
20842         partition.
20843
20844 2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
20845
20846         * doc/gimple.texi (GIMPLE_DEBUG): Document.
20847         * doc/rtl.texi (Debug Information): New node.
20848         (NOTE_INSN_VAR_LOCATION): Document.
20849         (debug_insn): Likewise.
20850         * doc/generic.texi (DEBUG_EXPR_DECL): Document.
20851
20852 2010-07-07  Jan Hubicka  <jh@suse.cz>
20853
20854         With parts by Richard Guenther.
20855
20856         PR middle-end/44813
20857         * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
20858         for functions passed by reference.
20859         * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
20860         in memory when passed by reference.
20861         * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
20862         beggining.
20863         * ipa-split.c (split_function): Cleanup way return value is passed;
20864         handle SSA DECL_BY_REFERENCE retvals.
20865         * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
20866         DECL_BY_REFERENCE is set.
20867         * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
20868         find_what_p_points_to): Handle RESULT_DECL.
20869         * tree-inline.c (declare_return_variable): Get new entry_block argument;
20870         when passing by reference ensure that RESULT_DECL is gimple_val.
20871         (remap_gimple_op_r): Remap RESULT_DECL ssa name.
20872         (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
20873
20874 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
20875
20876         PR rtl-optimization/44787
20877         * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
20878         * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
20879
20880 2010-07-06  Jan Hubicka  <jh@suse.cz>
20881
20882         * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
20883         (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
20884         with body can prevail.
20885         (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
20886         (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
20887         * cgraph.c (cgraph_get_node_or_alias): New function.
20888         * cgraph.h (cgraph_get_node_or_alias): Declare.
20889
20890 2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
20891
20892         * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
20893         support.
20894         (ix86_expand_prologue): Likewise.
20895         (ix86_handle_fndecl_attribute): Likewise.
20896         (ix86_asm_declare_function_name): New function for
20897         ASM_DECLARE_FUNCTION_NAME.
20898         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
20899         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
20900         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
20901         * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
20902         * doc/extend.texi: Adjust documentation about ms_hook_prologue
20903         attribute.
20904
20905 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
20906
20907         * config/i386/i386.md (immediate_operand): New mode attribute.
20908
20909         (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
20910         pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
20911         using P mode iterator.
20912         (pro_epilogue_adjust_stack_di_2): Rename from
20913         pro_epilogue_adjust_stack_rex64_2.
20914
20915         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
20916
20917 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
20918
20919         * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
20920         through gen_mov_insv_1 function pointer.
20921         (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
20922         gen_truncxf<mode>2 through gen_truncxf function pointer.
20923         (remainder<mode>3): Ditto.
20924         (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
20925         (allocate_stack): Call gen_allocate_stack_worker_64 or
20926         gen_allocate_stack_worker_32 through gen_allocate_stack_worker
20927         function pointer.
20928         (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
20929         function pointer.
20930
20931 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
20932
20933         * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
20934         operand constraint instead of <r><i>m.
20935
20936 2010-07-06  Richard Guenther  <rguenther@suse.de>
20937
20938         PR middle-end/44828
20939         * convert.c (convert_to_integer): Watch out for overflowing
20940         MULT_EXPR as well.
20941
20942 2010-07-05  Jan Hubicka  <jh@suse.cz>
20943
20944         * lto-streamer.c (write_symbol_vec): Rename to ...
20945         (write_symbol) ... this one; write only symbol given and when
20946         present in cache. Sanity check that what is defined is present
20947         in cgraph/varpool with body/finalized decl.
20948         (write_symbols_of_kind): Remove.
20949         (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
20950         pairs to produce symtab.
20951         (produce_asm_for_decls): Update call of produce_symtab; don't do so
20952         when doing WPA streaming.
20953
20954 2010-07-05  Jan Hubicka  <jh@suse.cz>
20955
20956         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
20957         function is still available to fold into.
20958
20959 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
20960
20961         * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
20962         * function.h (struct_function): Change type of local_decls field
20963         to a VEC.
20964         (add_local_decl): New function.
20965         (FOR_EACH_LOCAL_DECL): New macro.
20966         * cfgexpand.c (init_vars_expansion): Adjust for new type of
20967         cfun->local_decls.
20968         (estimated_stack_frame_size): Likewise.
20969         (expand_used_vars): Likewise.
20970         * cgraphbuild.c (build_cgraph_edges): Likewise.
20971         * function.c (instantiate_decls_1): Likewise.
20972         * ipa-struct-reorg.c (build_data_structure): Likewise.
20973         * ipa-type-escape.c (analyze_function): Likewise.
20974         * lto-streamer-in.c (input_function): Likewise.
20975         * lto-streamer-out.c (output_function): Likewise.
20976         * tree-ssa-live.c (remove_unused_locals): Likewise.
20977         * tree.c (free_lang_data_in_decl): Likewise.
20978         (find_decls_types_in_node): Likewise.
20979         * omp-low.c (remove_exit_barrier): Likewise.
20980         (expand_omp_taskreg): Likewise.
20981         (list2chain): Rename to...
20982         (vec2chain): ...this.  Adjust.
20983         * cgraphunit.c (assemble_thunk): Call add_local_decl.
20984         * tree-cfg.c (replace_by_duplicate_decl): Likewise.
20985         * gimple-low.c (record_vars_into): Likewise.
20986         * tree-inline.c (remap_decls): Likewise.
20987         (declare_return_variable): Likewise.
20988         (declare_inline_vars): Likewise.
20989         (copy_forbidden): Adjust for new type of cfun->local_decls.
20990         (add_local_variables): New function.
20991         (expand_call_inline): Call it.
20992         (tree_function_versioning): Likewise.
20993
20994 2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
20995
20996         AVX Programming Reference (June, 2010)
20997         * config/i386/cpuid.h (bit_F16C): New.
20998         (bit_RDRND): Likewise.
20999         (bit_FSGSBASE): Likewise.
21000
21001         * config/i386/i386-builtin-types.def: Add
21002         "DEF_FUNCTION_TYPE (UINT16)", function types for
21003         float16 <-> float conversions and
21004         "DEF_FUNCTION_TYPE (VOID, UINT64)".
21005
21006         * config/i386/i386-c.c (ix86_target_macros_internal): Support
21007         OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
21008         OPTION_MASK_ISA_F16C.
21009
21010         * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
21011         (OPTION_MASK_ISA_RDRND_SET): Likewise.
21012         (OPTION_MASK_ISA_F16C_SET): Likewise.
21013         (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
21014         (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
21015         (OPTION_MASK_ISA_F16C_UNSET): Likewise.
21016         (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
21017         (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
21018         (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
21019         (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
21020         (override_options): Handle them.
21021         (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
21022         (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
21023         IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
21024         IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
21025         IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
21026         IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
21027         IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
21028         IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
21029         IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
21030         (bdesc_args): Likewise.
21031         (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
21032         V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
21033         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
21034         VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
21035         Handle non-memory store.
21036
21037         * config/i386/i386.h (TARGET_FSGSBASE): New.
21038         (TARGET_RDRND): Likewise.
21039         (TARGET_F12C): Likewise.
21040
21041         * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
21042         (UNSPEC_VCVTPS2PH): Likewise.
21043         (UNSPECV_RDFSBASE): Likewise.
21044         (UNSPECV_RDGSBASE): Likewise.
21045         (UNSPECV_WRFSBASE): Likewise.
21046         (UNSPECV_WRGSBASE): Likewise.
21047         (UNSPECV_RDRAND): Likewise.
21048         (rdfsbase<mode>): Likewise.
21049         (rdgsbase<mode>): Likewise.
21050         (wrfsbase<mode>): Likewise.
21051         (wrgsbase<mode>): Likewise.
21052         (rdrand<mode>): Likewise.
21053
21054         * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
21055
21056         * config/i386/immintrin.h (_rdrand_u16): New.
21057         (_rdrand_u32): Likewise.
21058         (_readfsbase_u32): Likewise.
21059         (_readfsbase_u64): Likewise.
21060         (_readgsbase_u32): Likewise.
21061         (_readgsbase_u64): Likewise.
21062         (_writefsbase_u32): Likewise.
21063         (_writefsbase_u64): Likewise.
21064         (_writegsbase_u32): Likewise.
21065         (_writegsbase_u64): Likewise.
21066         (_rdrand_u64): Likewise.
21067         (_cvtsh_ss): Likewise.
21068         (_mm_cvtph_ps): Likewise.
21069         (_mm256_cvtph_ps): Likewise.
21070         (_cvtss_sh): Likewise.
21071         (_mm_cvtps_ph): Likewise.
21072         (_mm256_cvtps_ph): Likewise.
21073
21074         * config/i386/sse.md (vcvtph2ps): New.
21075         (*vcvtph2ps_load): Likewise.
21076         (vcvtph2ps256): Likewise.
21077         (vcvtps2ph): Likewise.
21078         (*vcvtps2ph): Likewise.
21079         (*vcvtps2ph_store): Likewise.
21080         (vcvtps2ph256): Likewise.
21081
21082         * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
21083
21084         * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
21085
21086 2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
21087
21088         PR bootstrap/44512
21089         * genenums.c (main): Output include of insn-constants.h
21090         * Makefile.in (insn-enums.o): Depend on insn-constants.h.
21091
21092 2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
21093
21094         * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
21095         (override_options): Initialize it.
21096         (ix86_expand_prologue): Use it.
21097
21098 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
21099
21100         * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
21101
21102 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
21103
21104         * double-int.h (fit_double_type): Remove declaration.
21105         * double-int.c (fit_double_type): Remove function.
21106         * tree.h (int_fits_type_p): Adjust prototype.
21107         * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
21108         instead of fit_double_type.
21109         (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
21110         instead of fit_double_type and build_int_cst_wide.
21111         * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
21112         instead of fit_double_type and build_int_cst_wide.
21113         (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
21114         of fit_double_type.
21115
21116 2010-07-05  Jan Hubicka  <jh@suse.cz>
21117
21118         * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
21119         in_other_partition.
21120         * lto-cgraph.c (referenced_from_other_partition_p,
21121         reachable_from_other_partition_p): Use in_other_partition flags.
21122         (output_node, output_varpool_node): COMDAT nodes always have private
21123         copies and thus are never used from other partition.
21124
21125 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
21126
21127         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
21128         * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
21129         * config/ia64/ia64.c Include reload.h.
21130         (ia64_memory_move_cost): New function.
21131         (TARGET_MEMORY_MOVE_COST): Define.
21132         (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
21133         memory_move_cost.
21134
21135 2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
21136
21137         PR middle-end/42505
21138         * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
21139         comments about cost model.
21140         (try_add_cand_for):  Add second strategy for choosing initial set
21141         based on original IVs, controlled by ORIGINALP argument.
21142         (get_initial_solution): Add ORIGINALP argument.
21143         (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
21144         (find_optimal_iv_set): Try two different strategies for choosing
21145         the IV set, and return the one with lower cost.
21146
21147 2010-07-05  Richard Guenther  <rguenther@suse.de>
21148
21149         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
21150
21151 2010-07-05  Richard Guenther  <rguenther@suse.de>
21152
21153         * tree.c (reference_alias_ptr_type): New function.
21154         * tree.h (reference_alias_ptr_type): Declare.
21155         * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
21156         allow non-TARGET_MEM_REF new refs.
21157         (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
21158         * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
21159         Build a MEM_REF instead of a TARGET_MEM_REF if possible.
21160         (create_mem_ref): Get alias pointer type.  Adjust calls to
21161         create_mem_ref_raw.
21162         (maybe_fold_tmr): Likewise.
21163         * tree-flow.h (create_mem_ref): Adjust prototype.
21164
21165 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
21166
21167         PR c++/44808
21168         * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
21169         *from_p is VAR_DECL.
21170
21171 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
21172
21173         * tree.h (build_call_list): Remove.
21174         * tree.c (build_call_list): Remove.
21175
21176 2010-07-05  Richard Guenther  <rguenther@suse.de>
21177
21178         * double-int.h (double_int_sub): Declare.
21179         * double-int.c (double_int_sub): New function.
21180         * dwarf2out.c (field_byte_offset): Use it.
21181         * fixed-value.c (do_fixed_add): Likewise.
21182         (do_fixed_multiply): Likewise.
21183         (do_fixed_divide): Likewise.
21184         * tree-predcom.c (add_ref_to_chain): Likewise.
21185         (determine_roots_comp): Likewise.
21186         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
21187
21188 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
21189
21190         * vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
21191         implementations.
21192
21193 2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>
21194
21195         * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
21196         * arm-modes.def (CC_NOTB): Don't define.
21197         * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
21198         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
21199         (LTUGEU): New code_iterator.
21200         (cnb, optab): New corresponding code_attrs.
21201         (addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
21202         to canonical form.  Operands 1 and 2 are commutative.  Parametrize
21203         using LTUGEU.
21204         (addsi3_carryin_shift_<optab>): Likewise.
21205         (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
21206         Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
21207         (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
21208         (subsi3_compare): Renamed from subsi3_compare0_c.
21209         Change CC_NOTB to CC.
21210         (arm_subsi3_insn): Allow constants for operand 0.
21211         (compare_scc peephole for eq case): New.
21212         (compare_scc splitters): Change CC_NOTB to CC.
21213
21214 2010-07-05  Richard Guenther  <rguenther@suse.de>
21215
21216         * tree-ssa-loop-im.c (for_each_index): Do not handle
21217         ALIGN_INDIRECT_REF.
21218         (gen_lsm_tmp_name): Likewise.
21219         * tree-dump.c (dequeue_and_dump): Likewise.
21220         * tree-pretty-print.c (dump_generic_node): Likewise.
21221         (op_code_prio): Likewise.
21222         (op_symbol_code): Likewise.
21223         * tree.c (staticp): Likewise.
21224         (build1_stat): Likewise.
21225         * tree.h (INDIRECT_REF_P): Likewise.
21226         * fold-const.c (maybe_lvalue_p): Likewise.
21227         (operand_equal_p): Likewise.
21228         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
21229         (ao_ref_init_from_vn_reference): Likewise.
21230         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
21231         (find_interesting_uses_address): Likewise.
21232         * dwarf2out.c (loc_list_from_tree): Likewise.
21233         * gimplify.c (gimplify_expr): Likewise.
21234         * tree-eh.c (tree_could_trap_p): Likewise.
21235         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
21236         * cfgexpand.c (expand_debug_expr): Likewise.
21237         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
21238         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
21239         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
21240         * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
21241         * tree-ssa-operands.c (get_expr_operands): Likewise.
21242         * expr.c (safe_from_p): Likewise.
21243         (expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
21244         * tree-vect-data-refs.c (vect_setup_realignment): Build
21245         BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
21246         * tree-vect-stmts.c (vectorizable_load): Likewise.
21247         * tree.def (ALIGN_INDIRECT_REF): Remove.
21248
21249 2010-07-05  Richard Guenther  <rguenther@suse.de>
21250
21251         PR tree-optimization/44784
21252         * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
21253         for inserted stmts.
21254         (find_or_generate_expression): Fix SCCVN insertion check.
21255
21256 2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>
21257
21258         * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
21259         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
21260         * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
21261         directives.
21262
21263 2010-07-05  Ira Rosen  <irar@il.ibm.com>
21264
21265         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
21266         statements that are not vectorized.
21267         * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
21268         in INSIDE_COST.
21269
21270 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
21271
21272         PR bootstrap/44820
21273         * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
21274
21275 2010-07-05  Richard Guenther  <rguenther@suse.de>
21276
21277         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
21278         RESULT_DECLs properly.
21279
21280 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
21281
21282         PR rtl-optimization/44695
21283         * config/i386/i386.md (extract_code): Removed.
21284         (<u>divmodqi4): Likewise.
21285         (divmodqi4): New.
21286         (udivmodqi4): Likewise.
21287         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
21288         (udivmodhiqi3): Likewise.
21289
21290 2010-07-04  Jan Hubicka  <jh@suse.cz>
21291
21292         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
21293
21294 2010-07-04  Jan Hubicka  <jh@suse.cz>
21295
21296         * cgraphunit.c (init_cgraph): Only initialize dump file if it
21297         is not already initialized.
21298
21299 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
21300
21301         * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
21302         (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
21303         (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
21304         (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
21305         (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
21306         (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
21307         (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
21308         (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
21309         (sync_new_nand_optab): Redefine as macros.
21310         (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
21311         Delete.
21312         (direct_optab_index): New enum.
21313         (direct_optab_d): New structure.
21314         (direct_optab): New typedef.
21315         (direct_optab_table): Declare.
21316         (direct_optab_handler, set_direct_optab_handler): New functions.
21317         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
21318         (sync_lock_release_optab): New macros.
21319         * optabs.c (direct_optab_table): New variable.
21320         (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
21321         (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
21322         cmpstr_optab and cmpstrn_optab.
21323         (emit_conditional_move): Likewise for movcc_optab.
21324         (can_conditionally_move_p): Likewise for movcc_gen_code.
21325         (init_insn_codes): Clear direct_optab_table.
21326         (init_optabs): Don't initialize the new "direct optabs" here.
21327         (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
21328         vcond_gen_code.
21329         (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
21330         (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
21331         (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
21332         (expand_sync_operation): Likewise other sync_*_optabs.
21333         (expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
21334         to sync_compare_and_swap_optab.
21335         (expand_sync_lock_test_and_set): Use direct_optab_handler for
21336         sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
21337         to the names of both.
21338         * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
21339         cmpstr_optab and cmpstrn_optab.
21340         (expand_builtin_lock_release): Likewise sync_lock_release.
21341         * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
21342         (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
21343         (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
21344         (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
21345         (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
21346         (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
21347         (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
21348         (sync_lock_test_and_set, sync_lock_release): Delete.
21349         (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
21350         (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
21351         * genopinit.c (optabs): Use set_direct_optab_handler for the new
21352         macro optabs.
21353         * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
21354         the "optab" local variable.  Use direct_optab_handler for optab and
21355         sync_compare_and_swap_optab.
21356         * reload1.c (reload_in_optab, reload_out_optab): Delete.
21357         * targhooks.c (default_secondary_reload): Use direct_optab_handler for
21358         reload_in_optab and reload_out_optab.
21359         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
21360         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
21361         * config/pa/pa.c (pa_secondary_reload): Likewise.
21362         * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
21363         for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
21364         (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
21365         (VMSupportsCS8_builtin): Likewise.
21366
21367 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
21368
21369         * optabs.h (optab_handlers): Change type of insn_code to int.
21370         (optab_handler, set_optab_handler, convert_optab_handler)
21371         (set_convert_optab_handler): Treat the insn_code field as "insn_code -
21372         CODE_FOR_nothing".
21373         * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
21374         (init_insn_codes): Zero both the above arrays.
21375         (init_optabs): Never call init_insn_codes first time around.
21376
21377 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
21378
21379         * optabs.h (optab_handler, convert_optab_handler): Turn into
21380         inline functions that return an insn code.
21381         (set_optab_handler, set_convert_optab_handler): New functions.
21382         * builtins.c: Replace optab_handler(X)->insn_code with
21383         optab_handler or set_optab_handler thoughout.  Likewise
21384         convert_optab_handler(X)->insn_code with convert_optab_handler
21385         and set_convert_optab_handler.
21386         * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
21387         reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
21388         tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
21389         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
21390         tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
21391         config/spu/spu.c: Likewise.
21392
21393 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
21394
21395         PR target/44531
21396         * config.gcc (sh*-*-*): Use regular expressions instead of
21397         the 'i' modifier for sed substitutions.
21398
21399 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
21400
21401         * gimple.c (gimple_body): Comments added.
21402
21403 2010-07-04  Richard Guenther  <rguenther@suse.de>
21404
21405         PR middle-end/44809
21406         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
21407         of an INDIRECT_REF.
21408
21409 2010-07-04  Richard Guenther  <rguenther@suse.de>
21410
21411         PR tree-optimization/44479
21412         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
21413         extra SSA name copy statements which preserves points-to
21414         information.
21415         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
21416         Copy points-to information for all pointers.  Properly handle
21417         MEM_REFs.
21418         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
21419         copy statements.
21420         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
21421         dependency.
21422
21423 2010-07-04  Richard Guenther  <rguenther@suse.de>
21424
21425         PR middle-end/44785
21426         * tree-inline.c (initialize_inlined_parameters): Do not
21427         re-use pointer-map slot over remap_type call.
21428
21429 2010-07-04  Richard Guenther  <rguenther@suse.de>
21430
21431         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
21432
21433 2010-07-04  Richard Guenther  <rguenther@suse.de>
21434
21435         PR tree-optimization/44656
21436         * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
21437         again after value-replacing in the defintions lhs.
21438
21439 2010-07-04  Ira Rosen  <irar@il.ibm.com>
21440             Revital Eres  <eres@il.ibm.com>
21441
21442         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
21443         Document new arguments.
21444         * doc/tm.texi: Regenerate.
21445         * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
21446         Handle unaligned store.
21447         * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
21448         * target.def (builtin_vectorization_cost): Add new arguments.
21449         * target.h (enum vect_cost_for_stmt): Add unaligned_store.
21450         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
21451         of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
21452         (vect_vfa_segment_size): Fix indentation.
21453         * tree-vectorizer.h (struct _vect_peel_info): New.
21454         (struct _vect_peel_extended_info): New.
21455         (struct _loop_vec_info): Add new field for peeling hash table and a
21456         macro for its access.
21457         (VECT_MAX_COST): Define.
21458         (vect_get_load_cost): Declare.
21459         (vect_get_store_cost, vect_get_known_peeling_cost,
21460         vect_get_single_scalar_iteraion_cost): Likewise.
21461         (vect_supportable_dr_alignment): Add new argument.
21462         * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
21463         field.
21464         (destroy_loop_vec_info): Free peeling hash table.
21465         (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
21466         (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
21467         vect_analyze_slp. Fix indentation.
21468         (vect_get_single_scalar_iteraion_cost): New function.
21469         (vect_get_known_peeling_cost): Likewise.
21470         (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
21471         Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
21472         statement. Move outside cost calculation inside unknown peeling case.
21473         Call vect_get_known_peeling_cost for known amount of peeling.
21474         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
21475         reference to the print message of forced alignment.
21476         (vect_verify_datarefs_alignment): Update call to
21477         vect_supportable_dr_alignment.
21478         (vect_get_data_access_cost): New function.
21479         (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
21480         vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
21481         vect_peeling_hash_choose_best_peeling): Likewise.
21482         (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
21483         to store all the accesses in the loop and find best possible access to
21484         align using peeling for known alignment case. For unknown alignment
21485         check if stores are preferred or if peeling is worthy.
21486         (vect_find_same_alignment_drs): Analyze pairs of loads too.
21487         (vect_supportable_dr_alignment): Add new argument and check aligned
21488         accesses according to it.
21489         * tree-vect-stmts.c (vect_get_stmt_cost): New function.
21490         (cost_for_stmt): Call vect_get_stmt_cost.
21491         (vect_model_simple_cost): Likewise.
21492         (vect_model_store_cost): Call vect_get_stmt_cost. Call
21493         vect_get_store_cost to calculate the cost of the statement.
21494         (vect_get_store_cost): New function.
21495         (vect_model_load_cost): Call vect_get_stmt_cost. Call
21496         vect_get_load_cost to calculate the cost of the statement.
21497         (vect_get_load_cost): New function.
21498         (vectorizable_store): Update call to vect_supportable_dr_alignment.
21499         (vectorizable_load): Likewise.
21500         * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
21501         * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
21502         arguments. Handle unaligned store.
21503         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
21504         (rs6000_builtin_support_vector_misalignment): Return true for word and
21505         double word alignments for VSX.
21506         * tree-vect-slp.c (vect_build_slp_tree): Update calls to
21507         vect_supportable_dr_alignment and builtin_vectorization_cost.
21508
21509 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21510
21511         PR target/44597
21512         * config/pa/predicates.md (prefetch_cc_operand): Remove.
21513         (prefetch_nocc_operand): Likewise.
21514         * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
21515         (prefetch_20): New insn.
21516         (prefetch_cc): Remove.
21517         (prefetch_nocc): Likewise.
21518
21519 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21520
21521         * expr.c (vector_mode_valid_p): Move to c-common.c.
21522         * expr.h (vector_mode_valid_p): Do not declare here.
21523         * system.h: Poison GCC_EXPR_H in front-ends.
21524         * Makefile.in: Update dependencies.
21525
21526 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21527
21528         PR target/44705
21529         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
21530
21531 2010-07-03  Jan Hubicka  <jh@suse.cz>
21532
21533         * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
21534         TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
21535         * cfgexpand.c (gimple_expand_cfg): Use new timevars.
21536         * var-tracking.c (vt_find_locations, variable_tracking_main_1):
21537         Likewise.
21538
21539         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
21540         Update timevars.V
21541         * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
21542         (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
21543         TV_IPA_LTO_DECL_OUT): New.
21544         * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
21545
21546 2010-07-03  Jan Hubicka  <jh@suse.cz>
21547
21548         * ipa-inline.c (update_edge_key): Break out from ...
21549         update_callers_keys): ... here;
21550         (update_callee_keys): Update only the edges from caller to callee.
21551         (update_all_calle_keys): Do what update_calle_keys did.
21552         (decide_inlining_of_small_functions): Avoid recomputing of all
21553         callees when badness increase.
21554
21555 2010-07-03  Jie Zhang  <jie@codesourcery.com>
21556
21557         * config/arm/arm.c (arm_attr_length_move_neon): New.
21558         * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
21559         * config/arm/neon.md (define_mode_attr V_slen): Remove.
21560         (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
21561         to compute length attribute.
21562
21563 2010-07-03  Jie Zhang  <jie@codesourcery.com>
21564
21565         * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
21566         as predicate for operand 1 and remove its constraint.
21567         * config/arm/predicates.md (vfp_register_operand): New.
21568         * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
21569         (*push_fp_multi): Likewise.
21570
21571 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
21572
21573         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
21574
21575 2010-07-03  Jan Hubicka  <jh@suse.cz>
21576
21577         * config/i386/i386.c (override_options): Revert accidental commit.
21578
21579 2010-07-02  Le-Chun Wu  <lcwu@google.com>
21580
21581         PR c++/44128
21582         * doc/invoke.texi: Update documentation of -Wshadow.
21583
21584 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
21585             Julian Brown  <julian@codesourcery.com>
21586             Sandra Loosemore  <sandra@codesourcery.com>
21587
21588         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
21589         comparisons.  Adjust to take both operands.
21590         (arm_select_cc_mode): Handle DImode comparisons.
21591         (arm_gen_compare_reg): Generate a scratch register for DImode
21592         comparisons which require one.  Use xor for Thumb equality checks.
21593         (arm_const_double_by_immediates): New.
21594         (arm_print_operand): Allow 'Q' and 'R' for constants.
21595         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
21596         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
21597         arm_canonicalize_comparison.
21598         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
21599         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
21600         prototype.
21601         (arm_const_double_by_immediates): Declare.
21602         * config/arm/constraints.md (Di): New constraint.
21603         * config/arm/predicates.md (arm_immediate_di_operand)
21604         (arm_di_operand, cmpdi_operand): New.
21605         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
21606         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
21607         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
21608         (cstoredi4): Handle non-Cirrus also.
21609
21610 2010-07-02  Julian Brown  <julian@codesourcery.com>
21611             Sandra Loosemore  <sandra@codesourcery.com>
21612
21613         PR target/43703
21614         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
21615         (smax<mode>3): Disable for NEON float modes when
21616         flag_unsafe_math_optimizations is false.
21617         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
21618         (*mul<mode>3_neon)
21619         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
21620         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
21621         for NEON float modes when flag_unsafe_math_optimizations is false.
21622         (quad_halves_<code>v4sf): Only enable if
21623         flag_unsafe_math_optimizations is true.
21624         * doc/invoke.texi (ARM Options): Add note about floating point
21625         vectorization requiring -funsafe-math-optimizations.
21626
21627 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
21628             Julian Brown  <julian@codesourcery.com>
21629
21630         * config/arm/neon.md (UNSPEC_VABA): Delete.
21631         (UNSPEC_VABAL): Delete.
21632         (UNSPEC_VABS): Delete.
21633         (UNSPEC_VMUL_N): Delete.
21634         (adddi3_neon): New.
21635         (subdi3_neon): New.
21636         (mul<mode>3add<mode>_neon): Make the pattern named.
21637         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
21638         (neon_vadd<mode>): Replace with define_expand, and move the remaining
21639         unspec parts...
21640         (neon_vadd<mode>_unspec): ...to this.
21641         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
21642         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
21643         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
21644         (neon_vaba<mode>): Rewrite in terms of vabd.
21645         (neon_vabal<mode>): Rewrite in terms of vabdl.
21646         (neon_vabs<mode>): Rewrite without unspec.
21647         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
21648         (*arm_subdi3): Likewise.
21649         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
21650         No_op attribute to disable assembly output checks.
21651         * config/arm/arm_neon.h: Regenerated.
21652         * doc/arm-neon-intrinsics.texi: Regenerated.
21653
21654 2010-07-02  Jan Hubicka  <jh@suse.cz>
21655
21656         * ipa-split.c (split_function): For aggregate values, set the return
21657         slot optimization bit.  When passing DECL_BY_REFERENCE, produce
21658         *<retval> = fncall.part ().
21659         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
21660
21661 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
21662
21663         * config/arm/neon.md (UNSPEC_VAND): Delete.
21664         (UNSPEC_VBIC): Delete.
21665         (UNSPEC_VCLZ): Delete.
21666         (UNSPEC_VCNT): Delete.
21667         (UNSPEC_VEOR): Delete.
21668         (UNSPEC_VORN): Delete.
21669         (UNSPEC_VORR): Delete.
21670         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
21671         core registers too.
21672         (anddi3_neon): Likewise.
21673         (orndi3_neon): Likewise.
21674         (bicdi3_neon): Likewise.
21675         (xordi3_neon): Likewise.
21676         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
21677         rid of unspec and handle unused operand.
21678         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
21679         * config/arm/predicates.md (imm_for_neon_logic_operand):
21680         Require TARGET_NEON.
21681         (imm_for_neon_inv_logic_operand): Likewise.
21682         * config/arm/arm.md (define_split for logical_binary_operator):
21683         Disable for NEON registers.
21684         (anddi3): Add new define_expand, and rename the insn.  Disable
21685         this insn for NEON, where anddi3_neon now applies.
21686         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
21687         (iordi3): As for anddi3.
21688         (xordi3): Likewise.
21689         * config/arm/neon.ml (Vand): Split DImode variants and mark them
21690         as No_op to disable testing for exact instruction match.
21691         (Vorr): Likewise.
21692         (Veor): Likewise.
21693         (Vbic): Likewise.
21694         (Vorn): Likewise.
21695         * config/arm/arm_neon.h: Regenerated.
21696         * doc/arm-neon-intrinsics.texi: Regenerated.
21697
21698 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
21699
21700         * expr.h (emit_stack_probe): Declare.
21701         * explow.c (emit_stack_probe): Make global.
21702         (anti_adjust_stack_and_probe): Fix comments.
21703         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
21704         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
21705         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
21706         * config/sparc/sparc.c: Include except.h.
21707         (sparc_emit_probe_stack_range): New function.
21708         (output_probe_stack_range): Likewise.
21709         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
21710         built-in stack checking is enabled.
21711         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
21712         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
21713         (probe_stack_range): New insn.
21714
21715 2010-07-02  Richard Guenther  <rguenther@suse.de>
21716
21717         PR target/43958
21718         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
21719         for argument alignment.
21720
21721 2010-07-02  Jan Hubicka  <jh@suse.cz>
21722
21723         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
21724         walk backwards from entry_bb to check only those basic block of header
21725         that might lead to execution of split part.
21726         (consider_split) ... here.
21727         (find_return_bb): Allow assignment in return BB.
21728         (find_retval): New.
21729         (split_function): Fix name of cloned function; take care of updating
21730         return value in return_bb containing move.
21731
21732 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
21733
21734         PR target/44771
21735         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
21736         used variable insn.
21737
21738 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
21739
21740         * implicit-zee.c (combine_reaching_defs): Fix long lines.
21741         (is_set_with_extension_DI): Delete.
21742         (struct zero_extend_info): New structure.
21743         (add_removable_zero_extend): New function.
21744         (find_removable_zero_extends): Use note_stores to find SETs.
21745         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
21746
21747 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
21748
21749         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
21750         is_miss_rate_acceptable. Pull total_positions computation
21751         out of the loops.  Early return if miss_positions exceeds
21752         the acceptable threshold.
21753         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
21754         is_miss_rate_acceptable after renaming of compute_miss_rate.
21755
21756 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
21757
21758         PR middle-end/44576
21759         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
21760         of 1000) for miss rate if the address diference is greater than or
21761         equal to the cache line size (the two reference will never hit the
21762         same cache line).
21763
21764 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
21765
21766         PR target/42835
21767         * config/arm/arm-modes.def (CC_NOTB): New mode.
21768         * config/arm/arm.c (get_arm_condition_code): Handle it.
21769         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
21770         * config/arm/arm.md (subsi3_compare0_c): New pattern.
21771         (compare_scc): Now a define_and_split.  Add a number of extra
21772         splitters before it.
21773
21774         PR target/42172
21775         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
21776         and ZERO_EXTEND.
21777         (arm_rtx_costs_1): Likewise.
21778         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
21779         * config/arm/arm.md (is_arch6): New attribute.
21780         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
21781         extendqisi2): Tighten the code somewhat, avoiding invalid
21782         RTL to occur in the expander patterns.
21783         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
21784         (thumb1_zero_extendhisi2_v6): Delete.
21785         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
21786         (thumb1_extendhisi2_v6): Delete.
21787         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
21788         (thumb1_extendqisi2_v6): Delete.
21789         (zero_extendhisi2 for register input splitter): New.
21790         (zero_extendqisi2 for register input splitter): New.
21791         (thumb1_extendhisi2 for register input splitter): New.
21792         (extendhisi2 for register input splitter): New.
21793         (extendqisi2 for register input splitter): New.
21794         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
21795         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
21796         and add support for a register alternative requiring a split.
21797         (thumb1_zero_extendqisi2): Likewise.
21798         (arm_zero_extendqisi2): Likewise.
21799         (arm_extendhisi2): Likewise.
21800         (arm_extendqisi2): Likewise.
21801
21802 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
21803
21804         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
21805         instead of an unspec.
21806         (neon_expand_vector_init): Likewise.
21807         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
21808         (UNSPEC_VDUP_LANE): Delete.
21809         (UNSPEC VDUP_N): Delete.
21810         (UNSPEC_VGET_HIGH): Delete.
21811         (UNSPEC_VGET_LANE): Delete.
21812         (UNSPEC_VGET_LOW): Delete.
21813         (UNSPEC_VMVN): Delete.
21814         (UNSPEC_VSET_LANE): Delete.
21815         (V_double_vector_mode): New.
21816         (vec_set<mode>_internal): Make code emitted match that for the
21817         corresponding intrinsics.
21818         (vec_setv2di_internal): Likewise.
21819         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
21820         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
21821         (neon_vset_lane<mode>): Combine double and quad patterns and
21822         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
21823         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
21824         (neon_vdup_n<mode>): Rewrite RTL without unspec.
21825         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
21826         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
21827         with neon_vdup_lanev2di, adjusting the pattern from the latter
21828         to be predicable for consistency.
21829         (neon_vdup_lane<mode>_internal): New.
21830         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
21831         to avoid using an unspec.
21832         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
21833         (neon_vdup_lanev2di): Turn into a define_expand.
21834         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
21835         (neon_vget_high<mode>): Replace with....
21836         (neon_vget_highv16qi): New pattern using canonical RTL.
21837         (neon_vget_highv8hi): Likewise.
21838         (neon_vget_highv4si): Likewise.
21839         (neon_vget_highv4sf): Likewise.
21840         (neon_vget_highv2di): Likewise.
21841         (neon_vget_low<mode>): Replace with....
21842         (neon_vget_lowv16qi): New pattern using canonical RTL.
21843         (neon_vget_lowv8hi): Likewise.
21844         (neon_vget_lowv4si): Likewise.
21845         (neon_vget_lowv4sf): Likewise.
21846         (neon_vget_lowv2di): Likewise.
21847
21848         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
21849         test for this emitting vmov.
21850         (Vset_lane): Likewise.
21851         (Vdup_n): Likewise.
21852         (Vmov_n): Likewise.
21853
21854         * doc/arm-neon-intrinsics.texi: Regenerated.
21855
21856 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
21857
21858         * config/arm/neon.md (vec_extractv2di): Correct error in register
21859         numbering to reconcile with neon_vget_lanev2di.
21860
21861 2010-07-02  Richard Guenther  <rguenther@suse.de>
21862
21863         * tree-ssa-structalias.c (pt_solution_set_var): New function.
21864         * tree-ssa-alias.h (pt_solution_set_var): Declare.
21865         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
21866         points-to information.
21867
21868 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
21869
21870         * config/s390/s390.c (override_options): Adopt prefetching
21871         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
21872
21873 2010-07-02  Jan Hubicka  <jh@suse.cz>
21874
21875         * df-problems.c (df_kill_notes): Do not collect dead  notes.
21876         (df_set_note): Just call add_reg_note.
21877         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
21878         df_create_unused_note): Do not deal with lists of old notes.
21879         (df_note_bb_compute): Likewise.
21880
21881 2010-07-02  Richard Guenther  <rguenther@suse.de>
21882
21883         * tree-ssa-structalias.c (find_func_aliases): Handle
21884         pointer alignment via BIT_AND_EXPR.
21885         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
21886
21887 2010-07-02  Richard Guenther  <rguenther@suse.de>
21888
21889         * tree-data-ref.c (initialize_data_dependence_relation): Handle
21890         mismatching number of dimensions properly.
21891
21892 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21893
21894         PR target/44707
21895         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
21896         (lo_sum (high ...) ...) patterns generated by earlier passes.
21897
21898 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21899
21900         * doc/install.texi (Prerequisites): Document Perl requirement on
21901         Solaris 2.
21902         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
21903
21904 2010-07-02  Richard Guenther  <rguenther@suse.de>
21905
21906         PR middle-end/44777
21907         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
21908
21909 2010-07-02  Jan Hubicka  <jh@suse.cz>
21910
21911         PR middle-end/44706
21912         * predict.c (predict_paths_for_bb): Handle case when control dependence
21913         BB has only abnormal edges.
21914
21915 2010-07-02  Richard Guenther  <rguenther@suse.de>
21916
21917         PR tree-optimization/44748
21918         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
21919         the embedded conversion in MEM_REFs.
21920
21921 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
21922
21923         * reload.c: Include toplev.h.
21924         * recog.c:  Likewise.
21925         * Makefile.in: Adjust dependencies.
21926
21927 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
21928
21929         PR debug/44694
21930         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
21931         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
21932
21933 2010-07-01  Richard Guenther  <rguenther@suse.de>
21934
21935         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
21936         types for offsets.
21937
21938 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
21939
21940         PR target/44732
21941         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
21942         Fix argument types.
21943
21944 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
21945
21946         PR target/44727
21947         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
21948         Make sure operand 0 dies.
21949
21950 2010-07-01  Richard Guenther  <rguenther@suse.de>
21951
21952         PR middle-end/42834
21953         PR middle-end/44468
21954         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
21955         * doc/generic.texi (References to storage): Document MEM_REF.
21956         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
21957         (print_call_name): Likewise.
21958         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
21959         (build_simple_mem_ref_loc): New function.
21960         (mem_ref_offset): Likewise.
21961         * tree.h (build_simple_mem_ref_loc): Declare.
21962         (build_simple_mem_ref): Define.
21963         (mem_ref_offset): Declare.
21964         * fold-const.c: Include tree-flow.h.
21965         (operand_equal_p): Handle MEM_REF.
21966         (build_fold_addr_expr_with_type_loc): Likewise.
21967         (fold_comparison): Likewise.
21968         (fold_unary_loc): Fold
21969         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
21970         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
21971         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
21972         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
21973         (ptr_deref_may_alias_ref_p_1): Likewise.
21974         (ao_ref_base_alias_set): Properly differentiate base object for
21975         offset and TBAA.
21976         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
21977         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
21978         (indirect_refs_may_alias_p): Likewise.
21979         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
21980         chasing code.
21981         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
21982         (call_may_clobber_ref_p_1): Likewise.
21983         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
21984         * expr.c (expand_assignment): Handle MEM_REF.
21985         (store_expr): Handle MEM_REFs from STRING_CSTs.
21986         (store_field): If expanding a MEM_REF of a non-addressable
21987         decl use bitfield operations.
21988         (get_inner_reference): Handle MEM_REF.
21989         (expand_expr_addr_expr_1): Likewise.
21990         (expand_expr_real_1): Likewise.
21991         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
21992         * alias.c (ao_ref_from_mem): Handle MEM_REF.
21993         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
21994         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
21995         (dr_analyze_indices): Likewise.
21996         (dr_analyze_alias): Likewise.
21997         (object_address_invariant_in_loop_p): Likewise.
21998         * gimplify.c (mark_addressable): Handle MEM_REF.
21999         (gimplify_cond_expr): Build MEM_REFs.
22000         (gimplify_modify_expr_to_memcpy): Likewise.
22001         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
22002         (gimple_fold_indirect_ref): Adjust.
22003         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
22004         * tree.def (MEM_REF): New tree code.
22005         * tree-dfa.c: Include toplev.h.
22006         (get_ref_base_and_extent): Handle MEM_REF.
22007         (get_addr_base_and_unit_offset): New function.
22008         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
22009         * gimple-fold.c (may_propagate_address_into_dereference): Handle
22010         MEM_REF.
22011         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
22012         accesses if the array has just one dimension.  Remove always true
22013         parameter.  Do not require type compatibility here.
22014         (maybe_fold_offset_to_component_ref): Remove.
22015         (maybe_fold_stmt_indirect): Remove.
22016         (maybe_fold_reference): Remove INDIRECT_REF handling.
22017         Fold back to non-MEM_REF.
22018         (maybe_fold_offset_to_address): Simplify.  Deal with type
22019         mismatches here.
22020         (maybe_fold_reference): Likewise.
22021         (maybe_fold_stmt_addition): Likewise.  Also handle
22022         &ARRAY + I in addition to &ARRAY[0] + I.
22023         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
22024         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
22025         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
22026         * tree-ssa.c (useless_type_conversion_p): Make most pointer
22027         conversions useless.
22028         (warn_uninitialized_var): Handle MEM_REF.
22029         (maybe_rewrite_mem_ref_base): New function.
22030         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
22031         to SSA form.
22032         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
22033         INDIRECT_REF handling.
22034         (copy_tree_body_r): Handle MEM_REF.
22035         * gimple.c (is_gimple_addressable): Adjust.
22036         (is_gimple_address): Likewise.
22037         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
22038         invariant base are invariant.
22039         (is_gimple_min_lval): Adjust.
22040         (is_gimple_mem_ref_addr): New function.
22041         (get_base_address): Handle MEM_REF.
22042         (count_ptr_derefs): Likewise.
22043         (get_base_loadstore): Likewise.
22044         * gimple.h (is_gimple_mem_ref_addr): Declare.
22045         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
22046         * tree-cfg.c (verify_address): New function, split out from ...
22047         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
22048         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
22049         INDIRECT_REFs.
22050         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
22051         INDIRECT_REF.  Allow conversions.
22052         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
22053         a register does not change its size.
22054         (verify_types_in_gimple_reference): Verify MEM_REF.
22055         (verify_gimple_assign_single): Disallow INDIRECT_REF.
22056         Handle MEM_REF.
22057         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
22058         New.
22059         (mark_address_taken): Handle MEM_REF.
22060         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
22061         (get_asm_expr_operands): Pass opf_not_non_addressable.
22062         (get_expr_operands): Handle opf_[not_]non_addressable.
22063         Handle MEM_REF.  Remove INDIRECT_REF handling.
22064         * tree-vrp.c (check_array_ref): Handle MEM_REF.
22065         (search_for_addr_array): Likewise.
22066         (check_array_bounds): Likewise.
22067         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
22068         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
22069         (ref_always_accessed_p): Likewise.
22070         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
22071         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
22072         Handle MEM_REF.
22073         * cgraphbuild.c (mark_load): Properly check for NULL result
22074         from get_base_address.
22075         (mark_store): Likewise.
22076         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
22077         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
22078         handling for MEM_REF.
22079         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
22080         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
22081         * builtins.c (stabilize_va_list_loc): Use the function ABI
22082         valist type if we couldn't canonicalize the argument type.
22083         Always dereference with the canonical va-list type.
22084         (maybe_emit_free_warning): Handle MEM_REF.
22085         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
22086         memmove to memcpy.
22087         * builtins.c (fold_builtin_memory_op): Use ref-all types
22088         for all memcpy foldings.
22089         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
22090         (build_outer_var_ref): Likewise.
22091         (scan_omp_1_op): Likewise.
22092         (lower_rec_input_clauses): Likewise.
22093         (lower_lastprivate_clauses): Likewise.
22094         (lower_reduction_clauses): Likewise.
22095         (lower_copyprivate_clauses): Likewise.
22096         (expand_omp_atomic_pipeline): Likewise.
22097         (expand_omp_atomic_mutex): Likewise.
22098         (create_task_copyfn): Likewise.
22099         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
22100         Remove old union trick.  Initialize constant offsets.
22101         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
22102         INDIRECT_REF.  Init base_alias_set properly.
22103         (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
22104         (vn_reference_fold_indirect): Adjust for MEM_REFs.
22105         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
22106         for ARRAY_REFs.
22107         (may_insert): Remove.
22108         (visit_reference_op_load): Do not test may_insert.
22109         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
22110         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
22111         a field to store the constant offset this op applies.
22112         (run_scc_vn): Adjust prototype.
22113         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
22114         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
22115         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
22116         bother about volatile qualifiers on pointers.
22117         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
22118         * tree-ssa-loop-ivopts.c
22119         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
22120         (strip_offset_1): Likewise.
22121         (find_interesting_uses_address): Replace INDIRECT_REF handling with
22122         MEM_REF handling.
22123         (get_computation_cost_at): Likewise.
22124         * ipa-pure-const.c (check_op): Handle MEM_REF.
22125         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
22126         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
22127         and constants.
22128         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
22129         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
22130         (eliminate_local_variables_1): Likewise.
22131         (create_call_for_reduction_1): Likewise.
22132         (create_loads_for_reductions): Likewise.
22133         (create_loads_and_stores_for_name): Likewise.
22134         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
22135         (ssa_accessed_in_tree): Handle MEM_REF.
22136         (ssa_accessed_in_assign_rhs): Likewise.
22137         (update_type_size): Likewise.
22138         (analyze_accesses_for_call_stmt): Likewise.
22139         (analyze_accesses_for_assign_stmt): Likewise.
22140         (transform_access_sites): Likewise.
22141         (transform_allocation_sites): Likewise.
22142         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
22143         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
22144         not handle INDIRECT_REF.
22145         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
22146         (cond_store_replacement): Likewise.
22147         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
22148         MEM_REF, no not handle INDIRECT_REFs.
22149         (insert_into_preds_of_block): Properly initialize avail.
22150         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
22151         for ARRAY_REFs.  Properly handle reference lookups that
22152         require a bit re-interpretation.
22153         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
22154         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
22155         (build_ref_for_offset_1): Remove.
22156         (build_ref_for_offset): Build MEM_REFs.
22157         (gate_intra_sra): Disable for now.
22158         (sra_ipa_modify_expr): Handle MEM_REF.
22159         (ipa_early_sra_gate): Disable for now.
22160         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
22161         MEM_REF handling.
22162         (disqualify_base_of_expr): Likewise.
22163         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
22164         MEM_REF handling.
22165         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
22166         Use mem_ref_offset.  Remove bogus folding.
22167         (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
22168         (make_fancy_name_1): Add support for MEM_REF.
22169         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
22170         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
22171         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
22172         (compute_complex_ancestor_jump_func): Likewise.
22173         (ipa_analyze_virtual_call_uses): Likewise.
22174         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
22175         INDIRECT_REF folding with more generalized MEM_REF folding.
22176         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
22177         (forward_propagate_addr_into_variable_array_index): Also handle
22178         &ARRAY + I in addition to &ARRAY[0] + I.
22179         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
22180         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
22181         creates assignments with overlap.
22182         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
22183         (get_frame_field): Likewise.
22184         (get_nonlocal_debug_decl): Likewise.
22185         (convert_nonlocal_reference_op): Likewise.
22186         (struct nesting_info): Add mem_refs pointer-set.
22187         (create_nesting_tree): Allocate it.
22188         (convert_local_reference_op): Insert to be folded mem-refs.
22189         (fold_mem_refs): New function.
22190         (finalize_nesting_tree_1): Perform defered folding of mem-refs
22191         (free_nesting_tree): Free the pointer-set.
22192         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
22193         (vectorizable_load): Likewise.
22194         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
22195         (propagate_with_phi): Likewise.
22196         * tree-object-size.c (addr_object_size): Handle MEM_REFs
22197         instead of INDIRECT_REFs.
22198         (compute_object_offset): Handle MEM_REF.
22199         (plus_stmt_object_size): Handle MEM_REF.
22200         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
22201         for &MEM_REF.
22202         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
22203         (symbol_marked_for_renaming): Likewise.
22204         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
22205         (fold-const.o): Add $(TREE_FLOW_H).
22206         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
22207         (find_func_clobbers): Likewise.
22208         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
22209         (decompose_access): Likewise.
22210         (replace_field_acc): Likewise.
22211         (replace_field_access_stmt): Likewise.
22212         (insert_new_var_in_stmt): Likewise.
22213         (get_stmt_accesses): Likewise.
22214         (reorg_structs_drive): Disable.
22215         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
22216         (ix86_canonical_va_list_type): Likewise.
22217
22218 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
22219
22220         PR other/44566
22221         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
22222         * target.def (struct gcc_target): Replace enum reg_class with
22223         reg_class_t in hook argument / return types.
22224         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
22225         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
22226         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
22227         * targhooks.h (default_branch_target_register_class): Likewise.
22228         (default_ira_cover_classes, default_secondary_reload): Likewise.
22229         (default_memory_move_cost, default_register_move_cost): Likewise.
22230         * targhooks.c (default_branch_target_register_class): Likewise.
22231         (default_ira_cover_classes, default_secondary_reload): Likewise.
22232         (default_memory_move_cost, default_register_move_cost): Likewise.
22233         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
22234         * bt-load.c (branch_target_load_optimize): Likewise.
22235         * ira.c (setup_cover_and_important_classes): Likewise.
22236         * ira-costs.c (copy_cost): Likewise.
22237         * reload1.c (emit_input_reload_insns): Likewise.
22238         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
22239         * config/frv/frv.c (frv_secondary_reload): Likewise.
22240         * config/s390/s390.c (s390_secondary_reload): Likewise.
22241         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
22242         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
22243         (ix86_register_move_cost): Likewise.
22244         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
22245         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
22246         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
22247         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
22248         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
22249         (rs6000_ira_cover_classes): Likewise.
22250         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
22251         * config/picochip/picochip-protos.h (picochip_secondary_reload):
22252         Likewise.
22253         * config/pa/pa.c (pa_secondary_reload): Likewise.
22254         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
22255         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
22256         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
22257         * doc/tm.texi: Regenerate.
22258
22259 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
22260
22261         PR bootstrrap/44726
22262         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
22263         use.
22264         (build_alias_set_optimal_p): Likewise.
22265         (build_base_obj_set_for_drs): Likewise.
22266
22267 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
22268
22269         * target.def: Remove comment about licensing problems of function
22270         declarations.
22271
22272         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
22273         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
22274         * doc/tm.texi: Regenerate.
22275
22276         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
22277         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
22278
22279         * target.def (enum_va_list_p): Use DEFHOOK.
22280         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
22281         Rename ptype to ptree.
22282         * doc/tm.texi: Regenerate.
22283
22284         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
22285         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
22286         * doc/tm.texi: Regenerate.
22287
22288         * target.def (memory_move_cost): Use DEFHOOK.
22289         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
22290         Rename regclass AKA class to rclass.
22291         * doc/tm.texi: Regenerate.
22292
22293         * target.def (pragma_parse): Use DEFHOOK.
22294         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
22295         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
22296         * doc/tm.texi: Regenerate.
22297
22298         * target.def (pass_by_reference): Use DEFHOOK.
22299         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
22300         * doc/tm.texi: Regenerate.
22301
22302         * target.def (resolve_overloaded_builtin): Rename params to arglist.
22303         Use DEFHOOK.
22304         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
22305         * doc/tm.texi: Regenerate.
22306
22307         * target.def (return_pops_args): Use DEFHOOK.
22308         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
22309         Rename stack-size to size.
22310         * doc/tm.texi: Regenerate.
22311
22312         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
22313         last-sched_cycle to last_clock, cur_cycle to clock.
22314         * doc/tm.texi.in: Use @hook.
22315         * doc/tm.texi: Regenerate.
22316
22317         * target.def (print_operand, print_operand_address): Update comment.
22318         (print_operand_punct_valid_p): Likewise.
22319
22320 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22321
22322         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
22323         to rtl.h.
22324         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
22325         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
22326         * rtl-error.h: New.
22327         * regrename.c: Do not include toplev.h. Include rtl-error.h.
22328         * rtl-error.c: Likewise.
22329         * reload.c: Likewise.
22330         * recog.c:  Likewise.
22331         * sel-sched.c: Likewise.
22332         * function.c: Likewise.
22333         * reg-stack.c: Likewise.
22334         * cfgrtl.c: Likewise.
22335         * reload1.c: Likewise.
22336         * final.c: Include rtl-error.
22337         * Makefile.in: Adjust dependencies.
22338
22339 2010-06-30  Jan Hubicka  <jh@suse.cz>
22340
22341         PR middle-end/PR44706
22342         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
22343         to return the value.
22344
22345 2010-06-30  Michael Matz  <matz@suse.de>
22346
22347         PR bootstrap/44699
22348         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
22349         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
22350         a gimple reg, attach the original VDEF to the last store in the
22351         sequence.
22352
22353 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
22354
22355         PR other/44034
22356         * config/darwin.c (darwin_override_options): Use renamed
22357         targetm.asm_out.emit_unwind_label.
22358
22359 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
22360
22361         PR tree-optimization/39799
22362         * tree-inline.c (remap_ssa_name): Initialize variable only if
22363         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
22364
22365 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
22366
22367         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
22368
22369 2010-06-30  Richard Guenther  <rguenther@suse.de>
22370
22371         PR target/44722
22372         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
22373         against oscillation with reverse peephole2.
22374
22375 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
22376
22377         PR target/44721
22378         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
22379         Fix last commit.
22380
22381 2010-06-30  Nick Clifton  <nickc@redhat.com>
22382
22383         * config/rx/rx-modes.def: New file.
22384         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
22385         (CC_REGNUM): Define.
22386         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
22387         register.
22388         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
22389         (SELECT_CC_MODE): Define.
22390         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
22391         (reg:CC CC_REG) instead of (cc0).
22392         (attr "cc"): Delete.
22393         (cbranchsi4): Do not split compare and branch here. Instead move
22394         it to...
22395         (cbranchsi4_<code>): ... here.  New patterns.
22396         (cmpsi): Call rx-compare_redundant to find out if it is necessary
22397         to emit the compare instruction.
22398         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
22399         cc_status flags.
22400         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
22401         FIRST_PSEUDO_REGNUM.
22402         (rx_expand_prologue, rx_expand_epilogue): Likewise.
22403         (rx_notice_update_cc): Delete.
22404         (rx_cc_modes_compatible): New function.
22405         (flags_needed_for_conditional): New function.
22406         (flags_from_mode): New function.
22407         (rx_compare_redundant): New function - scans backwards through
22408         insn list to find out if condition flags are already set correctly.
22409         (TARGET_CC_MODES_COMPATIBLE): Define.
22410         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
22411
22412         * config/rx/rx.h (BRANCH_COST): Define.
22413         (REGISTER_MOVE_COST): Define.
22414         * config/rx/predicates (rx_source_operand): Allow all constant types.
22415         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
22416         (tstsi4): New pattern.
22417         * config/rx/rx.c (rx_memory_move_cost): Define.
22418         (TARGET_MEMORY_MOVE_COST): Define.
22419
22420 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22421
22422         * tree.h (block_may_fallthru): Declare here.
22423         * tree-flow.h (block_may_fallthru): Do not declare here.
22424         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
22425         bitmap.h
22426         * Makefile.in (c-typeck.o): Update dependencies.
22427
22428 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
22429
22430         PR debug/44694
22431         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
22432         * cselib.c (cfa_base_preserved_regno): New static variable.
22433         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
22434         of REGNO (cfa_base_preserved_val->locs->loc).
22435         (cselib_preserve_cfa_base_value): Add regno argument, set
22436         cfa_base_preserved_regno to it.
22437         (cselib_invalidate_regno): Allow removal of registers other than
22438         cfa_base_preserved_regno from cfa_base_preserved_val.
22439         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
22440         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
22441         of MEM addresses, if not on LHS.
22442         (reverse_op): Don't add reverse ops for cfa_base_rtx.
22443         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
22444
22445 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
22446
22447         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
22448         static variables.
22449         (peep2_buf_position): New static function.
22450         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
22451         peephole2_optimize): Use it.
22452         (peep2_attempt, peep2_update_life): New static functions, broken out
22453         of peephole2_optimize.
22454         (peep2_fill_buffer): New static function.
22455         (peephole2_optimize): Change the main loop to try to fill the buffer
22456         with the maximum number of insns before matching them against
22457         peepholes.  Use a forward scan.  Remove special case for targets with
22458         conditional execution.
22459         * genrecog.c (change_state): Delete dead code.
22460         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
22461         Rewrite so as not to expect the second insn to have had a peephole
22462         applied yet.
22463
22464 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
22465
22466         * genhooks.c (emit_findices): Cast field precision to int.
22467         (emit_documentation): Likewise.
22468
22469 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
22470
22471         PR tree-optimization/43801
22472         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
22473         if old_decl was DECL_ONE_ONLY.
22474
22475         PR debug/44668
22476         * dwarf2out.c (add_accessibility_attribute): New function.
22477         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
22478         instead of adding DW_AT_accessibility manually.
22479         (gen_enumeration_type_die, gen_struct_or_union_type_die,
22480         gen_typedef_die): Use it.
22481
22482 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
22483
22484         * vmsdbgout.c (full_name): Just output the file name if not native.
22485
22486 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
22487
22488         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
22489         (funcnam_table): New static table.
22490         (funcnum_table): New static table.
22491         (write_rtnbeg): Write value saved in funcnum_table.
22492         (write_rtnend): Write value saved in funcnum_table.
22493         (vmsdbgout_begin_function): Save current function info in
22494         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
22495         (vmsdbgout_finish): Iterate over funcnum_table.
22496
22497 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
22498
22499         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
22500         (vmsdbgout_type_decl): Declare
22501         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
22502         (FUNC_EPILOGUE_LABEL): New macro
22503         (vmsdbgout_begin_epilogue): New function.
22504         (vmsdbgout_type_decl): New function.
22505
22506 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
22507
22508         * vmsdbg.h: Update copyright.
22509
22510 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
22511
22512         * vmsdbg.h (DST_K_TBG): New DST constant.
22513         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
22514         (write_modbeg): Cast module_language to avoid warning.
22515         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
22516
22517 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
22518
22519         PR other/44034
22520         * target.def, doc/tm.texi.in, genhooks.c: New files.
22521         * target.h: Instead of defining individual hook members,
22522         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
22523         include target.def.
22524         * target-def.h: Instead of defining individual hook initializers,
22525         include target-hooks-def.h.
22526         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
22527         targetm.live_on_entry -> targetm.extra_live_on_entry
22528         targetm.sched.md_finish ->targetm.sched.finish
22529         targetm.sched.md_init -> targetm.sched.init
22530         targetm.sched.md_init_global -> targetm.sched.init_global
22531         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
22532         targetm.asm_out.except_table_label ->
22533           targetm.asm_out.emit_except_table_label
22534         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
22535         targetm.target_help -> targetm.help
22536         targetm.vectorize.builtin_support_vector_misalignment ->
22537           targetm.vectorize.support_vector_misalignment
22538         targetm.file_start_app_off -> targetm.asm_file_start_app_off
22539         targetm.file_start_file_directive ->
22540          targetm.asm_file_start_file_directive
22541         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
22542         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
22543         * config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
22544         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
22545           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
22546         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
22547           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
22548         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
22549         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
22550         * Makefile.in (TARGET_H): Depend on target.def.
22551         (TARGET_DEF_H): Depend on target-hooks-def.h.
22552         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
22553         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
22554         * doc/tm.texi: Regenerate.
22555
22556         * Makefile.in (s-tm-texi): Remove stray tab / rule.
22557
22558         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
22559         (targetm.sched.init): Likewise.
22560
22561 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
22562
22563         PR bootstrap/44713
22564         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
22565         (function_arg_advance_32): Const-ify TYPE parameter.
22566         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
22567         (ix86_function_arg_advance): Change type of NAMED to bool.
22568         (function_arg_32): Const-ify CUM and TYPE parameters.
22569         (function_arg_64): Likewise.  Change type of NAMED to bool.
22570         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
22571         to bool.
22572         (ix86_function_arg): Change type of NAMED to bool.
22573         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
22574         last argument as a bool.
22575
22576 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
22577
22578         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
22579         (OVERRIDE_OPTIONS): Add note of obsolescence.
22580         Replace references with references to TARGET_OPTION_OVERRIDE.
22581         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
22582          the macro).
22583         * targhooks.c (default_target_option_override): New function.
22584         * targhooks.h (default_target_option_override): Declare.
22585         * target.h (struct gcc_target): Add override member to
22586         target_option member.
22587         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
22588         targetm.target_option.override call.
22589         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
22590         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
22591
22592 2010-06-29  Jan Hubicka  <jh@suse.cz>
22593
22594         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
22595
22596 2010-06-29  Jan Hubicka  <jh@suse.cz>
22597
22598         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
22599         unreachable.
22600         (rebuild_frequencies): New function.
22601         * predict.h (rebuild_frequencies): Declare.
22602         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
22603         entry block and edge reaching new_entry.
22604         (tree_function_versioning): When doing partial cloning, rebuild
22605         frequencies when done.
22606         * passes.c (execute_function_todo): Use rebild_frequencies.
22607
22608 2010-06-29  Richard Guenther  <rguenther@suse.de>
22609
22610         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
22611         * tree-flow.h (enum noalias_state): Remove.
22612         (struct var_ann_d): Remove noalias_state member.
22613
22614 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
22615
22616         PR target/43902
22617         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
22618         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
22619         (maddhidi4): Likewise.
22620
22621         Revert parts of the change for PR25130.
22622         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
22623         MEM_ALIAS_SET.
22624
22625 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
22626
22627         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
22628         targetm.calls.function_incoming_arg, and
22629         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
22630         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
22631         * target.h (struct gcc_target): Add function_arg_advance,
22632         function_arg, and function_incoming_arg fields.
22633         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
22634         (TARGET_FUNCTION_INCOMING_ARG): Define.
22635         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
22636         and TARGET_FUNCTION_INCOMING_ARG.
22637         * targhooks.h (default_function_arg_advance): Declare.
22638         (default_function_arg, default_function_incoming_arg): Declare.
22639         * targhooks.c (default_function_arg_advance): New function.
22640         (default_function_arg, default_function_incoming_arg): New function.
22641         * config/i386/i386.c (function_arg_advance): Rename to...
22642         (ix86_function_arg_advance): ...this.  Make static.
22643         (function_arg): Rename to...
22644         (ix86_function_arg): ...this.  Make static.
22645         (TARGET_FUNCTION_ARG_ADVANCE): Define.
22646         (TARGET_FUNCTION_ARG): Define.
22647         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
22648         (FUNCTION_ARG): Delete.
22649         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
22650         (function_arg): Delete prototype.
22651
22652 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
22653
22654         * reginfo.c (init_reg_sets_1): Adjust comments.
22655         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
22656         * calls.c (prepare_call_address): Likewise.
22657         (emit_call_1): Use targetm.calls.return_pops_args.
22658         (expand_call): Likewise.
22659         * function.c (assign_parms): Likewise.
22660         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
22661         * target.h (struct gcc_target) [struct calls]: Add
22662         return_pops_args field.
22663         * targhooks.h (default_return_pops_args): Declare.
22664         * targhooks.c (default_return_pops_args): Define.
22665         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
22666         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
22667         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
22668         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
22669         documentation.
22670         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
22671         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
22672         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
22673         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
22674         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
22675         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
22676         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
22677         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
22678         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
22679         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
22680         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
22681         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
22682         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
22683         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
22684         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
22685         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
22686         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
22687         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
22688         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
22689         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
22690         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
22691         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
22692         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
22693         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
22694         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
22695         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
22696         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
22697         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
22698         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
22699         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
22700         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
22701         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
22702         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
22703         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
22704         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
22705         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
22706         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
22707         * config/i386/i386.c (ix86_return_pops_args): Make static.
22708         Constify arguments.
22709         (TARGET_RETURN_POPS_ARGS): Define.
22710         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
22711         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
22712         (TARGET_RETURN_POPS_ARGS): Define.
22713         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
22714         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
22715         (TARGET_RETURN_POPS_ARGS): Define.
22716
22717 2010-06-29  Richard Guenther  <rguenther@suse.de>
22718
22719         PR middle-end/44667
22720         * tree-inline.c (initialize_inlined_parameters): Make sure
22721         to remap the inlined parameter variable substitutions types.
22722
22723 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
22724
22725         PR rtl-optimization/44659
22726         * combine.c (make_compound_operation) <SUBREG>: Do not return the
22727         result of force_to_mode if it partially re-expanded the compound.
22728
22729 2010-06-28  Jan Hubicka  <jh@suse.cz>
22730
22731         PR middle-end/44671
22732         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
22733         RESULT_DECL.
22734
22735 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
22736
22737         * double-int.h (force_fit_type_double): Remove declaration.
22738         * double-int.c (force_fit_type_double): Move to tree.c.
22739         * tree.h (force_fit_type_double): Declare.
22740         * tree.h (force_fit_type_double): Moved from double-int.c. Use
22741         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
22742         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
22743         * convert.c (convert_to_pointer): Adjust call to
22744         force_fit_type_double.
22745         * tree-vrp.c (extract_range_from_assert,
22746         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
22747         * fold-const.c: Update comment.
22748         (int_const_binop, fold_convert_const_int_from_int,
22749         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
22750         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
22751         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
22752         round_up_loc): Adjust call to force_fit_type_double.
22753
22754 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
22755
22756         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
22757
22758 2010-06-28  Martin Jambor  <mjambor@suse.cz>
22759
22760         * tree-sra.c (convert_callers): New parameter, change fndecls of
22761         recursive calls.
22762         (modify_function): Pass the old decl to convert_callers.
22763
22764 2010-06-28  Martin Jambor  <mjambor@suse.cz>
22765
22766         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
22767         ipa_check_create_node_params and ipa_initialize_node_params with
22768         checking asserts they are not necessary.
22769
22770 2010-06-28  Jan Hubicka  <jh@suse.cz>
22771
22772         PR tree-optimization/44687
22773         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
22774
22775 2010-06-28  Martin Jambor  <mjambor@suse.cz>
22776
22777         PR c++/44535
22778         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
22779         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
22780         instead of BINFO_BASE_BINFO.
22781
22782 2010-06-28  Michael Matz  <matz@suse.de>
22783
22784         PR middle-end/44592
22785         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
22786         proper VDEF chain for intermediate stores in the sequence.
22787
22788 2010-06-28  Jan Hubicka  <jh@suse.cz>
22789
22790         PR tree-optimization/44357
22791         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
22792         uninlinable functions.
22793
22794 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
22795
22796         * config.gcc (powerpc*-*-*): Handle titan.
22797         * config/rs6000/rs6000.c (titan_cost): New costs.
22798         (rs6000_override_options): Add "titan" to processor_target_table.
22799         Add Titan to branch alignment logic.
22800         Correctly set rs6000_cost for titan.
22801         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
22802         * config/rs6000/titan.md: New file.
22803         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
22804
22805 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
22806
22807         * tree-browser.c (TB_history_stack): Convert to a VEC.
22808         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
22809         (TB_history_prev): Likewise.
22810
22811 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
22812
22813         * vec.h (vec_heap_free): Add parentheses around free.
22814
22815 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
22816
22817         * system.h: Poison GCC_EXCEPT_H for front-end files.
22818
22819         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
22820         langhook.
22821         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
22822         Define to NULL by default.
22823         * except.h: Define GCC_EXCEPT_H.
22824         (doing_eh): Remove prototype.
22825         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
22826         (lang_protect_cleanup_actions): Remove.
22827         * except.c (lang_protect_cleanup_actions): Remove.
22828         (doing_eh): Remove.
22829         (gen_eh_region): Don't check doing_eh here.
22830         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
22831         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
22832         instead of lang_protect_cleanup_actions.
22833         * omp-low.c (maybe_catch_exception): Likewise.
22834         * Makefile.in: Update dependencies.
22835
22836 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
22837
22838         * cgraph.h (struct varpool_node): new used_from_object_file flag.
22839         (struct cgraph_local_info): new used_from_object_file flag.
22840         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
22841         (cgraph_clone_node): initialize used_from_object_file.
22842         (cgraph_create_virtual_clone): initialize used_from_object_file.
22843         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
22844         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
22845         when compiling with -fwhole-program.
22846         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
22847         internal resolver.
22848         * ipa.c (function_and_variable_visibility): Set externally_visible
22849         flag of varpool_node if used_from_object_file flag is set.
22850         (cgraph_externally_visible_p): check used_from_object_file flag.
22851         * doc/invoke.texi (-fwhole-program option): Change description of
22852         externally_visible attribute accordingly.
22853         * doc/extend.texi (externally_visible): Ditto.
22854
22855 2010-06-27  Jan Hubicka  <jh@suse.cz>
22856
22857         * params.def (max-inline-insns-auto): Default to 40.
22858         * doc/invoke.texi (max-inline-insns-auto): Document the change.
22859
22860 2010-06-27  Jan Hubicka  <jh@suse.cz>
22861
22862         PR middle-end/44671
22863         PR middle-end/44686
22864         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
22865         signature change.
22866         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
22867         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
22868
22869 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
22870
22871         * target.h (struct gcc_target): Add register_move_cost field.
22872         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
22873         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
22874         * targhooks.c (default_register_move_cost): New function.
22875         * targhooks.h (default_register_move_cost): Declare function.
22876         * defaults.h (REGISTER_MOVE_COST): Delete.
22877         * ira-int.h (ira_register_move_cost): Update comment.
22878         * ira.c (ira_register_move_cost): Update comment.
22879         * reload.h (register_move_cost): Declare.
22880         * reginfo.c (register_move_cost): New function.
22881         (move_cost): Update comment.
22882         (init_move_cost, memory_move_secondary_cost): Replace
22883         REGISTER_MOVE_COST with register_move_cost.
22884         * postreload.c (reload_cse_simplify_set): (Ditto.).
22885         * reload.c (find_valid_class, find_reloads): (Ditto.).
22886         * reload1.c (choose_reload_regs): (Ditto.).
22887         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
22888         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
22889         * doc/md.texi (can_create_pseudo_p): Update documentation.
22890
22891         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
22892         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
22893         * config/i386/i386.h (ix86_memory_move_cost): Make static.
22894         (TARGET_MEMORY_MOVE_COST): Define.
22895
22896         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
22897         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
22898         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
22899         (TARGET_MEMORY_MOVE_COST): Define.
22900
22901 2010-06-27  Richard Guenther  <rguenther@suse.de>
22902
22903         PR tree-optimization/44683
22904         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
22905         false edge from the inverted condition.
22906
22907 2010-06-27  Richard Guenther  <rguenther@suse.de>
22908
22909         PR middle-end/44684
22910         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
22911         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
22912         for register LHS.  Or non-store assignments.
22913
22914 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
22915
22916         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
22917         (sparc_emit_set_const64): Likewise.  Remove disabled code.
22918         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
22919         (sparc_emit_set_const64): Likewise.
22920
22921 2010-06-26  Catherine Moore  <clm@codesourcery.com>
22922
22923         * config/mips/mips.md (alu_type): New attribute.
22924         (type): Infer type from alu_type.
22925         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
22926         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
22927         *subsi3_extended, negsi2, negdi2, *low<mode>,
22928         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
22929         xor<mode>3, *nor<mode>3,
22930         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
22931         *zero_extendhi_truncqi):  Set alu_type instead of type.
22932
22933 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
22934
22935         * config/alpha/alpha.c (alpha_need_linkage): Adjust
22936         splay_tree_new_ggc call.
22937         (alpha_use_linkage): Likewise.
22938
22939 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
22940
22941         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
22942         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
22943         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
22944         (static_specs): Remove switches_need_spaces.
22945         (process_command, do_self_spec): Hardcode handling "-o" instead of
22946         checking switches_need_spaces.
22947         * system.h (SWITCHES_NEED_SPACES): Poison.
22948
22949 2010-06-26  Richard Guenther  <rguenther@suse.de>
22950
22951         PR tree-optimization/44393
22952         * tree-loop-distribution.c (generate_loops_for_partition): Fix
22953         stmt removal and VOP renaming.
22954         (generate_memset_zero): Remove redundant stmt updating.
22955         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
22956         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
22957
22958 2010-06-26  Jan Hubicka  <jh@suse.cz>
22959
22960         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
22961         edges comming from header are equivalent.
22962         (visit_bb): Handle PHIs correctly.
22963         * tree-inline.c (copy_phis_for_bb): Be able to copy
22964         PHI from entry edge.
22965         (copy_cfg_body): Produce edge from entry BB before copying PHIs.
22966
22967 2010-06-26  Richard Guenther  <rguenther@suse.de>
22968
22969         PR middle-end/44674
22970         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
22971         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
22972
22973 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
22974
22975         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
22976         add_infile, alloc_switch): New.
22977         (process_command): Remove variable lang_n_infiles.  Process
22978         options in a single pass.  Use new functions for allocating
22979         infiles and switches arrays.  Properly skip operands of
22980         -Xpreprocessor and -Xassembler.
22981
22982 2010-06-26  Jan Hubicka  <jh@suse.cz>
22983
22984         PR middle-end/44671
22985         * cgraphunit.c (cgraph_function_versioning): Remove wrong
22986         cgraph_make_decl_local call; fix typo copying RTL data.
22987
22988 2010-06-25  DJ Delorie  <dj@redhat.com>
22989
22990         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
22991         (m32c_output_aligned_common): Likewise.
22992         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
22993         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
22994         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
22995         (m32c_register_pragmas): Register it.
22996         * config/m32c/m32c.c (m32c_get_pragma_address): New.
22997         (m32c_insert_attributes): Set #pragma address decls volatile.
22998         (pragma_entry_eq): New.
22999         (pragma_entry_hash): New.
23000         (m32c_note_pragma_address): New.
23001         (m32c_get_pragma_address): New.
23002         (m32c_output_aligned_common): New.
23003         * doc/extend.texi: Document the new pragma.
23004
23005         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
23006         also.
23007         * config/m32c/predicates.md (m32c_any_operand): Check the code
23008         instead of memory_operand so as to allow matching volatile MEMs.
23009         (m32c_nonimmediate_operand): Likewise.
23010         (mra_operand): Allow volatiles.
23011
23012 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
23013
23014         PR debug/44610
23015         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
23016         address if the offset is unknown.
23017
23018 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
23019
23020         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
23021         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
23022         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
23023         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
23024         to ia64_start_function. Invoke it.
23025         * config/ia64/ia64.c (ia64_start_function): Call new function
23026         dwarf2out_vms_debug_main_pointer.
23027
23028 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
23029
23030         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
23031         statements computing the true predicate.
23032
23033 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
23034
23035         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
23036         to boolean_true_node.
23037         (reset_bb_predicate): New.
23038         (predicate_bbs): Call reset_bb_predicate.
23039
23040 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
23041
23042         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
23043         (tree_if_conversion): Returns true when something has been changed.
23044         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
23045         changed something.
23046
23047 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
23048
23049         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
23050         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
23051         * tree-if-conv.c: Include dbgcnt.h.
23052         (tree_if_conversion): Use if_conversion_tree to count the number of
23053         if-convertible loops.
23054
23055 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
23056
23057         * common.opt (fprefetch-loop-arrays): Re-define
23058         -fprefetch-loop-arrays as a tri-state option with the initial
23059         value of -1.
23060         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
23061         pass only when flag_prefetch_loop_arrays > 0.
23062         * toplev.c (process_options): Note that, with tri-states,
23063         flag_prefetch_loop_arrays>0 means prefetching is enabled.
23064         * config/i386/i386.c (override_options): Enable prefetching at -O3
23065         for a set of CPUs that sw prefetching is helpful.
23066         (software_prefetching_beneficial_p): New.  Return TRUE if software
23067         prefetching is beneficial for the given CPU.
23068
23069 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
23070
23071         PR rtl-optimization/44326
23072         * implicit-zee.c (find_removable_zero_extends): Replace
23073         INSN_P with NONDEBUG_INSN_P.
23074
23075 2010-06-25  Martin Jambor  <mjambor@suse.cz>
23076
23077         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
23078         (struct ipa_node_params): Removed the modification_analysis_done flag.
23079         (ipa_is_param_modified): Removed.
23080         (ipa_analyze_node): Declare.
23081         (ipa_compute_jump_functions): Remove declaration.
23082         (ipa_count_arguments): Likewise.
23083         (ipa_detect_param_modifications): Likewise.
23084         (ipa_analyze_params_uses): Likewise.
23085         * ipa-prop.c (struct param_analysis_info): New type.
23086         (visit_store_addr_for_mod_analysis): Removed.
23087         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
23088         moved down in the file.
23089         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
23090         (ipa_count_arguments): Made static.
23091         (mark_modified): New function.
23092         (is_parm_modified_before_call): New function.
23093         (compute_pass_through_member_ptrs): New parameter parms_info, call
23094         is_parm_modified_before_call instead of ipa_is_param_modified.
23095         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
23096         it to compute_pass_through_member_ptrs.
23097         (ipa_compute_jump_functions): New parameter parms_info, pass it to
23098         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
23099         on the callee if it is analyzed.  Made static.
23100         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
23101         is_parm_modified_before_call instead of ipa_is_param_modified.
23102         (ipa_analyze_call_uses): New parameter parms_info, pass it to
23103         ipa_analyze_indirect_call_uses.
23104         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
23105         ipa_analyze_call_uses.
23106         (ipa_analyze_params_uses): New parameter parms_info, pass it to
23107         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
23108         (ipa_analyze_node): New function.
23109         (ipa_print_node_params): Do not dump the modified flag.
23110         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
23111         it.  Do not stream the modified parameter flag.
23112         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
23113         it.  Do not stream the modified parameter flag.
23114         * ipa-cp.c (ipcp_analyze_node): Removed.
23115         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
23116         with only a call to ipa_analyze_node.
23117         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
23118         node with only a call to ipa_analyze_node.
23119
23120 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23121
23122         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
23123
23124 2010-06-25  Jan Hubicka  <jh@suse.cz>
23125
23126         * tree-pass.h (pass_split_functions): Declare.
23127         * opts.c (decode_options): Enable function splitting at -O2
23128         * timevar.def (TV_IPA_FNSPLIT): New macro.
23129         * ipa-split.c: New file.
23130         * common.opt (-fpartial-inlining): New flag.
23131         * Makefile.in (ipa-split.o): New object file.
23132         * passes.c (init_optimization_passes): Add ipa-split.
23133         * params.def (partial-inlining-entry-probability): New parameters.
23134         * doc/invoke.texi (-fpartial-inlining): New.
23135
23136 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23137
23138         PR 44665
23139         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
23140         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
23141         (gimplify_expr): Likewise.
23142
23143 2010-06-25  Martin Jambor  <mjambor@suse.cz>
23144
23145         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
23146         statements instead of bailing out on them.
23147         (ipa_analyze_indirect_call_uses): Do not require that loads from the
23148         parameter are in the same BB as the condition.  Update comments.
23149
23150 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
23151
23152         PR middle-end/43866
23153         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
23154         true or always false, return NULL_TREE.
23155         (tree_unswitch_single_loop): Optimize conditions even when reaching
23156         max-unswitch-level parameter.  If num > 0, optimize first all conditions
23157         using entry checks, then do still reachable block discovery and consider
23158         only conditions in still reachable basic blocks in the loop.
23159
23160         PR tree-optimization/44539
23161         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
23162         the call doesn't have LHS, but has VDEF.
23163
23164 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
23165
23166         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
23167         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
23168         * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
23169         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
23170         * system.h (MODIFY_TARGET_NAME): Poison.
23171
23172 2010-06-25  Alan Modra  <amodra@gmail.com>
23173
23174         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
23175         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
23176         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
23177         CMODEL_LARGE as default.
23178         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
23179         (offsettable_ok_by_alignment): Delete.
23180         (rs6000_emit_move): Remove mcmodel=medium optimization.
23181
23182 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
23183
23184         With large parts from Jim Wilson:
23185         PR target/43902
23186         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
23187         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
23188         * optabs.c (optab_for_tree_code): Likewise.
23189         (expand_widen_pattern_expr): Likewise.
23190         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
23191         out of execute_optimize_widening_mul.
23192         (convert_plusminus_to_widen): New function.
23193         (execute_optimize_widening_mul): Use the two new functions.
23194         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
23195         Remove code to generate widening multiply-accumulate.  Add support
23196         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
23197         * gimple-pretty-print.c (dump_ternary_rhs): New function.
23198         (dump_gimple_assign): Call it when appropriate.
23199         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
23200         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
23201         (expand_gimple_stmt_1): Likewise.
23202         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
23203         WIDEN_MULT_MINUS_EXPR.
23204         * tree-ssa-operands.c (get_expr_operands): Likewise.
23205         * tree-inline.c (estimate_operator_cost): Likewise.
23206         * gimple.c (extract_ops_from_tree_1): Renamed from
23207         extract_ops_from_tree.  Add new arg for a third operand; fill it.
23208         (gimple_build_assign_stat): Support operations with three operands.
23209         (gimple_build_assign_with_ops_stat): Likewise.
23210         (gimple_assign_set_rhs_from_tree): Likewise.
23211         (gimple_assign_set_rhs_with_ops_1): Renamed from
23212         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
23213         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
23214         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
23215         WIDEN_MULT_MINUS_EXPR.
23216         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
23217         (extract_ops_from_tree_1): Adjust declaration.
23218         (gimple_assign_set_rhs_with_ops_1): Likewise.
23219         (gimple_build_assign_with_ops): Pass NULL for last operand.
23220         (gimple_build_assign_with_ops3): New macro.
23221         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
23222         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
23223         functions.
23224         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
23225         (verify_gimple_assign): Call it.
23226         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
23227         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
23228         functions for dealing with three-operand statements.
23229         * tree.c (commutative_ternary_tree_code): New function.
23230         * tree.h (commutative_ternary_tree_code): Declare it.
23231         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
23232         ternary statements.
23233         (gimple_assign_nonzero_warnv_p): Likewise.
23234         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
23235         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
23236         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
23237         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
23238         (struct hashtable_expr): New member ternary in the union.
23239         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
23240         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
23241         (iterative_hash_hashable_expr): Likewise.
23242         (print_expr_hash_elt): Handle EXPR_TERNARY.
23243         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
23244         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
23245         statements.  Handle GIMPLE_TERNARY_RHS.
23246
23247 2010-06-25  Jan Hubicka  <jh@suse.cz>
23248
23249         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
23250
23251 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
23252
23253         PR c/44517
23254         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
23255         parameters are not good.
23256         (c_parser_parameter_declaration): Error unknown type name if the type
23257         name can't start declaration specifiers.
23258
23259 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
23260
23261         * gcc.c (translate_options): Don't mention +e in comment.
23262         (process_command): Don't handle +e specially.
23263
23264 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
23265
23266         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
23267
23268         * ira-build.c (merge_hard_reg_conflicts): New function.
23269         (create_cap_allocno, copy_info_to_removed_store_destinations,
23270         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
23271         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
23272         (remove_unnecessary_allocnos, remove_low_level_allocnos)
23273         copy_nifo_to_removed_store_destination): Use them.
23274         * ira-lives.c (make_hard_regno_born): New function, split out of
23275         make_regno_born.
23276         (make_allocno_born): Likewise.
23277         (make_hard_regno_dead): New function, split out of make_regno_dead.
23278         (make_allocno_dead): Likewise.
23279         (inc_register_pressure): New function, split out of set_allocno_live.
23280         (dec_register_pressure): New function, split out of clear_allocno_live.
23281         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
23282         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
23283         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
23284         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
23285         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
23286         mark_pseudo_regno_live.
23287         (process_bb_node_lives): Use mark_pseudo_regno_live,
23288         make_hard_regno_born and make_allocno_dead.
23289         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
23290         set_allocno_live, clear_allocno_live): Delete functions.
23291
23292         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
23293         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
23294         functions.
23295         (ira_flattening): Use ira_parent_allocno.
23296         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
23297         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
23298
23299         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
23300         statement.
23301
23302         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
23303         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
23304         minmax_set_iter_cond, minmax_set_iter_next,
23305         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
23306         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
23307         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
23308         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
23309         uses changed.
23310
23311         * ira-int.h (struct live_range, live_range_t): Renamed from struct
23312         ira_allocno_live_range and allocno_live_range_t; all uses changed.
23313         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
23314         All uses changed.
23315
23316 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
23317
23318         * thumb2.md (thumb2_tlobits_cbranch): Delete.
23319         (peephole2 to convert zero_extract/compare of single bit to
23320          lshift/compare): New.
23321
23322 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
23323
23324         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
23325         recursive call and call to 'int_const_binop'.
23326         (build_range_check, fold_cond_expr_with_comparison, unextend,
23327         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
23328         multiple_of_p): Adjust call to const_binop.
23329
23330 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
23331
23332         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
23333         determine size of XFmode operand.
23334         (XFmode extended DFmode push splitter): Ditto.
23335         (XFmode extended SFmode push splitter): Ditto.
23336
23337 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
23338
23339         PR target/44588
23340         * config/i386/i386.md (extract_code): New.
23341         (<u>divmodqi4): Likewise.
23342         (divmodhiqi3): Likewise.
23343         (udivmodhiqi3): Likewise.
23344         (<u>divqi3): Remvoved.
23345
23346 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
23347
23348         PR middle-end/44492
23349         * recog.h (struct recog_data): Add is_asm field.
23350         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
23351         present in constraints of inline-asm operand and memory operand
23352         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
23353         (extract_insn): Initialize recog_data.is_asm.
23354         * doc/md.texi (Constraints): Document operand side-effect rules.
23355
23356 2010-06-24  Andi Kleen  <ak@linux.intel.com>
23357
23358         * c-parser.c (c_parser_conditional_expression): Call
23359         warn_for_omitted_condop.
23360         * doc/invoke.texi: Document omitted condop warning.
23361
23362 2010-06-24  Nick Clifton<nickc@redhat.com>
23363
23364         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
23365         insn in the sequence is a jump insn before setting its label.
23366
23367 2010-06-24  Alan Modra  <amodra@gmail.com>
23368
23369         * collect2.c (main): Match exactly --version and --help.
23370
23371 2010-06-24  DJ Delorie  <dj@redhat.com>
23372
23373         * config/m32c/m32c-pragma.c: Don't include rtl.h.
23374
23375 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
23376
23377         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
23378         using X87MODEF mode iterator.
23379         (pushsf splitter): Macroize splitter using P mode iterator.
23380         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
23381         mode iterator.
23382
23383         (*movxf_internal): Rename from *movxf_integer.
23384         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
23385         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
23386         (*movdf_internal): Rename from *movdf_integer.
23387         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
23388         (*movsf_internal): Rename from *movdf_1.
23389
23390 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
23391
23392         * coretypes.h (gimple_seq_node_d, gimple_seq_node)
23393         (const_gimple_seq_node): Removed typedefs.
23394
23395         * gimple.h (gimple_seq_node_d, gimple_seq_node)
23396         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
23397
23398 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
23399
23400         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
23401         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
23402         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
23403         and CODE_FOR_vec_extract_lo_v4df.
23404
23405         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
23406         Changed to define_insn_and_split.
23407         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
23408         (vec_extract_lo_v16hi): Likewise.
23409         (vec_extract_lo_v32qi): Likewise.
23410         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
23411         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
23412
23413 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
23414
23415         PR target/44640
23416         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
23417         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
23418         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
23419         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
23420         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
23421
23422         PR target/44640
23423         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
23424
23425         PR other/44644
23426         * df-core.c (struct df): Rename to df_d.
23427         * df.h (struct df): Likewise.
23428         * dse.h (struct df): Remove forward declaration.
23429         * recog.h (struct insn_data): Rename to:
23430         (struct_insn_data_d).  Adjusted all users.
23431
23432 2010-06-23  Arnaud Charlet  <charlet@adacore.com
23433
23434         PR ada/22220
23435         * doc/install.texi: Update requirements to build GNAT.
23436
23437 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
23438
23439         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
23440         enum type.
23441         (m68k_sched_attr_opx_type): Remove unreachable return.
23442         (m68k_sched_attr_opy_type): Likewise.
23443         (m68k_sched_attr_size): Likewise.
23444         (sched_get_opxy_mem_type): Likewise.
23445         (m68k_sched_attr_op_mem): Likewise.
23446
23447 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
23448
23449         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
23450         new statement and adjust VDEF only if necessary.  Remove superfluous
23451         call to maybe_clean_or_replace_eh_stmt.
23452         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
23453         copy the flags.
23454         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
23455         * tree-inline.c (copy_bb): ...and not there.
23456
23457 2010-06-22  Cary Coutant  <ccoutant@google.com>
23458
23459         * dwarf2out.c (is_nested_in_subprogram): New function.
23460         (should_move_die_to_comdat): Use it.
23461         (copy_ancestor_tree): Don't mark DIEs here.
23462         (copy_decls_walk): Start walk from root of newly-added tree;
23463         mark DIEs here instead.
23464
23465 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
23466
23467         * config/i386/i386.md (unit): Also check sseishft1.
23468
23469 2010-06-22  Jan Hubicka  <jh@suse.cz>
23470
23471         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
23472         enabled.
23473
23474 2010-06-22  Jan Hubicka  <jh@suse.cz>
23475
23476         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
23477         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
23478         Return true if something changed.
23479         * df.h (df_confluence_function_n): Return bool.
23480         * df-core.c (df_worklist_propagate_forward,
23481         df_worklist_propagate_backward): Track changes and ages.
23482         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
23483         track ages.
23484         * dse.c (dse_confluence_n): Return always true.
23485
23486 2010-06-22  Jan Hubicka  <jh@suse.cz>
23487
23488         * bitmap.c (bitmap_clear_bit): Micro optimize.
23489
23490 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
23491
23492         * config/i386/i386.md (SWI1248x): New mode iterator.
23493         (SWI48x): Ditto.
23494         (SWI12): Ditto.
23495         (SWI24): Ditto.
23496
23497         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
23498         SWI1248x mode iterator.
23499         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
23500         using SWI124 mode iterator.
23501         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
23502         mode iterator.
23503         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
23504         *pushdi2_prologue_rex64 using P mode iterator.
23505         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
23506         using SWI48 mode iterator.
23507         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
23508         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
23509         using SWI1248x mode iterator.
23510         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
23511         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
23512         SWI48 mode iterator.
23513         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
23514         iterator.
23515         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
23516         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
23517         SWI12 mode iterator.
23518         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
23519         SWI12 mode iterator.
23520         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
23521         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
23522         SWI24 mode iterator.
23523         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
23524         SWI48 mode iterator.
23525         (mov<mode>_insn_1): New expander.
23526         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
23527         using SWI48x mode iterator.
23528
23529         (*movoi_internal_avx): Rename from *movoi_internal.
23530         (*movti_internal_rex64): Rename from *movti_rex64.
23531         (*movti_internal_sse): Rename from *movti_sse.
23532         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
23533         (*movdi_internal): Rename from *movdi_2.
23534         (*movsi_internal): Rename from *movsi_1.
23535         (*movhi_internal): Rename from *movhi_1.
23536         (*movqi_internal): Rename from *movqi_1.
23537
23538         (insv): Update the call to gen_movsi_insv_1 for rename.
23539         * config/i386/i386.c (promote_duplicated_reg): Ditto.
23540
23541 2010-06-22  Jan Hubicka  <jh@suse.cz>
23542
23543         * passes.c (execute_function_todo): Move call of statistics_fini_pass
23544         to ...
23545         (execute_todo) ... this one.
23546
23547 2010-06-22  Alan Modra  <amodra@gmail.com>
23548
23549         PR target/44364
23550         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
23551         * caller-save.c (insert_restore, insert_save): Use non-validate
23552         form of adjust_address.
23553
23554 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23555
23556         PR target/39690
23557         * config/pa/pa.c (override_options): Disable
23558         -freorder-blocks-and-partition.
23559
23560 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
23561
23562         PR target/44615
23563         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
23564
23565         * config/i386/i386.md (type): Add sseishft1
23566
23567         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
23568         (ppro_insn_load): Likewise.
23569         (ppro_insn_store): Likewise.
23570         (ppro_insn_both): Likewise.
23571
23572         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
23573         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
23574         for type.
23575         (*vec_extractv2di_1_avx): Likewise.
23576         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
23577         type.  Remove atom_unit.
23578         (*vec_extractv2di_1_sse2): Likewise.
23579
23580 2010-06-21  DJ Delorie  <dj@redhat.com>
23581
23582         * diagnostic.h (diagnostic_classification_change_t): New.
23583         (diagnostic_context): Add history and push/pop list.
23584         (diagnostic_push_diagnostics): Declare.
23585         (diagnostic_pop_diagnostics): Declare.
23586         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
23587         from pragmas in a history chain instead of the global table.
23588         (diagnostic_push_diagnostics): New.
23589         (diagnostic_pop_diagnostics): New.
23590         (diagnostic_report_diagnostic): Scan history chain to find state
23591         of diagnostics as of the diagnostic location.
23592         * opts.c (set_option): Pass UNKNOWN_LOCATION to
23593         diagnostic_classify_diagnostic.
23594         (enable_warning_as_error): Likewise.
23595         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
23596         use in the history chain.
23597         * doc/extend.texi: Document pragma GCC diagnostic changes.
23598
23599 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
23600
23601         * dwarf2out.c (add_linkage_name): New function.  Don't add
23602         anything to DW_TAG_member DIEs.
23603         (add_name_and_src_coords_attributes): Use it.
23604         (gen_variable_die): Call it for C++ static data members if
23605         specification is DW_TAG_member.
23606
23607         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
23608         C++ char16_t and char32_t.
23609
23610         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
23611         * genattrtab.c: Include vecprim.h.
23612         (cached_attrs, cached_attr_count, attrs_seen_once,
23613         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
23614         attrs_cached_after): New variables.
23615         (find_attrs_to_cache): New function.
23616         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
23617         (write_test_expr): Add attrs_cached argument, return it too,
23618         attempt to cache non-const attributes used more than once in
23619         a single case handling.
23620         (write_attr_get): Use find_attrs_to_cache, for caching candidates
23621         emit cached_* variables.  Adjust write_attr_set callers.
23622         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
23623         to find attributes that should be cached in this block.  Adjust
23624         write_test_expr callers.
23625         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
23626         callers.
23627         (make_automaton_attrs): Adjust write_test_expr caller.
23628
23629         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
23630         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
23631         (make_automaton_attrs): If find_tune_attr returns non-NULL,
23632         write separate internal_dfa_insn_code_* and insn_default_latency_*
23633         functions for each attribute's value and emit init_sched_attrs
23634         function and function pointers.
23635         * genattr.c (const_attrs, reservations): New variables.
23636         (gen_attr): Add const attributes to const_attrs vector.
23637         (check_tune_attr, find_tune_attr): New functions.
23638         (main): Add reservations to reservations vector.  If find_tune_attr
23639         returns true, add prototype for init_sched_attrs and make
23640         internal_dfa_insn_code and insn_default_latency function pointers,
23641         otherwise define init_sched_attrs as dummy macro.
23642         * cfgexpand.c: Include insn-attr.h.
23643         (gimple_expand_cfg): Call init_sched_attrs.
23644
23645         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
23646
23647         PR target/44575
23648         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
23649         va_arg from a set of register save slots into a temporary,
23650         if the container is bigger than type size, do the copying
23651         using smaller mode or using memcpy.
23652
23653         PR bootstrap/44426
23654         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
23655         prototype.
23656         (sel_print_to_dot): Remove macro.
23657         (sel_print): Likewise.  New prototype.
23658         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
23659         (sel_print): New function.
23660
23661 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23662
23663         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
23664         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
23665
23666 2010-06-21  Nick Clifton  <nickc@redhat.com>
23667
23668         * config/rx/rx.h (PTRDIFF_TYPE): Define.
23669         (SMALL_REGISTER_CLASS): Define (to zero).
23670         (PRINT_OPERAND): Delete.
23671         (PRINT_OPERAND_ADDRESS): Delete.
23672         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
23673         (rx_print_operand_address): Delete prototype.
23674         * config/rx/rx.c (rx_print_operand): Make static.
23675         Allow %H and %L to handle CONST_DOUBLEs.
23676         (rx_print_operand_address): Make static.
23677         (rx_gen_move_template): Rename local variable 'template' to
23678         out_template.
23679         (rx_function_arg): Do not pass unknown sized objects in registers.
23680         (TARGET_PRINT_OPERAND): Define.
23681         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23682
23683 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
23684
23685         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
23686
23687 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
23688
23689         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
23690         stack-alignment for simple leaf-functions.
23691
23692 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
23693
23694         * doc/install.texi: Document bootstrap-lto.
23695
23696 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
23697
23698         PR debug/44248
23699         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
23700         (input_function): Drop them here, if VTA is disabled.
23701
23702 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
23703
23704         PR target/44546
23705         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
23706         New predicate.
23707         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
23708         ix86_swapped_fp_comparsion_operator instead of
23709         ix86_fp_comparison_operator.
23710
23711         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
23712         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
23713         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
23714         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
23715         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
23716         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
23717
23718 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
23719
23720         PR other/32998
23721         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
23722         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
23723         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
23724         (decode_cmdline_option): Update for this return value.  Set
23725         orig_option_with_args_text field.  Set arg field for unknown
23726         options.  Make static.
23727         (decode_cmdline_options_to_array): New.
23728         (prune_options): Update handling of find_opt return value.
23729         * opts.c (read_cmdline_option): Take decoded option.  Return void.
23730         (read_cmdline_options): Take decoded options.
23731         (decode_options): Add parameters for decoded options.  Use
23732         decode_cmdline_options_to_array.  Use decoded options for -O
23733         scan.  Use integral_argument for -O parameters.  Update call to
23734         read_cmdline_options.
23735         (enable_warning_as_error): Update handling of find_opt return value.
23736         * opts.h: Update comment on unknown options.
23737         (struct cl_decoded_option): Update comments on opt_index and arg.
23738         Add orig_option_with_args_text.
23739         (decode_cmdline_option): Remove.
23740         (decode_cmdline_options_to_array): Declare.
23741         (decode_options): Update prototype.
23742         * toplev.c (save_argv): Remove.
23743         (save_decoded_options, save_decoded_options_count): New.
23744         (read_integral_parameter): Remove.
23745         (print_switch_values): Use decoded options.
23746         (toplev_main): Don't set save_argv.  Update call to decode_options.
23747         * toplev.h (read_integral_parameter): Remove.
23748         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
23749
23750 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
23751
23752         PR target/44072
23753         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
23754         immediate.
23755         * constraints.md (Pw, Px): New constraints.
23756         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
23757
23758 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
23759
23760         * config/i386/sse.md (fma4modesuffixf4): Removed.
23761         (ssemodesuffixf2s): Likewise.
23762         (ssemodesuffixf4): Likewise.
23763         (ssemodesuffixf2c): Likewise.
23764         (ssescalarmodesuffix2s): Likewise.
23765         (avxmodesuffixf2c): Likewise.
23766         (ssemodesuffix): New.
23767         (ssescalarmodesuffix): Likewise.
23768         Update patterns with ssemodesuffix and ssescalarmodesuffix.
23769
23770 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
23771
23772         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
23773
23774 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
23775
23776         * stor-layout.c (debug_rli): Remove unused local variables.
23777
23778 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
23779
23780         PR rtl-optimization/40900
23781         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
23782         original expression for later reuse.
23783         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
23784         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
23785
23786 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
23787
23788         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
23789         double_int_fits_in_uhwi_p): Implement as static inline.
23790         (double_int_xor): New inline function.
23791         (double_int_lrotate, double_int_rrotate, double_int_max,
23792         double_int_umax, double_int_smax, double_int_min, double_int_umin,
23793         double_int_smin): Declare.
23794         (lrotate_double, rrotate_double): Remove declaration.
23795         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
23796         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
23797         (double_int_lrotate, double_int_rrotate, double_int_max,
23798         double_int_umax, double_int_smax, double_int_min, double_int_umin,
23799         double_int_smin): New function.
23800         * fold-const.c (int_const_binop): Clean up, use double_int_*
23801         functions.
23802         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
23803         double_int_* and immed_double_int_const functions.
23804
23805 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
23806
23807         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
23808         * function.c (types_used_by_cur_var_decl): Likewise.
23809         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
23810
23811 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
23812
23813         * tree.h (record_layout_info): Change type of pending_statics field
23814         to a VEC.
23815         * stor-layout.c (start_record_layout): Store NULL into
23816         pending_statics.
23817         (debug_rli): Call debug_vec_tree instead of debug_tree.
23818         (place_field): Likewise.
23819         (finish_record_layout): Likewise.
23820
23821 2010-06-18  Alan Modra  <amodra@gmail.com>
23822
23823         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
23824
23825 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23826
23827         PR target/43740
23828         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
23829         for SET source operand from SET destination operand.
23830
23831 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
23832
23833         PR rtl-optimization/39871
23834         * reload1.c (init_eliminable_invariants): For flag_pic, disable
23835         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
23836         (function_invariant_p): Rule out a plus of frame or arg pointer with
23837         a SYMBOL_REF.
23838         * ira.c (find_reg_equiv_invariant_const): Likewise.
23839
23840 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
23841
23842         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
23843         print_operand_address and puts to output the operand for CONST.
23844
23845 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
23846
23847         PR debug/44572
23848         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
23849         hook.
23850
23851 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23852
23853         * v850-protos.h (print_operand): Delete.
23854         (print_operand_address): Delete.
23855         * v850.h (PRINT_OPERAND): Delete.
23856         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23857         (PRINT_OPERAND_ADDRESS): Delete.
23858         * v850.c (print_operand_address): Rename to...
23859         (v850_print_operand_address): ...this.  Make static. Call
23860         v850_print_operand.
23861         (print_operand): Rename to...
23862         (v850_print_operand): ...this.  Make static.  Call
23863         v850_print_operand_address.
23864         (v850_print_operand_punct_valid_p): New function.
23865         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
23866         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
23867
23868 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23869
23870         * config/sh/sh-protos.h (print_operand): Delete.
23871         (print_operand_address): Delete.
23872         * config/sh/sh.h (PRINT_OPERAND): Delete.
23873         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23874         (PRINT_OPERAND_ADDRESS): Delete.
23875         * config/sh/sh.c (sh_print_operand_address): Make static.
23876         (sh_print_operand): Make static.  Call sh_print_operand_address
23877         and sh_print_operand.
23878         (sh_print_operand_punct_valid_p): New function.
23879         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
23880         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
23881
23882 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23883
23884         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
23885         (mcore_print_operand_address): Delete.
23886         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
23887         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23888         (PRINT_OPERAND_ADDRESS): Delete.
23889         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
23890         (mcore_print_operand): Make static.
23891         (mcore_print_operand_punct_valid_p): New function.
23892         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
23893         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
23894
23895 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23896
23897         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
23898         (print_operand_address): Delete.
23899         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
23900         (PRINT_OPERAND_ADDRESS): Delete.
23901         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
23902         static.
23903         (m68hc11_print_operand): Make static.
23904         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
23905
23906 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23907
23908         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
23909         (m32r_print_operand_address): Delete.
23910         * config/m32r/m32r.h (m32r_punct_chars): Delete.
23911         (PRINT_OPERAND): Delete.
23912         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23913         (PRINT_OPERAND_ADDRESS): Delete.
23914         * config/m32r/m32r.c (m32r_punct_chars): Make static.
23915         (m32r_print_operand_address): Make static.
23916         (m32r_print_operand): Make static.
23917         (m32r_print_operand_punct_valid_p): New function.
23918         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
23919         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23920
23921 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23922
23923         * config/iq2000/iq2000-protos.h (print_operand): Delete.
23924         (print_operand_address): Delete.
23925         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
23926         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23927         (PRINT_OPERAND_ADDRESS): Delete.
23928         (iq2000_print_operand_punct): Delete.
23929         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
23930         (iq2000_print_operand_address): Make static.
23931         (iq2000_print_operand): Make static.
23932         (iq2000_print_operand_punct_valid_p): New function.
23933         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
23934         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23935
23936 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23937
23938         * config/frv/frv-protos.h (frv_print_operand): Delete.
23939         (frv_print_operand_address): Delete.
23940         * config/frv/frv.h (PRINT_OPERAND): Delete.
23941         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23942         (PRINT_OPERAND_ADDRESS): Delete.
23943         * config/frv/frv.c (frv_print_operand_address): Make static.
23944         (frv_print_operand): Make static.
23945         (frv_print_operand_punct_valid_p): New function.
23946         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
23947         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23948
23949 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23950
23951         * tree.h (vec_member): Declare.
23952         * tree.c (vec_member): Define.
23953
23954 2010-06-17  Richard Guenther  <rguenther@suse.de>
23955
23956         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
23957         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
23958
23959 2010-06-17  Richard Guenther  <rguenther@suse.de>
23960
23961         * tree-inline.c (declare_return_variable): Remove bogus code.
23962
23963 2010-06-17  Richard Guenther  <rguenther@suse.de>
23964
23965         * gimplify.c (gimplify_bind_expr): Always promote complex
23966         and vector variables to registers if possible.
23967
23968 2010-06-17  Richard Guenther  <rguenther@suse.de>
23969
23970         * expr.c (get_inner_reference): Use double_int for bit_offset
23971         calculation.
23972
23973 2010-06-16  DJ Delorie  <dj@redhat.com>
23974
23975         * common.opt (-fstrict-volatile-bitfields): new.
23976         * doc/invoke.texi: Document it.
23977         * fold-const.c (optimize_bit_field_compare): For volatile
23978         bitfields, use the field's type to determine the mode, not the
23979         field's size.
23980         * expr.c (expand_assignment): Likewise.
23981         (get_inner_reference): Likewise.
23982         (expand_expr_real_1): Likewise.
23983         * expmed.c (store_fixed_bit_field): Likewise.
23984         (extract_bit_field_1): Likewise.
23985         (extract_fixed_bit_field): Likewise.
23986
23987 2010-06-16  Richard Guenther  <rguenther@suse.de>
23988
23989         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
23990
23991 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
23992
23993         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
23994         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
23995         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
23996         * debug.c: Likewise.
23997         * sdbout.c: Likewise.
23998         * vmsdbgout.c: Likewise.
23999         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
24000         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
24001         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
24002         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
24003         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
24004         * dwarf2out.c (dw_fde_struct): New fields
24005         dw_fde_vms_{end,begin}_prologue.
24006         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
24007         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
24008         (dwarf2out_vms_end_prologue): New function.
24009         (dwarf2out_vms_begin_epilogue): New function.
24010         (dw_val_struct): New value dw_val_class_vms_delta.
24011         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
24012         begin_epilogue for VMS.
24013         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
24014         new static functions.
24015         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
24016         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
24017         static functions.
24018         (print_die): New case dw_val_class_vms_delta.
24019         (attr_checksum): Likewise.
24020         (same_dw_val_p: Likewise.
24021         (size_of_die): Likewise.
24022         (value_format): Likewise.
24023         (output_die): Likewise.
24024         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
24025         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
24026         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
24027         dwarf2out_cfi_begin_epilogue
24028         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
24029
24030 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
24031
24032         * config/cris/cris-protos.h (cris_print_operand): Delete.
24033         (cris_print_operand_address): Delete.
24034         * config/cris/cris.h (PRINT_OPERAND): Delete.
24035         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
24036         (PRINT_OPERAND_ADDRESS): Delete.
24037         * config/cris/cris.c (cris_print_operand_address): Make static.
24038         (cris_print_operand): Make static.
24039         (cris_print_operand_punct_valid_p): New function.
24040         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
24041         (TARGET_PRINT_OPERAND_ADDRESS): Define.
24042
24043 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
24044
24045         * config/arm/arm-protos.h (arm_print_operand): Delete.
24046         (arm_print_operand_address): Delete.
24047         * config/arm/arm.h (PRINT_OPERAND): Delete.
24048         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
24049         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
24050         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
24051         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
24052         (arm_print_operand): Make static.
24053         (arm_print_operand_punct_valid_p): New function.
24054         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
24055         (TARGET_PRINT_OPERAND_ADDRESS): Define.
24056
24057 2010-06-16  Nick Clifton  <nickc@redhat.com>
24058
24059         * config/rx/constraints.md (NEGint4): New constraint.
24060         * config/rx/rx.md (attr cc): Add set_zsc.
24061         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
24062         initialised.
24063         (cmpsf): Likewise.
24064         (call_internal): Clobber the cc0 register.
24065         (call_value_internal): Likewise.
24066         (cstoresi4): Likewise.
24067         (movsieq): Likewise.
24068         (movsine): Likewise.
24069         (addsi3): Add alternative to handle small negative constants.
24070         (sunsi3): Likewise.
24071         (addsi3): Do not set the O bit in the cc0 register.
24072         (adddi3): Likewise.
24073         (subsi3): Likewise.
24074         (subdi3): Likewise.
24075         (andsi3): Reorder alternatives to prefer shorter forms.
24076         (mulsi3): Likewise.
24077         (iorsi3): Likewise.
24078         (negsi2): Note that the cc0 flags are set.
24079         (rotlsi3): Note that only the Z and S bits are set in cc0.
24080         (lshrsi3): Likewise.
24081         (ashlsi3): Likewise.
24082         (subsf3): Use %Q for the MEM operand.
24083         (fix_truncsfsi2): Likewise.
24084         (floatsisf2): Likewise.
24085         (bitset): Remove early clobber from destination.
24086         (bitset_in_memory): Likewise.
24087         (lrintsf2): Clobber the cc0 register.
24088         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
24089         (rx_print_operand): Handle %N.
24090
24091 2010-06-16  Jan Hubicka  <jh@suse.cz>
24092
24093         * df-core.c (df_compact_blocks): Free problem_temps vector.
24094
24095 2010-06-16  Martin Jambor  <mjambor@suse.cz>
24096
24097         PR tree-optimization/43905
24098         * tree-sra.c: Include tree-inline.h.
24099         (create_abstract_origin): Removed.
24100         (modify_function): Version the call graph node instead of creating
24101         abstract origins and dealing with same_body aliases.
24102         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
24103         function is versionable.
24104         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
24105
24106 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
24107
24108         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
24109         (CHOOSE_DYNAMIC_LINKER): Update.
24110
24111 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
24112
24113         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
24114         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
24115         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
24116         *prefetch_3dnow_rex.
24117
24118 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
24119
24120         * target.h (struct asm_out):Add declare_constant_name field.
24121         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
24122         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
24123         * output.h (default_asm_declare_constant_name): Declare.
24124         (assemble_label): Update prototype.
24125         * varasm.c (assemble_constant_contents): Use
24126         targetm.asm_out.declare_constant_name target hook.
24127         (assemble_label): Add 'file' argument.
24128         (default_asm_declare_constant_name): New function.
24129         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
24130         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
24131         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
24132
24133         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
24134         * config/darwin.c (darwin_asm_declare_constant_name): New function.
24135         (machopic_output_indirection): Update assemble_label argument list.
24136         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
24137         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
24138
24139 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
24140
24141         PR middle-end/44391
24142         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
24143         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
24144
24145 2010-06-15  Richard Guenther  <rguenther@suse.de>
24146
24147         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
24148
24149 2010-06-15  Paul Brook  <paul@codesourcery.com>
24150
24151         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
24152         hard-float ABI.
24153
24154 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
24155
24156         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
24157         don't get a vector type for output.
24158
24159 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
24160
24161         PR fortran/44536
24162         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
24163         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
24164         (LANG_HOOKS_DECLS): Add it.
24165         * gimplify.c (omp_notice_variable): Call
24166         lang_hooks.decls.omp_report_decl.
24167
24168 2010-06-15  Martin Jambor  <mjambor@suse.cz>
24169
24170         PR lto/44464
24171         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
24172         on the newly dead SSA name.
24173
24174 2010-06-15  Alan Modra  <amodra@gmail.com>
24175
24176         * doc/invoke.texi: Add mcmodel to powerpc options.
24177         * configure.ac: Add HAVE_LD_LARGE_TOC test.
24178         * configure: Regenerate.
24179         * config.in: Regenerate.
24180         * config/rs6000/linux64.opt (mcmodel): New.
24181         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
24182         (TARGET_CMODEL, SET_CMODEL): Define.
24183         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
24184         select CMODEL_MEDIUM default.
24185         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
24186         (TARGET_CMODEL): Define default.
24187         * config/rs6000/rs6000.c (cmodel): New variable.
24188         (rs6000_explicit_options): Add cmodel field.
24189         (rs6000_handle_option): Handle -mcmodel.
24190         (create_TOC_reference): Add largetoc_reg param.  Generate high,
24191         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
24192         (rs6000_delegitimize_address): Recognise new toc reference rtl
24193         and minimal-toc rtl.
24194         (rs6000_legitimize_reload_address): Handle new toc references.
24195         (print_operand_address): Handle legitimate_constant_pool_address_p
24196         match before lo_sum.
24197         (rs6000_eliminate_indexed_memrefs): Tidy.
24198         (rs6000_emit_move): Tweak threshold for inlining constants.
24199         Keep rs6000_emit_allocate_stack large stack frame offsets
24200         loaded into r0 inline.
24201         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
24202         (tocrel_base, tocrel_offset): New variables.
24203         (toc_relative_expr_p): Set them here.
24204         (print_operand_address): Skip over any offset on constant pool address.
24205         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
24206         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
24207         (offsettable_ok_by_alignment): New function.
24208         (rs6000_emit_move): Address suitably aligned local symbol_refs
24209         relative to the toc pointer for -mcmodel=medium.
24210         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
24211         strict param.  Allow lo_sum version of addressing.  Verify reg
24212         used for -mminimal-toc and -mcmodel != small.  Update all callers.
24213         * config/rs6000/constraints.md: Update for above change.
24214         * config/rs6000/predicates.md: Likewise.
24215         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
24216         code.
24217         (tls_gd): Split for -mcmodel=medium/large.
24218         (tls_gd_high, tls_gd_low): New.
24219         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
24220         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
24221         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
24222         (largetoc_high, largetoc_low): New.
24223         (cmptf_internal2): Add clobber.
24224         * config/rs6000/rs6000-protos.h: Update.
24225
24226 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
24227
24228         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
24229         true if no prefetch is going to be generated for a given group.
24230         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
24231         estimate the prefetch_count.
24232         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
24233         prefetch count by considering the unroll_factor and prefetch_mod
24234         for is_loop_prefetching_profitable.
24235
24236 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
24237
24238         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
24239         anything if the argument is not a MEM.
24240
24241 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
24242
24243         PR debug/43650
24244         PR debug/44181
24245         PR debug/44247
24246         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
24247         debug stmts.
24248         (canonicalize_loop_ivs): Likewise.
24249
24250 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
24251
24252         PR debug/43656
24253         * haifa-sched.c (setup_insn_reg_pressure_info,
24254         update_register_pressure): Reject debug insns.
24255         (ready_sort): Don't setup reg pressure for debug insns.
24256         (schedule_insn): Don't update reg pressure for debug insns.
24257
24258 2010-06-14  Richard Guenther  <rguenther@suse.de>
24259
24260         * lto-streamer.c (cached_bp): Remove.
24261         (bitpack_delete): Likewise.
24262         (bitpack_create): Likewise.
24263         (bp_get_next_word): Likewise.
24264         (bp_pack_value, bp_unpack_value): Move ...
24265         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
24266         Re-implement.
24267         (struct bitpack_d): Likewise.
24268         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
24269         New inline functions.
24270         * lto-streamer-out.c (lto_output_bitpack): Remove.
24271         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
24272         (pack_value_fields): Adjust.
24273         (lto_write_tree): Likewise.
24274         (output_gimple_stmt): Likewise.
24275         (output_function): Likewise.
24276         * lto-streamer-in.c (input_gimple_stmt): Adjust.
24277         (input_function): Likewise.
24278         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
24279         (lto_input_bitpack): Remove.
24280         (lto_materialize_tree): Adjust.
24281         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
24282         * lto-cgraph.c (lto_output_edge): Adjust.
24283         (lto_output_node): Likewise.
24284         (lto_output_varpool_node): Likewise.
24285         (lto_output_ref): Likewise.
24286         (input_node): Likewise.
24287         (input_varpool_node): Likewise.
24288         (input_ref): Likewise.
24289         (input_edge): Likewise.
24290         (output_node_opt_summary): Likewise.
24291         (input_node_opt_summary): Likewise.
24292         * ipa-pure-const.c (pure_const_write_summary): Likewise.
24293         (pure_const_read_summary): Likewise.
24294         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
24295         (ipa_read_indirect_edge_info): Likewise.
24296         (ipa_write_node_info): Likewise.
24297         (ipa_read_node_info): Likewise.
24298
24299 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
24300
24301         PR target/44534
24302         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
24303         (vec_extract_lo_v16hi): Likewise.
24304         (vec_extract_lo_v32qi): Likewise.
24305
24306 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
24307
24308         PR bootstrap/44426
24309         * tree.h (build_call_expr): Don't define as vararg macro, instead
24310         add a prototype.
24311         * builtins.c (build_call_nofold): Remove.
24312         (expand_builtin_int_roundingfn, expand_builtin_pow,
24313         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
24314         expand_builtin_memset_args, expand_builtin_strcmp,
24315         expand_builtin_strncmp, expand_builtin_memory_chk): Use
24316         build_call_nofold_loc instead of build_call_nofold.
24317         (build_call_expr): New function.
24318
24319         PR tree-optimization/44508
24320         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
24321         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
24322         don't eliminate trivially dead stmts.
24323         * tree-vrp.c (vrp_finalize): Pass false as last argument
24324         to substitute_and_fold.
24325         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
24326         to substitute_and_fold.
24327         * tree-ssa-ccp.c (ccp_finalize): Likewise.
24328
24329         PR bootstrap/44509
24330         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
24331
24332 2010-06-14  Ira Rosen  <irar@il.ibm.com>
24333
24334         PR tree-optimization/44507
24335         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
24336         to build initial vector for BIT_AND_EXPR.
24337         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
24338
24339 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
24340
24341         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
24342         adjust z10prop set_attr.
24343
24344 2010-06-13  Jan Hubicka  <jh@suse.cz>
24345
24346         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
24347         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
24348         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
24349         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
24350         datastructure checks into checking asserts.
24351         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
24352         * tree-ssa-sccvn.c (VN_INFO): Likewise.
24353         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
24354         df_ref_create_structure): Likewise.
24355         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
24356         pool_free): Use gcc_checking_assert.
24357         * alias.c (get_alias_set): Likewise.
24358         * var-tracking.c (variable_htab_free, shared_hash_copy,
24359         canonicalize_values_mark, variable_merge_over_cur): Likewise.
24360         * lto-streamer.c (bp_unpack_value): Likewise.
24361
24362 2010-06-13  Richard Guenther  <rguenther@suse.de>
24363
24364         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
24365         Do not stream but initialize TYPE_CANONICAL to NULL.
24366         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
24367         * gimple.c (gimple_types_compatible_p): Disregard
24368         TYPE_STRUCTURAL_EQUALITY_P.
24369         (gimple_register_type): Use TYPE_CANONICAL as cache.
24370         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
24371         before registering common types.
24372         * config/i386/i386.c (ix86_function_arg_boundary): Do not
24373         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
24374         * tree.h (TYPE_CANONICAL): Clarify documentation.
24375
24376 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
24377
24378         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
24379         LIBCALL_VALUE): Remove macros.
24380         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
24381         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
24382         TARGET_FUNCTION_VALUE_REGNO_P): Define.
24383         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
24384         (ia64_function_value): Make static. Handle receiving the function
24385         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
24386
24387 2010-06-12  Jan Hubicka  <jh@suse.cz>
24388
24389         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
24390         at correct place.
24391
24392 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
24393
24394         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
24395
24396 2010-06-12  Jan Hubicka  <jh@suse.cz>
24397
24398         * df-core.c (df_clear_bb_info): New function.
24399         (df_set_blocks): bb_info is always allocated.
24400         (df_get_bb_info): Use block_info_elt_size.
24401         (df_set_bb_info): Likewise.
24402         (df_compact_blocks): Update for new block_info.
24403         (grow_bb_info): New function.
24404         * df-problems.c (df_grow_bb_info): Move to df-core.c
24405         (df_rd_set_bb_info): Remove.
24406         (df_rd_free_bb_info): Do not free block pool.
24407         (df_rd_alloc): Do not create pool, use check for
24408         obstack presence instead of NULL pointer for new blocks.
24409         (df_rd_free): DO not free alloc pool; clear block_info.
24410         (problem_RD): Add size of block info structure.
24411         (df_lr_set_bb_info): Remove.
24412         (df_lr_free_bb_info): Do not free block pool.
24413         (df_lr_alloc): Do not create pool, use check for
24414         obstack presence instead of NULL pointer for new blocks.
24415         (df_lr_free): DO not free alloc pool; clear block_info.
24416         (problem_LR): Add size of block info structure.
24417         (df_live_set_bb_info): Remove.
24418         (df_live_free_bb_info): Do not free block pool.
24419         (df_live_alloc): Do not create pool, use check for
24420         obstack presence instead of NULL pointer for new blocks.
24421         (df_live_free): DO not free alloc pool; clear block_info.
24422         (problem_LIVE): Add size of block info structure.
24423         (problem_CHAIN): Add size of block info structure.
24424         (df_byte_lr_set_bb_info): Remove.
24425         (df_byte_lr_free_bb_info): Do not free block pool.
24426         (df_byte_lr_alloc): Do not create pool, use check for
24427         obstack presence instead of NULL pointer for new blocks.
24428         (df_byte_lr_free): DO not free alloc pool; clear block_info.
24429         (problem_BYTE_LR): Add size of block info structure.
24430         (problem_NOTE): Add size of block info structure.
24431         (df_byte_MD_set_bb_info): Remove.
24432         (df_byte_MD_free_bb_info): Do not free block pool.
24433         (df_byte_MD_alloc): Do not create pool, use check for
24434         obstack presence instead of NULL pointer for new blocks.
24435         (df_byte_MD_free): DO not free alloc pool; clear block_info.
24436         (problem_BD): Add size of block info structure.
24437         * df-scan.c (df_scan_free_internal): Free block pool.
24438         (df_scan_set_bb_info): Remove.
24439         (df_scan_free_bb_info): Check for artificial_defs instead
24440         of bb_info being non-NULL.
24441         (df_scan_alloc): DO not create df_scan_block pool.
24442         (problem_SCAN): Set size of block info.
24443         (df_bb_refs_record): Do not allocate bb_info.
24444         * df.h (df_problem): Add block_info_elt_size.
24445         (struct dataflow): Change block_info to void *.
24446         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
24447         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
24448         in-line structures.
24449
24450 2010-06-12  Jan Hubicka  <jh@suse.cz>
24451
24452         PR tree-optimize/44485
24453         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
24454         containing use of return value of noreturn function.
24455
24456 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
24457
24458         * targhooks.c (default_function_value): Don't use
24459         FUNCTION_OUTGOING_VALUE.
24460         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
24461         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
24462
24463 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
24464
24465         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
24466         Add crtfastmath.o to extra_parts.
24467         * config/mips/crtfastmath.c: New.
24468         * config/mips/linux.h (ENDFILE_SPEC): New.
24469
24470 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
24471
24472         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
24473         old_type in parameter.
24474         (gcc_type_for_value): Update call to gcc_type_for_interval.
24475         (compute_type_for_level_1): Renamed compute_type_for_level.
24476         Update call to gcc_type_for_interval.
24477
24478 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
24479
24480         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
24481         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
24482
24483 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
24484
24485         * opts-common.c: Include options.h.
24486         (integral_argument): Move from opts.c.
24487         (decode_cmdline_option): New.  Based on read_cmdline_option.
24488         * opts.c (integral_argument): Move to opts-common.c.
24489         (read_cmdline_option): Move most contents to
24490         decode_cmdline_option.  Use %qs in diagnostics.
24491         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
24492         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
24493         decode_cmdline_option): New.
24494
24495 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
24496
24497         PR target/44481
24498         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
24499         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
24500         (partiysi2_cmp): Ditto.
24501         (*partiyhi2_cmp): Ditto.
24502         (*parityqi2_cmp): Remove.
24503
24504 2010-06-11  Jan Hubicka  <jh@suse.cz>
24505
24506         * bitmap.h (bmp_iter_next_bit): New.
24507         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
24508
24509 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
24510             Eric Botcazou  <ebotcazou@adacore.com>
24511
24512         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
24513         computed cost.
24514
24515 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
24516
24517         * config/i386/i386.md (unspec): New define_c_enum.
24518         (unspecv): Ditto.
24519
24520 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
24521
24522         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
24523
24524 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
24525
24526         PR middle-end/44483
24527         * tree-if-conv.c (bb_predicate_s): New struct.
24528         (bb_predicate_p): New.
24529         (bb_has_predicate): New.
24530         (bb_predicate): New.
24531         (set_bb_predicate): New.
24532         (bb_predicate_gimplified_stmts): New.
24533         (set_bb_predicate_gimplified_stmts): New.
24534         (add_bb_predicate_gimplified_stmts): New.
24535         (init_bb_predicate): New.
24536         (free_bb_predicate): New.
24537         (is_predicated): Use bb_predicate.
24538         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
24539         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
24540         before processing their successors.
24541         (clean_predicate_lists): Removed.
24542         (find_phi_replacement_condition): Use bb_predicate.
24543         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
24544         computations.
24545         (insert_gimplified_predicates): New.
24546         (combine_blocks): Call insert_gimplified_predicates.
24547         (tree_if_conversion): Call free_bb_predicate instead of
24548         clean_predicate_lists.
24549
24550 2010-10-11  Paul Brook  <paul@codesourcery.com>
24551
24552         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
24553         * config/arm/arm.c (all_architectures): Change v7e-m default to
24554         cortexm4.
24555         * config/arm/arm-cores.def: Add cortex-m4.
24556         * config/arm/arm-tune.md: Regenerate.
24557
24558 2010-06-11  Jan Hubicka  <jh@suse.cz>
24559
24560         * ipa-pure-const.c (special_builtlin_state): New function.
24561         (check_call): Use it instead of special casign BUILT_IN_RETURN.
24562         (propagate_pure_const): Use it.
24563
24564 2010-06-11  Jan Hubicka  <jh@suse.cz>
24565
24566         * df-problems.c (df_live_scratch): Convert to bitmap_head.
24567         (df_live_alloc): Initialize df_live_scratch when initializing
24568         problem_data.
24569         (df_live_transfer_function): Update uses of df_live_scratch.
24570         (df_live_free): Free problem_data; clear df_live_scratch before
24571         releasing the obstack.
24572         (df_md_free): Free problem data.
24573
24574 2010-06-11  Jan Hubicka  <jh@suse.cz>
24575
24576         * doc/invoke.texi (Wsuggest-attribute): Document.
24577         (Wmissing-noreturn): Remove.
24578         * ipa-pure-const.c (warn_function_noreturn): New function.
24579         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
24580         warn_missing_noreturn.
24581         * common.opt (Wsuggest-attribute=noreturn): New.
24582         * tree-flow.h (warn_function_noreturn): Declare.
24583         * tree-cfg.c (execute_warn_function_noreturn): Use
24584         warn_function_noreturn.
24585         (gate_warn_function_noreturn): New.
24586         (pass_warn_function_noreturn): Update.
24587
24588 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24589
24590         * c-typeck.c (handle_warn_cast_qual): Add loc
24591         parameter. Improve warning message.
24592         (build_c_cast): Pass location to handle_warn_cast_qual.
24593
24594 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
24595
24596         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
24597         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
24598         insn mnemonic.
24599         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
24600
24601 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
24602
24603         Fix bootstap on mips
24604         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
24605         be naming typedefs.
24606
24607 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
24608
24609         * system.h (helper_const_non_const_cast): New inline for
24610         gcc version <= 4.0.
24611         (CONST_CAST2): For gcc version <= 4.0 use
24612         new helper to do const/non-const casting.
24613
24614 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24615
24616         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
24617         * Makefile.in (OBJS-common): Include insn-enums.o.
24618         (insn-enums.o): New rule.
24619         (simple_generated_c): Add insn-enums.c.
24620         (build/genenums.o): New rule.
24621         (genprogmd): Add "enums".
24622         * genconstants.c (print_enum_type): Declare a C string array
24623         for each enum.
24624         * genenums.c: New file.
24625         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
24626         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
24627         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
24628
24629 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24630
24631         * doc/md.texi (define_enum_attr): Document.
24632         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
24633         * read-md.h (lookup_enum_type): Declare.
24634         * read-md.c (lookup_enum_type): New function.
24635         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
24636         * genattrtab.c (attr_desc): Add an enum_name field.
24637         (evaluate_eq_attr): Take the associated attribute as argument.
24638         Get the enum prefix from the enum_name field, if defined.
24639         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
24640         (simplify_test_exp): Pass attr to evaluate_eq_attr.
24641         (add_attr_value): New function, split out from...
24642         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
24643         (write_test_expr): Pass attr to evaluate_eq_attr.
24644         (write_attr_get): Use the enum_name as the enum tag, if defined.
24645         (write_attr_valueq): Use the enum_name as a prefix, if defined.
24646         (find_attr): Initialize enum_name.
24647         (main): Handle DEFINE_ENUM_ATTR.
24648         * gensupport.c (process_rtx): Likewise.
24649         * config/mips/mips.h (mips_tune_attr): Delete.
24650         * config/mips/mips.md (cpu): Use define_attr_enum.
24651
24652 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24653
24654         * doc/md.texi (define_c_enum, define_enum): Document.
24655         * read-md.h (md_constant): Add a parent_enum field.
24656         (enum_value, enum_type): New structures.
24657         (upcase_string, traverse_enum_types): Declare.
24658         * read-md.c (enum_types): New variable.
24659         (upcase_string, add_constant): New functions.
24660         (handle_constants): Don't create the hash table here.
24661         Use add_constant.
24662         (traverse_md_constants): Don't check for a null md_constants.
24663         (decimal_string, handle_enum, traverse_enum_types): New functions.
24664         (read_md_files): Initialize md_constants and md_enums.
24665         * genconstants.c (print_md_constant): Ignore info argument.
24666         Only print constants that belong to no enum.
24667         (print_enum_type): New function.
24668         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
24669         for each defined enum type.
24670         * config/mips/mips.md (processor): New define_enum.
24671         (unspec): New define_c_enum.
24672         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
24673         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
24674         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
24675         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
24676         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
24677         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
24678         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
24679         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
24680         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
24681         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
24682         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
24683         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
24684         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
24685         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
24686         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
24687         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
24688         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
24689         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
24690         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
24691         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
24692         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
24693         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
24694         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
24695         (UNSPEC_RDDSP): Move to mips-dsp.md.
24696         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
24697         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
24698         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
24699         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
24700         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
24701         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
24702         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
24703         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
24704         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
24705         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
24706         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
24707         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
24708         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
24709         Moved to mips-dspr2.md.
24710         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
24711         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
24712         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
24713         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
24714         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
24715         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
24716         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
24717         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
24718         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
24719         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
24720         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
24721         UNSPEC_LOONGSON_PSADBH)
24722         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
24723         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
24724         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
24725         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
24726         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
24727         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
24728         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
24729         (cpu): Update comment.
24730         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
24731         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
24732         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
24733         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
24734         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
24735         UNSPEC_LOONGSON_PCMPEQ)
24736         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
24737         UNSPEC_LOONGSON_PINSR_0)
24738         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
24739         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
24740         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
24741         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
24742         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
24743         UNSPEC_LOONGSON_PSADBH)
24744         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
24745         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
24746         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
24747         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
24748         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
24749         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
24750         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
24751         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
24752         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
24753         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
24754         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
24755         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
24756         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
24757         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
24758         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
24759         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
24760         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
24761         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
24762         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
24763         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
24764         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
24765         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
24766         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
24767         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
24768         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
24769         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
24770         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
24771         (UNSPEC_RDDSP): Moved from mips.md.
24772         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
24773         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
24774         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
24775         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
24776         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
24777         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
24778         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
24779         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
24780         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
24781         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
24782         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
24783         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
24784         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
24785         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
24786         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
24787         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
24788         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
24789         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
24790         (UNSPEC_SCC): Moved from mips.md.
24791         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
24792         "processor_type" to "processor".
24793         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
24794         * config/mips/mips.h (processor_type): Delete.
24795         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
24796         "processor_type" to "processor".
24797
24798 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24799
24800         * configure.ac (tm_include_list): Add insn-constants.h.
24801         * configure: Regenerate.
24802         * Makefile.in (GTM_H): Move insn-constants.h here from...
24803         (TM_H): ...here.
24804         * mkconfig.sh: Remove special handling for insn-constants.h.
24805
24806 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24807
24808         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
24809         (BUILD_MD): ...this new variable.
24810         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
24811         that include the old contents of simple_generated_h and
24812         simple_generated_c.
24813         (simple_generated_h, simple_generated_c): Include them.  Add
24814         insn-constants.h.
24815         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
24816         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
24817         Remove these dependencies from the main rule and include
24818         insn-conditions.md in the command line only if it appears
24819         in the dependency list.
24820         (insn-constants.h, s-constants): Delete.
24821         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
24822         or gensupport.h.
24823         (build/genmddeps.o): Likewise.
24824         (genprogrtl): New variable that contains everything from genprogmd
24825         except mddeps and constants.
24826         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
24827         depend on $(BUILD_MD)
24828         (genprog): New variable.  Make these programs depend on
24829         $(BUILD_ERRORS).
24830         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
24831         (main): Use read_md_files instead of init_rtx_reader_args.
24832         * genconstants.c: As for genmddeps.c.
24833         * read-md.h (read_skip_construct): Declare.
24834         * read-md.c (read_skip_construct): New function.
24835         (handle_file): Allow a null handle_directive, skipping the
24836         construct if so.
24837         (parse_include): Update the comment accordingly.
24838
24839 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24840
24841         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
24842         * genmddeps.c: Include read-md.h.
24843         (main): Call init_rtx_reader_args instead of init_md_reader_args.
24844         * genattr.c (main): Likewise.
24845         * genattrtab.c (main): Likewise.
24846         * genautomata.c (main): Likewise.
24847         * gencodes.c (main): Likewise.
24848         * genconditions.c (main): Likewise.
24849         * genconfig.c (main): Likewise.
24850         * genconstants.c (main): Likewise.
24851         * genemit.c (main): Likewise.
24852         * genextract.c (main): Likewise.
24853         * genflags.c (main): Likewise.
24854         * genopinit.c (main): Likewise.
24855         * genoutput.c (main): Likewise.
24856         * genpeep.c (main): Likewise.
24857         * genrecog.c (main): Likewise.
24858         * genpreds.c (main): Likewise.
24859         * gensupport.h (in_fname): Move to read-md.h.
24860         (init_md_reader_args_cb): Rename to...
24861         (init_rtx_reader_args_cb): ...this and return a bool.
24862         (init_md_reader_args): Rename to...
24863         (init_rtx_reader_args): ...this and return a bool.
24864         (include_callback): Move to read-md.h.
24865         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
24866         (file_name_list, first_dir_md_include): Move to read-md.c
24867         (first_bracket_include): Delete unused variable.
24868         (last_dir_md_include): Move to read-md.c.
24869         (process_include): Delete, moving code to read-md.c:handle_include.
24870         (process_rtx): Don't handle INCLUDE.
24871         (save_string): Delete.
24872         (rtx_handle_directive): New function.
24873         (init_md_reader_args_cb): Rename to...
24874         (init_rtx_reader_args_cb): ...this and return a boolean success value.
24875         Use read_md_args.
24876         (init_md_reader_args): Rename to...
24877         (init_rtx_reader_args): ...this and return a boolean success value.
24878         * rtl.def (INCLUDE): Delete.
24879         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
24880         argument.
24881         * read-rtl.c (read_conditions): Don't gobble ')' here.
24882         (read_mapping): Likewise.
24883         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
24884         Handle top-level non-rtx constructs here rather than in read_rtx_1.
24885         Store the whole queue in *X.  Remove call to init_md_reader.
24886         (read_rtx_1): Rename to...
24887         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
24888         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
24889         here.
24890         (read_nested_rtx): New function.  Handle (nil) here rather than
24891         in read_rtx_code.
24892         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
24893         gobble ')' here.
24894         * read-md.h (directive_handler_t): New type.
24895         (in_fname, include_callback): Moved from read-md.h.
24896         (read_constants, init_md_reader): Delete.
24897         (read_md_files): Declare.
24898         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
24899         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
24900         from gensupport.c.
24901         (read_constants): Rename to...
24902         (handle_constants): ...this.  Don't gobble ')' here.
24903         (handle_include, handle_file, handle_toplevel_file)
24904         (parse_include): New functions, mostly taken from gensupport.c.
24905         (init_md_reader): Subsume into...
24906         (read_md_files): ...this new function.
24907
24908 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24909
24910         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
24911         (unread_char): Decrement read_md_lineno after putting back '\n'.
24912         * read-md.c (fatal_with_file_and_line): Push back any characters
24913         that we decide not to add to the context.
24914         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
24915         fatal_expected_char in cases where '/' ends a line (for example).
24916         (read_name): Don't increment read_md_lineno here.
24917         (read_escape): Likewise.
24918         (read_quoted_string): Likewise.
24919         (read_braced_string): Likewise.
24920
24921 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24922
24923         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
24924         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
24925         * genconstants.c: Include read-md.h.
24926         * read-rtl.c (md_constants): Move to read-md.c.
24927         (md_name): Move to read-md.h.
24928         (initialize_iterators): Use leading_string_hash instead of def_hash
24929         and leading_string_eq_p instead of def_name_eq_p.
24930         (read_name): Move to read-md.c.
24931         (def_hash, def_name_eq_p): Delete.
24932         (read_constants, traverse_md_constants): Move to read-md.c.
24933         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
24934         * read-md.h: Include hashtab.h.
24935         (md_name): Moved from read-rtl.c.
24936         (md_constant): Moved from read-md.h.
24937         (leading_string_hash, leading_string_eq_p, read_name)
24938         (read_constants, traverse_md_constants): Declare.
24939         * read-md.c (md_constants): Moved from read-rtl.c.
24940         (leading_string_hash, leading_string_eq_p): New functions.
24941         (read_name, read_constants, traverse_md_constants): Moved from
24942         read-rtl.c.
24943
24944 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24945
24946         * read-rtl.c (md_name): New structure.
24947         (read_name): Take an md_name instead of a buffer pointer.
24948         Use the "string" field instead of strcpy when expanding constants.
24949         (read_constants): Remove the tmp_char argument.  Update the calls
24950         to read_name, using two local name buffers instead of the tmp_char
24951         argument.  Merge the constant-creation code.
24952         (read_conditions): Remove the tmp_char argument.  Update the calls
24953         to read_name, using a local name buffer instead of the tmp_char
24954         argument.
24955         (read_mapping): Replace tmp_char variable with a local name buffer.
24956         Update the calls to read_name.
24957         (read_rtx_1): Likewise.  Update the calls to read_constants and
24958         read_conditions.
24959
24960 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24961
24962         * Makefile.in (build/read-md.o): Depend on errors.h.
24963         * read-md.h (error_with_line): Declare.
24964         * read-md.c: Include errors.h.
24965         (message_with_line_1): New function, extracted from...
24966         (message_with_line): ...here.
24967         (error_with_line): New function.
24968         * genattrtab.c: If a call to message_with_line is followed by
24969         "have_error = 1;", replace both statements with a call to
24970         error_with_line.
24971         * genoutput.c: Likewise.
24972         * genpreds.c: Likewise.
24973         * genrecog.c: If a call to message_with_line is followed by
24974         "error_count++;", replace both statements with a call to
24975         error_with_line.
24976         (errorcount): Delete.
24977         (main): Don't check it.
24978         * gensupport.c: If a call to message_with_line is followed by
24979         "errors = 1;", replace both statements with a call to error_with_line.
24980         (errors): Delete.
24981         (process_define_cond_exec): Check have_error instead of errors.
24982         (init_md_reader_args_cb): Likewise.  Don't set errors.
24983
24984 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24985
24986         * read-md.h (read_md_file): Declare.
24987         (read_char, unread_char): New functions.
24988         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
24989         (read_quoted_string, read_string): Remove FILE * argument.
24990         * read-md.c (read_md_file): New variable.
24991         (read_md_filename, read_md_lineno): Update comments and remove
24992         unnecessary initialization.
24993         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
24994         (read_escape, read_quoted_string, read_braced_string, read_string):
24995         Remove FILE * argument.  Update calls accordingly, using read_char
24996         and unread_char instead of getc and ungetc.
24997         * rtl.h (read_rtx): Remove FILE * argument.
24998         * read-rtl.c (iterator_group): Remove FILE * argument from
24999         "find_builtin".
25000         (iterator_traverse_data): Remove "infile" field.
25001         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
25002         (add_mapping, read_name, read_constants, read_conditions)
25003         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
25004         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
25005         Remove file arguments from all calls, using read_char and unread_char
25006         instead of getc and ungetc.
25007         * gensupport.c (process_include): Preserve read_md_file around
25008         the include.  Set read_md_file to the handle of the included file.
25009         Update call to read_rtx.
25010         (init_md_reader_args_cb): Set read_md_file to the handle of the file
25011         and remove local FILE *.  Update calls to read_rtx.
25012
25013 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
25014
25015         * read-md.h (read_rtx_lineno): Rename to...
25016         (read_md_lineno): ...this.
25017         (read_rtx_filename): Rename to...
25018         (read_md_filename): ...this.
25019         (copy_rtx_ptr_loc): Rename to...
25020         (copy_md_ptr_loc): ...this.
25021         (print_rtx_ptr_loc): Rename to...
25022         (print_md_ptr_loc): ...this.
25023         * read-md.c: Likewise.  Update references after renaming.
25024         (string_obstack): Replace RTL with MD in comment.
25025         (set_rtx_ptr_loc): Rename to...
25026         (set_md_ptr_loc): ...this.
25027         (get_rtx_ptr_loc): Rename to...
25028         (get_md_ptr_loc): ...this.
25029         * genconditions.c: Update references after renaming.
25030         * genemit.c: Likewise.
25031         * genoutput.c: Likewise.
25032         * genpreds.c: Likewise.
25033         * gensupport.c: Likewise.
25034         * read-rtl.c: Likewise.
25035
25036 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
25037
25038         * Makefile.in (READ_MD_H): New variable.
25039         (BUILD_RTL): Add build/read-md.o.
25040         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
25041         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
25042         (build/genattrtab.o, build/genconditions.o build/genemit.o)
25043         (build/genextract.o, build/genflags.o, build/genoutput.o)
25044         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
25045         (build/read-md.o): New rule.
25046         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
25047         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
25048         * coretypes.h: ...here.
25049         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
25050         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
25051         * genattr.c: Include read-md.h.
25052         * genattrtab.c: Likewise.
25053         * genconditions.c: Likewise.
25054         * genemit.c: Likewise.
25055         * genextract.c: Likewise.
25056         * genflags.c: Likewise.
25057         * genoutput.c: Likewise.
25058         * genpreds.c: Likewise.
25059         * genrecog.c: Likewise.
25060         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
25061         (join_c_conditions, print_c_condition, read_rtx_filename)
25062         (read_rtx_lineno): Move to read-md.h.
25063         * read-rtl.c: Include read-md.h.
25064         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
25065         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
25066         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
25067         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
25068         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
25069         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
25070         (read_braced_string, read_string): Move to read-md.c.
25071         (read_rtx): Move some initialization to init_md_reader and call
25072         init_md_reader here.
25073         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
25074         Move to read-md.h.
25075         * gensupport.c: Include read-md.h.
25076         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
25077         * read-md.h, read-md.c: New files.
25078
25079 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
25080
25081         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
25082         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
25083         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
25084         * config/moxie/moxie.c (moxie_function_value): Make static.
25085         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
25086         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
25087
25088 2010-06-10  Martin Jambor  <mjambor@suse.cz>
25089
25090         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
25091         * dbgcnt.def (tree_sra): New counter.
25092         * tree-sra.c: Include dbgcnt.h.
25093         (gate_intra_sra): Check tree_sra debug counter.
25094
25095 2010-06-10  Martin Jambor  <mjambor@suse.cz>
25096
25097         PR tree-optimization/44258
25098         * tree-sra.c (build_access_subtree): Return false iff there is a
25099         partial overlap.
25100         (build_access_trees): Likewise.
25101         (analyze_all_variable_accesses): Disqualify candidates if
25102         build_access_trees returns true for them.
25103
25104 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
25105
25106         PR debug/41371
25107         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
25108         tail-recurse into canonical node.  Fast-forward over
25109         non-canonical VALUEs.
25110
25111 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
25112
25113         PR boostrap/44470
25114         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
25115         (*addsi_1_zext) <TYPE_LEA>: Likewise.
25116         (add lea splitter): Likewise.
25117         (add_zext lea splitter): Likewise.
25118
25119 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
25120
25121         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
25122
25123 2010-06-10  Jan Hubicka  <jh@suse.cz>
25124
25125         * df-problems.c (df_live_problem_data): Add live_bitmaps.
25126         (df_live_alloc): Initialize problem data and live_osbtacks.
25127         (df_live_finalize): Remove obstack, problem data; do not
25128         clear all bitmaps.
25129         (df_live_top_dump, df_live_bottom_dump): Do not dump old
25130         data when not allocated.
25131         (df_live_verify_solution_start): Do not allocate problem data.
25132         (df_live_verify_solution_end): Check if out is allocated.
25133         (struct df_md_problem_data): New structure.
25134         (df_md_alloc): Allocate problem data.
25135         (df_md_free): Free problem data; do not clear bitmaps.
25136
25137 2010-06-10  Jan Beulich  <jbeulich@novell.com>
25138
25139         PR bootstrap/37304
25140         * configure.ac: Replace $() with ${} when intending to expand
25141         variables rather than invoking commands.
25142         * configure: Re-generate.
25143
25144 2010-06-10  Jan Hubicka  <jh@suse.cz>
25145
25146         PR rtl-optimization/44460
25147         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
25148         TYPE_NEEDS_CONSTRUCTING sanity check.
25149
25150 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
25151
25152         * doc/include/fdl.texi: Move to GFDL version 1.3.
25153
25154         * doc/cpp.texi: Move to GFDL version 1.3.
25155         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
25156         * doc/gccint.texi: Move to GFDL version 1.3.
25157         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
25158         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
25159         * doc/invoke.texi: Move to GFDL version 1.3.
25160
25161 2010-06-09  Jan Hubicka  <jh@suse.cz>
25162
25163         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
25164         Break out from ...
25165         (propagate) ... here; swap the order.
25166
25167 2010-06-09  Jan Hubicka  <jh@suse.cz>
25168
25169         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
25170         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
25171         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
25172         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
25173
25174 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
25175
25176         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
25177         Do not the gather memory reference in the outer loop if the step
25178         is not a constant.
25179
25180 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
25181
25182         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
25183         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
25184         8 to 4.  Minor change of the related comments.
25185
25186 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
25187
25188         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
25189         the scev analysis when the variable is not used outside the loop
25190         in a close phi node: call compute_overall_effect_of_inner_loop.
25191
25192 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
25193
25194         * graphite-sese-to-poly.c (single_pred_cond): Renamed
25195         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
25196         (build_sese_conditions_before): Renamed call to single_pred_cond.
25197         (build_sese_conditions_after): Same.
25198
25199 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
25200
25201         * graphite-poly.h: Fix comments and indentation.
25202         * graphite-sese-to-poly.c: Same.
25203         (build_sese_conditions_before): Compute stmt and gbb only when needed.
25204         * tree-chrec.c: Fix comments and indentation.
25205         (tree-ssa-loop-niter.c): Same.
25206
25207 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
25208
25209         PR rtl-optimization/42461
25210         * dce.c (deletable_insn_p): Return true for const or pure calls again.
25211         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
25212
25213 2010-06-09  Jan Hubicka  <jh@suse.cz>
25214
25215         * bitmap.c (bitmap_and): Walk array forward.
25216         (bitmap_and_compl_into): Likewise.
25217         (bitmap_xor): Likewise.
25218         (bitmap_xor_into):  Likewise.
25219         (bitmap_equal_p): Likewise.
25220         (bitmap_intersect_p): Likewise.
25221         (bitmap_intersect_compl_p): Likewise.
25222         (bitmap_ior_and_into): Likewise.
25223         (bitmap_elt_copy): Likewise.
25224         (bitmap_and_compl): Likewise.
25225         (bitmap_elt_ior): Likewise.
25226
25227 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
25228
25229         * opts-common.c (prune_options): Ensure replacement argv array
25230         is correctly terminated by a NULL entry.
25231
25232 2010-06-09  Jan Hubicka  <jh@suse.cz>
25233
25234         * cgraph.h (varpool_first_static_initializer,
25235         varpool_next_static_initializer): Make checking only when
25236         checking enabled.
25237         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
25238         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
25239         gcc_assert to gcc_checking_assert.
25240         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
25241         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
25242         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
25243         op_iter_init_phiuse, op_iter_init_phidef,
25244         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
25245         gcc_checking_assert.
25246         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
25247         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
25248         partition_is_global, live_on_entry, live_on_exit,
25249         live_merge_and_clear): Likewise.
25250         * system.h (gcc_checking_assert): New macro.
25251         * gimple.h (set_bb_seq): Use gcc_checking_assert.
25252
25253 2010-06-09  Jason Merrill  <jason@redhat.com>
25254
25255         * Makefile.in (TAGS): Collect tags info from c-family.
25256
25257 2010-06-09  Jan Hubicka  <jh@suse.cz>
25258
25259         * gimple.h (gcc_gimple_checking_assert): New macro.
25260         (gimple_set_def_ops, gimple_set_use_ops,
25261         gimple_set_vuse, gimple_set_vdef,
25262         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
25263         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
25264         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
25265         gimple_asm_output_op, gimple_asm_output_op_ptr,
25266         gimple_asm_set_output_op, gimple_asm_clobber_op,
25267         gimple_asm_set_clobber_op, gimple_asm_label_op,
25268         gimple_asm_set_label_op, gimple_try_set_kind,
25269         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
25270         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
25271         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
25272         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
25273         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
25274         gimple_omp_for_set_initial, gimple_omp_for_final,
25275         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
25276         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
25277         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
25278         conditional with ENABLE_GIMPLE_CHECKING.
25279         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
25280
25281 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
25282
25283         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
25284         (get_computation_cost_at): Use it.
25285         (determine_use_iv_cost_condition): Likewise.
25286         (determine_iv_cost): Likewise.
25287
25288 2010-06-09  Richard Guenther  <rguenther@suse.de>
25289
25290         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
25291         replace constants.
25292
25293 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
25294
25295         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
25296
25297 2010-06-09  Martin Jambor  <mjambor@suse.cz>
25298
25299         PR tree-optimization/44423
25300         * tree-sra.c (dump_access): Dump also grp_assignment_read.
25301         (analyze_access_subtree): Pass negative allow_replacements to children
25302         if the current type is scalar.
25303
25304 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
25305
25306         PR testsuite/42843
25307         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
25308         * doc/plugins.texi (Plugin license check): Update information
25309         on type of plugin_is_GPL_compatible.
25310         * Makefile.in (PLUGINCC): Define as $(COMPILER).
25311         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
25312
25313 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
25314
25315         * config/arm/arm.c (thumb2_reorg): New function.
25316         (arm_reorg): Call it.
25317         * config/arm/thumb2.md (define_peephole2 for flag clobbering
25318         arithmetic operations): Delete.
25319
25320 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
25321
25322         PR target/44067
25323         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
25324         e500v2 target.
25325
25326 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
25327
25328         PR plugins/44459
25329         * gcc-plugin.h: Encapsulate all declarations in extern "C".
25330
25331 2010-06-08  Jan Hubicka  <jh@suse.cz>
25332
25333         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
25334         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
25335
25336 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
25337
25338         PR tree-optimization/39874
25339         PR middle-end/28685
25340         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
25341         Declare.
25342         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
25343         same_bool_result_p): New.
25344         (and_var_with_comparison, and_var_with_comparison_1,
25345         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
25346         (or_var_with_comparison, or_var_with_comparison_1,
25347         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
25348         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
25349         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
25350         of combine_comparisons.
25351         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
25352
25353 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
25354
25355         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
25356         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
25357         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
25358         pdp11_function_value_regno_p): New functions.
25359         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
25360         TARGET_FUNCTION_VALUE_REGNO_P): Define.
25361
25362 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
25363
25364         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
25365         Thumb-2 in the MINUS case.
25366
25367 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
25368
25369         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
25370
25371         * doc/gty.texi (GTY Options): Document typed GC allocation and
25372         variable_size GTY option.
25373
25374         * ggc-internal.h: New.
25375
25376         * ggc.h: Update copyright year.
25377         (digit_string): Move to stringpool.c.
25378         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
25379         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
25380         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
25381         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
25382         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
25383         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
25384         (ggc_force_collect, ggc_get_size, ggc_statistics)
25385         (ggc_print_common_statistics): Move to ggc-internal.h.
25386         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
25387         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
25388         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
25389         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
25390         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
25391         (ggc_alloc_zone_pass_stat): Remove.
25392         (ggc_internal_alloc_stat, ggc_internal_alloc)
25393         (ggc_internal_cleared_alloc_stat): New.
25394         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
25395         (ggc_internal_vec_alloc_stat)
25396         (ggc_internal_cleared_vec_alloc_stat)
25397         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
25398         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
25399         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
25400         (ggc_cleared_alloc_ptr_array_two_args): New.
25401         (htab_create_ggc, splay_tree_new_ggc): Redefine.
25402         (ggc_splay_alloc): Change the type of the first argument to
25403         enum gt_types_enum.
25404         (ggc_alloc_string): Make macro.
25405         (ggc_alloc_string_stat): New.
25406         (ggc_strdup): Redefine.
25407         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
25408         (ggc_alloc_rtvec_sized): New.
25409         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
25410         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
25411         (ggc_internal_cleared_alloc_zone_stat)
25412         (ggc_internal_zone_alloc_stat)
25413         (ggc_internal_zone_cleared_alloc_stat)
25414         (ggc_internal_zone_vec_alloc_stat)
25415         (ggc_alloc_zone_rtx_def_stat)
25416         (ggc_alloc_zone_tree_node_stat)
25417         (ggc_alloc_zone_cleared_tree_node_stat)
25418         (ggc_alloc_cleared_gimple_statement_d_stat): New.
25419
25420         * ggc-common.c: Include ggc-internal.h.
25421         (ggc_internal_cleared_alloc_stat): Rename from
25422         ggc_alloc_cleared_stat.
25423         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
25424         (ggc_calloc): Remove.
25425         (ggc_cleared_alloc_htab_ignore_args): New.
25426         (ggc_cleared_alloc_ptr_array_two_args): New.
25427         (ggc_splay_alloc): Add obj_type parameter.
25428         (init_ggc_heuristics): Formatting fixes.
25429
25430         * ggc-none.c: Update copyright year.
25431         (ggc_alloc_stat): Rename to ggc_alloc_stat.
25432         (ggc_alloc_cleared_stat): Rename to
25433         ggc_internal_cleared_alloc_stat.
25434         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
25435
25436         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
25437         Remove references to ggc_alloc in comments.
25438         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
25439         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
25440         (new_ggc_zone, destroy_ggc_zone): Remove.
25441         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
25442
25443         * ggc-zone.c: Include ggc-internal.h.  Remove references to
25444         ggc_alloc in comments.
25445         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
25446         (ggc_internal_alloc_zone_pass_stat): New.
25447         (ggc_internal_cleared_alloc_zone_stat): New.
25448         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
25449         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
25450         (new_ggc_zone, destroy_ggc_zone): Remove.
25451
25452         * stringpool.c: Update copyright year.  Include ggc-internal.h
25453         (digit_vector): Make static.
25454         (digit_string): Moved from ggc.h.
25455         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
25456         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
25457
25458         * Makefile.in (GGC_INTERNAL_H): New.
25459         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
25460         $(GGC_INTERNAL_H) to dependencies.
25461
25462         * gengtype.c: Update copyright year.
25463         (walk_type): Accept variable_size GTY option.
25464         (USED_BY_TYPED_GC_P): New macro.
25465         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
25466         whitespace at the end of strings.
25467         (get_type_specifier, variable_size_p): New functions.
25468         (alloc_quantity, alloc_zone): New enums.
25469         (write_typed_alloc_def): New function.
25470         (write_typed_struct_alloc_def): Likewise.
25471         (write_typed_typed_typedef_alloc_def): Likewise.
25472         (write_typed_alloc_defns): Likewise.
25473         (output_typename, write_splay_tree_allocator_def): Likewise.
25474         (write_splay_tree_allocators): Likewise.
25475         (main): Call write_typed_alloc_defns and
25476         write_splay_tree_allocators.
25477
25478         * lto-streamer.h (lto_file_decl_data_ptr): New.
25479
25480         * passes.c (order): Define using cgraph_node_ptr.
25481
25482         * strinpool.c (struct string_pool_data): Declare nested_ptr using
25483         ht_identifier_ptr.
25484
25485         * gimple.h (union gimple_statement_d): Likewise.
25486
25487         * rtl.h (struct rtx_def): Likewise.
25488         (struct rtvec_def): Likewise.
25489
25490         * tree.h (union tree_node): Likewise.
25491
25492         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
25493
25494         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
25495
25496         * tree-scalar-evolution.c (scev_initialize): Likewise.
25497
25498         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
25499
25500         * dwarf2asm.c (dw2_force_const_mem): Likewise.
25501
25502         * omp-low.c (lower_omp_critical): Likewise.
25503
25504         * bitmap.h (struct bitmap_head_def): Update comment to not
25505         reference ggc_alloc.
25506
25507         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
25508
25509         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
25510
25511         * ipa-prop.c (duplicate_ggc_array): Rename to
25512         duplicate_ipa_jump_func_array.  Use typed GC allocation.
25513         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
25514
25515         * gimple.c (gimple_alloc_stat): Use
25516         ggc_alloc_cleared_gimple_statement_d_stat.
25517
25518         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
25519
25520         * tree.c (make_node_stat): Use
25521         ggc_alloc_zone_cleared_tree_node_stat.
25522         (make_tree_vec_stat): Likewise.
25523         (build_vl_exp_stat): Likewise.
25524         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
25525         (make_tree_binfo_stat): Likewise.
25526         (tree_cons_stat): Likewise.
25527
25528         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
25529         (shallow_copy_rtx_stat): Likewise.
25530         (make_node_stat): Likewise.
25531
25532         * lto-symtab.c: Fix comment.
25533
25534         * tree-cfg.c (create_bb): Update comment to not reference
25535         ggc_alloc_cleared.
25536         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
25537
25538         * varpool.c (varpool_node): Use typed GC allocation.
25539         (varpool_extra_name_alias): Likewise.
25540
25541         * varasm.c (emutls_decl): Likewise.
25542         (get_unnamed_section): Likewise.
25543         (get_noswitch_section): Likewise.
25544         (get_section): Likewise.
25545         (get_block_for_section): Likewise.
25546         (build_constant_desc): Likewise.
25547         (create_constant_pool): Likewise.
25548         (force_const_mem): Likewise.
25549
25550         * tree.c (build_vl_exp_stat): Likewise.
25551         (build_real): Likewise.
25552         (build_string): Likewise.
25553         (decl_debug_expr_insert): Likewise.
25554         (decl_value_expr_insert): Likewise.
25555         (type_hash_add): Likewise.
25556         (build_omp_clause): Likewise.
25557
25558         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
25559
25560         * tree-ssa.c (init_tree_ssa): Likewise.
25561
25562         * tree-ssa-structalias.c (heapvar_insert): Likewise.
25563
25564         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
25565
25566         * tree-ssa-loop-niter.c (record_estimate): Likewise.
25567
25568         * tree-ssa-alias.c (get_ptr_info): Likewise.
25569
25570         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
25571
25572         * tree-phinodes.c (allocate_phi_node): Likewise.
25573
25574         * tree-iterator.c (tsi_link_before): Likewise.
25575         (tsi_link_after): Likewise.
25576
25577         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
25578
25579         * tree-dfa.c (create_var_ann): Likewise.
25580
25581         * tree-cfg.c (create_bb): Likewise.
25582
25583         * toplev.c (alloc_for_identifier_to_locale): Likewise.
25584         (general_init): Likewise.
25585
25586         * stringpool.c (stringpool_ggc_alloc): Likewise.
25587         (gt_pch_save_stringpool): Likewise.
25588
25589         * sese.c (if_region_set_false_region): Likewise.
25590
25591         * passes.c (do_per_function_toporder): Likewise.
25592
25593         * optabs.c (set_optab_libfunc): Likewise.
25594         (set_conv_libfunc): Likewise.
25595
25596         * lto-symtab.c (lto_symtab_register_decl): Likewise.
25597
25598         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
25599         (input_eh_region): Likewise.
25600         (input_eh_lp): Likewise.
25601         (make_new_block): Likewise.
25602         (unpack_ts_real_cst_value_fields): Likewise.
25603
25604         * lto-section-in.c (lto_new_in_decl_state): Likewise.
25605
25606         * lto-cgraph.c (input_node_opt_summary): Likewise.
25607
25608         * loop-init.c (loop_optimizer_init): Likewise.
25609
25610         * lambda.h (lambda_vector_new): Likewise.
25611
25612         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
25613
25614         * ira.c (update_equiv_regs): Likewise.
25615
25616         * ipa.c (cgraph_node_set_new): Likewise.
25617         (cgraph_node_set_add): Likewise.
25618         (varpool_node_set_new): Likewise.
25619         (varpool_node_set_add): Likewise.
25620
25621         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
25622         (duplicate_ipa_jump_func_array): Likewise.
25623         (ipa_read_node_info): Likewise.
25624
25625         * ipa-cp.c (ipcp_create_replace_map): Likewise.
25626
25627         * integrate.c (get_hard_reg_initial_val): Likewise.
25628
25629         * gimple.c (gimple_alloc_stat): Likewise.
25630         (gimple_build_omp_for): Likewise.
25631         (gimple_seq_alloc): Likewise.
25632         (gimple_copy): Likewise.
25633
25634         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
25635         (gsi_insert_after_without_update): Likewise.
25636
25637         * function.c (add_frame_space): Likewise.
25638         (insert_temp_slot_address): Likewise.
25639         (assign_stack_temp_for_type): Likewise.
25640         (allocate_struct_function): Likewise.
25641         (types_used_by_var_decl_insert): Likewise.
25642
25643         * except.c (init_eh_for_function): Likewise.
25644         (gen_eh_region): Likewise.
25645         (gen_eh_region_catch): Likewise.
25646         (gen_eh_landing_pad): Likewise.
25647         (add_call_site): Likewise.
25648
25649         * emit-rtl.c (get_mem_attrs): Likewise.
25650         (get_reg_attrs): Likewise.
25651         (start_sequence): Likewise.
25652         (init_emit): Likewise.
25653
25654         * dwarf2out.c (new_cfi): Likewise.
25655         (queue_reg_save): Likewise.
25656         (dwarf2out_frame_init): Likewise.
25657         (new_loc_descr): Likewise.
25658         (find_AT_string): Likewise.
25659         (new_die): Likewise.
25660         (add_var_loc_to_decl): Likewise.
25661         (clone_die): Likewise.
25662         (clone_as_declaration): Likewise.
25663         (break_out_comdat_types): Likewise.
25664         (new_loc_list): Likewise.
25665         (loc_descriptor): Likewise.
25666         (add_loc_descr_to_each): Likewise.
25667         (add_const_value_attribute): Likewise.
25668         (tree_add_const_value_attribute): Likewise.
25669         (add_comp_dir_attribute): Likewise.
25670         (add_name_and_src_coords_attributes): Likewise.
25671         (lookup_filename): Likewise.
25672         (store_vcall_insn): Likewise.
25673         (dwarf2out_init): Likewise.
25674
25675         * dbxout.c (dbxout_init): Likewise.
25676
25677         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
25678
25679         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
25680
25681         * config/score/score7.c (score7_output_external): Likewise.
25682
25683         * config/score/score3.c (score3_output_external): Likewise.
25684
25685         * config/s390/s390.c (s390_init_machine_status): Likewise.
25686
25687         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
25688         (rs6000_init_machine_status): Likewise.
25689         (output_toc): Likewise.
25690
25691         * config/pa/pa.c (pa_init_machine_status): Likewise.
25692         (get_deferred_plabel): Likewise.
25693
25694         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
25695
25696         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
25697
25698         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
25699
25700         * config/mep/mep.c (mep_init_machine_status): Likewise.
25701         (mep_note_pragma_flag): Likewise.
25702
25703         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
25704
25705         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
25706
25707         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
25708
25709         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
25710         (i386_pe_maybe_record_exported_symbol): Likewise.
25711
25712         * config/i386/i386.c (get_dllimport_decl): Likewise.
25713         (ix86_init_machine_status): Likewise.
25714         (assign_386_stack_local): Likewise.
25715
25716         * config/frv/frv.c (frv_init_machine_status): Likewise.
25717
25718         * config/darwin.c (machopic_indirection_name): Likewise.
25719
25720         * config/cris/cris.c (cris_init_machine_status): Likewise.
25721
25722         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
25723
25724         * config/avr/avr.c (avr_init_machine_status): Likewise.
25725
25726         * config/arm/arm.c (arm_init_machine_status): Likewise.
25727
25728         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
25729         (alpha_need_linkage): Likewise.
25730         (alpha_use_linkage): Likewise.
25731
25732         * cgraph.c (cgraph_allocate_node): Likewise.
25733         (cgraph_create_edge_1): Likewise.
25734         (cgraph_create_indirect_edge): Likewise.
25735         (cgraph_add_asm_node): Likewise.
25736
25737         * cfgrtl.c (init_rtl_bb_info): Likewise.
25738
25739         * cfgloop.c (alloc_loop): Likewise.
25740         (rescan_loop_exit): Likewise.
25741
25742         * cfg.c (init_flow): Likewise.
25743         (alloc_block): Likewise.
25744         (unchecked_make_edge): Likewise.
25745
25746         * c-parser.c (c_parse_init): Likewise.
25747         (c_parse_file): Likewise.
25748
25749         * c-decl.c (bind): Likewise.
25750         (record_inline_static): Likewise.
25751         (push_scope): Likewise.
25752         (make_label): Likewise.
25753         (lookup_label_for_goto): Likewise.
25754         (finish_struct): Likewise.
25755         (finish_enum): Likewise.
25756         (c_push_function_context): Likewise.
25757
25758         * bitmap.c (bitmap_element_allocate): Likewise.
25759         (bitmap_gc_alloc_stat): Likewise.
25760
25761         * alias.c (record_alias_subset): Likewise.
25762         (init_alias_analysis): Likewise.
25763
25764 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
25765
25766         * fold-const.c (fold_comparison): Remove redundant parenthesis.
25767         * tree-inline.c (expand_call_inline): Pass translated return value of
25768         cgraph_inline_failed_string to diagnostic function.
25769
25770 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
25771             Shujing Zhao  <pearly.zhao@oracle.com>
25772
25773         PR c/37724
25774         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
25775         implicit bad conversions is initialization.
25776         (error_init): Use gmsgid instead of msgid for argument name and change
25777         the call for error.
25778         (pedwarn_init): Use gmsgid instead of msgid for argument name and
25779         change the call for pedwarn.
25780         (warning_init): Use gmsgid instead of msgid for argument name and
25781         change the call for warning.
25782
25783 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
25784
25785         * config/mips/mips-protos.h (mips_print_operand): Delete.
25786         (mips_print_operand_address): Delete.
25787         * config/mips/mips.h (mips_print_operand_punct): Delete.
25788         (PRINT_OPERAND): Delete.
25789         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25790         (PRINT_OPERAND_ADDRESS): Delete.
25791         * config/mips/mips.c (mips_print_operand_punct): Make static.
25792         (mips_print_operand_address): Make static.
25793         (mips_print_operand): Make static.  Call
25794         mips_print_operand_punct_valid_p.
25795         (mips_print_operand_punct_valid_p): New function.
25796         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
25797         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
25798
25799 2010-06-07  Jan Hubicka  <jh@suse.cz>
25800
25801         PR middle-end/44454
25802         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
25803         are allocated.
25804
25805 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
25806
25807         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
25808         name of RECORD.
25809
25810 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25811
25812         * doc/sourcebuild.texi (Effective-Target Keywords, Other
25813         attributes): Document gas.
25814
25815 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
25816
25817         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
25818         <TYPE_LEA>: Split instruction.
25819         <default>: Remove alternative 2 handling.
25820         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
25821         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
25822         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
25823
25824         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
25825         (ashift_zext lea splitter): Use DImode for multiplication.
25826
25827         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
25828         to generate addition.
25829
25830 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
25831
25832         * common.opt (fira-verbose): Use Var.
25833         (fpcc-struct-return): Use Init instead of VarExists.
25834         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
25835         toplev.c.
25836         * flags.h (flag_signed_char, flag_short_enums,
25837         flag_pcc_struct_return, flag_ira_verbose,
25838         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
25839         * toplev.c (flag_detailed_statistics, flag_signed_char,
25840         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
25841         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
25842         * toplev.h (flag_crossjumping, flag_if_conversion,
25843         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
25844         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
25845         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
25846         flag_cprop_registers, time_report, flag_ira_loop_pressure,
25847         flag_ira_coalesce, flag_ira_move_spills,
25848         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
25849
25850 2010-06-07  Jan Hubicka  <jh@suse.cz>
25851
25852         * df-core.c (df_analyze_problem): Do verification after allocation.
25853
25854         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
25855         (df_lr_alloc): Initialize problem data; move bitmaps to
25856         lr_bitmaps obstack.
25857         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
25858         (df_lr_verify_solution_start): Do not initialize problem data;
25859         allocate bitmaps in lr_bitmaps.
25860         (df_lr_verify_solution_end): Do not free problem data.
25861
25862 2010-06-07  Jan Hubicka  <jh@suse.cz>
25863
25864         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
25865         if caller is noreturn.
25866         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
25867         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
25868         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
25869         * ipa-pure-const.c (check_decl): Add IPA parameter.
25870         (state_from_flags): New function.
25871         (better_state, worse_state): New functions.
25872         (check_call): When in IPA mode, do not care about callees.
25873         (check_load, check_store): Update.
25874         (check_ipa_load, check_ipa_store): New.
25875         (check_stmt): When in IPA mode, use IPA checkers.
25876         (analyze_function): Use state_from_flags.
25877         (propagate): Check indirect edges and references.
25878
25879 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
25880
25881         PR rtl-optimization/44404
25882         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
25883         of count_occurrences to see if it's safe to modify mem_insn.
25884
25885 2010-06-07  Richard Guenther  <rguenther@suse.de>
25886
25887         * gimplify.c (gimplify_cleanup_point_expr): For empty body
25888         and EH-only cleanup drop the cleanup instead of inserting it
25889         unconditionally.
25890
25891 2010-06-07  Ira Rosen  <irar@il.ibm.com>
25892
25893         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
25894         documentation.
25895         * targhooks.c (default_builtin_vectorization_cost): New function.
25896         * targhooks.h (default_builtin_vectorization_cost): Declare.
25897         * target.h (enum vect_cost_for_stmt): Define.
25898         (builtin_vectorization_cost): Change argument and comment.
25899         * tree-vectorizer.h: Remove cost model macros.
25900         * tree-vect-loop.c: Include target.h.
25901         (vect_get_cost): New function.
25902         (vect_estimate_min_profitable_iters): Replace cost model macros with
25903         calls to vect_get_cost.
25904         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
25905         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
25906         default implementation.
25907         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
25908         calls to target hook builtin_vectorization_cost.
25909         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
25910         Likewise.
25911         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
25912         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
25913         implementation to return costs.
25914         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
25915         * config/spu/spu.h: Remove vectorizer cost model macros.
25916         * config/i386/i386.h: Likewise.
25917         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
25918         a call to target hook builtin_vectorization_cost.
25919
25920 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
25921
25922         PR target/44319
25923         * config/i386/i386.c (override_options): Turn zee pass on for level 2
25924         and above and defer till target is known.
25925         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
25926         turn off otherwise.
25927
25928 2010-05-25  Jan Hubicka  <jh@suse.cz>
25929
25930         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
25931         (df_compact_blocks): Likewise.
25932         * df.h (struct df): Turn hardware_regs_used,
25933         regular_block_artificial_uses, eh_block_artificial_uses,
25934         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
25935         bitmap_head.
25936         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
25937         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
25938         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
25939         df_scan_blocks, df_insn_delete, df_insn_rescan,
25940         df_insn_rescan_debug_internal, df_insn_rescan_all,
25941         df_process_deferred_rescans, df_process_deferred_rescans,
25942         df_notes_rescan, df_get_call_refs, df_get_call_refs,
25943         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
25944         df_record_entry_block_defs, df_record_exit_block_uses,
25945         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
25946         df_scan_verify): Update.
25947
25948 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
25949
25950         PR c++/44188
25951         * c-common.c (is_typedef_decl): Move this definition ...
25952         * tree.c (is_typedef_decl): ... here.
25953         (typdef_variant_p): Move definition here from cp/tree.c.
25954         * c-common.h (is_typedef_decl): Move this declaration ...
25955         * tree.h (is_typedef_decl): ... here.
25956         (typedef_variant_p): Move declaration here from cp/cp-tree.h
25957         * dwarf2out.c (is_naming_typedef_decl): New function.
25958         (gen_tagged_type_die): Split out of ...
25959         (gen_type_die_with_usage): ... this function. When an anonymous
25960         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
25961         is emitted for the typedef.
25962         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
25963         anonymous tagged types.
25964
25965 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25966
25967         PR c/20000
25968         * c-decl.c (grokdeclarator): Delete warning.
25969
25970 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
25971
25972         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
25973         newly built CALL_EXPR.
25974         * tree-profile.c (tree_profiling): Don't profile functions produced
25975         for built-in stuff.
25976
25977 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
25978
25979         PR bootstrap/44427
25980         PR bootstrap/44428
25981         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
25982         endianness-independent.
25983
25984 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
25985
25986         * c-common.c: Move to c-family/.
25987         * c-common.def: Likewise.
25988         * c-common.h: Likewise.
25989         * c-cppbuiltin.c: Likewise.
25990         * c-dump.c: Likewise.
25991         * c-format.c: Likewise.
25992         * c-format.h : Likewise.
25993         * c-gimplify.c: Likewise.
25994         * c-lex.c: Likewise.
25995         * c-omp.c: Likewise.
25996         * c.opt: Likewise.
25997         * c-opts.c: Likewise.
25998         * c-pch.c: Likewise.
25999         * c-ppoutput.c: Likewise.
26000         * c-pragma.c: Likewise.
26001         * c-pragma.h: Likewise.
26002         * c-pretty-print.c: Likewise.
26003         * c-pretty-print.h: Likewise.
26004         * c-semantics.c: Likewise.
26005         * stub-objc.c: Likewise.
26006
26007         * gengtype.c (get_file_langdir): Special-case files in c-family/.
26008         (get_output_file_with_visibility): Fix name for c-common.h.
26009         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
26010
26011         * c-tree.h: Update include path for moved files.
26012         * c-lang.c: Likewise.
26013         * c-lang.h: Likewise.
26014         * c-parser.c: Likewise.
26015         * c-convert.c: Likewise.
26016         * c-decl.c: Likewise.
26017         * c-objc-common.c: Likewise.
26018         * configure.ac: Make sure c-family/ exists in the build directory.
26019         * configure: Regenerate.
26020         * Makefile.in: Update paths for moved files.  Regroup files per
26021         location and update dependencies.  Move generated_files down after
26022         ALL_GTFILES_H.
26023
26024         * config/spu/spu-c.c: Update paths for moved files.
26025         * config/mep/mep-pragma.c: Likewise.
26026         * config/darwin-c.c: Likewise.
26027         * config/i386/msformat-c.c: Likewise.
26028         * config/i386/i386-c.c: Likewise.
26029         * config/avr/avr-c.c: Likewise.
26030         * config/sol2-c.c: Likewise.
26031         * config/ia64/ia64-c.c: Likewise.
26032         * config/rs6000/rs6000-c.c: Likewise.
26033         * config/arm/arm.c: Likewise.
26034         * config/arm/arm-c.c: Likewise.
26035         * config/h8300/h8300.c: Likewise.
26036         * config/v850/v850-c.c: Likewise.
26037
26038         * config/t-darwin: Fix dependencies for moved files.
26039         * config/t-sol2: Fix dependencies for moved files.
26040         * config/mep/t-mep: Fix dependencies for moved files.
26041         * config/ia64/t-ia64: Fix dependencies for moved files.
26042         * config/rs6000/t-rs6000: Fix dependencies for moved files.
26043         * config/v850/t-v850: Fix dependencies for moved files.
26044         * config/v850/t-v850e: Fix dependencies for moved files.
26045
26046         * config/m32c/m32c-pragma.c
26047
26048         * po/exgettext: Look in c-family/ also.
26049
26050 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
26051
26052         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
26053         (mark_control_dependent_edges_necessary): Call it instead of marking
26054         the last statement manually.
26055         (propagate_necessity): Likewise.
26056
26057 2010-06-05  Jan Hubicka  <jh@suse.cz>
26058
26059         * basic-block.h (compute_dominance_frontiers): Updated.
26060         (compute_idf): Likewise.
26061
26062         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
26063         for dominance frontiers.
26064         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
26065         (insert_updated_phi_nodes_for): Likewise.
26066         (update_ssa): Likewise.
26067         * cfganal.c (compute_dominance_frontiers_1): Likewise.
26068         (compute_dominance_frontiers): Likewise.
26069         (compute_idf): Likewise.
26070         * df-problems.c (df_md_local_compute): Likewise.
26071
26072 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
26073
26074         * target.h (struct gcc_target): Add memory_move_cost field.
26075         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
26076         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
26077         * targhooks.c (default_memory_move_cost): New function.
26078         * targhooks.h (default_memory_move_cost): Declare function.
26079         * reload.h (memory_move_cost): Declare.
26080         (memory_move_secondary_cost): Change type of 'in' argument to bool.
26081         * reginfo.c (memory_move_cost): New function.
26082         (memory_move_secondary_cost): Change type of 'in' argument to bool.
26083         * ira.h (ira_memory_move_cost): Update comment.
26084         * ira.c (ira_memory_move_cost): Update comment.
26085         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
26086         with memory_move_cost.
26087         * postreload.c (reload_cse_simplify_set): (Ditto.).
26088         * reload1.c (choose_reload_regs): (Ditto.).
26089         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
26090         (MEMORY_MOVE_COST):  Revise documentation.
26091
26092         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
26093         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
26094         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
26095         type of 'in' argument to bool.
26096         (TARGET_MEMORY_MOVE_COST): Define.
26097
26098 2010-06-05  Jan Hubicka  <jh@suse.cz>
26099
26100         * ipa-pure-const.c (propagate): Fix typo in handling of functions
26101         that cannot return.  Be more careful when merging the results with
26102         previously known ones.
26103
26104 2010-06-05  Matthias Klose  <doko@ubuntu.com>
26105
26106         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
26107         function to add the -iplugindir option.
26108         (find_plugindir_spec_function): Add new declaration and function.
26109         (static_spec_func): Use it for "find-plugindir".
26110
26111 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
26112
26113         PR c++/44361
26114         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
26115         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
26116         statement expression.
26117
26118 2010-06-05  Jan Hubicka  <jh@suse.cz>
26119
26120         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
26121         (df_rd_problem_data): Convert sparse_invalidated_by_call,
26122         dense_invalidated_by_call to bitmap head.
26123         (df_rd_alloc, df_rd_bb_local_compute_process_def,
26124         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
26125         df_rd_start_dump, df_lr_verify_transfer_functions,
26126         df_live_verify_transfer_functions, df_chain_create_bb,
26127         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
26128         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
26129         df_simulate_one_insn_forwards, df_md_alloc,
26130         df_md_bb_local_compute_process_def,
26131         df_md_bb_local_compute_process_def, df_md_local_compute,
26132         df_md_transfer_function df_md_free): Update.
26133
26134 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
26135
26136         PR c/44322
26137         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
26138         target type for ADDR_EXPR; require no changes to qualifiers except
26139         for function types.
26140         * c-tree.h (c_build_type_variant): Remove.
26141
26142 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
26143
26144         * genautomata.c (get_excl_set): Do work per element, not per char.
26145         (check_presence_pattern_sets): Similar.
26146         (check_absence_pattern_sets): Similar.
26147
26148 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
26149
26150         * genautomata.c (curr_state_pass_num): Delete.
26151         (min_issue_delay_pass_states): Delete.
26152         (min_issue_delay): Delete.
26153         (initiate_min_issue_delay_pass_states): Delete.
26154         (output_min_issue_delay_table): Compute min_issue_delay_vect
26155         using a breadth-first search variant.
26156         (output_tables): Don't call initiate_min_issue_delay_pass_states.
26157
26158 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
26159
26160         PR boostrap/44421
26161         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
26162         (df_byte_lr_bb_local_compute): Likewise.
26163
26164 2010-06-03  Jason Merrill  <jason@redhat.com>
26165
26166         Implement noexcept operator (5.3.7)
26167         * c-common.c (c_common_reswords): Add noexcept.
26168         * c-common.h (enum rid): Add RID_NOEXCEPT.
26169
26170 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
26171
26172         * config/darwin-driver.c (darwin_default_min_version): Use
26173         GCC-specific formats in diagnostics.
26174         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
26175         diagnostics.
26176         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
26177         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
26178         eval_spec_function, handle_braces, process_brace_body, main,
26179         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
26180         getenv_spec_function, compare_version_strings,
26181         version_compare_spec_function): Use GCC-specific formats in
26182         diagnostics.
26183
26184 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
26185
26186         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
26187         that operand 0 and operand 1 are equal.
26188         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
26189         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
26190         and operand 1 are equal.
26191         <default>: Ditto.  Remove ??? comment.
26192         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
26193         and operand 1 are equal.
26194         <default>: Ditto.  Remove ??? comment.
26195         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
26196         are equal.
26197         (*add<mode>_4) <default>: Ditto.
26198         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
26199
26200 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
26201
26202         * config/i386/i386-protos.h (ix86_print_operand): Declare.
26203         * config/i386/i386.c (ix86_print_operand): Make non-static.
26204         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
26205         * output.h (output_operand): Declare.
26206         * final.c (output_operand): Make non-static.
26207
26208 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
26209
26210         PR rtl-optimization/44013
26211         * sched-deps.c (add_dependence_list_and_free): Don't free lists
26212         when processing debug insns.
26213
26214         PR debug/41371
26215         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
26216         recursing.  Check that recursion is bounded.  Rename inner var
26217         to avoid hiding incoming argument.
26218
26219 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
26220
26221         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
26222         operands[2] == 255.
26223         (*addqi_3): Ditto.
26224         (*addqi_4): Ditto.
26225         (*addqi_5): Ditto.
26226         (*addqi_ext_1_rex64): Ditto.
26227         (*addqi_ext_1): Ditto.
26228
26229         (*addqi_4): Check for incdec_operand in QImode.
26230
26231         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
26232         using SWI mode iterator.
26233         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
26234         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
26235         mode iterator.
26236         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
26237         using SWI mode iterator.
26238
26239 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26240
26241         PR c/25880
26242         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
26243         * c-format.c (gcc_diag_flag_specs): Add hash.
26244         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
26245         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
26246         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
26247         pp_c_cv_qualifiers. Handle qualifiers spelling here.
26248         (pp_c_type_qualifier_list): Call the function above.
26249         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
26250         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
26251         (WARN_FOR_QUALIFIERS): New macro.
26252         (convert_for_assignment): Use it.
26253
26254 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
26255
26256         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
26257
26258 2010-06-04  Jan Hubicka  <jh@suse.cz>
26259
26260         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
26261         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
26262         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
26263         DF_BYTE_LR_OUT): Update for embedded bitmaps.
26264         * fwprop.c (single_def_use_enter_block): Likewise.
26265         * ddg.c (create_ddg_dep_from_intra_loop_link,
26266         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
26267         * loop-iv.c (latch_dominating_def): Likewise.
26268         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
26269         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
26270         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
26271         df_rd_transfer_function, df_rd_top_dump,
26272         df_rd_bottom_dump): Update.
26273         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
26274         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
26275         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
26276         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
26277         df_lr_verify_solution_start, df_lr_verify_solution_end,
26278         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
26279         df_live_free_bb_info, df_live_alloc, df_live_reset,
26280         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
26281         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
26282         df_live_verify_solution_start, df_live_verify_solution_end,
26283         df_live_verify_transfer_functions, df_chain_create_bb,
26284         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
26285         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
26286         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
26287         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
26288         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
26289         df_byte_lr_transfer_function, df_byte_lr_top_dump,
26290         df_byte_lr_bottom_dump, df_create_unused_note,
26291         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
26292         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
26293         df_md_transfer_function, df_md_init, df_md_confluence_0,
26294         df_md_confluence_n,
26295         df_md_top_dump, df_md_bottom_dump): Update.
26296         (struct df_lr_problem_data): Embedd bitmap headers.
26297
26298 2010-06-04  Jan Hubicka  <jh@suse.cz>
26299
26300         * dce.c (dce_process_block): Do not re-scan already marked
26301         instructions.
26302
26303 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
26304
26305         PR rtl-optimization/39871
26306         PR rtl-optimization/40615
26307         PR rtl-optimization/42500
26308         PR rtl-optimization/42502
26309         * ira.c (init_reg_equiv_memory_loc: New function.
26310         (ira): Call it twice.
26311         * reload.h (calculate_elim_costs_all_insns): Declare.
26312         * ira-costs.c: Include "reload.h".
26313         (regno_equiv_gains): New static variable.
26314         (init_costs): Allocate it.
26315         (finish_costs): Free it.
26316         (ira_costs): Call calculate_elim_costs_all_insns.
26317         (find_costs_and_classes): Take estimated elimination costs
26318         into account.
26319         (ira_adjust_equiv_reg_cost): New function.
26320         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
26321         * reload1.c (init_eliminable_invariants, free_reg_equiv,
26322         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
26323         (elim_bb): New static variable.
26324         (reload): Move code out of here into init_eliminable_invariants and
26325         free_reg_equiv.  Call them.
26326         (calculate_elim_costs_all_insns): New function.
26327         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
26328         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
26329         but call note_reg_elim_costly if we turned a valid memory address
26330         into an invalid one.
26331         * Makefile.in (ira-costs.o): Depend on reload.h.
26332
26333 2010-06-04  Julian Brown  <julian@codesourcery.com>
26334
26335         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
26336         for pool ranges.
26337
26338 2010-06-04  Richard Guenther  <rguenther@suse.de>
26339
26340         PR lto/41584
26341         * cgraph.h (struct varpool_node): Add lto_file_data field.
26342         * lto-cgraph.c (input_varpool_node): Initialize it.
26343
26344 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
26345
26346         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
26347         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
26348         predicate in "type" attribute calculation.
26349         (*addsi_1_zext): Ditto.
26350         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
26351         (*addsi_2_zext): Ditto.
26352         (*add<mode>_3): Ditto.
26353         (*addsi_3_zext): Ditto.
26354         (*add<mode>_5): Ditto.
26355
26356 2010-06-03  Jan Hubicka  <jh@suse.cz>
26357
26358         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
26359         of bitmap_bit_p.
26360         * cfganal.c (compute_dominance_frontiers_1): Likewise.
26361
26362 2010-06-03  Jan Hubicka  <jh@suse.cz>
26363
26364         * df-problems.c (df_create_unused_note, df_note_bb_compute):
26365         micro-optimize the checks when to add new note.
26366
26367 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
26368
26369         * final.c (output_asm_insn): Call
26370         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
26371         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
26372         (output_address): Call targetm.asm_out.print_operand_address.
26373         Update comments.
26374         * target.h (struct gcc_target): Add print_operand,
26375         print_operand_address, and print_operand_punct_valid_p fields.
26376         * targhooks.h (default_print_operand): Declare.
26377         (default_print_operand_address): Declare.
26378         (default_print_operand_punct_valid_p): Declare.
26379         * targhooks.c (default_print_operand): Define.
26380         (default_print_operand_address): Define.
26381         (default_print_operand_punct_valid_p): Define.
26382         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
26383         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
26384         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
26385         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
26386         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
26387         * vmsdbgout.c (addr_const_to_string): Update comment.
26388         * config/i386/i386.c (print_operand): Rename to...
26389         (ix86_print_operand): ...this.  Make static.
26390         (print_operand_address): Rename to...
26391         (ix86_print_operand_address): ...this.  Make static.  Call
26392         ix86_print_operand instead of PRINT_OPERAND.
26393         (ix86_print_operand_punct_valid_p): New function.
26394         (TARGET_PRINT_OPERAND): Define.
26395         (TARGET_PRINT_OPERAND_ADDRESS): Define.
26396         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
26397         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
26398         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
26399         (PRINT_OPERAND): Delete.
26400         (PRINT_OPERAND_ADDRESS): Delete.
26401         * config/i386/i386-protos.h (print_operand): Delete prototype.
26402         (print_operand_address): Delete prototype.
26403
26404 2010-06-03  Richard Guenther  <rguenther@suse.de>
26405
26406         PR tree-optimization/44403
26407         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
26408         Preserve pointer qualifiers.
26409         (vect_create_data_ref_ptr): Likewise.
26410
26411 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
26412
26413         PR c++/44294
26414         * defaults.h (MAX_FIXED_MODE_SIZE): New.
26415
26416         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
26417
26418 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
26419
26420         PR debug/44375
26421         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
26422         return false if merging the bbs would lead to goto_locus
26423         location being lost from the IL.
26424
26425 2010-06-03  Jan Hubicka  <jh@suse.cz>
26426             Jakub Jelinek  <jakub@redhat.com>
26427
26428         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
26429         set->regs[i] is NULL or has just one entry.
26430
26431 2010-06-03  Jan Hubicka  <jh@suse.cz>
26432
26433         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
26434         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
26435
26436 2010-06-03  Paul Brook  <paul@codesourcery.com>
26437
26438         * config/arm/arm.c (FL_TUNE): Define.
26439         (arm_default_cpu, arm_cpu_select): Remove.
26440         (all_cores): Populate core field.
26441         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
26442         (arm_find_cpu): New function.
26443         (arm_handle_option): Lookup cpu/architecture names.
26444         (arm_override_options): Cleanup mcpu/march/mtune handling.
26445         (arm_file_start): Ditto.
26446
26447 2010-06-03  Alan Modra  <amodra@gmail.com>
26448
26449         PR target/44169
26450         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
26451         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
26452         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
26453         (rs6000_emit_load_toc_table): Likewise.
26454
26455 2010-06-02  Jan Hubicka  <jh@suse.cz>
26456
26457         * passes.c (init_optimization_passes): Put ipa reference
26458         after ipa pure-const.
26459
26460 2010-06-02  Jan Hubicka  <jh@suse.cz>
26461
26462         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
26463         calls_read_all and calls_write_all.
26464         (get_reference_optimization_summary): Fix formatting.
26465         (is_proper_for_analysis): Check that decl is not readonly.
26466         (propagate_bits): Check CONST/PURE/noreturn flags.
26467         (ipa_init): Move all_module_statics to optimization_summary_obstack.
26468         (analyze_function): Ignore indirect edges.
26469         (copy_global_bitmap): For all module statics, do nothing.
26470         (generate_summary): Do not print calls_read_all/calls_write_all.
26471         (read_write_all_from_decl): Take node as argument; check
26472         cgraph_node_cannot_return.
26473         (propagate): Reorganize read_all/write_all computation;
26474         check indirect edges; check ecf flags; use all_module_statics
26475         in the results; do not free all_module_statics.
26476         (stream_out_bitmap): Handle all_module_statics.
26477         (ipa_reference_write_optimization_summary): Likewise; use
26478         varpool/cgraph encoders to get boundaries.
26479         (ipa_reference_read_optimization_summary): Read in all_module_statics;
26480         use it when possible.
26481
26482 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
26483
26484         PR target/44218
26485         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
26486         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
26487
26488         * doc/extend.texi (powerpc builtins): Document vec_recip,
26489         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
26490
26491         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
26492         (rs6000_emit_swrsqrt): Ditto.
26493         (rs6000_emit_swdivsf): Delete.
26494         (rs6000_emit_swdivdf): Ditto.
26495         (rs6000_emit_swrsqrtsf): Ditto.
26496
26497         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
26498         describe the reciprocal estimate support for each type.
26499         (recip_options): Map -mrecip=<opt> into option bits.
26500         (gen_2arg_fn_t): New typedef for binary rtx gen function.
26501         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
26502         reciprocal estimate instructions.
26503         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
26504         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
26505         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
26506         cost information if -mdebug=cost or -mdebug=reg.
26507         (rs6000_override_options): Set -mrecip-precision for power6, and
26508         power7 machines.  If -mvsx or -mdfp, enable various options that
26509         came in previous instruction set ISAs, unless the option was
26510         explicitly disabled by the command line option.  Parse
26511         -mrecip=<opt> options.
26512         (rs6000_builtin_vectorized_function): Add support for vectorizing
26513         the reciprocal estimate builtins and expansions.
26514         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
26515         (bdesc_2arg): Add reciprocal estimate builtins.
26516         (bdesc_1arg): Add reciprocal square root estimate builtins.
26517         (rs6000_expand_builtin): Rewrite to use a switch statement,
26518         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
26519         (rs6000_init_builtins): Create declarations for reciprocal
26520         estimate builtins.
26521         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
26522         sized, prefer traditional floating point registers, if integer
26523         vector types, prefer altivec registers.  Don't actually look at
26524         the memory address any more.
26525         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
26526         builtins.
26527         (rs6000_load_constant_and_splat): New helper function to load up
26528         the constant for reciprocal estimate instructions.
26529         (rs6000_emit_madd): New helper function for generating
26530         multiply/add type instructions, based on the current switches.
26531         (rs6000_emit_msub): Ditto.
26532         (rs6000_emit_mnsub): Ditto.
26533         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
26534         replace a divide with a reciprocal estimate and fixup, adding
26535         support for machines with high precision and vectors.
26536         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
26537         low precision machines.
26538         (rs6000_emit_swdiv): New common function to be called to replace a
26539         division with reciprocal estimate and fixup.
26540         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
26541         for double and vector types.  Add support for high precision machines.
26542
26543         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
26544         the reciprocal estimate instructions can be generated.
26545         (TARGET_FRE): Ditto.
26546         (TARGET_FRSQRTES): Ditto.
26547         (TARGET_FRSQRTE): Ditto.
26548         (RS6000_RECIP_*): New macros for reciprocal estimate support.
26549
26550         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
26551         square root estimate on vectors.
26552         (re<mode>2): New insn for reciprocal division estimate on vectors.
26553
26554         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
26555         New builtin.
26556         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
26557         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
26558         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
26559         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
26560         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
26561         (RS6000_BUILTIN_RSQRT): Ditto.
26562         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
26563         floating point builtin.
26564
26565         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
26566         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
26567         __RECIP_PRECISION__ based on the command line switches.
26568         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
26569
26570         * config/rs6000/rs6000.opt (-mrecip): Document add support for
26571         replacing division instructions with reciprocal estimate and fixup.
26572         (-mrecip=<opt>): New option.
26573         (-mrecip-precision): Ditto.
26574
26575         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
26576         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
26577         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
26578         precision scalar.
26579
26580         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
26581         (UNSPEC_VREFP): Ditto.
26582         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
26583         conterparts with regard to support of -mno-fused-madd and -ffast-math.
26584         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
26585         reciprocal estimate instructions to be generated.
26586         (altivec_vrefp): Ditto.
26587
26588         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
26589         estimate support.
26590         (rreg): New mode attribute for reciprocal estimate support.
26591         (recip<mode>3): New insn for division using reciprocal estimate
26592         and fixup builtins.
26593         (divide define_split): New define_split to convert floating point
26594         division to use reciprocal estimate if the user used the
26595         appropriate options and the split is run when we can add new
26596         pseudo registers for the fixup.
26597         (rsqrt<mode>2): New insn for reciprocal square root support.
26598         (recipsf3): Move into recip<mode>3.
26599         (recipdf3): Ditto.
26600         (fres): Use TARGET_FRES.
26601         (rsqrtsf2): Move into rsqrt<mode>2.
26602         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
26603         (copysignsf3): Add support for VSX.
26604         (fred): Use TARGET_FRE.
26605         (fred_fpr): Ditto.
26606         (rsqrtdf_internal1): New function for frsqrte instruciton.
26607
26608         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
26609         (vec_rsqrt): Ditto.
26610
26611 2010-06-03  Richard Guenther  <rguenther@suse.de>
26612
26613         PR middle-end/44291
26614         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
26615         (set_user_assembler_libfunc): Likewise.
26616
26617 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
26618
26619         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
26620         defaults.h.
26621         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
26622         to defaults.h
26623         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
26624         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
26625         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
26626         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
26627         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
26628         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
26629         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
26630         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
26631         * defaults.h: Updated for above mentioned changes.
26632
26633 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
26634
26635         * c-common.c: Remove header include of tm_p.h.
26636         * Makefile.in (c-common.o): Remove TM_P_H dependency.
26637
26638 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
26639
26640         * tree.h (struct tree_decl_map): New type.
26641         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
26642         (tree_decl_map_hash): New prototype.
26643         (debug_expr_for_decl, value_expr_for_decl): Change into
26644         tree_decl_map hashtab from tree_map.
26645         (init_ttree): Adjust initialization.
26646         (tree_decl_map_hash): New function.
26647         (decl_debug_expr_lookup, decl_debug_expr_insert,
26648         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
26649
26650 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26651
26652         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
26653         linker emulations.
26654         * configure: Regenerate.
26655         * config.in: Regenerate.
26656
26657         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
26658         (X86_64_EMULATION): Define.
26659         (TARGET_LD_EMULATION): Use them.
26660
26661         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
26662         (SPARC64_EMULATION): Define.
26663         (LINK_ARCH_SPEC): Use them.
26664
26665 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
26666
26667         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
26668         smallest_mode_for_size for computing the precision types of new
26669         graphite IVs.  Do not call lang_hooks.types.type_for_size.
26670
26671 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
26672
26673         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
26674         information.
26675         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
26676
26677 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
26678
26679         PR middle-end/44363
26680         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
26681         return false instead.
26682
26683 2010-06-02  Jan Hubicka  <jh@suse.cz>
26684
26685         PR middle-end/44295
26686         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
26687         create new cgraph node to check callee.
26688
26689 2010-06-02  Richard Guenther  <rguenther@suse.de>
26690
26691         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
26692
26693 2010-06-02  Richard Guenther  <rguenther@suse.de>
26694
26695         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
26696         (lto_wrapper_cleanup): ... this.  Do not exit.
26697         (fatal): Adjust.  Exit here.
26698         (fatal_perror): Likewise.
26699         (fatal_signal): New function.
26700         (main): Set up signal handlers to cleanup temporary files.
26701         * Makefile.in (lto-wrapper.o): Adjust dependencies.
26702
26703 2010-06-02  Richard Guenther  <rguenther@suse.de>
26704
26705         PR tree-optimization/44377
26706         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
26707
26708 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26709
26710         * config/s390/2097.md (z10_fhex): Remove insn reservation.
26711         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
26712         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
26713         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
26714         instruction.
26715         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
26716
26717 2010-06-02  Jan Hubicka  <jh@suse.cz>
26718
26719         * bitmap.c (bitmap_descriptor): Add search_iter.
26720         (bitmap_find_bit): Increment it.
26721         (print_statistics): Print it.
26722
26723 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
26724
26725         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
26726         instead of gimple_build_call_vec.  Delete unnecessary local variable.
26727
26728 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
26729
26730         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
26731         change from yesterday.
26732
26733 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
26734
26735         * c-ada-spec.c: Clean up redundant includes.
26736
26737 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
26738
26739         * gimplify.c: Do not include except.h and optabs.h.
26740         (gimplify_body): Do not initialize RTL profiling.
26741         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
26742         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
26743         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
26744         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
26745         langhooks.h.
26746
26747         * tree-pretty-print.h: Include pretty-print.h.
26748         * gimple-pretty-print.h: Include pretty-print.h.
26749
26750         * tree-pretty-print.c: Do not include diagnostic.h.
26751         * tree-vrp.c: Likewise.
26752         * tree-tailcall.c: Likewise
26753         * tree-scalar-evolution.c: Likewise
26754         * tree-ssa-dse.c: Likewise
26755         * tree-chrec.c: Likewise
26756         * tree-ssa-sccvn.c: Likewise
26757         * tree-ssa-copyrename.c: Likewise
26758         * tree-nomudflap.c: Likewise
26759         * tree-call-cdce.c: Likewise
26760         * tree-stdarg.c: Likewise
26761         * tree-ssa-math-opts.c: Likewise
26762         * tree-nrv.c: Likewise
26763         * tree-ssa-sink.c: Likewise
26764         * tree-browser.c: Likewise
26765         * tree-ssa-loop-ivcanon.c: Likewise
26766         * tree-ssa-loop.c: Likewise
26767         * tree-parloops.c: Likewise
26768         * tree-ssa-address.c: Likewise
26769         * tree-ssa-ifcombine.c: Likewise
26770         * tree-if-conv.c: Likewise
26771         * tree-data-ref.c: Likewise
26772         * tree-affine.c: Likewise
26773         * tree-ssa-phiopt.c: Likewise
26774         * tree-ssa-coalesce.c: Likewise
26775         * tree-ssa-pre.c: Likewise
26776         * tree-ssa-live.c: Likewise
26777         * tree-predcom.c: Likewise
26778         * tree-ssa-forwprop.c: Likewise
26779         * tree-ssa-dce.c: Likewise
26780         * tree-ssa-ter.c: Likewise
26781         * tree-ssa-loop-prefetch.c: Likewise
26782         * tree-optimize.c: Likewise
26783         * tree-ssa-phiprop.c: Likewise
26784         * tree-object-size.c: Likewise
26785         * tree-outof-ssa.c: Likewise
26786         * tree-ssa-structalias.c: Likewise
26787         * tree-switch-conversion.c: Likewise
26788         * tree-ssa-reassoc.c: Likewise
26789         * tree-ssa-operands.c: Likewise
26790         * tree-vectorizer.c: Likewise
26791         * tree-vect-data-refs.c: Likewise
26792         * tree-vect-generic.c: Likewise
26793         * tree-vect-stmts.c: Likewise
26794         * tree-vect-patterns.c: Likewise
26795         * tree-vect-slp.c: Likewise
26796         * tree-vect-loop.c: Likewise
26797         * tree-ssa-loop-ivopts.c: Likewise
26798         * tree-ssa-loop-im.c: Likewise
26799         * tree-ssa-loop-niter.c: Likewise
26800         * tree-ssa-loop-unswitch.c: Likewise
26801         * tree-ssa-loop-manip.c: Likewise
26802         * tree-ssa-loop-ch.c: Likewise
26803         * tree-dump.c: Likewise
26804         * tree-complex.c: Likewise
26805
26806         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
26807         * tree-ssa-uninit.c: Likewise
26808         * tree-ssa-threadupdate.c: Likewise
26809         * tree-ssa-uncprop.c: Likewise
26810         * tree-ssa-ccp.c: Likewise
26811         * tree-ssa-dom.c: Likewise
26812         * tree-ssa-propagate.c: Likewise
26813         * tree-ssa-alias.c: Likewise
26814         * tree-dfa.c: Likewise
26815         * tree-cfgcleanup.c: Likewise
26816         * tree-sra.c: Likewise
26817         * tree-ssa-copy.c: Likewise
26818         * tree-ssa.c: Likewise
26819         * tree-profile.c: Likewise
26820         * tree-cfg.c: Likewise
26821         * tree-ssa-threadedge.c: Likewise
26822         * tree-vect-loop-manip.c: Likewise
26823
26824         * tree-inline.c: Do not include diagnostic.h and expr.h.
26825         Include rtl.h.
26826         (copy_decl_for_dup_finish): Do not use NULL_RTX.
26827
26828         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
26829         * tree-loop-distribution.c: Likewise.
26830
26831 2010-06-01  Jan Hubicka  <jh@suse.cz>
26832
26833         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
26834
26835 2010-06-01  Jan Hubicka  <jh@suse.cz>
26836
26837         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
26838         remove return value.
26839         (split_bbs_on_noreturn_calls) .... here.
26840         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
26841         * tree-flow.h (fixup_noreturn_call): New.
26842
26843 2010-06-01  Jan Hubicka  <jh@suse.cz>
26844
26845         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
26846
26847 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
26848
26849         * tree.h (build_nt_call_list): Delete.
26850         * tree.c (build_nt_call_list): Delete.
26851
26852 2010-06-01  Jan Hubicka  <jh@suse.cz>
26853
26854         * fwprop.c: Make emit-rtl.h include last.
26855         * rtlanal.c: Include emit-rtl.h.
26856         * genautomata.c: Output emit-rtl include into insn-automata.c
26857         * df-scan.c: Include emit-rtl.h.
26858         * haifa-sched.c: Indlude emit-rtl.h.
26859         * mode-switching.c: Indlude emit-rtl.h.
26860         * graph.c: Indlude emit-rtl.h.
26861         * sel-sched.c: Include emit-rtl.h.
26862         * sel-sched-ir.c: Include emit-rtl.h.
26863         * ira-build.c: Include emit-rtl.h.
26864         * emit-rtl.c (first_insn, last_insn): Remove defines.
26865         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
26866         Move to emit-rtl.h.
26867         (set_new_first_and_last_insn, get_last_insn_anywhere,
26868         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
26869         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
26870         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
26871         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
26872         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
26873         Use accessor functions.
26874         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
26875          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
26876         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
26877         mem_expr_equal_p): Move here from rtl.h.
26878         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
26879         Move here from emit-rtl.c; make inline.
26880         * cfglayout.h: Include emit-rtl.h.
26881         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
26882          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
26883         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
26884         mem_expr_equal_p, get_insns, set_first-insn,
26885         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
26886         * reg-stack.c: Include emit-rtl.h.
26887         * dce.c: Likewise.
26888
26889 2010-06-01  Jan Hubicka  <jh@suse.cz>
26890
26891         * cgraph.h (tree_function_versioning): Update prototype.
26892         (cgraph_function_versioning): Update prototype.
26893         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
26894         bitmap.
26895         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
26896         (cgraph_materialize_clone, save_inline_function_body): Update use of
26897         tree_function_versioning.
26898         * tree-inline.c (copy_bb): Look for previous copied block to link
26899         after; fix debug output.
26900         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
26901         (copy_body): Likewise.
26902         (expand_call_inline): Update use of copy_body.
26903         (tree_function_versioning): Update use of copy body; accept
26904         blocks_to_copy and new_entry.
26905
26906 2010-06-01  Jan Hubicka  <jh@suse.cz>
26907
26908         * gegenrtl.c: Remove unnecesary prototypes.
26909         (gendecl): Remove.
26910         (gendef): Produce static inline.
26911         (gencode): Remove.
26912         (main): Do not decode parameters; generate header only.
26913         * Makefile.in (genrtl.c): Remove.
26914
26915 2010-06-01  Jan Hubicka  <jh@suse.cz>
26916
26917         * tree-switch-conversion.c (build_one_array): Make it readonly.
26918
26919 2010-06-01  Richard Guenther  <rguenther@suse.de>
26920
26921         * optabs.c (init_optabs): Guard all accesses to reinit.
26922         * ipa-pure-const.c (propagate): Fix another typo.
26923         * opts.c (common_handle_option): Split assignment to bool.
26924         * c-opts.c (c_common_handle_option): Likewise.
26925
26926 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
26927             Matthew Gingell  <gingell@adacore.com>
26928
26929         * doc/invoke.texi: Mention -fdump-ada-spec.
26930         * tree-dump.c (dump_files): Add ada-spec.
26931         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
26932         * tree-pass.h (tree_dump_index): Add TDI_ada.
26933         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
26934         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
26935         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
26936         * c-decl.c: Include c-ada-spec.h.
26937         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
26938         functions.
26939         (c_write_global_declarations): Add handling of -fdump-ada-spec.
26940         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
26941         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
26942         * c-ada-spec.h, c-ada-spec.c: New files.
26943
26944 2010-06-01  Richard Guenther  <rguenther@suse.de>
26945
26946         PR lto/43853
26947         * ipa-pure-const.c (get_function_state): Hand back varying state
26948         if we do not have one.
26949         (has_function_state): New function.
26950         (duplicate_node_data): Adjust.
26951         (remove_node_data): Likewise.
26952         (pure_const_write_summary): Likewise.
26953         (propagate): Likewise.  Fix typo.
26954
26955 2010-06-01  Jan Hubicka  <jh@suse.cz>
26956
26957         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
26958         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
26959         (execute_all_ipa_transforms): Do not play with the states.
26960
26961 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
26962
26963         * config/arm/t-linux-androideabi: New.
26964         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
26965
26966 2010-06-01  Jan Hubicka  <jh@suse.cz>
26967
26968         * tree-inline.c (estimate_num_insns): For stdarg functions look
26969         into call statement to count cost of argument passing.
26970
26971 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
26972
26973         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
26974         argument for fprintf.
26975         (ix86_output_addr_diff_elt): Likewise.
26976         (x86_function_profiler): Likewise.
26977         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
26978         (LPREFIX): Likewise.
26979         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
26980
26981 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
26982
26983         PR target/44338
26984         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
26985         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
26986         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
26987         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
26988         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
26989         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
26990         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
26991         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
26992         TARGET_FUSED_MADD.
26993
26994 2010-05-31  Jan Hubicka  <jh@suse.cz>
26995
26996         * tree.h (tree_range_check_failed): Declare noreturn.
26997
26998 2010-05-31  Jan Hubicka  <jh@suse.cz>
26999
27000         * gimple.c (gimple_call_builtin_p): New function.
27001         * gimple.h (gimple_call_builtin_p): Declare.
27002         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
27003         to exit.
27004         (execute_warn_function_return): BUILT_IN_RETURN is return.
27005         (split_critical_edges): Return edges are not critical.
27006         (is_ctrl_altering_stmt): Builtin_in_return is altering.
27007         (gimple_verify_flow_info): Handle built_in_return.
27008         (execute_warn_function_return): Handle built_in_return.
27009         * ipa-pure-const.c (check_call): Ignore builtin_return.
27010
27011 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
27012
27013         PR middle-end/44337
27014         * expr.c (expand_assignment): Don't store anything for out-of-bounds
27015         array accesses with non-MEM.
27016
27017         PR tree-optimization/44182
27018         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
27019         newly needs to end a bb is followed by debug stmts, instead return
27020         true from the function at the end.
27021         (maybe_move_debug_stmts_to_successors): New function.
27022         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
27023
27024 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
27025
27026         PR target/44161
27027         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
27028
27029 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
27030
27031         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
27032         for nested functions in non-optimized compilation.
27033
27034 2010-05-31  Richard Guenther  <rguenther@suse.de>
27035
27036         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
27037
27038 2010-05-30  Jan Hubicka  <jh@suse.cz>
27039
27040         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
27041
27042 2010-05-30  Richard Guenther  <rguenther@suse.de>
27043
27044         PR lto/42975
27045         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
27046         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
27047         no longer needed.
27048
27049 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
27050
27051         * config/darwin.c (output_objc_section_asm_op): Add comment.
27052         (name_needs_quotes): Add '_' to list of valid comment chars.
27053         (machopic_output_function_base_name): Remove unneeded quotes.
27054         (darwin_encode_section_info): Adjust asm whitespace.
27055         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
27056         (ASM_OUTPUT_LOCAL): Ditto.
27057         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
27058         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
27059         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
27060
27061 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
27062
27063         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
27064         RS6000_OUTPUT_BASENAME unconditionally.
27065         (rs6000_output_function_epilogue): Likewise.
27066
27067 2010-05-30  Jan Hubicka  <jh@suse.cz>
27068
27069         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
27070         nodes.
27071
27072 2010-05-30  Richard Guenther  <rguenther@suse.de>
27073
27074         * tree-cfg.c (verify_gimple_assign_single): Implement
27075         verification for COND_EXPR rhs.
27076
27077 2010-05-30  Jan Hubicka  <jh@suse.cz>
27078
27079         * cgraph.h (cgraph_dump_file): Declare.
27080         * cgraphunit.c (cgraph_dump_file): Export.
27081         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
27082
27083 2010-05-30  Jan Hubicka  <jh@suse.cz>
27084
27085         * dwarf2out.c (reference_to_unused,
27086         premark_types_used_by_global_vars_helper): Avoid creation of new
27087         varpool nodes.
27088
27089 2010-05-30  Jan Hubicka  <jh@suse.cz>
27090
27091         * cgraph.h (cgraph_node_cannot_return,
27092         cgraph_edge_cannot_lead_to_return): New functions.
27093         * cgraph.c (cgraph_node_cannot_return,
27094         cgraph_edge_cannot_lead_to_return): Use them.
27095         * ipa-pure-const.c (pure_const_names): New static var.
27096         (check_call): Handle calls not leading to return.
27097         (pure_const_read_summary): Dump info read.
27098         (propagate): Dump info about propagation process; ignore side effects
27099         of functions not leading to exit; fix handling of pure functions.
27100
27101 2010-05-30  Jan Hubicka  <jh@suse.cz>
27102
27103         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
27104         for tail call epilogues.
27105
27106 2010-05-30  Jan Hubicka  <jh@suse.cz>
27107
27108         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
27109         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
27110         dump files.
27111
27112 2010-05-29  Jan Hubicka  <jh@suse.cz>
27113
27114         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
27115         node; remove references in node we no longer keep in cgrpah but need
27116         body of.
27117
27118 2010-05-29  Jan Hubicka  <jh@suse.cz>
27119
27120         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
27121
27122 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
27123
27124         PR target/44165
27125         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
27126
27127 2010-05-29  Jan Hubicka  <jh@suse.cz>
27128
27129         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
27130         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
27131         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
27132         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
27133         debug_names_replaced_by, debug_update_ssa): Likewise.
27134         * sbitmap.c (debug_sbitmap): Likewise.
27135         * genrecog.c (debug_decision, debug_decision_list): Likewise.
27136         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
27137         debug_tree_chain): Likewise.
27138         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
27139         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
27140         * optabs.c (debug_optab_libfuncs): Likewise.
27141         (verify_loop_closed_ssa): Likewise.
27142         * value-prof.c (verify_histograms): Likewise.
27143         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
27144         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
27145         * cfghooks.c (verify_flow_info): Likewise.
27146         * fold-const.c (debug_fold_checksum): Likewise.
27147         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
27148         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
27149         Likewise.
27150         * omega.c (debug_omega_problem): Likewise.
27151         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
27152         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
27153         * dominance.c (verify_dominators, debug_dominance_info,
27154         debug_dominance_tree): Likewise.
27155         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
27156         * df_regno_debug, df_ref_debug,
27157         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
27158         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
27159         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
27160         * sel-sched.c (debug_state): Likewise.
27161         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
27162         Likewise.
27163         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
27164         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
27165         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
27166         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
27167         Likewise.
27168         * c-pretty-print.c (debug_c_tree): Likewise.
27169         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
27170         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
27171         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
27172         * ebitmap.c (debug_ebitmap): Likewise.
27173         * function.c (debug_find_var_in_block_tree): Likewise.
27174         * print-rtl.c (debug_rtx): Likewise.
27175         (debug_rtx_count): Likewise.
27176         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
27177         * stor-layout.c (debug_rli): Likewise.
27178         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
27179         * tree-data-ref.c (debug_data_references,
27180         debug_data_dependence_relations, debug_data_reference,
27181         debug_data_dependence_relation, debug_rdg_vertex,
27182         debug_rdg_component, debug_rdg): Likewise.
27183         * tree-affine.c (debug_aff): Likewise.
27184         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
27185         Likewise.
27186         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
27187         * emit-rtl.c (verify_rtl_sharing): Likewise.
27188         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
27189         debug_value_expressions): Likewise.
27190         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
27191         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
27192         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
27193         * cfglayout.c (verify_insn_chain): Likewise.
27194         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
27195         debug_clast_stmt, debug_generated_program): Likewise.
27196         * ggc-page.c (debug_print_page_list): Likewise.
27197         * tree-ssa-ter.c (debug_ter): Likewise.
27198         * graphite-dependences.c (debug_pddr): Likewise.
27199         * sched-deps.c (debug_ds): Likewise.
27200         * tree-ssa.c (verify_ssa): Likewise.
27201         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
27202         debug_scattering_functions, debug_iteration_domains, debug_pdr,
27203         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
27204         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
27205         * tree-inline.c (debug_find_tree): Likewise.
27206         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
27207         debug_ppl_powerset_matrix): Likewise.
27208         * var-tracking.c (debug_dv): Likewise.
27209         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
27210         * cfgloop.c (verify_loop_structure): Likewise.
27211         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
27212         * c-common.c (verify_sequence_points): Likewise.
27213         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
27214         debug_candidates, debug_rgn_dependencies): Likewise.
27215         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
27216         * debug_constraint_graph, debug_solution_for_var,
27217         debug_sa_points_to_info): Likewise.
27218         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
27219         Likewie.
27220         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
27221         debug_loops, debug_loop, debug_loop_num): Likewise.
27222         * passes.c (debug_pass): Likewise.
27223         (dump_properties): Likewise; add cfglayout property.
27224         (debug_properties): Likewise.
27225         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
27226         * varpool.c (debug_varpool): Likewise.
27227         * regcprop.c (debug_value_data): Likewise.
27228         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
27229         debug_immediate_uses_for): Likewise.
27230
27231 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
27232
27233         PR bootstrap/44315
27234         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
27235         Filter out insn-flags.h.
27236
27237 2010-05-29  Jan Hubicka  <jh@suse.cz>
27238
27239         * cgraph.h (struct varpool_node_set_def,
27240         struct cgraph_node_set_def): Remove unused AUX pointer.
27241         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
27242         VEC_empty macro.
27243
27244 2010-05-29  Jan Hubicka  <jh@suse.cz>
27245
27246         PR middle-end/44324
27247         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
27248
27249 2010-05-29  Richard Guenther  <rguenther@suse.de>
27250
27251         * lto-streamer.c (cached_bp): New global variable.
27252         (bitpack_create): Return the cached bitpack, if available.
27253         (bitpack_delete): Clear and cache the bitpack, if appropriate.
27254         (bp_pack_value): Remove redundant asserts.
27255
27256 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
27257
27258         PR middle-end/44306
27259         * tree-if-conv.c (is_true_predicate): New.
27260         (is_predicated): Use is_true_predicate.
27261         (add_to_predicate_list): Same.  Do not use unshare_expr.
27262         (add_to_dst_predicate_list): Same.
27263
27264 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
27265
27266         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
27267         field on edges.
27268         (predicate_bbs): Same.
27269         (clean_predicate_lists): Same.
27270         (find_phi_replacement_condition): Do not AND the predicate from
27271         edge->aux.
27272
27273 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
27274
27275         PR bootstrap/44315
27276         * Makefile.in (build/gencondmd.o): Add a missing `\'.
27277
27278 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
27279
27280         PR target/44261
27281         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
27282         (negdf2): Adjust expander pattern and use negdf2_slow.
27283         (negsf2): Likewise.
27284
27285 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
27286
27287         * basic-block.h (struct control_flow_graph): Move last_label_uid field
27288         up.
27289         * df.h (struct df_base_ref): Move regno field up.
27290         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
27291         * expr.h (struct separate_ops): Move location field up.
27292         * optabs.h (struct optab_d): Move libcall_basename field down.
27293         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
27294         * config/i386/i386.h (struct machine_function): Convert call_abi field
27295         into a bitfield.  Move cfa field to the end of the structure.
27296
27297 2010-05-29  Jan Hubicka  <jh@suse.cz>
27298
27299         * varpool.c (varpool_get_node): Fix lookup.
27300
27301 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
27302
27303         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
27304         RTL specific prototypes with #ifdef RTX_CODE.
27305         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
27306         * config/spu/t-spu-elf: Fix dependencies.
27307
27308         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
27309
27310 2010-05-29  Mike Stump  <mikestump@comcast.net>
27311
27312         PR bootstrap/44315
27313         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
27314         TM_H when building to avoid dependency loops.
27315
27316 2010-05-29  Jan Hubicka  <jh@suse.cz>
27317
27318         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
27319         refs and body; not the whole node for masters of materialized clones.
27320
27321 2010-05-29  Mike Stump  <mikestump@comcast.net>
27322
27323         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
27324
27325 2010-05-29  Jan Hubicka  <jh@suse.cz>
27326
27327         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
27328         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
27329         use of clone_function_name.
27330         * cgraph.h (cgraph_create_virtual_clone,
27331         cgraph_function_versioning): update prototypes.
27332         (clone_function_name): Declare.
27333         * ipa-cp.c (ipcp_insert_stage): Update call of
27334         cgraph_create_virtual_clone.
27335         * omp-low.c (create_omp_child_function_name): Use
27336         cgraph_create_virtual_clone.
27337         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
27338         (cgraph_function_versioning): Take SUFFIX argument; produce new name
27339         and make decl local.
27340
27341 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
27342
27343         * vec.h: Include statistics.h
27344         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
27345         with VEC_H.
27346
27347 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
27348
27349         * c-lex.c: Do not include c-tree.h.
27350         * c-pretty-print.c: Likewise.
27351         * c-opts.c: Likewise.
27352         * c-gimplify.c: Likewise.
27353         * c-common.c: Likewise.
27354         * c-dump.c: Likewise.  Include c-common.h.
27355
27356 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
27357
27358         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
27359         before including diagnostic-core.h.
27360         (c_cpp_error): New prototype moved from c-tree.h.
27361         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
27362         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
27363         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
27364         (c_cpp_error): Prototype moved to c-common.h.
27365         * Makefile.in: Update dependency for C_COMMON_H.
27366
27367 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
27368
27369         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
27370         * c-common.c (c_register_addr_space): Remove here.
27371         * c-decl.c (c_register_addr_space): Re-add here.
27372
27373 2010-05-28  Mike Stump  <mikestump@comcast.net>
27374
27375         * config/darwin-c.c: Remove c-tree.h include.
27376
27377 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
27378
27379         * gcc.c: Include diagnostic.h.
27380         (error_count): Remove.  All users changed to use errorcount.
27381         (programname): Remove.  All users changed to use progname.
27382         (fancy_abort, internal_error, fatal_error, error, warning, inform,
27383         fnotice): Remove.
27384         (execute): Don't include "Internal error" and bug reporting
27385         information in argument of internal_error call.
27386         (process_command): Don't increment error_count after calling
27387         perror_with_name.
27388         (input_filename): Rename to gcc_input_filename.  All users
27389         changed.
27390         (main): Call diagnostic_initialize.  Register delete_temp_files
27391         with atexit.  Use seen_error to test for errors.
27392         * gcc.h: Include diagnostic-core.h.
27393         (fatal_error, error, warning): Remove.
27394         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
27395         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
27396         (gcc.o): Update dependencies.
27397
27398 2010-05-28  Jeff Law  <law@redhat.com>
27399
27400         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
27401         functions.
27402         * ira.h (ira_bad_reload_regno): Declare
27403         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
27404
27405         * ira-color.c (update_curr_costs): Free updated hard reg costs.
27406         (ira_reassign_conflict_allocnos): Remove bogus asserts.
27407         (allocno_reload_assign): Likewise.
27408
27409 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
27410
27411         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
27412         build1_stat.
27413
27414 2010-05-28  Richard Guenther  <rguenther@suse.de>
27415
27416         PR lto/44312
27417         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
27418         Stream fixed-point constants mode.
27419         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
27420         and TYPE_PRECISION.
27421         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
27422         Stream fixed-point constants mode.
27423         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
27424         and TYPE_PRECISION.
27425
27426 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
27427
27428         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
27429         only place it was called from.
27430         (number_of_latch_executions): Do not return chrec_dont_know when the
27431         may_be_zero is a runtime condition: instead, return a COND_EXPR
27432         including the may_be_zero condition.
27433         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
27434         of nb_iterations.
27435         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
27436         COND_EXPRs.
27437
27438 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
27439
27440         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
27441         generate COND_EXPRs for degenerate_phi_result.
27442
27443 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
27444
27445         PR middle-end/44293
27446         * tree-if-conv.c (if_convertible_loop_p): Check the
27447         if-convertibility of phi nodes in non predicated BBs.
27448
27449 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
27450
27451         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
27452
27453 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
27454
27455         PR driver/15303
27456         * gcc.c (inform, warning, inform): New functions.
27457         (fatal_ice): Rename to internal_error; change cmsgid parameter to
27458         gmsgid.  All callers changed.
27459         (notice): Rename to fnotice; add parameter fp.  All callers changed.
27460         (fatal_error): Rename to fatal_signal.  All users changed.
27461         (fatal): Rename to fatal_error; change cmsgid parameter to
27462         gmsgid.  All callers changed.
27463         (process_command): Use warning instead of error for warnings.
27464         (end_going_arg): Don't use _() around argument of error.
27465         (do_spec_1): Use inform for message from %n specs.  Use warning
27466         instead of error for warnings.
27467         (main): Use inform for comparison messages.  Use warning for
27468         message about unused linker input.
27469         (error): Increment error_count.  Print "error: ".
27470         * gcc.h (fatal): Change to fatal_error.
27471         (warning): Declare.
27472         * config/darwin-driver.c (darwin_default_min_version): Use warning
27473         instead of fprintf for warnings.
27474         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
27475
27476 2010-05-28  Julian Brown  <julian@codesourcery.com>
27477
27478         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
27479         (*thumb2_addsi3_compare0_scratch): New.
27480         * config/arm/constraints.md (Pv): New.
27481         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
27482         for ARM mode only.
27483         (*addsi3_compare0_scratch): Likewise.
27484
27485 2010-05-28  Jan Hubicka  <jh@suse.cz>
27486
27487         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
27488         check.
27489         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
27490         only on local statics.
27491
27492 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
27493
27494         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
27495
27496 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
27497
27498         PR bootstrap/44314
27499         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
27500         (OPTION_GLIBC): Define.
27501
27502 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
27503
27504         PR debug/41048
27505         * dwarf2out.c (double_int_type_size_in_bits): New function.
27506         (round_up_to_align): Change first argument and return value to
27507         double_int.
27508         (field_byte_offset): Work internally on double_ints.
27509
27510         PR target/43636
27511         * builtins.c (expand_movstr): Use a temporary pseudo instead
27512         of target even when target is not NULL and not const0_rtx, but
27513         fails movstr predicate.
27514         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
27515
27516 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
27517
27518         * final.c (rest_of_clean_state): Use %m in errors instead of
27519         strerror (errno).
27520         * gengtype.c (read_input_list, close_output_files): Use xstrerror
27521         instead of strerror.
27522         * toplev.c (process_options): Use %m in errors instead of strerror
27523         (errno).
27524         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
27525         (errno).
27526
27527 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
27528
27529         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
27530         (ix86_canonical_va_list_type): Make static.  Add declaration.
27531         (ix86_enum_va_list): Make static.  Reindent.
27532         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
27533         (ix86_canonical_va_list_type): Ditto.
27534         (ix86_enum_va_list): Ditto.
27535
27536 2010-05-28  Richard Guenther  <rguenther@suse.de>
27537
27538         * lto-wrapper.c (run_gcc): With -save-temps generate a
27539         user-visible ltrans filename.  Fixup ltrans unit numbering.
27540
27541 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
27542
27543         * c-common.c (c_common_nodes_and_builtins): Replace use
27544         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
27545         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
27546         to ix86_enum_va_list.
27547         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
27548         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
27549         (TARGET_ENUM_VA_LIST_P): Add hook description.
27550         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
27551         * target.h (gcc_target): Add enum_va_list hook.
27552
27553         PR bootstrap/44299
27554         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
27555         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
27556         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
27557
27558 2010-05-28  Alan Modra  <amodra@gmail.com>
27559
27560         PR target/44266
27561         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
27562         emit_library_call machinery to set up __tls_get_addr calls.
27563
27564 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27565
27566         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
27567
27568 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
27569
27570         Revert fix for PR c++/44188
27571         * c-common.c (is_typedef_decl): Revert the moving of  this
27572         definition ...
27573         * tree.c (is_typedef_decl): ... here.
27574         (typdef_variant_p): Revert the moving of this  definition
27575         here from cp/tree.c.
27576         * c-common.h (is_typedef_decl): Revert the moving of this
27577         declaration ...
27578         * tree.h (is_typedef_decl): ... here.
27579         (typedef_variant_p): Revert the moving of this  declaration here
27580         from cp/cp-tree.h
27581         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
27582         (gen_tagged_type_die): Revert the splitting out of ...
27583         (gen_type_die_with_usage): ... this function. Revert the anonymous
27584         tagged type handling.
27585         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
27586         typedefs naming anonymous tagged types.
27587
27588 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
27589
27590         * config/rs6000/rs6000-modes.def (PSImode): Delete.
27591
27592 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
27593
27594         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
27595         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
27596         throughout.
27597         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
27598         "xer" to "ca".
27599         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
27600         XER_REGS to CA_REGS throughout.
27601         * config/rs6000/rs6000.h: Same.
27602         (ADDITIONAL_REGISTER_NAMES): Add "xer".
27603         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
27604         that mode_iterator "P" is the size for arithmetic carries as well.
27605         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
27606
27607 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
27608
27609         PR bootstrap/44255
27610         * combine.c (struct rtx_subst_pair): Define unconditionally.
27611         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
27612         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
27613         Call make_compound_operation on pair->to.
27614         (propagate_for_debug): Don't call make_compound_operation here.
27615         Always use simplify_replace_fn_rtx.
27616
27617 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
27618
27619         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
27620         * config/xtensa/xtensa.c (override_options): Check
27621           TARGET_FORCE_NO_PIC and set flag_pic.
27622         * config/xtensa/xtensa.opt: Document -mforce-no-pic
27623
27624 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
27625
27626         PR bootstrap/44299
27627         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
27628         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
27629
27630 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
27631
27632         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
27633         toplev.h.
27634         * diagnostic.c: Don't include toplev.h.
27635         (progname): Define.  Moved from toplev.c.
27636         (seen_error): New function.
27637         * diagnostic.h: Include diagnostic-core.h.
27638         (diagnostic_t, emit_diagnostic): Don't declare here.
27639         * toplev.c (progname): Move to toplev.c.
27640         (emit_debug_global_declarations, compile_file, finalize,
27641         do_compile, toplev_main): Use seen_error.
27642         * toplev.h: Include diagnostic-core.h.
27643         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
27644         internal_error, warning, warning_at, error, error_n, error_at,
27645         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
27646         verbatim, fnotice, progname): Move to diagnostic-core.h.
27647         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
27648         (expand_builtin_expect): Use seen_error.
27649         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
27650         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
27651         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
27652         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
27653         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
27654         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
27655         errorcount for errors.
27656         * c-opts.c (c_common_finish): Use seen_error.
27657         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
27658         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
27659         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
27660         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
27661         (get_coverage_counts): Use seen_error.
27662         * dwarf2out.c (dwarf2out_finish): Use seen_error.
27663         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
27664         gimplify_body): Use seen_error.
27665         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
27666         * ipa-pure-const.c (gate_pure_const): Use seen_error.
27667         * ipa-reference.c (gate_reference): Use seen_error.
27668         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
27669         * lambda-code.c: Include diagnostic-core.h instead of
27670         diagnostic.h.
27671         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
27672         * lto-compress.c: Include diagnostic-core.h instead of
27673         diagnostic.h.
27674         * lto-section-in.c: Include diagnostic-core.h instead of
27675         diagnostic.h.
27676         * lto-streamer-out.c: Include diagnostic-core.h instead of
27677         diagnostic.h.
27678         * lto-streamer.c: Include diagnostic-core.h instead of
27679         diagnostic.h.
27680         (gate_lto_out): Use seen_error.
27681         * matrix-reorg.c: Include diagnostic-core.h instead of
27682         diagnostic.h.
27683         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
27684         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
27685         (gate_expand_omp, lower_omp_1): Use seen_error.
27686         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
27687         (rest_of_decl_compilation, rest_of_type_compilation,
27688         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
27689         * tree-cfg.c (label_to_block_fn): Use seen_error.
27690         * tree-inline.c (optimize_inline_calls): Use seen_error.
27691         * tree-mudflap.c (mudflap_finish_file): Use
27692         seen_error.
27693         * tree-optimize.c (gate_all_optimizations,
27694         gate_all_early_local_passes, gate_all_early_optimizations): Use
27695         seen_error.
27696         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
27697         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
27698         (varpool_remove_unreferenced_decls,
27699         varpool_assemble_pending_decls): Use seen_error.
27700         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
27701         (TOPLEV_H, DIAGNOSTIC_H): Update.
27702         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
27703         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
27704         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
27705         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
27706         coverage.o, lambda-code.o): Update dependencies.
27707
27708 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
27709
27710         PR c++/44188
27711         * c-common.c (is_typedef_decl): Move this definition ...
27712         * tree.c (is_typedef_decl): ... here.
27713         (typdef_variant_p): Move definition here from cp/tree.c.
27714         * c-common.h (is_typedef_decl): Move this declaration ...
27715         * tree.h (is_typedef_decl): ... here.
27716         (typedef_variant_p): Move declaration here from cp/cp-tree.h
27717         * dwarf2out.c (is_naming_typedef_decl): New function.
27718         (gen_tagged_type_die): Split out of ...
27719         (gen_type_die_with_usage): ... this function. When an anonymous
27720         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
27721         is emitted for the typedef.
27722         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
27723         anonymous tagged types.
27724
27725 2010-05-27  Jason Merrill  <jason@redhat.com>
27726
27727         * print-tree.c (debug_vec_tree): New fn.
27728         (print_vec_tree): New fn.
27729         * tree.h: Declare them.
27730         * gdbinit.in (pvt): New command.
27731
27732         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
27733
27734         * gdbinit.in (pdd): New command.
27735
27736 2010-05-27  Jan Hubicka  <jh@suse.cz>
27737
27738         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
27739         (update_caller_keys): Return early if there are no callers;
27740         only update fibheap when decresing the key.
27741         (update_callee_keys): Avoid recursion.
27742         (decide_inlining_of_small_functions): When badness does not match;
27743         re-insert into fibheap.
27744
27745 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
27746
27747         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
27748         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
27749         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
27750         (ALL_HOST_OBJS): Now a union of the above two.
27751         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
27752         all files in ALL_HOST_FRONTEND_OBJS.
27753         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
27754
27755         * c-common.c: Pretend to be a backend file by undefining
27756         IN_GCC_FRONTEND (still need rtl.h here).
27757
27758 2010-05-27  Jan Hubicka  <jh@suse.cz>
27759
27760         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
27761         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
27762
27763 2010-05-27  Jan Hubicka  <jh@suse.cz>
27764
27765         * sched-ebb.c: Rename struct deps to struct deps_desc.
27766         * ddg.c: Likewise.
27767         * sel-sched-ir.c: Likewise.
27768         * sched-deps.c: Likewise.
27769         * sched-int.h: Likewise.
27770         * sched-rgn.c: Likewise.
27771
27772 2010-05-27  Jon Beniston  <jon@beniston.com>
27773
27774         PR 43726
27775         * config/lm32/lm32.h: Remove definition of
27776         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
27777
27778 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
27779
27780         PR lto/44230
27781         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
27782
27783 2010-05-27  Richard Guenther  <rguenther@suse.de>
27784
27785         PR tree-optimization/44284
27786         * tree-vect-stmts.c (vectorizable_assignment): Handle
27787         sign-changing conversions as simple copy.
27788
27789 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
27790
27791         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
27792         Bionic C library.
27793         (__gthread_active_p): Check for pthread_create if compiling against
27794         Bionic C library.
27795
27796 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
27797
27798         Support compilation for Android platform.  Reimplement -mandroid.
27799
27800         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
27801         (*android*): Set ANDROID_DEFAULT.
27802         (arm*-*-linux*): Include linux-android.h.
27803         (arm*-*-eabi*): Don't include previous -mandroid implementation.
27804         * config/arm/eabi.h: Remove, move Android-specific parts ...
27805         * config/linux-android.h: ... here.  New file.
27806         * config/arm/eabi.opt: Rename to ...
27807         * config/linux-android.opt: ... this.
27808         (mandroid): Allow -mno-android option.  Initialize based on
27809         ANDROID_DEFAULT.
27810         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
27811         Move logic to corresponding LINUX_TARGET_* macros.
27812         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
27813         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
27814         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
27815         Android definitions.
27816         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
27817         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
27818         Document.
27819
27820 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
27821
27822         Add support for Bionic C library
27823
27824         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
27825         macro.
27826         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
27827         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
27828
27829         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
27830         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
27831         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
27832         to support multiple C libraries.  Handle Bionic.
27833         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
27834         (BIONIC_DYNAMIC_LINKER64): Define.
27835         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
27836         Update.
27837         (TARGET_HAS_SINCOS): Enable for Bionic.
27838
27839         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
27840         the last option specified on command line take effect.
27841         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
27842         (mbionic): New.
27843         (mglibc, muclibc): Update.
27844
27845         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
27846         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
27847         DEFAULT_LIBC.
27848
27849         * doc/invoke.texi (-mglibc, -muclibc): Update.
27850         (-mbionic): Document.
27851
27852 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
27853
27854         * c-common.h (c_register_addr_space): Add prototype.
27855         (ADDR_SPACE_KEYWORD): Remove.
27856         * c-common.c (c_register_addr_space): New function.
27857         (c_addr_space_name): Reimplement.
27858         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
27859
27860         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
27861         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
27862
27863         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
27864         Remove TARGET_ADDR_SPACE_KEYWORDS.
27865
27866 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
27867
27868         * input.c: New file.
27869         * input.h (main_input_filename): Move declaration to toplev.h.
27870         * toplev.c (input_location, line_table): Move to input.c
27871         * toplev.h (main_input_filename): Move declaration from input.h.
27872         * tree.c (expand_location): Move to input.c.
27873         * Makefile.in (OBJS-common): Add input.o.
27874         (input.o): Add dependencies.
27875
27876 2010-05-27  Richard Guenther  <rguenther@suse.de>
27877
27878         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
27879         for non-existant files.
27880         (fork_execute): Mark args_name file as deleted.
27881
27882 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
27883
27884         PR bootstrp/44287
27885         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
27886         (narrow_signed_type): Likewise.
27887
27888 2010-05-26  Jan Hubicka  <jh@suse.cz>
27889
27890         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
27891         edge only when checking is enabled; check using former_clone_of;
27892         check inline clones too.
27893         (cgraph_materialize_clone): Record former_clone_of pointer.
27894         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
27895         combining redirections; dump args_to_skip bitmap
27896         (cgraph_materialize_all_clones): Do no redirection here.
27897         * ipa-inline.c (inline_transform): Do redirection here.
27898         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
27899         cheking only).
27900
27901 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27902
27903         * config/avr/avr-c.c: Do not include regs.h.
27904         Include cpplib.h for cpp_define and tree.h for c-common.h.
27905         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
27906         * config/avr/t-avr: Fix dependencies for avr-c.o.
27907
27908 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27909
27910         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
27911         string instead of SYMBOL_REF rtx.
27912         * rtl.h (set_stack_check_libfunc): Move prototype from here...
27913         * libfuncs.h: ...to here.  Adjust for explow.c change.
27914
27915 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
27916
27917         * pretty-print.c: Don't include ggc.h.
27918         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
27919         (identifier_to_locale): Use them for allocation.
27920         * pretty-print.h (identifier_to_locale_alloc,
27921         identifier_to_locale_free): Declare.
27922         * toplev.c (alloc_for_identifier_to_locale): New.
27923         (general_init): Set identifier_to_locale_alloc and
27924         identifier_to_locale_free.
27925         * Makefile.in (pretty-print.o): Update dependencies.
27926
27927 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
27928
27929         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
27930         pointer types if they have different alignment or mode.
27931
27932 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
27933
27934         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
27935         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
27936         * config/sparc/sparc-protos.h (function_value): Remove declaration.
27937         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
27938         sparc_function_value_regno_p): New functions.
27939         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
27940         TARGET_FUNCTION_VALUE_REGNO_P): Define.
27941         (function_value): Rename to...
27942         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
27943         argument to 'outgoing'.
27944         (function_arg_record_value, function_arg_union_value,
27945         function_arg_vector_value): Update comment.
27946
27947 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
27948
27949         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
27950         (fde_needed_for_eh_p): New predicate.
27951         (output_call_frame_info): Use it throughout to decide whether FDEs
27952         are needed for EH purpose.
27953         (dwarf2out_begin_prologue): Reorder assignments.
27954
27955 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27956
27957         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
27958         special case loop->header.
27959         (is_predicated): New.
27960         (if_convertible_loop_p): Call it.
27961
27962 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27963
27964         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
27965         iterator in parameter.  Do not generate code during the analysis.
27966         (tree_if_convert_cond_stmt): Removed.
27967         (tree_if_convert_stmt): Removed.
27968         (predicate_bbs): New.
27969         (if_convertible_loop_p): Call predicate_bbs.
27970         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
27971         now contains all the analysis part.
27972
27973 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27974
27975         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
27976         statements in the analysis part.
27977         (tree_if_convert_stmt): Update comment.
27978         (remove_conditions_and_labels): New.
27979         (combine_blocks): Call remove_conditions_and_labels.
27980         (tree_if_conversion): Update comment.
27981
27982 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27983
27984         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
27985         than 2 predecessors or more than 2 successors.
27986
27987 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27988
27989         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
27990         of loops in which the data dependence analysis fails.
27991
27992 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27993
27994         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
27995         CDI_POST_DOMINATORS.
27996         (tree_if_conversion): Same.
27997
27998 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27999
28000         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
28001
28002 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
28003
28004         * tree-if-conv.c: Update copyright years.  Fix comments.
28005         Fix indentation.
28006
28007 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
28008
28009         * builtin-types.def (BT_INT128): New primitive type.
28010         (BT_UINT128): Likewise.
28011         * c-common.c (c_common_r): Add __int128 keyword.
28012         (c_common_type_for_size): Handle __int128.
28013         (c_common_type_for_mode): Likewise.
28014         (c_common_signed_or_unsigned_type): Likewise.
28015         (c_common_nodes_and_builtins): Add builtin type
28016         if target supports 128-bit integer scalar.
28017         * c-common.h (enum rid): Add RID_INT128.
28018         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
28019         if target supports 128-bit integer scalar.
28020         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
28021         (finish_declspecs): Likewise.
28022         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
28023         (c_token_starts_declspecs): Likewise.
28024         (c_parser_declspecs): Likewise.
28025         (c_parser_attributes): Likewise.
28026         (c_parser_objc_selector): Likewise.
28027         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
28028         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
28029         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
28030         * tree.c (make_or_reuse_type): Likewise.
28031         (make_unsigned_type): Likewise.
28032         (build_common_tree_nodes_2): Likewise.
28033         * tree.h (enum integer_type_kind): Add itk_int128 and
28034         itk_unsigned_int128.
28035         (int128_integer_type_node): New define.
28036         (int128_unsigned_type_node): New define.
28037         * doc/extend.texi: Add documentation about __int128 type.
28038
28039 2010-05-26  Richard Guenther  <rguenther@suse.de>
28040
28041         * tree-ssa-sccvn.c (copy_nary): Adjust.
28042         (copy_phis): Rename to ...
28043         (copy_phi): ... this.  Adjust.
28044         (copy_references): Rename to ...
28045         (copy_reference): ... this.  Adjust.
28046         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
28047         result into the valid table.
28048
28049 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
28050
28051         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
28052         insn-config.h, insn-codes.h, recog.h, and optabs.h.
28053
28054 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
28055
28056         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
28057
28058 2010-05-26  Richard Guenther  <rguenther@suse.de>
28059
28060         * opts.c (common_handle_option): Handle OPT_Ofast.
28061
28062 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
28063
28064         * diagnostic.c: Don't include opts.h.
28065         (permissive_error_option): Define.
28066         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
28067         for classify_diagnostic.  Don't use memset for
28068         classify_diagnostic.  Initialize new and recently added fields.
28069         (diagnostic_classify_diagnostic): Use context->n_opts instead of
28070         N_OPTS.
28071         (diagnostic_report_diagnostic): Pass context parameter to
28072         diagnostic_report_warnings_p.  Use option_enabled and option_name
28073         hooks from context.
28074         (emit_diagnostic): Use permissive_error_option.
28075         (permerror): Likewise.
28076         * diagnostic.h: Don't include options.h.
28077         (struct diagnostic_context): Add n_opts, opt_permissive,
28078         inhibit_warnings, warn_system_headers, option_enabled and
28079         option_name fields.  Change classify_diagnostic to a pointer.
28080         * opts-diagnostic.h: New file.
28081         * opts.c: Include opts-diagnostic.h.
28082         (common_handle_option): Set global_dc fields for -Wfatal-errors,
28083         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
28084         (option_name): New function.
28085         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
28086         (c_common_handle_option): Set global_dc->permissive for
28087         -fpermissive.
28088         * c-common.c (c_cpp_error): Save and restore
28089         global_dc->warn_system_headers, not variable warn_system_headers.
28090         * toplev.c: Include opts-diagnostic.h.
28091         (general_init): Update call to diagnostic_initialize.  Set
28092         global_dc->show_column, global_dc->option_enabled and
28093         global_dc->option_name.
28094         (process_options): Don't set global_dc fields here.
28095         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
28096         (diagnostic.o, opts.o, toplev.o): Update dependencies.
28097
28098 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
28099
28100         * config/picochip/picochip.md (movsi): Split a movsi from a
28101         const after reload.
28102
28103 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
28104
28105         * ggc-zone.c: Update copyright year.
28106         (poison_region): Mark memory for Valgrind as undefined before
28107         memset () call and inaccessible afterwards.
28108         (ggc_pch_total_size): Change type of i to int.
28109
28110 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
28111
28112         * ggc-common.c (ggc_free_overhead): Allow empty slot.
28113
28114 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
28115
28116         * ggc-common.c: Update copyright year.
28117         (ggc_rlimit_bound): Remove prototype.  Compile only if
28118         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
28119         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
28120         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
28121         (ggc_min_heapsize_heuristic): Likewise.
28122
28123 2010-05-26  Richard Guenther  <rguenther@suse.de>
28124
28125         PR rtl-optimization/44164
28126         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
28127         no-common access-path disambiguation.
28128         (indirect_ref_may_alias_decl_p): Adjust.
28129         (indirect_refs_may_alias_p): Likewise.
28130         (refs_may_alias_p_1): Likewise.
28131
28132 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
28133
28134         * c-typeck.c: Do not include expr.h.
28135
28136 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
28137
28138         * rtl.h (decl_default_tls_model): Move prototype from here...
28139         * output.h: ...to here.
28140         * c-decl.c: Do not include rtl.h.
28141         * c-pragma.c: Likewise.
28142         * c-parser.c: Likewise.
28143         * c-gimplify.c: Likewise.  And also not hard-reg-set.
28144         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
28145         FIXME note for it.  Add a FIXME note for expr.h.
28146         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
28147         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
28148         defined.
28149
28150 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
28151
28152         PR target/44199
28153         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
28154         or total_size is larger than red zone size for non-V4 ABI, emit a
28155         stack_tie resp. frame_tie insn before stack pointer restore.
28156         * config/rs6000/rs6000.md (frame_tie): New insn.
28157
28158 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
28159
28160         * function.h (struct function): Add can_throw_non_call_exceptions bit.
28161         * lto-streamer-in.c (input_function): Stream it in.
28162         * lto-streamer-out.c (output_function): Stream it out.
28163         * function.c (allocate_struct_function): Set it.
28164         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
28165         for flag_non_call_exceptions.
28166         * cfgbuild.c (control_flow_insn_p): Likewise.
28167         (make_edges): Likewise.
28168         * cfgexpand.c (expand_stack_alignment): Likewise.
28169         * combine.c (distribute_notes): Likewise.
28170         * cse.c (cse_extended_basic_block): Likewise.
28171         * except.c (insn_could_throw_p): Likewise.
28172         * gcse.c (simple_mem): Likewise.
28173         * ipa-pure-const.c (check_call): Likewise.
28174         (check_stmt ): Likewise.
28175         * lower-subreg.c (lower-subreg.c): Likewise.
28176         * optabs.c (emit_libcall_block): Likewise.
28177         (prepare_cmp_insn): Likewise.
28178         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
28179         * postreload.c (rest_of_handle_postreload): Likewise.
28180         * reload1.c (reload_as_needed): Likewise.
28181         (emit_input_reload_insns): Likewise.
28182         (emit_output_reload_insns): Likewise.
28183         (fixup_abnormal_edges): Likewise.
28184         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
28185         * store-motion.c (find_moveable_store): Likewise.
28186         * tree-eh.c (stmt_could_throw_p): Likewise.
28187         (tree_could_throw_p): Likewise.
28188         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
28189         * config/arm/arm.c (arm_expand_prologue): Likewise.
28190         (thumb1_expand_prologue): Likewise.
28191         * config/rx/rx.md (cbranchsf4): Likewise.
28192         (cmpsf): Likewise.
28193         * config/s390/s390.c (s390_emit_prologue): Likewise.
28194         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
28195         (inline_forbidden_into_p): New predicate.
28196         (expand_call_inline): Use it to forbid inlining.
28197         (tree_can_inline_p): Likewise.
28198
28199 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
28200
28201         * config/i386/i386-c.c: Do not include rtl.h.
28202         * config/i386/t-i386: Update dependencies.
28203
28204 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
28205
28206         * attribs.c: Do not include rtl.h.
28207         * Makefile.in: Update dependencies.
28208
28209 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
28210
28211         * double-int.h (double_int_and): New.
28212         * combine.c (try_combine): Clean up, use double_int_* and
28213         immed_double_int_const functions.
28214
28215 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28216
28217         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
28218         stderr to /dev/null instead of grep -q.
28219         * configure: Regenerate.
28220
28221 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
28222
28223         * Makefile.in (EXCEPT_H): Fix typo.
28224
28225 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
28226
28227         * ira-build.c (update_conflict_hard_reg_costs): New.
28228         (ira_build): Call update_conflict_hard_reg_costs.
28229
28230 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
28231
28232         PR debug/41371
28233         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
28234         ENABLE_CHECKING.
28235         (intersect_loc_chains): Walk the s2var's loc_chain together
28236         with s1node chain as long as the locations are equal, don't
28237         call find_loc_in_1pdv in that case.
28238
28239         PR debug/42801
28240         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
28241         (copy_bind_expr): ... instead of here.
28242         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
28243         if the block hasn't been remapped.
28244         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
28245         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
28246
28247 2010-05-25  Richard Guenther  <rguenther@suse.de>
28248
28249         PR middle-end/44069
28250         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
28251         out-of-bounds array accesses.
28252
28253 2010-05-25  Richard Guenther  <rguenther@suse.de>
28254
28255         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
28256         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
28257         (run_gcc): Re-organize to make cleanup easier.
28258
28259 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28260
28261         * config/s390/s390.c (optimization_options): Fix and move the
28262         flag_prefetch_loop_arrays override ...
28263         (override_options): ... here.
28264
28265 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
28266
28267         * diagnostic.c: Don't include plugin.h.
28268         (diagnostic_report_diagnostic): Don't handle plugins specially
28269         here.  Pass context to internal_error callback.
28270         * diagnostic.h (struct diagnostic_context): Add context parameter
28271         to internal_error callback.
28272         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
28273         * plugin.h (struct diagnostic_context): Declare.
28274         (warn_if_plugins, plugins_internal_error_function): Declare.
28275         * toplev.c (general_init): Set global_dc->internal_error.
28276         * Makefile.in (diagnostic.o): Update dependencies.
28277
28278 2010-05-25  Iain Sandoe  <iains@gcc.gnu.org>
28279
28280         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
28281         * config/rs6000/t-darwin64: New.
28282         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
28283         build crt2.
28284
28285 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
28286
28287         PR 44203
28288         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
28289         match the original (and intended) behaviour before r159557.  This
28290         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
28291         in two ways.
28292
28293 2010-05-25  Richard Guenther  <rguenther@suse.de>
28294
28295         * doc/invoke.texi: Document -Ofast.
28296         * target.h (struct gcc_target): Add handle_ofast.
28297         * target-def.h (TARGET_HANDLE_OFAST): Add.
28298         (TARGET_INITIALIZER): Adjust.
28299         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
28300         * common.opt (Ofast): Add.
28301
28302 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
28303
28304         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
28305         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
28306
28307 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
28308
28309         PR target/43610
28310         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
28311         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
28312         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
28313         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
28314
28315 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
28316
28317         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
28318         DW_OP_minus with negated offset instead of DW_OP_plus.
28319         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
28320
28321 2010-05-25  Wei Guozhi  <carrot@google.com>
28322
28323         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
28324         tst instruction and a new alternative.
28325         * config/arm/constraints.md (Pu): New constraint.
28326
28327 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
28328
28329         * function.c (assign_stack_local_1): Initialize variable
28330         to avoid warning when bootstrapping at -O3.
28331
28332 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
28333
28334         * configure.ac (all_lang_makefiles): Remove everything related to it.
28335         * configure: Regenerate.
28336         * Makefile.in: Fix reference to ada Make-lang.in.
28337         Remove support for LANG_MAKEFILES.
28338
28339 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
28340             Sandra Loosemore  <sandra@codesourcery.com>
28341
28342         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
28343         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
28344         description.  Add arm_neon_fp16_ok.
28345         (Add Options): Add arm_neon and arm_neon_fp16.
28346
28347 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
28348
28349         * diagnostic.c: Don't include flags.h.
28350         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
28351         context parameters.  Check flags in the context passed as a parameter.
28352         (diagnostic_build_prefix): Add context parameter.  Check
28353         show_column flag in context.
28354         (diagnostic_action_after_output): Check fatal_errors flag in context.
28355         (diagnostic_report_current_module): Check show_column flag in context.
28356         (default_diagnostic_starter): Update call to
28357         diagnostic_build_prefix.
28358         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
28359         (emit_diagnostic): Pass context to permissive_error_kind.
28360         (permerror): Pass context to permissive_error_kind.
28361         * diagnostic.h (struct diagnostic_context): Add show_column,
28362         pedantic_errors, permissive and fatal_errors fields.
28363         (diagnostic_build_prefix): Update prototype.
28364         * langhooks.c
28365         * toplev.c (process_options): Set flags in global_dc from
28366         flag_show_column, flag_pedantic_errors, flag_permissive,
28367         flag_fatal_errors.
28368         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
28369         to diagnostic_build_prefix.
28370         * Makefile.in (diagnostic.o): Update dependencies.
28371
28372 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
28373
28374         * config/i386/ia32intrin.h (__crc32q): Define only if
28375         __SSE4_2__ is defined.
28376
28377 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
28378
28379         PR target/44132
28380         PR middle-end/43602
28381         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
28382         DECL_VISIBILITY_SPECIFIED.
28383         (emutls_decl): Set DECL_PRESERVE_P and copy
28384         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
28385         (emutls_finalize_control_var): New callback.
28386         (emutls_finish): Finalize emutls control variables.
28387         * toplev.c (compile_file): Move the call to emutls_finish ()
28388         before varpool_assemble_pending_decls ().
28389
28390 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
28391
28392         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
28393         added to the preprocessor condition.
28394
28395 2010-05-24  Paul Brook  <paul@codesourcery.com>
28396
28397         * gengtype-lex.l: Add HARD_REG_SET.
28398         * expr.c (expand_expr_real_1): Record writes to hard registers.
28399         * function.c (rtl_data): Add asm_clobbers.
28400         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
28401         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
28402         Use crtl->asm_clobbers.
28403
28404 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
28405
28406         * doc/makefile.texi (Makefile): Mention stages 'profile'
28407         and 'feedback' for profiledbootstrap.
28408
28409 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
28410
28411         PR target/44245
28412         * config/i386/i386.c (def_builtin): Properly check
28413         OPTION_MASK_ISA_64BIT.
28414
28415 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
28416
28417         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
28418         typedefs with different but compatible types.  Allow duplicate
28419         typedefs with the same type except for pedantic non-C1X, but give
28420         warning for variably modified types.
28421         * c-typeck.c (tagged_types_tu_compatible_p,
28422         function_types_compatible_p, type_lists_compatible_p,
28423         comptypes_internal): Add parameter different_types_p; set
28424         *different_types_p for different but compatible types.  All
28425         callers changed.
28426         (comptypes_check_different_types): New.
28427         * c-tree.h (comptypes_check_different_types): Declare.
28428
28429 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
28430
28431         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
28432         * jump.c: Include basic-block.h.
28433         * profile.c: Likewise.
28434         * tree-profile.c: Likewise.
28435         * coverage.c: Likewise.
28436         * basic-block.h (optimize_function_for_size_p): Move to function.h.
28437         (optimize_function_for_speed_p): Likewise.
28438         * function.h (optimize_function_for_size_p,
28439         optimize_function_for_speed_p): Moved here from basic-block.h.
28440         * Makefile.in: Update dependencies.
28441
28442 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
28443
28444         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
28445         before calling make; allow override through $MAKE.
28446         * doc/invoke.texi (Optimize Options): Document override.
28447
28448 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
28449
28450         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
28451         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
28452         (rs6000_mode_dependent_address_ptr): Make static.
28453         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
28454         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
28455         Remove.
28456
28457 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
28458
28459         PR target/43869
28460         * config/i386/i386.c: Make sure that the correct regparm is passed.
28461
28462 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
28463
28464         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
28465         * sbitmap.c: ...to here to internalize sbitmap element access.
28466         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
28467         Explain why basic-block.h is included.
28468         * function.h: Include tm.h for CUMULATIVE_ARGS.
28469         * Makefile.in: Update dependencies.
28470
28471 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
28472
28473         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
28474         New core types.
28475         * sbitmap.h (struct sbitmap_def): Do not typedef here.
28476         * sbitmap.c: Include sbitmap.h.
28477         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
28478         hard-reg-set.h.  Split everything related to regsets out from here...
28479         * regset.h: ...to here.  New file.
28480         * df.h: Include regset.h and sbitmap.h.
28481         * tree-flow.h: Likewise.
28482         * cfgloop.h: Likewise.
28483         * except.h: Do not include sbitmap.h.  Include hashtab.h.
28484         * cgraph.h: Include vec.h and function.h.
28485         * reload.h (struct insn_chain): Change types of live_throughout
28486         and dead_or_set from regset_head to bitmap_head.
28487         (compute_use_by_pseudos): Be defined also if regset.h is not included.
28488         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
28489         spilled_regs from regset_head to bitmap_head to avoid dependency
28490         in regset.h.
28491         * sel-sched-ir.h: Include regset.h.
28492         * reload.c: Include df.h before reload.h.
28493         * caller-save.c: Likewise.
28494         * reload1.c: Likewise.
28495         * ira.c: Likewise.
28496         (mark_elimination): Update type of r to bitmap, consistent with
28497         DF_LR_IN.
28498         * dominance.c: Include bitmap.h.
28499         * modulo-sched.c: Include df.h.
28500         * cfganal.c: Include bitmap.h and sbitmap.h.
28501         * cfgbuild.c: Include sbitmap.h.
28502         * lcm.c: Include sbitmap.h.
28503         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
28504         * domwalk.c: Include sbitmap.h, exclude ggc.h.
28505         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
28506         * cselib.c: Include bitmap.h.
28507         * tree-optimize.c: Include regset.h.
28508         * stmt.c: Include bitmap.h.
28509         * Makefile.in: Update dependencies.
28510
28511 2010-05-22  Jan Hubicka  <jh@suse.cz>
28512
28513         * cgraph.h (struct varpool_node): Add same_comdat_group.
28514         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
28515         pointer.
28516         (output_varpool): Update call of lto_output_varpool_node.
28517         (input_varpool): Read same_comdat_group pointer.
28518         (input_varpool_1): Fixup same_comdat_group pointer.
28519         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
28520         group is needed, all are.
28521         * varpool.c (varpool_remove_node): Remove node from same comdat group
28522         linklist too.
28523         (varpool_analyze_pending_decls): Walk same comdat groups.
28524
28525 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
28526
28527         * rtl.h (union rtunion_def): Remove rt_bit member.
28528         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
28529         * print-rtl (print_rtx): Do not print the member.
28530         * gengtype.c (adjust_field_rtx_def): Do not handle it.
28531         * gengenrtl.c (type_from_format): Likewise.
28532         (accessor_from_format): Likewise.
28533
28534 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
28535
28536         * dbgcnt.c: Include toplev.h instead of errors.h.
28537         * ira-emit.c: Don't include errors.h.
28538         * ira.c: Include toplev.h instead of errors.h.
28539         * lto-compress.c: Include toplev.h instead of errors.h.
28540         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
28541         ira.o, dbgcnt.o): Update dependencies.
28542
28543 2010-05-22  Richard Guenther  <rguenther@suse.de>
28544
28545         * gimple.c (gimple_types_compatible_p): Check type qualifications
28546         before merging pointer to complete and pointer to incomplete type.
28547         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
28548         we use our own resolution algorithm.  The gold linker plugin
28549         doesn't do the job we want it to do here.
28550
28551 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
28552
28553         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
28554         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
28555         (sparc_mode_dependent_address_p): New function.
28556
28557 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
28558
28559         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
28560
28561         * timevar.c: Do not include any core headers.
28562         (timevar_print): De-i18n-ize.
28563         (print_time): Likewise.
28564         * timevar.h (timevar_push, timevar_pop): Make inline functions.
28565
28566 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
28567
28568         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
28569         langhooks-def.h.
28570         (diagnostic_initialize): Initialize x_data not last_function.
28571         (diagnostic_report_current_function): Move to tree-diagnostic.c.
28572         (default_diagnostic_starter): Call
28573         diagnostic_report_current_module not
28574         diagnostic_report_current_function.
28575         (diagnostic_report_diagnostic): Initialize x_data not
28576         abstract_origin.
28577         (verbatim): Likewise.
28578         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
28579         x_data.
28580         (struct diagnostic_context): Change last_function to x_data.
28581         (diagnostic_auxiliary_data): Replace with
28582         diagnostic_context_auxiliary_data and
28583         diagnostic_info_auxiliary_data.
28584         (diagnostic_last_function_changed, diagnostic_set_last_function,
28585         diagnostic_report_current_function): Move to tree-diagnostic.h.
28586         (print_declaration, dump_generic_node, print_generic_stmt,
28587         print_generic_stmt_indented, print_generic_expr,
28588         print_generic_decl, debug_c_tree, dump_omp_clauses,
28589         print_call_name, debug_generic_expr, debug_generic_stmt,
28590         debug_tree_chain, default_tree_printer): Move to
28591         tree-pretty-print.h.
28592         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
28593         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
28594         gimple-pretty-print.h.
28595         * pretty-print.c: Don't include tree.h
28596         (pp_base_format): Don't handle %K here.
28597         (pp_base_tree_identifier): Move to tree-pretty-print.c.
28598         * pretty-print.h (text_info): Change abstract_origin to x_data.
28599         (pp_tree_identifier, pp_unsupported_tree,
28600         pp_base_tree_identifier): Move to tree-pretty-print.h.
28601         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
28602         tree-pretty-print.h: New files.
28603         * tree-pretty-print.c: Include tree-pretty-print.h.
28604         (percent_K_format): New.  Moved from pretty-print.c.
28605         (pp_base_tree_identifier): Move from pretty-print.c.
28606         * c-objc-common.c: Include tree-pretty-print.h.
28607         (c_tree_printer): Handle %K here.
28608         * langhooks.c: Include tree-diagnostic.h.
28609         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
28610         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
28611         (default_tree_printer): Handle %K using percent_K_format.
28612         (general_init): Use default_tree_diagnostic_starter.
28613         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
28614         (free_lang_data): Use default_tree_diagnostic_starter.
28615         * c-pretty-print.c: Include tree-pretty-print.h.
28616         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
28617         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
28618         * dwarf2out.c: Include tree-pretty-print.h.
28619         * except.c: Include tree-pretty-print.h.
28620         * gimple-pretty-print.c: Include tree-pretty-print.h and
28621         gimple-pretty-print.h.
28622         * gimplify.c: Include tree-pretty-print.h.
28623         * graphite-poly.c: Include tree-pretty-print.h and
28624         gimple-pretty-print.h.
28625         * ipa-cp.c: Include tree-pretty-print.h.
28626         * ipa-inline.c: Include gimple-pretty-print.h.
28627         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
28628         * ipa-pure-const.c: Include gimple-pretty-print.h.
28629         * ipa-struct-reorg.c: Include tree-pretty-print.h and
28630         gimple-pretty-print.h.
28631         * ipa-type-escape.c: Include tree-pretty-print.h.
28632         * print-rtl.c: Include tree-pretty-print.h.
28633         * print-tree.c: Include gimple-pretty-print.h.
28634         * sese.c: Include tree-pretty-print.h.
28635         * tree-affine.c: Include tree-pretty-print.h.
28636         * tree-browser.c: Include tree-pretty-print.h.
28637         * tree-call-cdce.c: Include gimple-pretty-print.h.
28638         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
28639         * tree-chrec.c: Include tree-pretty-print.h.
28640         * tree-data-ref.c: Include tree-pretty-print.h and
28641         gimple-pretty-print.h.
28642         * tree-dfa.c: Include tree-pretty-print.h.
28643         * tree-if-conv.c: Include tree-pretty-print.h and
28644         gimple-pretty-print.h.
28645         * tree-inline.c: Include tree-pretty-print.h.
28646         * tree-into-ssa.c: Include tree-pretty-print.h and
28647         gimple-pretty-print.h.
28648         * tree-nrv.c: Include tree-pretty-print.h.
28649         * tree-object-size.c: Include tree-pretty-print.h and
28650         gimple-pretty-print.h.
28651         * tree-outof-ssa.c: Include tree-pretty-print.h and
28652         gimple-pretty-print.h.
28653         * tree-parloops.c: Include tree-pretty-print.h and
28654         gimple-pretty-print.h.
28655         * tree-predcom.c: Include tree-pretty-print.h and
28656         gimple-pretty-print.h.
28657         * tree-scalar-evolution.c: Include tree-pretty-print.h and
28658         gimple-pretty-print.h.
28659         * tree-sra.c: Include tree-pretty-print.h.
28660         * tree-ssa-address.c: Include tree-pretty-print.h.
28661         * tree-ssa-alias.c: Include tree-pretty-print.h.
28662         * tree-ssa-ccp.c: Include tree-pretty-print.h and
28663         gimple-pretty-print.h.
28664         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
28665         * tree-ssa-copy.c: Include tree-pretty-print.h and
28666         gimple-pretty-print.h.
28667         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
28668         * tree-ssa-dce.c: Include tree-pretty-print.h and
28669         gimple-pretty-print.h.
28670         * tree-ssa-dom.c: Include tree-pretty-print.h and
28671         gimple-pretty-print.h.
28672         * tree-ssa-dse.c: Include gimple-pretty-print.h.
28673         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
28674         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
28675         * tree-ssa-live.c: Include tree-pretty-print.h and
28676         gimple-pretty-print.h.
28677         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
28678         gimple-pretty-print.h.
28679         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
28680         gimple-pretty-print.h.
28681         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
28682         gimple-pretty-print.h.
28683         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
28684         gimple-pretty-print.h.
28685         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
28686         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
28687         * tree-ssa-operands.c: Include tree-pretty-print.h and
28688         gimple-pretty-print.h.
28689         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
28690         gimple-pretty-print.h.
28691         * tree-ssa-pre.c: Include tree-pretty-print.h and
28692         gimple-pretty-print.h.
28693         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
28694         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
28695         gimple-pretty-print.h.
28696         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
28697         gimple-pretty-print.h.
28698         * tree-ssa-sink.c: Include gimple-pretty-print.h.
28699         * tree-ssa-ter.c: Include tree-pretty-print.h and
28700         gimple-pretty-print.h.
28701         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
28702         * tree-ssa.c: Include tree-pretty-print.h and
28703         gimple-pretty-print.h.
28704         * tree-stdarg.c: Include gimple-pretty-print.h.
28705         * tree-switch-conversion.c: Include gimple-pretty-print.h.
28706         * tree-tailcall.c: Include tree-pretty-print.h and
28707         gimple-pretty-print.h.
28708         * tree-vect-data-refs.c: Include tree-pretty-print.h and
28709         gimple-pretty-print.h.
28710         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
28711         gimple-pretty-print.h.
28712         * tree-vect-loop.c: Include tree-pretty-print.h and
28713         gimple-pretty-print.h.
28714         * tree-vect-patterns.c: Include gimple-pretty-print.h.
28715         * tree-vect-slp.c: Include tree-pretty-print.h and
28716         gimple-pretty-print.h.
28717         * tree-vect-stmts.c: Include tree-pretty-print.h and
28718         gimple-pretty-print.h.
28719         * tree-vectorizer.c: Include tree-pretty-print.h.
28720         * tree-vrp.c: Include tree-pretty-print.h and
28721         gimple-pretty-print.h.
28722         * value-prof.c: Include tree-pretty-print.h and
28723         gimple-pretty-print.h.
28724         * var-tracking.c: Include tree-pretty-print.h.
28725         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
28726         (tree-diagnostic.o): New dependencies.
28727         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
28728         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
28729         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
28730         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
28731         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
28732         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
28733         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
28734         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
28735         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
28736         tree-ssa-address.o, tree-ssa-loop-niter.o,
28737         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
28738         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
28739         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
28740         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
28741         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
28742         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
28743         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
28744         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
28745         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
28746         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
28747         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
28748         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
28749         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
28750         tree-switch-conversion.o, var-tracking.o, value-prof.o,
28751         cfgexpand.o, pretty-print.o): Update dependencies.
28752
28753 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
28754
28755         * tree-ssa-structalias.c: Remove tm_p.h from include.
28756
28757 2010-05-21  Jeff Law  <law@redhat.com>
28758
28759         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
28760
28761 2010-05-21  Jason Merrill  <jason@redhat.com>
28762
28763         * tree-eh.c (cleanup_is_dead_in): New.
28764         (lower_try_finally): Don't generate a dead cleanup region.
28765         (lower_cleanup): Likewise.
28766
28767 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
28768
28769         PR debug/44223
28770         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
28771         unchain each use from the cyclic next_regno_use chain first.
28772
28773 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
28774
28775         * real: Do not include gmp.h, mpfr.h, and mpc.h.
28776         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
28777         (real_value_negate, real_value_abs): New prototypes.
28778         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
28779         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
28780         new include file for interface between MPFR and REAL_VALUE_TYPE.
28781         * real.c: Include realmpfr.h.
28782         (real_arithmetic2): Remove legacy function.
28783         (real_value_negate): New.
28784         (real_value_abs): New.
28785         (mfpr_from_real, real_from_mpfr): Move from here...
28786         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
28787         * builtins.c: Include realmpfr.h.
28788         * fold-const.c: Include realmpfr.h.
28789         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
28790         (fold_negate_const): Likewise.
28791         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
28792         * toplev.c: Include realmpfr.h.
28793         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
28794         and real_value_negate.
28795         * fixed-value.c (check_real_for_fixed_mode): Likewise.
28796         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
28797         (vfp3_const_double_index): Likewise.
28798         (arm_print_operand): Likewise.
28799         * Makefile.in: Update dependencies.
28800
28801 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28802
28803         * config/s390/s390.c (override_options): Increase the default
28804         of max-completely-peel-times.
28805
28806 2010-05-21  Julian Brown  <julian@codesourcery.com>
28807             Mark Mitchell  <mark@codesourcery.com>
28808
28809         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
28810         sibling calls for Thumb-1.
28811         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
28812         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
28813         Thumb-2.
28814         (*call_insn, *call_value_insn): Don't use for Thumb-2.
28815         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
28816         for Thumb-2.
28817         (return): New expander.
28818         (*arm_return): New name for ARM return insn.
28819         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
28820
28821 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
28822
28823         * config.gcc (sparc64-*-rtems*): New target.
28824
28825 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
28826
28827         * tree.c (build_function_decl_skip_args): Fix grammar.
28828         (build_function_type_list_1): Fix typos, adjust formatting.
28829
28830 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
28831
28832         * tree.h: Include real.h and fixed-value.h as basic datatypes.
28833         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
28834         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
28835         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
28836         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
28837         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
28838         tree-pretty-print.c, tree-loop-distribution.c,
28839         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
28840         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
28841         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
28842         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
28843         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
28844         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
28845         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
28846         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
28847         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
28848         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
28849         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
28850         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
28851         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
28852         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
28853         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
28854         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
28855         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
28856         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
28857         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
28858         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
28859         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
28860         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
28861         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
28862         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
28863         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
28864         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
28865         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
28866         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
28867         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
28868         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
28869         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
28870         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
28871         config/score/score7.c, config/score/score.c, config/arm/arm.c,
28872         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
28873         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
28874         config/bfin/bfin.c: Clean up redundant includes.
28875         * Makefile.in: Update accordingly.
28876
28877 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
28878
28879         PR middle-end/44204
28880         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
28881         statement has no arguments.
28882
28883 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
28884
28885         PR/44139
28886         * varasm.c (emutls_decl): Merge attributes to new decl.
28887
28888 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
28889
28890         PR middle-end/44101
28891         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
28892         around the uniquized constructor if its type requires a conversion.
28893
28894 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
28895
28896         PR debug/44205
28897         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
28898         at -O0 goto_locus of any of the incoming edges differs from
28899         goto_locus of outgoing edge, or gimple_location of any of the
28900         labels differs.
28901
28902 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
28903
28904         * ira.c (ira_non_ordered_class_hard_regs): Define.
28905         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
28906         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
28907         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
28908         cost of unaligned hard regs when allocating multi-reg pseudos.
28909
28910 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
28911
28912         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
28913         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
28914         for TARGET_NO_FLOAT.
28915         * config/mips/mips.c (mips_file_start): Expand conditional expression
28916         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
28917         (mips_override_options): Move -mno-float override -msoft-float and
28918         -mhard-float.
28919         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
28920         Condition(TARGET_SUPPORTS_NO_FLOAT).
28921         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
28922         __mips_no_float here.
28923         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
28924         (TARGET_SUPPORTS_NO_FLOAT): Define.
28925         * config/mips/sdemtk.opt: Delete.
28926
28927 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
28928
28929         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
28930
28931 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
28932
28933         PR target/43733
28934         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
28935         * configure: Regenerate.
28936         * config.in: Regenerate.
28937         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
28938         instead of sahf only for 64bit targets.
28939
28940 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
28941
28942         PR debug/44178
28943         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
28944         setup_ref_regs for DEBUG_INSNs.
28945
28946 2010-05-20  Jan Hubicka  <jh@suse.cz>
28947
28948         PR middle-end/44197
28949         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
28950
28951 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
28952
28953         PR bootstrap/43870
28954         * df-scan.c (df_ref_compare): Stabilize sort.
28955
28956 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
28957
28958         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
28959         argument.  Don't use DW_OP_piece if offset is non-zero,
28960         put offset into second DW_OP_bit_piece argument.
28961         (dw_sra_loc_expr): Adjust callers.  For memory expressions
28962         compute offset.
28963
28964 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
28965
28966         PR target/44202
28967         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
28968         settings for 16-bit-constant "addo" alternative.
28969
28970 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
28971
28972         * config/mips/mips-dsp.md (add<DSPV:mode>3,
28973         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
28974
28975         PR target/43764
28976         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
28977         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
28978         Use it.
28979
28980 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
28981
28982         * diagnostic.c (FLOAT, FFS): Don't undefine.
28983         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
28984         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
28985         include ordering.
28986
28987 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
28988
28989         * combine.c (propagate_for_debug): Call make_compound_operation
28990         on the source value.
28991         (try_combine): When implementing a split chosen by find_split_point,
28992         either copy i2src or set it to null.  Assert that i2src is not null
28993         before substituting into CALL_INSN_FUNCTION_USAGE.
28994
28995 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
28996
28997         * double-int.h (double_int_ior): New function.
28998         * tree.h (build_int_cst_wide_type): Remove.
28999         * tree.c (build_int_cst_wide_type): Remove.
29000         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
29001         of build_int_cst_wide_type.
29002         * stor-layout.c (set_sizetype): (Ditto.).
29003         * dojump.c (do_jump): Use build_int_cstu instead of
29004         build_int_cst_wide_type.
29005
29006 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
29007
29008         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
29009         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
29010         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
29011         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
29012         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
29013         propagate the 'data' argument to copy_tree_r.
29014         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
29015         Propagate 'data' argument to walk_tree.
29016         (copy_if_shared): New function.
29017         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
29018         (unmark_visited): New function.
29019         (unshare_body): Call copy_if_shared instead of doing it manually.
29020         (unvisit_body): Call unmark_visited instead of doing it manually.
29021
29022 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
29023
29024         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
29025         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
29026         * hooks.c: Likewise.
29027         * target-def.h (TARGET_FOLD_BUILTIN): Define to
29028         hook_tree_tree_int_treep_bool_null.
29029         * target.h (struct gcc_target): Update signature of fold_builtin
29030         field.
29031         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
29032         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
29033         instead of the call expression.
29034         (fold_builtin_call_array): Pass n and argarray directly.
29035         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
29036         consing a list.
29037         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
29038         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
29039         `i' and use it in place of `arity'.
29040         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
29041         Dereference `args' directly.
29042         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
29043
29044 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29045
29046         * doc/sourcebuild.texi (Effective-Target Keywords): Document
29047         3dnow, sse3, sse2.
29048         (Directives): Document optional dg-require-effective-target
29049         selector.
29050
29051 2010-05-19  Richard Guenther  <rguenther@suse.de>
29052
29053         PR lto/44196
29054         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
29055
29056 2010-05-19  Richard Guenther  <rguenther@suse.de>
29057
29058         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
29059         * common.opt (fwhopr=): New.
29060         * opts.c (common_handle_option): Handle OPT_fwhopr.
29061         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
29062         * collect2.c (main): Match -fwhopr*.
29063         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
29064         Execute ltrans stage in parallel when jobs is bigger than 1.
29065
29066 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29067
29068         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
29069         pentiumpro on Solaris 8/x86 with Sun as.
29070         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
29071         hidden alias bug.
29072         (gcc_cv_as_ix86_quad): Check for .quad directive.
29073         * configure: Regenerate.
29074         * config.in: Regenerate.
29075         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
29076
29077 2010-05-19  Martin Jambor  <mjambor@suse.cz>
29078
29079         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
29080         also for indirect edges.  Actual printing moved...
29081         (ipa_print_node_jump_functions_for_edge): ...here.
29082         (ipa_compute_jump_functions): Renamed to
29083         ipa_compute_jump_functions_for_edge and made static.
29084         (ipa_compute_jump_functions): New function.
29085         (make_edge_direct_to_target): Check if the number of arguments on
29086         the newly direct edge is the same as the number of parametrs of
29087         the callee.
29088         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
29089         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
29090         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
29091         analysis functions unconditionally, call the new
29092         ipa_analyze_params_uses on the node instead of every edge.
29093
29094 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
29095
29096         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
29097         to tree.
29098         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
29099         also checks for a constant int vs.  non-constant but
29100         loop-invariant steps.
29101         (find_or_create_group): Change the sort algorithm to only consider
29102         steps that are constant ints.
29103         (idx_analyze_ref): Adopt code to handle a tree instead of a
29104         HOST_WIDE_INT for step.
29105         (gather_memory_references_ref): Handle tree instead of int and be
29106         prepared to see a NULL_TREE.
29107         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
29108         prefetches if the step cannot be calculated at compile time.
29109         (issue_prefetch_ref): Issue prefetches for non-constant but
29110         loop-invariant steps.
29111
29112 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
29113
29114         Revert:
29115         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
29116
29117         * tree.h (build_call_list): Remove.
29118         * tree.c (build_call_list): Remove.
29119
29120 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
29121
29122         * tree.h (build_call_list): Remove.
29123         * tree.c (build_call_list): Remove.
29124
29125 2010-05-18  Jan Hubicka  <jh@suse.cz>
29126
29127         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
29128
29129 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
29130
29131         PR rtl-optimization/43332
29132         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
29133
29134 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
29135
29136         * tree.h (build_int_cstu): Implement as static inline.
29137         * tree.c (build_int_cstu): Remove function.
29138         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
29139         sign extended.
29140
29141 2010-05-18  Richard Guenther  <rguenther@suse.de>
29142
29143         PR lto/44143
29144         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
29145         (debug): Initialize from -save-temps.
29146         (collect_execute): Print command-line when verbose.
29147         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
29148         for ltrans invocation.  Produce -dumpbase flag again.
29149         (process_args): Remove.
29150         (main): Simplify.
29151         * collect2.c (maybe_run_lto_and_relink): Only pass object
29152         files to lto-wrapper.
29153         * gcc.c (LINK_COMMAND_SPEC): Likewise.
29154
29155 2010-05-18  Jan Hubicka  <jh@suse.cz>
29156
29157         * opts.c (decode_options): Do not disable whopr at ipa_cp.
29158         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
29159
29160 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
29161
29162         PR lto/44184
29163         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
29164         in a GIMPLE_ASM.
29165         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
29166         in a GIMPLE_ASM.
29167
29168 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
29169
29170         PR debug/41371
29171         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
29172         rtx_equal_p inline.
29173
29174 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
29175
29176         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
29177         lto-macho as lto_binary_reader.
29178
29179         * darwin.c (darwin_asm_named_section): Do not add assembler comment
29180         after .section directive; just print it before the directive instead.
29181
29182 2010-05-17  Jan Hubicka  <jh@suse.cz>
29183
29184         * cgraph.c (cgraph_create_virtual_clone): Only check
29185         versionable_function_p when not in wpa and checking is enabled.
29186         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
29187         there are no more functions to materialize.
29188
29189 2010-05-17  Jan Hubicka  <jh@suse.cz>
29190
29191         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
29192         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
29193         New functions.
29194         (output_cgraph): Call output_cgraph_opt_summary.
29195         (input_cgrpah): Call input_cgraph_opt_summary.
29196         (output_cgraph_opt_summary_p, output_node_opt_summary,
29197         input_node_opt_summary, input_cgraph_opt_section): New functions.
29198         * lto-section-in.c (lto_section_name): Add cgraphopt.
29199         * tree-inline.c (tree_function_versioning): Handle parm_num.
29200         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
29201         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
29202
29203 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
29204
29205         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
29206         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
29207         the insn to prefetch ratio heuristic to loops with known trip count.
29208
29209 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
29210
29211         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
29212         (schedule_prefetches): Do not generate a prefetch if the unroll factor
29213         is far from what is required by the prefetch.
29214
29215 2010-05-17  Jan Hubicka  <jh@suse.cz>
29216
29217         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
29218         (ipcp_estimate_growth): Likewise.
29219         (ipcp_const_param_count): Likewise.
29220         (ipcp_insert_stage): Likewise.
29221         * ipa-prop.c (visit_load_for_mod_analysis): New function.
29222         (visit_store_addr_for_mod_analysis): Set used flag.
29223         (ipa_detect_param_modifications): Set used flag for SSE params;
29224         update use of walk_stmt_load_store_addr_ops.
29225         (ipa_print_node_params): Print used flag.
29226         (ipa_write_node_info): Stream used flag.
29227         (ipa_read_node_info): Likewise.
29228         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
29229         (ipa_is_param_used): New function.
29230         (lto_ipa_fixup_call_notes): Remove unused declaration.
29231
29232 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29233
29234         PR target/44074
29235         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
29236         * configure: Regenerate.
29237         * config.in: Regenerate.
29238         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
29239         !HAVE_AS_IX86_REP_LOCK_PREFIX.
29240         Don't emit whitespace.
29241         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
29242         (*rep_movsi): Likewise.
29243         (*rep_movsi_rex64): Likewise.
29244         (*rep_movqi): Likewise.
29245         (*rep_movqi_rex64): Likewise.
29246         (*rep_stosdi_rex64): Likewise.
29247         (*rep_stossi): Likewise.
29248         (*rep_stossi_rex64): Likewise.
29249         (*rep_stosqi): Likewise.
29250         (*rep_stosqi_rex64): Likewise.
29251         (*cmpstrnqi_nz_1): Use {%;} after repz.
29252         (*cmpstrnqi_nz_rex_1): Likewise.
29253         (*cmpstrnqi_1): Likewise.
29254         (*cmpstrnqi_rex_1): Likewise.
29255         (*strlenqi_1): Use {%;} after repnz.
29256         (*strlenqi_rex_1): Likewise.
29257         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
29258         (*sync_compare_and_swap<mode>): Likewise.
29259         (sync_double_compare_and_swap<mode>): Likewise.
29260         (*sync_double_compare_and_swapdi_pic): Likewise.
29261         (sync_old_add<mode>): Likewise.
29262         (sync_add<mode>): Likewise.
29263         (sync_sub<mode>): Likewise.
29264         (sync_<code><mode>): Likewise.
29265
29266 2010-05-17  Martin Jambor  <mjambor@suse.cz>
29267
29268         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
29269         otr_token and polymorphic.
29270         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
29271         (cgraph_clone_edge): Copy the above fields.
29272         * tree.c (get_binfo_at_offset): New function.
29273         * tree.h (get_binfo_at_offset): Declare.
29274         * ipa-prop.h (enum jump_func_type): Added known_type jump function
29275         type, reordered items, updated comments.
29276         (union jump_func_value): Added base_type field, reordered fields.
29277         (enum ipa_lattice_type): Moved down in the file.
29278         (struct ipa_param_descriptor): New field polymorphic.
29279         (ipa_is_param_polymorphic): New function.
29280         * ipa-prop.c: Include gimple.h and gimple-fold.h.
29281         (ipa_print_node_jump_functions): Print known type jump functions.
29282         (compute_complex_pass_through): Renamed to...
29283         (compute_complex_assign_jump_func): this.
29284         (compute_complex_ancestor_jump_func): New function.
29285         (compute_known_type_jump_func): Likewise.
29286         (compute_scalar_jump_functions): Create known type and complex ancestor
29287         jump functions.
29288         (ipa_note_param_call): New parameter polymorphic, set the corresponding
29289         flag in the call note accordingly.
29290         (ipa_analyze_call_uses): Renamed to...
29291         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
29292         variable var only in the block where it is used.
29293         (ipa_analyze_virtual_call_uses): New function.
29294         (ipa_analyze_call_uses): Likewise.
29295         (combine_known_type_and_ancestor_jfs): Likewise.
29296         (update_jump_functions_after_inlining): Implemented handling of a
29297         number of new jump function types combination.
29298         (print_edge_addition_message): Removed.
29299         (make_edge_direct_to_target): New function.
29300         (try_make_edge_direct_simple_call): Likewise.
29301         (try_make_edge_direct_virtual_call): Likewise.
29302         (update_call_notes_after_inlining): Renamed to...
29303         (update_indirect_edges_after_inlining): this.  Moved edge creation for
29304         indirect calls to try_make_edge_direct_simple_call, also calls
29305         try_make_edge_direct_virtual_call for virtual calls.
29306         (ipa_print_node_params): Changed the header message.
29307         (ipa_write_jump_function): Stream also known type jump functions.
29308         (ipa_read_jump_function): Likewise.
29309         (ipa_write_indirect_edge_info): Stream new fields in
29310         cgraph_indirect_call_info.
29311         (ipa_read_indirect_edge_info): Likewise.
29312         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
29313         GIMPLE_FOLD_H.
29314
29315 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29316
29317         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
29318
29319 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
29320
29321         * tree.h (CALL_EXPR_ARGS): Delete.
29322         (call_expr_arglist): Delete.
29323         * tree.c (call_expr_arglist): Delete.
29324         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
29325         targetm.fold_builtin.
29326         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
29327         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
29328         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
29329         arglist parameter.  Use CALL_EXPR_ARG.
29330         (picochip_expand_builtin_3op): Likewise.
29331         (picochip_expand_builtin_2opvoid): Likewise.
29332         (picochip_expand_array_get): Likewise.
29333         (picochip_expand_array_put): Likewise.
29334         (picochip_expand_array_testport): Likewise.
29335         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
29336         rather than arglist.
29337         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
29338         CALL_EXPR_ARGS.
29339         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
29340         than TREE_VALUE and TREE_CHAIN.
29341         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
29342         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
29343         the arglist.
29344
29345 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
29346
29347         PR bootstrap/42347
29348         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
29349         to have no fallthru edge.
29350
29351         PR middle-end/44102
29352         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
29353         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
29354         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
29355         add BARRIER after previous bb if needed.
29356
29357 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
29358
29359         * tree.c (build_function_type_list_1): Remove bogus assert condition.
29360
29361 2010-05-17  Alan Modra  <amodra@gmail.com>
29362
29363         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
29364         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
29365         with copy_reg rtx param.
29366         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
29367         Correct cases where code for ABI_V4 did not initialise the reg
29368         used to access frame.  Also leave frame_reg_rtx as sp for large
29369         frames that save no regs.
29370
29371 2010-05-17  Martin Jambor  <mjambor@suse.cz>
29372
29373         PR middle-end/44133
29374         * tree-sra.c (create_access_replacement): New parameter rename, mark
29375         the replaement for renaming only when it is true.
29376         (get_access_replacement): Pass true in the rename parameter of
29377         create_access_replacement.
29378         (get_unrenamed_access_replacement): New function.
29379         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
29380         replacement declaration from it.
29381
29382 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
29383
29384         * function.c (try_fit_stack_local, add_frame_space): New static
29385         functions.
29386         (assign_stack_local_1): Use them.  Look for opportunities to use
29387         space previously wasted on alignment.
29388         * function.h (struct frame_space): New.
29389         (struct rtl_data): Add FRAME_SPACE_LIST member.
29390         * reload1.c (something_was_spilled): New static variable.
29391         (alter_reg): Set it.
29392         (reload): Test it in addition to testing if the frame size changed.
29393
29394 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
29395
29396         * config/s390/s390.c: Define sane prefetch settings and activate
29397         flag_prefetch_loop_arrays on -O3.
29398         * config/s390/s390.h: Declare that read can use write prefetch.
29399
29400 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
29401
29402         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
29403         build.
29404
29405 2010-05-16  Jan Hubicka  <jh@suse.cz>
29406
29407         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
29408         function body; do not check stdarg field of struct function.
29409
29410 2010-05-16  Jan Hubicka  <jh@suse.cz>
29411
29412         * cgraph.c (dump_cgraph_node): Dump versionable flag.
29413         * cgraph.h (cgraph_local_info): Add versionable flag.
29414         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
29415         (ipcp_versionable_function_p): Use it.
29416         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
29417         versionable flag.
29418
29419 2010-05-16  Jan Hubicka  <jh@suse.cz>
29420
29421         * cgraph.c (cgraph_clone_node): Take decl argument and insert
29422         clone into hash when it is different from orig.
29423         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
29424         * cgraph.h (cgraph_clone_node): Update prototype.
29425         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
29426         (lto_cgraph_encoder_delete): Delete body map.
29427         (lto_cgraph_encoder_size): Move to header.
29428         (lto_cgraph_encoder_encode_body_p,
29429         lto_set_cgraph_encoder_encode_body): New.
29430         (lto_output_node): Do not take written_decls argument; output clone_of
29431         pointer.
29432         (add_node_to): Add include_body_argument; call
29433         lto_set_cgraph_encoder_encode_body on master of the clone.
29434         (add_references): Update use of add_node_to.
29435         (compute_ltrans_boundary): Likewise.
29436         (output_cgraph): Do not create written_decls bitmap.
29437         (input_node): Take nodes argument; stream in clone_of correctly.
29438         (input_cgraph_1): Update use of input_node.
29439         * lto-streamer-out.c (lto_output): Use encoder info to decide
29440         what bodies to output.
29441         * ipa-inline.c (cgraph_clone_inlined_nodes,
29442         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
29443         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
29444         (lto_cgraph_encoder_size): Define here.
29445         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
29446         Declare.
29447
29448 2010-05-16  Richard Guenther  <rguenther@suse.de>
29449
29450         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
29451         -fipa-type-escape.
29452         * ipa-type-escape.c (gate_type_escape_vars): Run when
29453         -fipa-struct-reorg runs.
29454         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
29455         * common.opt (fipa-type-escape): Remove.
29456
29457 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
29458
29459         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
29460         (decode_options): Likewise.
29461         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
29462
29463 2010-05-16  Jan Hubicka  <jh@suse.cz>
29464
29465         * ipa.c (function_and_variable_visibility): Also bring local all
29466         aliases.
29467
29468 2010-05-16  Richard Guenther  <rguenther@suse.de>
29469
29470         * alias.c (nonoverlapping_memrefs_p): Remove use of
29471         IPA type-escape information.
29472
29473 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
29474
29475         * c-common.c (c_common_reswords): Add _Static_assert for C.
29476         * c-parser.c (c_token_starts_declaration,
29477         c_parser_next_token_starts_declaration,
29478         c_parser_static_assert_declaration_no_semi,
29479         c_parser_static_assert_declaration): New.
29480         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
29481         Handle static assertions if static_assert_ok.
29482         (c_parser_external_declaration, c_parser_declaration_or_fndef,
29483         c_parser_compound_statement_nostart, c_parser_label,
29484         c_parser_for_statement, c_parser_objc_methodprotolist,
29485         c_parser_omp_for_loop): All callers of
29486         c_parser_declaration_or_fndef changed.
29487         (c_parser_struct_declaration): Handle static assertions.
29488         (c_parser_compound_statement_nostart): Use
29489         c_parser_next_token_starts_declaration and
29490         c_token_starts_declaration to detect start of declarations.
29491         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
29492         Likewise.
29493
29494 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
29495
29496         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
29497         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
29498         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
29499         TARGET_FUNCTION_VALUE_REGNO_P): Define.
29500         (mmix_function_outgoing_value): Rename to...
29501         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
29502         (mmix_function_value_regno_p): Make static.
29503         (mmix_libcall_value): New function.
29504         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
29505         mmix_function_value_regno_p): Remove declaration.
29506
29507 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
29508
29509         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
29510         BUILT_IN_ALLOCA if stack checking is enabled.
29511
29512 2010-05-16  Richard Guenther  <rguenther@suse.de>
29513
29514         * var-tracking.c (vars_copy_1): Inline ...
29515         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
29516         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
29517         (variable_merge_over_cur): Adjust.  Merge asserts.
29518         (variable_merge_over_src): Likewise.
29519         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
29520         (variable_post_merge_new_vals): Merge asserts.
29521         (variable_post_merge_perm_vals): Likewise.
29522         (find_mem_expr_in_1pdv): Likewise.
29523         (dataflow_set_different_value): Remove.
29524         (onepart_variable_different_p): Merge asserts.
29525         (variable_different_p): Likewise.
29526         (dataflow_set_different_1): Inline ...
29527         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
29528         (emit_notes_for_differences_1): Merge asserts.
29529
29530 2010-05-16  Richard Guenther  <rguenther@suse.de>
29531
29532         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
29533         * optabs.c (libfunc_decl_hash): Likewise.
29534         * varasm.c (emutls_decl): Likewise.
29535
29536 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
29537
29538         * c-decl.c: Don't include gimple.h.
29539         (merge_decls): Do not copy gimple_body.
29540
29541 2010-05-15  Jason Merrill  <jason@redhat.com>
29542
29543         * c.opt: Add -fnothrow-opt.
29544
29545 2010-05-15  Jan Hubicka  <jh@suse.cz>
29546
29547         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
29548         analyzed.
29549         * passes.c (ipa_write_summaries): Write all analyzed nodes.
29550
29551 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
29552
29553         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
29554         * Makefile.in: Add it.
29555         Fix all other Makefile dependencies for changes below.
29556         * tree.h: Include it instead of defining VEC primitives here.
29557         * gimple.h: Likewise.
29558         * rtl.h: Likewise.
29559         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
29560         * except.h: Include vecir.h, break dependence on tree.h.
29561
29562         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
29563         Move from here...
29564         * tree-iterator.c: ...to here.
29565         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
29566
29567         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
29568         tm_p.h.
29569         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
29570         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
29571         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
29572         tree-mudflap.h, and target.h.
29573         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
29574         predict.h, tree-inline.h, gimple.h, and langhooks.h.
29575         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
29576         Add FIXME for why gimple.h is still included (should be unnecessary
29577         since GCC 4.5 gimplification unit-at-a-time).
29578         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
29579         * c-pragma.c: Add FIXME for why function.h needs to be included just
29580         for cfun, at front-end level.
29581         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
29582         Do not include ggc.h, but include vecprim.h for VEC(char).
29583         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
29584         Explain why target.h is included.
29585         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
29586         Explain why gimple.h is included.
29587         * c-ppoutput.c: Do not include tm.h.
29588         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
29589         * c-parses.c: Explain why rtl.h is included, and that this (and only
29590         this) is also why tm.h must be included.
29591         Do not include except.h.
29592         * c-lang.c: Do not include ggc.h.
29593
29594 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
29595
29596         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
29597
29598 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
29599
29600         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
29601         unions by default if those structs and unions have no tags.  Do
29602         not condition anonymous struct and unions handling on flag_iso.
29603         Allow anonymous structs and unions for C1X.
29604         (finish_struct): Do not diagnose lack of named fields when
29605         anonymous structs and unions present for C1X.  Accept flexible
29606         array members in structure with anonymous structs or unions but no
29607         directly named fields.
29608         * doc/extend.texi (Unnamed Fields): Update.
29609
29610 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
29611
29612         * gimple.h (compare_field_offset): Rename into...
29613         (gimple_compare_field_offset): ...this.
29614         * gimple.c (compare_field_offset): Rename into...
29615         (gimple_compare_field_offset): ...this.  Compare the full access if
29616         the offset is self-referential.
29617         (gimple_types_compatible_p): Adjust for above renaming.
29618         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
29619         DECL_NONADDRESSABLE_P flag of fields before merging them.
29620
29621 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
29622
29623         * tree.h (ctor_to_list): Delete.
29624         * tree.c (ctor_to_list): Delete.
29625
29626 2010-05-15  Jan Hubicka  <jh@suse.cz>
29627
29628         * ipa-reference.c: Include toplev.h
29629         (is_proper_for_analysis): Only add to all_module_statics
29630         if it is allocated.
29631         (write_node_summary_p, stream_out_bitmap,
29632         ipa_reference_write_optimization_summary,
29633         ipa_reference_read_optimization_summary): New.
29634         (struct ipa_opt_pass_d pass_ipa_reference): Add
29635         optimization summary streaming.
29636         * lto-cgraph.c (referenced_from_this_partition_p,
29637         reachable_from_this_partition_p): New functions.
29638         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
29639         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
29640         * opts.c (decode_options): Enable ipa_reference.
29641         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
29642         * lto-streamer.h (referenced_from_this_partition_p,
29643         reachable_from_this_partition_p): Declare.
29644
29645 2010-05-15  Richard Guenther  <rguenther@suse.de>
29646
29647         PR tree-optimization/44038
29648         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
29649         taking the address of a V_C_E of a constant.
29650
29651 2010-05-14  Jan Hubicka  <jh@suse.cz>
29652
29653         * tree.h (memory_identifier_string): Remove.
29654         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
29655         (ipa_reference_global_vars_info_d): Remove statics_not_read and
29656         statics_not_written.
29657         (ipa_reference_optimization_summary_d): New structure.
29658         (ipa_reference_optimization_summary_t): New type and vector.
29659         (ipa_reference_vars_info_d): Embedd structures instead of using
29660         pointers.
29661         (reference_vars_to_consider): Remove out of GGC space.
29662         (module_statics_escape): Remove.
29663         (global_info_obstack): Rename to ...
29664         (optimization_summary_obstack): ... this one.
29665         (initialization_status_t): Remove.
29666         (memory_identifier_string): Remove.
29667         (get_reference_vars_info): Fix indenting.
29668         (set_reference_vars_info): Likewise.
29669         (get_reference_optimization_summary): New.
29670         (set_reference_optimization_summary): New.
29671         (get_global_reference_vars_info): Remove.
29672         (ipa_reference_get_read_global): Remove.
29673         (ipa_reference_get_written_global): Remove.
29674         (ipa_reference_get_not_read_global): Update.
29675         (ipa_reference_get_not_written_global): Update.
29676         (is_proper_for_analysis): Outlaw addressable.
29677         (propagate_bits): Update for new datastructures.
29678         (analyze_variable): Remove.
29679         (init_function_info): Update for new datastructures.
29680         (clean_function_local_data): Remove.
29681         (clean_function): Remove.
29682         (copy_global_bitmap): Use optimizations_summary_obstack.
29683         (duplicate_node_data): Duplicate optimization summary only.
29684         (remove_node_data): Remove optimization summary only.
29685         (generate_summary): Do not analyze variables; do not compute
29686         module_statics_escape; do not prune solutions by it.
29687         (read_write_all_from_decl): Fix typos in comments.
29688         (propagate): Doscover readonly and nonaddressable first;
29689         update for new datastructures; share global bitmaps.
29690         * ipa-reference.h (ipa_reference_get_read_global,
29691         ipa_reference_get_written_global): Remove.
29692         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
29693         * Makefile.in: Remove ipa-refereference from GT files.
29694
29695 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
29696
29697         PR debug/44112
29698         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
29699         for all SYMBOL_REF_DECLs.
29700
29701 2010-05-14  Jan Hubicka  <jh@suse.cz>
29702
29703         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
29704         (varpool_all_refs_explicit_p): New inline function.
29705         * ipa-reference.c: Update comment.
29706         (module_statics_written): Remove.
29707         (get_static_decl): Remove.
29708         (ipa_init): Do not initialize module_statics_written.
29709         (analyze_function): Likewise.
29710         (generate_summary): Likewise; do not compute module_statics_readonly
29711         and do not update variable flags.
29712         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
29713         * ipa.c: Inlucde flags.h
29714         (cgraph_local_node_p): New.
29715         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
29716         promote functions to local.
29717         (ipa_discover_readonly_nonaddressable_vars): New function.
29718         (function_and_variable_visibility): Use cgraph_local_node_p.
29719         * varpool.c (varpool_finalize_decl): Set force_output for
29720         DECL_PRESERVE_P vars.
29721
29722 2010-05-14  Jan Hubicka  <jh@suse.cz>
29723
29724         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
29725
29726 2010-05-14  Richard Guenther  <rguenther@suse.de>
29727
29728         PR tree-optimization/44119
29729         * tree-ssa-pre.c (eliminate): Properly mark replacement of
29730         a PHI node necessary.
29731
29732 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
29733
29734         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
29735
29736 2010-05-14  Jason Merrill  <jason@redhat.com>
29737
29738         PR c++/44127
29739         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
29740         (gimple_call_set_nothrow): New.
29741         * gimple.c (gimple_build_call_from_tree): Call it.
29742         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
29743
29744         PR c++/44127
29745         * gimplify.c (gimplify_seq_add_stmt): No longer static.
29746         * gimple.h: Declare it.
29747         * gimple.c (gimple_build_eh_filter): No ops.
29748
29749 2010-05-14  Jan Hubicka  <jh@suse.cz>
29750
29751         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
29752         nodes already in queue.
29753         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
29754         re-enqueueing node.
29755
29756 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
29757
29758         PR debug/44136
29759         * cfgexpand.c (expand_debug_expr): If non-memory op0
29760         has BLKmode, return NULL.
29761
29762 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
29763
29764         * config.gcc: Add support for --with-cpu option for bdver1.
29765         * config/i386/i386.h (TARGET_BDVER1): New macro.
29766         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
29767         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
29768         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
29769         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
29770         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
29771         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
29772         (processor_type): Add PROCESSOR_BDVER1.
29773         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
29774         processor_type in config/i386/i386.h.
29775         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
29776         movaps <reg, reg> instead of movapd <reg, reg> when replacing
29777         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
29778         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
29779         to emit packed xor instead of packed double/packed integer
29780         xor for SSE and AVX when moving a zero value.
29781         * config/i386/sse.md: Add check for
29782         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
29783         movapd/movdqa for SSE and AVX.
29784         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
29785         single logical operations i.e and, or and xor instead of packed double
29786         logical operations for SSE and AVX.
29787         * config/i386/i386-c.c (ix86_target_macros_internal):
29788         Add PROCESSOR_BDVER1.
29789         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
29790         (has_fma4, has_xop): New.
29791         * config/i386/i386.c (bdver1_cost): New variable.
29792         (m_BDVER1): New macro.
29793         (m_AMD_MULTIPLE): Add m_BDVER1.
29794         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
29795         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
29796         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
29797         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
29798         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
29799         x86_tune_sse_partial_reg_dependency,
29800         x86_tune_sse_unaligned_load_optimal,
29801         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
29802         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
29803         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
29804         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
29805         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
29806         Enable/disable for bdver1.
29807         (processor_target_table): Add bdver1_cost.
29808         (cpu_names): Add bdver1.
29809         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
29810          processor_alias_table.
29811         (ix86_expand_vector_move_misalign): Change.
29812         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
29813         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
29814         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
29815         of movupd/movdqu for SSE and AVX.
29816         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
29817         (ix86_tune_adjust_cost): Add code for bdver1.
29818         (standard_sse_constant_opcode): Add check for
29819         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
29820         of packed double xor for SSE and AVX.
29821
29822 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
29823
29824         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
29825         result to unsigned.
29826
29827 2010-05-14  Tristan Gingold  <gingold@adacore.com>
29828
29829         * toplev.c (default_debug_hooks): Remove this variable.
29830         (process_options): Remove assignments to default_debug_hooks.
29831
29832 2010-05-14  Martin Jambor  <mjambor@suse.cz>
29833
29834         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
29835         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
29836         * langhooks.h (struct lang_hooks_for_decls): Removed field
29837         fold_obj_type_ref.
29838         * tree.c (free_lang_data): Remove assignment to
29839         lang_hooks.fold_obj_type_ref.
29840         * tree.def (OBJ_TYPE_REF): Update comment.
29841
29842 2010-05-14  Richard Guenther  <rguenther@suse.de>
29843
29844         PR tree-optimization/44124
29845         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
29846
29847 2010-05-14  Alan Modra  <amodra@gmail.com>
29848
29849         PR target/44075
29850         * config/rs6000/rs6000.c (struct machine_function): Reorder
29851         fields for better packing.  Add lr_save_state.
29852         (rs6000_ra_ever_killed): Return lr_save_state if set.
29853         (rs6000_emit_eh_reg_restore): Set lr_save_state.
29854
29855 2010-05-13  Jan Hubicka  <jh@suse.cz>
29856
29857         * varpool.c (decide_is_variable_needed): Drop code checking
29858         TREE_SYMBOL_REFERENCED.
29859
29860 2010-05-13  Jan Hubicka  <jh@suse.cz>
29861
29862         * final.c (output_addr_const): Do not call mark_decl_referenced.
29863         * cgraphunit.c (process_function_and_variable_attributes): Use
29864         mark_needed_node dirrectly.
29865         (assemble_thunk): Do not call mark_decl_referenced.
29866
29867 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
29868
29869         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
29870
29871 2010-05-13  Jeff Law  <law@redhat.com>
29872
29873         * ira-conflicts.c (print_allocno_conflicts): New function broken out
29874         from...
29875         (print_conflicts): Call print_allocno_conflicts.
29876
29877 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
29878
29879         PR debug/44104
29880         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
29881         if it is NULL.
29882
29883 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
29884
29885         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
29886         t-mingw-w64 or t-mingw-w32 for multilib configuration.
29887         * config/i386/t-mingw-w32: New.
29888         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
29889
29890 2010-05-13  Martin Jambor  <mjambor@suse.cz>
29891
29892         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
29893         gimple-fold.c).
29894         * gimple-fold.c (get_base_binfo_for_type): New function.
29895         (gimple_get_relevant_ref_binfo): Likewise.
29896         (gimple_fold_obj_type_ref_known_binfo): Likewise.
29897         (gimple_fold_obj_type_ref): Likewise.
29898         (fold_gimple_call): Simplify condition for folding virtual calls
29899         and call gimple_fold_obj_type_ref.
29900         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
29901         (gimple_fold_obj_type_ref_known_binfo): Likewise.
29902
29903 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
29904
29905         * config/rs6000/rs6000-protos.h
29906         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
29907         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
29908         (rs6000_debug_mode_dependent_address)
29909         (rs6000_mode_dependent_address_ptr): Likewise.
29910
29911 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
29912
29913         PR debug/43983
29914         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
29915         by SRA.
29916         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
29917         * tree-sra.c (create_access_replacement): Call unshare_expr before
29918         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
29919         * dwarf2out.c: Include tree-flow.h.
29920         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
29921         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
29922         Handle DW_OP_bit_piece.
29923         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
29924         construct_piece_list, adjust_piece_list): New functions.
29925         (add_var_loc_to_decl): Handle SRA optimized variables.
29926         Adjust for var_loc_note to loc field renaming.
29927         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
29928         in VAR_LOCATION note.
29929         (new_loc_descr_op_bit_piece): New function.
29930         (dw_sra_loc_expr): New function.
29931         (dw_loc_list): Use it.  Don't handle the last range after the
29932         loop, handle it inside of the loop.  Adjust for var_loc_note
29933         to loc field renaming.
29934         (add_location_or_const_value_attribute): Only special case
29935         single entry loc lists if loc is NOTE_P.  Adjust for
29936         var_loc_note to loc field renaming.
29937         (dwarf2out_var_location): Don't set newloc->var_loc_note
29938         and newloc->next here.
29939
29940 2010-05-12  Jan Hubicka  <jh@suse.cz>
29941
29942         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
29943         flag.
29944         * cgraph.h (cgraph_only_called_directly_p,
29945         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
29946         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
29947         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
29948         (assemble
29949         * ipa.c (cgraph_remove_unreachable_nodes): Use
29950         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
29951         flags.
29952         * tree-inline.c (copy_bb): Check address_taken flag.
29953         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
29954         externally_visible flag.
29955
29956 2010-05-12  Jason Merrill  <jason@redhat.com>
29957
29958         PR bootstrap/44048
29959         PR target/44099
29960         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
29961         * sdbout.c (plain_type_1): Likewise.
29962         * dwarf2out.c (is_base_type): Likewise.
29963         (gen_type_die_with_usage): Likewise.  Generate
29964         DW_TAG_unspecified_type for any LANG_TYPE.
29965
29966 2010-05-12  Jan Hubicka  <jh@suse.cz>
29967
29968         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
29969         indrect edges too.
29970         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
29971         (cgraph_clone_edge): Update.
29972         (cgraph_node_remove_callees): Remove indirect calls too.
29973         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
29974         (cgraph_create_indirect_edge): Update prototype.
29975         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
29976         is_proper_for_analysis.
29977         (add_new_function, visited_nodes, function_insertion_hook_holder,
29978         get_local_reference_vars_info, mark_address_taken, mark_address,
29979         mark_load, mark_store, check_asm_memory_clobber, check_call,
29980         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
29981         (ipa_init): Do not initialize visited_nodes;
29982         function_insertion_hook_holder.
29983         (analyze_variable): Rewrite.
29984         (analyze_function): Rewrite.
29985         (copy_local_bitmap): Remove.
29986         (duplicate_node_dat): Do not duplicate local info.
29987         (generate_summary): Simplify to only walk cgraph.
29988         (write_node_summary_p, ipa_reference_write_summary,
29989         ipa_reference_read_summary): Remove.
29990         (propagate): Do not remove function insertion;
29991         generate summary.
29992         (pass_ipa_reference): NULLify summary handling fields.
29993         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
29994         (input_edge): Input ecf_flags.
29995         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
29996         (update_indirect_edges_after_inlining): Ignore edges with unknown
29997         param.
29998
29999 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
30000
30001         * implicit-zee.c: New file.
30002         * tree-pass.h (pass_implicit_zee): Declare.
30003         * passes.c (init_optimization_passes): Add zee pass.
30004         * common.opt (fzee): New flag.
30005         * timevar.def (TV_ZEE): Define.
30006         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
30007         and beyond.
30008         * Makefile.in (implicit-zee.o): Add new build file.
30009
30010 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
30011             Nathan Froyd  <froydnj@codesourcery.com>
30012
30013         * c-common.c (sync_resolve_params): Remove write-only variable.
30014
30015 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
30016
30017         * target.h (struct gcc_target): Add mode_dependent_address_p field.
30018         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
30019         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
30020         * targhooks.c (default_mode_dependent_address_p): New function.
30021         * targhooks.h (default_mode_dependent_address_p): Declare function.
30022         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
30023         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
30024         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
30025         target hook. Change return type to bool.
30026         * recog.h (mode_dependent_address_p): Change return type to bool.
30027
30028 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
30029             Nathan Froyd  <froydnj@codesourcery.com>
30030
30031         * tree-mudflap.c (build_function_type_0, build_function_type_1,
30032         build_function_type_2, build_function_type_3): Remove.
30033         (mudflap_init): Use build_function_type_list.
30034
30035 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
30036             Nathan Froyd  <froydnj@codesourcery.com>
30037
30038         * coverage.c (build_fn_info_value): Call build_constructor instead of
30039         build_constructor_from_list.
30040         (build_ctr_info_value): Likewise.
30041         (build_gcov_info): Likewise.
30042
30043 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
30044
30045         * tree.c (build_constructor): Compute TREE_CONSTANT for the
30046         resultant constructor.
30047         (build_constructor_single): Don't set TREE_CONSTANT.
30048         (build_constructor_from_list): Don't compute TREE_CONSTANT.
30049
30050 2010-05-12  Jan Hubicka  <jh@suse.cz>
30051
30052         * cgraph.h (struct varpool_node): Add aux.
30053         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
30054         * varpool.c (varpool_remove_node): Do not remove initializer.
30055         (varpool_reset_queue): Export.
30056         (varpool_finalize_decl): Volatile vars are forced to be output.
30057         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
30058         replaced decl.
30059         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
30060         process_references, varpool_can_remove_if_no_refs): New functions.
30061         (cgraph_remove_unreachable_nodes): Handle variables too.
30062
30063 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
30064
30065         PR target/44088
30066         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
30067
30068 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
30069
30070         PR middle-end/44085
30071         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
30072         change value of ORT_TASK.
30073         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
30074         (omp_notice_threadprivate_variable): New function.
30075         (omp_notice_variable): Call it for threadprivate variables.
30076         If enclosing ctx is a task, print enclosing task rather than
30077         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
30078         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
30079         if task has untied clause.
30080
30081         PR debug/42278
30082         * dwarf2out.c (base_type_die): Don't add name attribute here.
30083         (modified_type_die): Instead of sizetype use
30084         its underlying original type.  If a DW_TAG_base_type doesn't
30085         have name added, add __unknown__.
30086         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
30087         always call force_type_die instead.
30088
30089 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
30090
30091         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
30092         for __stack_chk_guard.
30093
30094 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
30095
30096         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
30097         don't call start_source_file debug hook here...
30098         (finish_options): ... but here, after outputting predefined and
30099         command line defines and undefs.
30100
30101         PR middle-end/44071
30102         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
30103         no fallthru edge.
30104         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
30105         optimizing away empty bb with no successors, move over its
30106         footer chain to fallthru predecessor.
30107         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
30108         (rtl_split_edge): For asm goto call patch_jump_insn even if
30109         splitting fallthru edge.
30110
30111         PR c++/44059
30112         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
30113         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
30114         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
30115         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
30116         on DW.ref.* decls.
30117
30118         PR c++/44062
30119         * c-parser.c (c_parser_expression): Mark LHS of a comma
30120         expression as read if it is a decl, handled component or
30121         COMPOUND_EXPR with that on the RHS.
30122         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
30123         if it is a decl or handled component.
30124
30125 2010-05-11  Jan Hubicka  <jh@suse.cz>
30126
30127         * lto-symtab.c (lto_symtab_free): New function.
30128         * lto-streamer.h (lto_symtab_free): Declare.
30129
30130 2010-05-11  Jan Hubicka  <jh@suse.cz>
30131
30132         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
30133         that if function is needed it is reachable.
30134         (lto_output_node): See if it the function is reachable or referenced.
30135         (output_cgraph): Update call of lto_output_node.
30136         * lto-streamer.h (reachable_from_other_partition_p): Declare.
30137
30138 2010-05-11  Jan Hubicka  <jh@suse.cz>
30139
30140         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
30141         Mark as used.
30142
30143 2010-05-11  Jan Hubicka  <jh@suse.cz>
30144
30145         PR tree-optimize/44063
30146         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
30147         queue.
30148         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
30149         limits.
30150         (estimate_function_body_sizes): Compute sizes even when disregarding.
30151
30152 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
30153
30154         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
30155
30156 2010-05-11  Jan Hubicka  <jh@suse.cz>
30157
30158         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
30159         into every boundary.
30160
30161 2010-05-11  Jan Hubicka  <jh@suse.cz>
30162
30163         * matrix-reorg.c (matrix_reorg): Rebuild edges.
30164
30165 2010-05-11  Jan Hubicka  <jh@suse.cz>
30166
30167         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
30168         lto_streamer_cache_delete): Put nodes into heap.
30169         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
30170         heap.
30171
30172 2010-05-11  Jan Hubicka  <jh@suse.cz>
30173
30174         * cgraphbuild.c (cgraph_rebuild_references): New.
30175         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
30176         out extern inlines.
30177         * cgraph.h (cgraph_rebuild_references): Declare.
30178         * tree-inline.c (tree_function_versioning): Use it.
30179         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
30180
30181 2010-05-11  Jan Hubicka  <jh@suse.cz>
30182
30183         * cgraph.c: Include ipa-utils.h
30184         (cgraph_create_virtual_clone): Update references.
30185         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
30186
30187 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
30188
30189         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
30190         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
30191         cache size.
30192
30193 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
30194
30195         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
30196
30197 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
30198
30199         * gcc.c (execute): For -### don't quote arguments that
30200         contain just alphanumerics and _/-. characters.
30201         * doc/invoke.texi: Document that change for -###.
30202
30203         PR debug/44023
30204         * df-problems.c (struct dead_debug): Add to_rescan field.
30205         (dead_debug_init): Clear to_rescan field.
30206         (dead_debug_finish): Rescan all debug insns in to_rescan
30207         bitmap and free the bitmap.
30208         (dead_debug_insert_before): Instead of rescanning debug insns
30209         immediately queue their rescanning until dead_debug_finish.
30210         (df_note_bb_compute): After dead_debug_add do continue instead
30211         of break.
30212
30213 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
30214
30215         PR debug/44028
30216         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
30217         clear also INSN_REG_USE_LIST.
30218
30219 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30220
30221         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
30222
30223 2010-05-10  Jan Hubicka  <jh@suse.cz>
30224
30225         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
30226         commited change.
30227
30228 2010-05-10  Jan Hubicka  <jh@suse.cz>
30229
30230         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
30231         Allocate encoders.
30232         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
30233         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
30234         (lto_streamer_cache_create): Init alloc pool.
30235         (lto_streamer_cache_delete): Free alloc pool.
30236         * lto-streamer.h: Include alloc pool.
30237         (lto_streamer_cache_d): Use alloc pool.
30238         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
30239
30240 2010-05-10  Jan Hubicka  <jh@suse.cz>
30241
30242         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
30243         * cgraphbuild.c: Include except.h
30244         (record_type_list, record_eh_tables): New function.
30245         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
30246
30247 2010-05-10  Jan Hubicka  <jh@suse.cz>
30248
30249         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
30250         __frame_dummy_init_array_entry, force_to_data): Attribute as used
30251         rather than unused.
30252
30253 2010-05-10  Michael Matz  <matz@suse.de>
30254
30255         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
30256         (can_reassociate_p): Use FLOAT_TYPE_P.
30257         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
30258         (vect_force_simple_reduction): ... this.
30259         * tree-parloops.c (gather_scalar_reductions): Use
30260         vect_force_simple_reduction.
30261         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
30262         vect_is_simple_reduction, add modify argument, if true rewrite
30263         "a-b" into "a+(-b)".
30264         (vect_is_simple_reduction, vect_force_simple_reduction): New
30265         functions.
30266         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
30267
30268 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
30269             Vladimir Makarov  <vmakarov@redhat.com>
30270
30271         PR rtl-optimization/44012
30272         * ira-build.c (remove_unnecessary_allocnos): Nullify
30273         regno_allocno_map of the removed allocno.
30274
30275 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30276
30277         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
30278         to /dev/null.
30279         * configure: Regenerate.
30280
30281 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30282
30283         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
30284         unused.
30285         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
30286         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
30287         support in Sun ld.
30288         * configure: Regenerate.
30289
30290 2010-05-10  Richard Guenther  <rguenther@suse.de>
30291
30292         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
30293         marked if the entry identifier is marked.
30294
30295 2010-05-10  Richard Guenther  <rguenther@suse.de>
30296
30297         * c-common.c (struct c_common_attributes): Add fnspec attribute.
30298         (handle_fnspec_attribute): New function.
30299         * gimple.h (gimple_call_return_flags): Declare.
30300         (gimple_call_arg_flags): Likewise.
30301         * gimple.c (gimple_call_arg_flags): New function.
30302         (gimple_call_return_flags): Likewise.
30303         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
30304         New argument flags.
30305         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
30306         return value flags.
30307         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
30308         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
30309         main work to ...
30310         (make_heapvar_for): ... this new function.
30311         (handle_rhs_call): Handle fnspec attribute argument specifiers.
30312         (handle_lhs_call): Likewise.
30313         (find_func_aliases): Adjust.
30314
30315 2010-05-10  Richard Guenther  <rguenther@suse.de>
30316
30317         PR tree-optimization/44050
30318         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
30319
30320 2010-05-10  Wei Guozhi  <carrot@google.com>
30321
30322         PR target/42879
30323         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
30324
30325 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
30326
30327         PR c/10676
30328         * c-typeck.c (lookup_field): Take a type directly.  Update
30329         recursive calls.
30330         (build_component_ref): Update call to lookup_field.
30331         (set_init_label): Use lookup_field to find initialized field.
30332         Handle returned list of fields like a sequence of designators.
30333
30334 2010-05-09  Richard Guenther  <rguenther@suse.de>
30335
30336         PR middle-end/44024
30337         * fold-const.c (tree_single_nonzero_warnv_p): Properly
30338         handle &FUNCTION_DECL.
30339
30340 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
30341
30342         PR c/4784
30343         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
30344         structures and unions recursively.
30345         (detect_field_duplicates): Move duplicate detection with a hash to
30346         detect_field_duplicates_hash.  Always use a hash if anonymous
30347         structures or unions are present.
30348         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
30349         give errors.
30350
30351 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
30352
30353         PR target/44046
30354         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
30355         detect Atom, Core 2 and Core i7.
30356
30357 2010-05-09  Richard Guenther  <rguenther@suse.de>
30358
30359         * gcc.c (store_arg): Handle temporary file deletion for
30360         joined arguments.
30361
30362 2010-05-09  Richard Guenther  <rguenther@suse.de>
30363
30364         PR middle-end/44043
30365         * ipa-inline.c (estimate_function_body_sizes): Return after
30366         disregarding inline limits.
30367
30368 2010-05-09  Richard Guenther  <rguenther@suse.de>
30369
30370         * gcc.c (store_arg): Revert last change.
30371
30372 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
30373
30374         PR middle-end/28685
30375         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
30376         (optimize_ops_list): Call it.
30377
30378 2010-05-08  Richard Guenther  <rguenther@suse.de>
30379
30380         PR tree-optimization/44030
30381         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
30382         NECESSARY flag if we propagate from a inserted expression.
30383
30384 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
30385
30386         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
30387         domain types as equal if they are both PLACEHOLDER_EXPRs.
30388
30389 2010-05-08  Richard Guenther  <rguenther@suse.de>
30390
30391         * lto-wrapper.c (run_gcc): Remove linker output from
30392         command line for LTRANS invocation.
30393
30394 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
30395
30396         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
30397         lto-macho as lto_binary_reader.
30398         * target.h (struct gcc_target): New hooks lto_start and lto_end.
30399         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
30400         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
30401         in lto_start and lto_end calls.
30402         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
30403         magic numbers.
30404         (scan_prog_file): Update is_elf_or_coff call.
30405         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
30406
30407         * collect2.c (main): Fix enum comparison.
30408
30409         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
30410         Add prototypes.
30411         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
30412         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
30413         and TARGET_ASM_LTO_END.
30414         * darwin.c: Include obstack.h and lto-streamer.h.
30415         (lto_section_names_offset, lto_section_names_obstack,
30416         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
30417         global variables.
30418         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
30419         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
30420         to a temporary file.
30421         (darwin_asm_lto_end): New function.  Restore asm_out_file.
30422         (darwin_asm_named_section): For LTO sections, replace the name with
30423         the offset of the section name in a string table, and build this
30424         table.
30425         (darwin_file_start): Initialize global vars for LTO support.
30426         (darwin_file_end): If output to asm_out_file was redirected, append it
30427         to the proper asm_out_file here.  Add the section names section.
30428
30429 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
30430
30431         * c-pragma.c (pending_weak_d, pending_weak): New.
30432         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
30433         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
30434         handle_pragma_weak): Update the uses of pending_weaks.
30435
30436 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
30437
30438         PR documentation/44016
30439         * doc/standards.texi (Standards): Link to unversioned
30440         cxx0x_status.html page.
30441
30442 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
30443
30444         PR target/43708
30445         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
30446         in addition to TREE_USED, to avoid "set but unused" warnings.
30447
30448 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
30449
30450         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
30451         (is_loop_prefetching_profitable): Do not insert prefetches
30452         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
30453         times the prefetch ahead distance.
30454
30455 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
30456
30457         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
30458         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
30459         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
30460         the unroll_factor.
30461
30462 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
30463
30464         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
30465         a diagnostic info when the insn-to-mem ratio is too small.
30466
30467 2010-05-07  Richard Guenther  <rguenther@suse.de>
30468
30469         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
30470         the linker plugin.
30471         (store_arg): Queue temp_filename for deletion instead of
30472         the whole argument.
30473
30474 2010-05-07  Richard Guenther  <rguenther@suse.de>
30475
30476         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
30477         (run_gcc): Handle LTRANS phase invocation.
30478         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
30479
30480 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
30481
30482         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
30483         this is also meaningful on PARM_DECLs and RESULT_DECLs.
30484
30485 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30486
30487         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
30488
30489 2010-05-07  Richard Guenther  <rguenther@suse.de>
30490
30491         PR tree-optimization/44020
30492         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
30493         code when PRE is not yet initialized.
30494
30495 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30496
30497         * config/mips/dbxmdebug.h: Remove.
30498         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
30499
30500 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
30501
30502         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
30503         with null pointer and also warn about ordered comparison of zero with
30504         pointer if -Wextra.
30505
30506 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
30507
30508         * graphite-blocking.c
30509         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
30510         * graphite-clast-to-gimple.c
30511         (clast_to_gcc_expression): Same.
30512         (precision_for_value): Same.
30513         (precision_for_interval): Same.
30514         (gcc_type_for_interval): Same.
30515         (graphite_create_new_guard): Same.
30516         (compute_bounds_for_level): Same.
30517         (graphite_create_new_loop_guard): Same.
30518         * graphite-interchange.c
30519         (build_linearized_memory_access): Same.
30520         (pdr_stride_in_loop): Same.
30521         (memory_strides_in_loop_1): Same.
30522         (memory_strides_in_loop): Same.
30523         (extend_scattering): Same.
30524         (psct_scattering_dim_for_loop_depth): Same.
30525         (pbb_number_of_iterations): Same.
30526         * graphite-poly.h
30527         (debug_iteration_domains): Same.
30528         * graphite-ppl.c
30529         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
30530         (ppl_set_inhomogeneous_gmp): Same.
30531         (ppl_strip_loop): Same.
30532         (ppl_lexico_compare_linear_expressions): Same.
30533         (ppl_read_polyhedron_matrix): Same.
30534         (ppl_max_for_le_pointset): Same.
30535         * graphite-ppl.h
30536         (ppl_read_polyhedron_matrix): Same.
30537         (tree_int_to_gmp): Same.
30538         (gmp_cst_to_tree): Same.
30539         (ppl_set_inhomogeneous): Same.
30540         (ppl_set_inhomogeneous_tree): Same.
30541         (ppl_set_coef): Same.
30542         (ppl_set_coef_tree): Same.
30543         * graphite-sese-to-poly.c
30544         (build_pbb_scattering_polyhedrons): Same.
30545         (build_scop_scattering): Same.
30546         (scan_tree_for_params_right_scev): Same.
30547         (scan_tree_for_params): Same.
30548         (find_params_in_bb): Same.
30549         (find_scop_parameters): Same.
30550         (add_upper_bounds_from_estimated_nit): Same.
30551         (build_loop_iteration_domains): Same.
30552         (add_condition_to_domain): Same.
30553         (pdr_add_memory_accesses): Same.
30554
30555 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
30556
30557         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
30558         CLooG's value_* macros to their respective mpz_* counterparts.
30559         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
30560         (graphite_create_new_loop_guard): Same.
30561         * graphite-interchange.c (build_linearized_memory_access): Same.
30562         (pdr_stride_in_loop): Same.
30563         (memory_strides_in_loop_1): Same.
30564         (1st_interchange_profitable_p): Same.
30565         * graphite-poly.c (extend_scattering): Same.
30566         (psct_scattering_dim_for_loop_depth): Same.
30567         (pbb_number_of_iterations): Same.
30568         (pbb_number_of_iterations_at_time): Same.
30569         * graphite-poly.h (new_1st_loop): Same.
30570         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
30571         (oppose_constraint): Same.
30572         (insert_constraint_into_matrix): Same.
30573         (ppl_set_inhomogeneous_gmp): Same.
30574         (ppl_set_coef_gmp): Same.
30575         (ppl_strip_loop): Same.
30576         (ppl_lexico_compare_linear_expressions): Same.
30577         (ppl_max_for_le_pointset): Same.
30578         (ppl_min_for_le_pointset): Same.
30579         (ppl_build_realtion): Same.
30580         * graphite-ppl.h (gmp_cst_to_tree): Same.
30581         (ppl_set_inhomogeneous): Same.
30582         (ppl_set_inhomogeneous_tree): Same.
30583         (ppl_set_coef): Same.
30584         (ppl_set_coef_tree): Same.
30585         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
30586         (build_scop_scattering): Same.
30587         (add_value_to_dim): Same.
30588         (scan_tree_for_params_right_scev): Same.
30589         (scan_tree_for_params_int): Same.
30590         (scan_tree_for_params): Same.
30591         (find_params_in_bb): Same.
30592         (find_scop_parameters): Same.
30593         (add_upper_bounds_from_estimated_nit): Same.
30594         (build_loop_iteration_domains): Same.
30595         (create_linear_expr_from_tree): Same.
30596         (add_condition_to_domain): Same.
30597         (pdr_add_memory_accesses): Same.
30598
30599 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
30600             Jason Merrill  <jason@redhat.com>
30601
30602         * c-common.c (c_common_reswords): Add nullptr.
30603         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
30604         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
30605         (gen_type_die_with_usage): Likewise.
30606         * dbxout.c (dbxout_type): Likewise.
30607         * sdbout.c (plain_type_1): Likewise.
30608
30609 2010-05-06  Jason Merrill  <jason@redhat.com>
30610
30611         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
30612         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
30613         ret appropriately.
30614         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
30615
30616         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
30617         stripping WITH_SIZE_EXPR.
30618         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
30619         change.
30620
30621 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30622
30623         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
30624         list of obsolete configurations.
30625         Disabled check for obsolete configurations.
30626         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
30627         Removed support for previous versions.
30628         * config/mips/iris.h: Removed.
30629         * config/mips/iris5.h: Removed.
30630         * config/mips/iris6.h: Merged old iris.h contents.
30631         (TARGET_IRIX): Removed.
30632         (DRIVER_SELF_SPECS): Removed mabi=32.
30633         (IDENT_ASM_OP): Removed undef.
30634         (STARTFILE_SPEC): Removed mabi=32.
30635         (ENDFILE_SPEC): Likewise.
30636         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
30637         (MACHINE_TYPE): Update for IRIX 6.5.
30638         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
30639         TARGET_IRIX by TARGET_IRIX6.
30640         (mips_file_start): Likewise.
30641         (mips_output_external): Remove IRIX 5/6 O32 support.
30642         (mips_output_function_prologue): Likewise.
30643         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
30644         TARGET_IRIX6.
30645         (TARGET_CPU_CPP_BUILTINS): Likewise.
30646         (TARGET_IRIX): Removed.
30647         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
30648         (MULTILIB_DIRNAMES): Removed 32.
30649         (MULTILIB_OSDIRNAMES): Removed ../lib.
30650         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
30651         (Specific, mips-sgi-irix5): Document removal.
30652         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
30653         Remove references to older IRIX 6 releases and the O32 ABI.
30654
30655 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
30656
30657         PR bootstrap/43994
30658         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
30659         instead of DF_REF_REAL_REG.
30660
30661 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
30662
30663         PR target/43888
30664         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
30665         handling to still return true for x64 targets.
30666
30667 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
30668
30669         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
30670
30671 2010-05-06  Jan Hubicka  <jh@suse.cz>
30672
30673         PR tree-optimization/43791
30674         * ipa-inline.c (update_caller_keys): Remove bogus
30675         disregard_inline_limits check.
30676
30677 2010-05-06  Michael Matz  <matz@suse.de>
30678
30679         PR tree-optimization/43984
30680         * tree-ssa-pre.c (inserted_phi_names): Remove.
30681         (inserted_exprs): Change to bitmap.
30682         (create_expression_by_pieces): Set bits, don't append to vector.
30683         (insert_into_preds_of_block): Don't handle inserted_phi_names.
30684         (eliminate): Don't look at inserted_phi_names, remove deleted
30685         insns from inserted_exprs.
30686         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
30687         (init_pre, fini_pre): Allocate and free bitmaps.
30688         (execute_pre): Insert insns on edges before elimination.
30689
30690 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
30691
30692         * tree.c (initializer_zerop): Handle STRING_CST.
30693
30694 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30695
30696         PR 40989
30697         * doc/invoke.texi (Wimplicit): Document as C only.
30698         * opts.c (common_handle_option): Add argument kind.
30699         (handle_option): Rename as read_cmdline_option. Factor out code to...
30700         (handle_option): ... here. New.
30701         (handle_options): Rename as read_cmdline_options.
30702         (decode_options): Update call.
30703         (set_option): Use option index instead of option pointer. Classify
30704         diagnostics correctly.
30705         (enable_warning_as_error): Call handle_option.
30706         * opts.h (set_option): Update declaration.
30707         (handle_option): Declare.
30708         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
30709         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
30710         * c-opts.c (set_Wimplicit): Delete.
30711         (c_family_lang_mask): New static constant.
30712         (c_common_handle_option): Add argument kind. Use handle_option
30713         instead of set_Wimplicit.
30714         (c_common_post_options): warn_implicit and warn_implicit_int
30715         are disabled by default.
30716         * c-common.c (warn_implicit): Do not define here.
30717         * c-common.h (warn_implicit): Do not declare here.
30718         (c_common_handle_option): Update declaration.
30719         * lto-opts.c (lto_reissue_options): Update call to set_option.
30720
30721 2010-05-06  Richard Guenther  <rguenther@suse.de>
30722
30723         PR tree-optimization/43571
30724         * domwalk.c (walk_dominator_tree): Walk the dominator
30725         sons in more optimal order.
30726
30727 2010-05-06  Richard Guenther  <rguenther@suse.de>
30728
30729         PR tree-optimization/43934
30730         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
30731         (stmt_cost): Likewise.
30732         (extract_true_false_args_from_phi): New helper.
30733         (determine_max_movement): For PHI nodes verify we can hoist them
30734         and compute their cost.
30735         (determine_invariantness_stmt): Handle PHI nodes.
30736         (move_computations_stmt): Likewise.  Hoist PHI nodes in
30737         if-converted form using COND_EXPRs.
30738         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
30739         (tree_ssa_lim): Likewise.
30740         * tree-flow.h (tree_ssa_lim): Adjust prototype.
30741         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
30742
30743 2010-05-06  Richard Guenther  <rguenther@suse.de>
30744
30745         PR tree-optimization/43987
30746         * tree-ssa-structalias.c (could_have_pointers): For possibly
30747         address-taken variables force pointers to be recorded.
30748         (create_variable_info_for_1): Likewise.
30749         (push_fields_onto_fieldstack): Pass in wheter all fields
30750         must have pointers.
30751         (find_func_aliases): Query types instead of vars whether
30752         they contain pointers where appropriate.
30753
30754 2010-05-06  Jan Hubicka  <jh@suse.cz>
30755
30756         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
30757         (record_reference, mark_address, mark_load, mark_store): Record
30758         references.
30759         (record_references_in_initializer): Update call of record_references.
30760         (rebuild_cgraph_edges): Remove all references before rebuiding.
30761         * cgraph.c (cgraph_create_node): Clear ref list.
30762         (cgraph_remove_node): Remove references.
30763         (dump_cgraph_node): Dump references.
30764         (cgraph_clone_node): Clone references.
30765         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
30766         (struct cgraph_node, varpool_node): Add ref_lst.
30767         * ipa-ref.c: New file.
30768         * ipa-ref.h: New file.
30769         * ipa-ref-inline.h: New file.
30770         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
30771         (referenced_from_other_partition_p): New function.
30772         (lto_output_varpool_node): Take set arugment; call
30773         referenced_from_other_partition.
30774         (lto_output_ref): New.
30775         (add_references): New.
30776         (output_refs): New.
30777         (output_cgraph): Compute boundary based on references; output refs.
30778         (output_varpool): Accept cgraph_node_set argument.
30779         (input_ref): New.
30780         (input_refs): New.
30781         (input_cgraph): Call input_refs.
30782         * lto-section-in.c (lto_section_name): Add refs.
30783         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
30784         (ipa-ref.o): New file.
30785         * varpool.c (varpool_node): Clear ipa ref list.
30786         (varpool_remove_node): Remove references.
30787         (dump_varpool_node): Dump references.
30788         (varpool_assemble_decl): Only compile finalized ones.
30789         (varpool_extra_name_alias): Initialize ref list.
30790         * lto-streamer.c (lto-get_section_name): Add .refs section.
30791         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
30792         (referenced_from_other_partition_p): Declared.
30793
30794 2010-05-06  Ira Rosen  <irar@il.ibm.com>
30795
30796         PR tree-optimization/43901
30797         * tree-vect-stmts.c (vectorizable_call): Assert that vector
30798         type is not NULL if it's transformation phase, and return
30799         FALSE if it's analysis.
30800         (vectorizable_conversion, vectorizable_operation,
30801         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
30802
30803 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
30804
30805         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
30806         Delete.
30807         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
30808         New define.
30809         * config/mips/mips-protos.h
30810         (mips_small_register_classes_for_mode_p): Delete prototype.
30811
30812 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
30813
30814         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
30815         * config/arm/arm.c (multiple_operation_profitable_p,
30816         compute_offset_order): New static functions.
30817         (load_multiple_sequence, store_multiple_sequence): Use them.
30818         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
30819         memory offsets, not register numbers.
30820         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
30821
30822 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
30823
30824         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
30825         (get_pending_sizes, put_pending_size, put_pending_sizes):
30826         Update the uses of pending_sizes.
30827         * c-decl.c (store_parm_decls): Likewise.
30828         * c-tree.h (struct c_arg_info): Likewise.
30829         * tree.h: Update the prototype for get_pending_sizes and
30830         put_pending_sizes.
30831
30832 2010-05-05  Jason Merrill  <jason@redhat.com>
30833
30834         PR debug/43370
30835         * c-common.c (handle_aligned_attribute): Respect
30836         ATTR_FLAG_TYPE_IN_PLACE.
30837
30838         PR testsuite/43758
30839         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
30840         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
30841         (TARGET_INITIALIZER): Use it.
30842         * c-common.c (attribute_takes_identifier_p): Call it.
30843         * c-common.h: Update prototype.
30844         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
30845         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
30846
30847 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
30848
30849         PR debug/43950
30850         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
30851         DW_ID_down_case for Fortran compilation units.
30852
30853 2010-05-05  Jan Hubicka  <jh@suse.cz>
30854
30855         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
30856         handle aliases.
30857
30858 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
30859
30860         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
30861         a variable-sized RESULT_DECL.
30862
30863 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
30864
30865         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
30866
30867 2010-05-05  Jason Merrill  <jason@redhat.com>
30868
30869         PR c++/43787
30870         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
30871         returns GS_OK.
30872         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
30873
30874 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
30875             Jakub Jelinek  <jakub@redhat.com>
30876
30877         PR debug/43478
30878         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
30879         (dead_debug_init, dead_debug_finish): New functions.
30880         (dead_debug_add, dead_debug_insert_before): Likewise.
30881         (df_note_bb_compute): Initialize a dead_debug object, add dead
30882         debug uses to it, insert debug bind insns before death insns,
30883         reset debug insns that refer to pending uses at the end.
30884         * rtl.h (make_debug_expr_from_rtl): New prototype.
30885         * varasm.c (make_debug_expr_from_rtl): New function.
30886
30887 2010-05-05  Jan Hubicka  <jh@suse.cz>
30888
30889         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
30890         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
30891         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
30892         lto_varpool_encoder_deref, lto_varpool_encoder_size,
30893         lto_varpool_encoder_encode_initializer_p,
30894         lto_set_varpool_encoder_encode_initializer): New functions.
30895         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
30896         call output_varpool.
30897         (input_varpool_node): Do not always set analyzed.
30898         (input_cgraph_1): Return vector of cgraph nodes.
30899         (input_varpool_1): Return vector of varpools.
30900         (input_cgraph): Free the vectors.
30901         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
30902         output only initializers needed.
30903         (lto_output): Only call output_cgraph.
30904         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
30905         * lto-section-out.c (lto_new_out_decl_state): Initialize
30906         state->varpool_node_encoder.
30907         * lto-streamer.h (lto_varpool_encoder_d): New.
30908         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
30909         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
30910         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
30911         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
30912         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
30913         Declare.
30914         (output_varpool, input_varpool): Remove declarations.
30915
30916 2010-05-05  Jan Hubicka  <jh@suse.cz>
30917
30918         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
30919         with body can prevail.
30920
30921 2010-05-05  Jan Hubicka  <jh@suse.cz>
30922
30923         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
30924         size.
30925
30926 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
30927
30928         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
30929
30930         * gengtype.h (erro_at_line): Constify pos argument.
30931
30932         * gengtype.c: Include hashtab.h.
30933         (enum gc_used): Document GC_MAYBE_POINTED_TO.
30934         (error_at_line): Constify pos argument.
30935         (do_typedef): Initialize p->opt field.
30936         (get_file_gtfilename): Fix comment typo.
30937         (struct walk_type_data): Constify line field.
30938         (get_output_file_for_structure): New function.
30939         (write_local_func_for_structure): Constify orig_s argument.
30940         Use get_output_file_for_structure.
30941         (write_func_for_structure): Use get_output_file_for_structure.
30942         (INDENT): New define.
30943         (dump_pair, dump_type, dump_type_list, dump_typekind)
30944         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
30945         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
30946         functions.
30947         (seen_types): New variable.
30948         (main): New variable do_dump.  Process "-d" command line option.
30949         Call dump_everything if dump requested.
30950
30951 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
30952
30953         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
30954         in a temporary instead of invoking the macro multiple times.
30955         (track_expr_p): Likewise.
30956
30957 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
30958
30959         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
30960         per new semantics.
30961         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
30962         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
30963         conditions for printing notes.
30964         * common.opt (-Wcoverage-mismatch): Allow negative, default to
30965         true, update documentation.
30966         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
30967
30968 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
30969
30970         PR c/43981
30971         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
30972         on dimen.
30973
30974 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
30975
30976         PR target/43799
30977         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
30978         (*sse_prologue_save_insn1): Likewise.
30979         (SSE prologue save splitter): Likewise.
30980
30981 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
30982
30983         * tree.c (free_lang_data_in_one_sizepos): New inline function.
30984         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
30985         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
30986         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
30987         all decls.  Call it on DECL_FIELD_OFFSET of fields.
30988         (find_decls_types_r): Follow DECL_VALUE_EXPR.
30989         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
30990
30991 2010-05-04  Martin Jambor  <mjambor@suse.cz>
30992
30993         * tree-sra.c (build_access_from_expr_1): The first parameter type
30994         changed to simple tree.
30995         (build_access_from_expr): Likewise, gsi parameter was eliminated.
30996         (scan_assign_result): Renamed to assignment_mod_result, enum elements
30997         renamed as well.
30998         (build_accesses_from_assign): Removed all parameters except for a
30999         simple gimple statement.  Now returns a simple bool.
31000         (scan_function): All non-analysis parts moved to separate functions
31001         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
31002         parameters and updated both callers.
31003         (sra_modify_expr): Removed parameter data.
31004         (sra_modify_function_body): New function.
31005         (perform_intra_sra): Call sra_modify_function_body to modify the
31006         function body.
31007         (replace_removed_params_ssa_names): Parameter data changed into
31008         adjustments vector.
31009         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
31010         changed the parameter dont_convert to convert with the opposite
31011         meaning.
31012         (sra_ipa_modify_assign): Parameter data changed into adjustments
31013         vector, return value changed to bool.
31014         (ipa_sra_modify_function_body): New function.
31015         (sra_ipa_reset_debug_stmts): Updated a comment.
31016         (modify_function): Use ipa_sra_modify_function_body to modify function
31017         body.
31018
31019 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
31020
31021         PR middle-end/43671
31022         * alias.c (true_dependence): Handle the same VALUE in x and mem.
31023         (canon_true_dependence): Likewise.
31024         (write_dependence_p): Likewise.
31025
31026 2010-05-04  Jan Hubicka  <jh@suse.cz>
31027
31028         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
31029         * cgraphbuild.c: Include ipa-utils.h
31030         (record_reference_ctx): New struct.
31031         (record_reference): Simplify to work on initializers; not statements.
31032         (mark_address, mark_load, mark_store): New.
31033         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
31034         walk PHI nodes too.
31035         (record_references_in_initializer): Update use of record_reference.
31036         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
31037         walk PHI nodes too.
31038
31039 2010-05-04  Jan Hubicka  <jh@suse.cz>
31040
31041         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
31042         node will be removed anyway.
31043         (lto_varpool_replace_node): Allow also unanalyzed nodes;
31044         relink aliases of node into prevailing node.
31045         * varpool.c (varpool_remove_node): Remove aliases properly;
31046         when removing node, remove all its aliases too; remove DECL_INITIAL
31047         of removed node; ggc_free the varpool node.
31048
31049 2010-05-04  Richard Guenther  <rguenther@suse.de>
31050
31051         PR tree-optimization/43879
31052         * tree-ssa-structalias.c (alias_get_name): Use
31053         DECL_ASSEMBLER_NAME if available.
31054         (create_function_info_for): Return the varinfo node.
31055         (ipa_pta_execute): Associate same-body aliases and extra names
31056         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
31057
31058 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
31059
31060         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
31061
31062 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
31063
31064         PR bootstrap/43964
31065         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
31066         only if HONOR_REG_ALLOC_ORDER is not defined.
31067
31068 2010-05-04  Richard Guenther  <rguenther@suse.de>
31069
31070         PR tree-optimization/43949
31071         * tree-vrp.c (extract_range_from_binary_expr): Only handle
31072         TRUNC_MOD_EXPR.
31073
31074 2010-04-26  Jason Merrill  <jason@redhat.com>
31075
31076         * c.opt (-fstrict-enums): New.
31077         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
31078
31079 2010-05-03  David Ung  <davidu@mips.com>
31080             James E. Wilson  <wilson@codesourcery.com>
31081
31082         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
31083         emit the trap instruction before the divide for TUNE_74K.
31084
31085 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
31086
31087         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
31088         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
31089         based on the above, for new target hook.
31090
31091         * hooks.c (hook_bool_mode_true): New generic hook.
31092         * hooks.h (hook_bool_mode_true): Add prototype.
31093
31094         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
31095         target hook.
31096         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
31097         target hook, set to hook_bool_mode_false.
31098         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
31099         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
31100         with targetm.small_register_classes_for_mode_p.
31101         (find_reusable_reload): Likewise.
31102         (combine_reloads): Likewise.
31103         * reload1.c (reload_as_needed): Likewise.
31104         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
31105         * ifcvt.c (noce_process_if_block, check_cond_move_block,
31106         dead_or_predicable): Likewise.
31107         * regmove.c (optimize_reg_copy_1): Likewise.
31108         * calls.c (prepare_call_address): Likewise.
31109         (precompute_register_parameters): Likewise.
31110
31111         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
31112         hook definition.
31113         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
31114         implementation of the hook that considers all register classes
31115         small except for SH64.
31116         (sh_override_options): Use the new hook.
31117         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
31118         Add prototype.
31119
31120         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
31121         hook definition.
31122         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
31123         implementation of the hook that considers all register classes
31124         small for THUMB1.
31125         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
31126         Add prototype.
31127
31128         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
31129         hook definition.
31130         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
31131         implementation of the hook that considers all register classes
31132         small for MIPS16.
31133         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
31134         Add prototype.
31135
31136         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
31137         hook definition.
31138         * config/m32c/m32c.h: Likewise.
31139         * config/pdp11/pdp11.h: Likewise.
31140         * config/avr/avr.h: Likewise.
31141         * config/xtensa/xtensa.h: Likewise.
31142         * config/m68hc11/m68hc11.h: Likewise.
31143         * config/mn10300/mn10300.h: Likewise.
31144         * config/mcore/mcore.h: Likewise.
31145         * config/h8300/h8300.h: Likewise.
31146         * config/bfin/bfin.h: Likewise.
31147
31148         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
31149         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
31150
31151 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
31152
31153         * double-int.h (tree_to_double_int): Remove macro.
31154         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
31155         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
31156         (tree_to_double_int): New function.
31157         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
31158         Move ...
31159         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
31160
31161 2010-05-03  Richard Guenther  <rguenther@suse.de>
31162
31163         PR tree-optimization/43971
31164         * tree-ssa-structalias.c (get_constraint_for_1): Fix
31165         constraints in the !flag_delete_null_pointer_checks case.
31166
31167 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
31168
31169         PR debug/43972
31170         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
31171         result mode matches original rtl mode.
31172
31173 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
31174
31175         PR target/43888
31176         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
31177
31178 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
31179
31180         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
31181         when processing flag options.
31182
31183 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
31184
31185         * gcov-iov.c (main): Change format string placeholder
31186         from %#08x to 0x%08x.
31187         * genchecksum.c (dosum): Change format string placeholder
31188         from %#02x to 0x%02x.
31189
31190 2010-05-02  Richard Guenther  <rguenther@suse.de>
31191
31192         PR tree-optimization/43879
31193         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
31194
31195 2010-05-02  Bruno Haible  <bruno@clisp.org>
31196
31197         * doc/extend.texi (Function Attributes): Fix a typo.
31198
31199 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
31200
31201         Revert:
31202         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
31203         placeholder from 0x%x to %#x.
31204         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
31205         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
31206         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
31207         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
31208         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
31209         * config/i386/i386.c (ix86_target_string): Ditto.
31210         * config/i386/i386.c (output_pic_addr_const): Ditto.
31211         (print_operand): Ditto.
31212
31213 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
31214
31215         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
31216         placeholder from 0x%x to %#x.
31217         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
31218         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
31219         (ASM_OUTPUT_DEBUG_DATA): Ditto.
31220         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
31221         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
31222         * optc-gen.awk: Ditto.
31223         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
31224         (HOST_WIDE_INT_PRINT_HEX): Ditto.
31225         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
31226         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
31227
31228 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
31229
31230         * target.h (struct calls): Add function_value_regno_p field.
31231         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
31232         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
31233         * targhooks.c (default_function_value_regno_p): New function.
31234         * targhooks.h (default_function_value_regno_p): Declare function.
31235         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
31236         * builtins.c. (apply_result_size): (Ditto.).
31237         * combine.c. (likely_spilled_retval_p): (Ditto.).
31238         * mode-switching.c. Include 'target.h'.
31239         (create_pre_exit): Use function_value_regno_p hook.
31240         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
31241         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
31242         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
31243
31244         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
31245         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
31246         (ix86_function_value_regno_p): Declare as static, change argument
31247         type to const unsigned int.
31248         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
31249
31250 2010-05-01  Richard Guenther  <rguenther@suse.de>
31251
31252         PR tree-optimization/43949
31253         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
31254         types.
31255         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
31256
31257 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
31258
31259         * rtl.h (CONST_DOUBLE_P): Define.
31260         (rtx_to_double_int): Declare.
31261         * emit-rtl.c (rtx_to_double_int): New function.
31262         * dwarf2out.c (insert_double): New function.
31263         (loc_descriptor, add_const_value_attribute): Clean up, use
31264         rtx_to_double_int and insert_double functions.
31265
31266 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
31267
31268         * doc/extend.texi (Inline): Add missing return keyword to examples.
31269         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
31270         "command-line".
31271
31272 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
31273
31274         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
31275         the variable part of the offset as well.  Use highest_pow2_factor for
31276         all alignment checks.
31277
31278 2010-04-30  Richard Guenther  <rguenther@suse.de>
31279
31280         PR tree-optimization/43879
31281         * tree-ssa-structalias.c (type_could_have_pointers): Functions
31282         can have pointers.
31283
31284 2010-04-30  Jan Hubicka  <jh@suse.cz>
31285
31286         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
31287         varpool.
31288         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
31289
31290 2010-04-30  Jan Hubicka  <jh@suse.cz>
31291
31292         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
31293         New.
31294         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
31295         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
31296         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
31297         cgraph_node_set_needs_ltrans_p): Remove.
31298
31299 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
31300
31301         * sdbout.c: Include vec.h, do not include varray.h.
31302         (deferred_global_decls, sdbout_global_decl,
31303         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
31304         * toplev.c: Do not include varray.h.
31305         (dump_memory_report): Do not dump VARRAY statistics.
31306         * gengtype.c (open_base_file): Ignore varray.h.
31307         * Makefile.in: Update for abovementioned changes.
31308         Remove all traces of varray.c and varray.h.
31309         * varray.c: Remove file.
31310         * varray.h: Remove file.
31311
31312 2010-04-30  Jan Hubicka  <jh@suse.cz>
31313
31314         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
31315         references.
31316
31317 2010-04-30  Jan Hubicka  <jh@suse.cz>
31318
31319         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
31320         needed.
31321
31322 2010-04-30  Richard Guenther  <rguenther@suse.de>
31323
31324         * tree-ssa-structalias.c (get_constraint_for_1): Generate
31325         constraints for CONSTRUCTOR.
31326
31327 2010-04-30  Richard Guenther  <rguenther@suse.de>
31328
31329         PR lto/43946
31330         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
31331         first after all lowering passes.
31332
31333 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
31334
31335         * toplev.c: Include varray.h for statistics dumping.
31336         * tree.h: Do not declare varray_head_tag.
31337         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
31338         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
31339         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
31340         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
31341         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
31342         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
31343         c-common.c, c-common.h, reg-stack.c, basic-block.h,
31344         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
31345         include varray.h.
31346         * Makefile.in: Update for abovementioned changes.
31347
31348 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
31349
31350         PR debug/43942
31351         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
31352
31353 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
31354
31355         * config/picochip/picochip.c (picochip_legitimize_address): Define.
31356         Use this function to do machine-specific conversion.
31357         (picochip_legitimize_reload_address): Likewise.
31358         (picochip_legitimate_address_p): Check valid base register only if
31359         strict.
31360         (picochip_check_conditional_copy): Check for modw only if opnd is
31361         register.
31362         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
31363         to call the function in c.
31364         * config/picochip/picochip-protos.h
31365         (picochip_legitimize_reload_address): Define.
31366         * config/picochip/picochip.md (supported_compare1): Define.
31367
31368 2010-04-30  Jan Hubicka  <jh@suse.cz>
31369
31370         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
31371         (cgraph_global_info): Remove inlined.
31372         (LTO_cgraph_tag_names): Remove.
31373         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
31374         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
31375         simplify cgraph tags and document.
31376         (lto_output_node): Use only LTO_cgraph_unavail_node and
31377         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
31378         for_functions_valid, global info, process and output flags.
31379         (input_overwrite_node): Initialize estimated stack size and
31380         estimated growth.  Do not read flags we no longer store.
31381         (input_node): Likewise do not read info no longer stored.
31382         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
31383         flag.
31384
31385 2010-04-30  Richard Guenther  <rguenther@suse.de>
31386
31387         PR tree-optimization/43879
31388         * tree-ssa-structalias.c (get_constraint_for_1): Properly
31389         handle non-zero initializers.
31390
31391 2010-04-30  Richard Guenther  <rguenther@suse.de>
31392
31393         * builtins.c (fold_builtin_1): Delete free (0).
31394
31395 2010-04-29  Jan Hubicka  <jh@suse.cz>
31396
31397         * gengtype.c (open_base_files): Add lto-streamer.h
31398         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
31399         (pass_ipa_cp): GGC collect.
31400         * toplev. (compile_file): Do not output symbols.
31401         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
31402         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
31403         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
31404         * lto-section-in.c: Include ggc.h
31405         (lto_new_in_decl_state): Alloc in GGC.
31406         (lto_delete_in_decl_state): Likewise.
31407         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
31408         Collect.
31409
31410 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
31411
31412         PR target/42895
31413         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
31414         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
31415         (HONOR_REG_ALLOC_ORDER): Describe new macro.
31416         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
31417         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
31418         account only if HONOR_REG_ALLOC_ORDER is not defined.
31419         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
31420         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
31421
31422 2010-04-29  Jon Grant  <04@jguk.org>
31423
31424         * collect2.c (vflag): Change type from int to bool.
31425         (debug): Likewise.
31426         (helpflag): New global bool.
31427         (main): Set vflag and debug with boolean, not integer truth values.
31428         Accept new "--help" option and output usage text if found.
31429         * collect2.h (vflag): Update prototype.
31430         (debug): Likewise.
31431
31432 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
31433
31434         PR bootstrap/43936
31435         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
31436
31437 2010-04-29  Richard Guenther  <rguenther@suse.de>
31438
31439         PR bootstrap/43935
31440         * plugin.h (invoke_plugin_callbacks): Annotate arguments
31441         with ATTRIBUTE_UNUSED.
31442
31443 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
31444
31445         PR target/43921
31446         * config/i386/i386.c (get_some_local_dynamic_name): Replace
31447         INSN_P with NONDEBUG_INSN_P.
31448         (distance_non_agu_define): Likewise.
31449         (distance_agu_use): Likewise.
31450
31451 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
31452
31453         From Dominique d'Humieres  <dominiq@lps.ens.fr>
31454         PR bootstrap/43858
31455         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
31456         test_set.
31457
31458 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
31459
31460         * plugin.h (invoke_plugin_callbacks): New inline function.
31461         * plugin.c (flag_plugin_added): New global flag.
31462         (add_new_plugin): Initialize above flag.
31463         (invoke_plugin_callbacks): Rename to ...
31464         (invoke_plugin_callbacks_full): ... this.
31465
31466 2010-04-28  Jan Hubicka  <jh@suse.cz>
31467
31468         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
31469         (lto_varpool_replace_node): New.
31470         (lto_symtab_resolve_symbols): Resolve varpool nodes.
31471         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
31472         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
31473         * cgraph.h (varpool_node_ptr): New type.
31474         (varpool_node_ptr): New vector.
31475         (varpool_node_set_def): New structure.
31476         (varpool_node_set): New type.
31477         (varpool_node_set): New vector.
31478         (varpool_node_set_element_def): New structure.
31479         (varpool_node_set_element, const_varpool_node_set_element): New types.
31480         (varpool_node_set_iterator): New type.
31481         (varpool_node): Add prev pointers, add used_from_other_partition,
31482         in_other_partition.
31483         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
31484         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
31485         varpool_get_node, varpool_remove_node): Declare.
31486         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
31487         varpool_node_set_size): New inlines.
31488         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
31489         * tree-pass.h (varpool_node_set_def): Forward declare.
31490         (ipa_opt_pass_d): Summary writting takes vnode sets too.
31491         (ipa_write_optimization_summaries): Update prototype.
31492         * ipa-cp.c (ipcp_write_summary): Update.
31493         * ipa-reference.c (ipa_reference_write_summary): Update.
31494         * lto-cgraph.c (lto_output_varpool_node): New static function.
31495         (output_varpool): New function.
31496         (input_varpool_node): New static function.
31497         (input_varpool_1): New function.
31498         (input_cgraph): Input varpool.
31499         * ipa-pure-const.c (pure_const_write_summary): Update.
31500         * lto-streamer-out.c (lto_output): Update, output varpool too.
31501         (write_global_stream): Kill WPA hack.
31502         (produce_asm_for_decls): Update.
31503         (output_alias_pair_p): Handle variables.
31504         (output_unreferenced_globals): Output only needed partition of varpool.
31505         * ipa-inline.c (inline_write_summary): Update.
31506         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
31507         cgraph.
31508         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
31509         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
31510         varpool_node_set_new, varpool_node_set_add,
31511         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
31512         debug_varpool_node_set): New functions.
31513         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
31514         (execute_one_pass): Process new decls too.
31515         (ipa_write_summaries_2): Pass around vsets.
31516         (ipa_write_summaries_1): Likewise.
31517         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
31518         to add.
31519         (ipa_write_optimization_summaries_1): Pass around vsets.
31520         (ipa_write_optimization_summaries): Likewise.
31521         * varpool.c (varpool_get_node): New.
31522         (varpool_node): Update doubly linked lists.
31523         (varpool_remove_node): New.
31524         (dump_varpool_node): More dumping.
31525         (varpool_enqueue_needed_node): Update doubly linked lists.
31526         (decide_is_variable_needed): Kill ltrans hack.
31527         (varpool_finalize_decl): Kill lto hack.
31528         (varpool_assemble_decl): Skip decls in other partitions.
31529         (varpool_assemble_pending_decls): Update doubly linkes lists.
31530         (varpool_empty_needed_queue): Likewise.
31531         (varpool_extra_name_alias): Likewise.
31532         * lto-streamer.c (lto_get_section_name): Add vars section.
31533         * lto-streamer.h (lto_section_type): Update.
31534         (output_varpool, input_varpool): Declare.
31535
31536 2010-04-28  Mike Stump  <mikestump@comcast.net>
31537
31538         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
31539
31540 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
31541
31542         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
31543         record or union type with RECORD_OR_UNION_TYPE_P predicate.
31544         (lto_input_ts_type_tree_pointers): Likewise.
31545         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
31546         (lto_output_ts_type_tree_pointers): Likewise.
31547
31548 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
31549
31550         Uniquization of constants at the Tree level
31551         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
31552         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
31553         bit to the end.
31554         (tree_output_constant_def): Declare.
31555         * gimplify.c (gimplify_init_constructor): When using block copy, first
31556         uniquize the constant constructor on the RHS.
31557         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
31558         DECL_IN_CONSTANT_POOL flag.
31559         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
31560         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
31561         constant pool.
31562         (assemble_variable): Deal with symbols belonging to the tree constant
31563         pool.
31564         (get_constant_section): Add ALIGN parameter and simplify.
31565         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
31566         (assemble_constant_contents): Use the expression of the VAR_DECL.
31567         (output_constant_def_contents): Use the alignment of the VAR_DECL.
31568         (tree_output_constant_def): New global function.
31569         (mark_constant): Use the expression of the VAR_DECL.
31570         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
31571         its expression.
31572         (output_object_block): Likewise and assemble the expression.
31573
31574 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
31575
31576         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
31577         hash_tree, eq_tree): New tree hash table.
31578         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
31579         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
31580         lto_orig_address_remove): Reimplement.
31581
31582 2010-04-28  Xinliang David Li  <davidxl@google.com>
31583
31584         PR c/42643
31585         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
31586         (compute_uninit_opnds_pos): New function.
31587         (is_non_loop_exit_postdominating): New function.
31588         (compute_control_dep_chain): New function.
31589         (find_pdom): New function.
31590         (convert_control_dep_chain_into_preds): New function.
31591         (find_predicates): New function.
31592         (find_control_equiv_block): New function.
31593         (collect_phi_def_edges): New function.
31594         (find_def_preds): New function.
31595         (find_dom): New function.
31596         (dump_predicates): New function.
31597         (get_cmp_code): New function.
31598         (is_value_included_in): New function.
31599         (find_matching_predicate_in_rest_chains): New function.
31600         (use_pred_not_overlap_with_undef_path_pred): New function.
31601         (is_use_properly_guarded): New function.
31602         (normalize_cond_1): New function.
31603         (is_and_or_or): New function.
31604         (normalize_cond): New function.
31605         (is_gcond_subset_of): New function.
31606         (is_subset_of_any): New function.
31607         (is_or_set_subset_of): New function.
31608         (is_and_set_subset_of): New function.
31609         (is_norm_cond_subset_of): New function.
31610         (is_pred_expr_subset_of): New function.
31611         (is_pred_chain_subset_of): New function.
31612         (is_included_in): New function.
31613         (is_superset_of): New function.
31614         (find_uninit_use): New function.
31615         (warn_uninitialized_phi): New function.
31616         (compute_possibly_undefined_names): New function.
31617         (ssa_undefined_value_p): New function.
31618         (execute_late_warn_uninitialized): New function.
31619         * tree-ssa.c (ssa_undefined_value_p): Removed.
31620         (warn_uninit): Changed to extern.
31621         (warn_uninitialized_phi): Removed.
31622         (warn_uninitialized_vars): Changed to extern.
31623         (execute_late_warn_uninitialized): Removed
31624         * tree-flow.h: Add new prototypes.
31625         * timevar.def: Add new time variable.
31626         * Makefile.in: Add new build file.
31627
31628 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
31629
31630         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
31631         type if available.
31632
31633 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31634
31635         PR target/22224
31636         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
31637
31638 2010-04-28  Martin Jambor  <mjambor@suse.cz>
31639
31640         * cgraph.h (struct cgraph_node): New field indirect_calls.
31641         (struct cgraph_indirect_call_info): New type.
31642         (struct cgraph_edge): Removed field indirect_call. New fields
31643         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
31644         (cgraph_create_indirect_edge): Declare.
31645         (cgraph_make_edge_direct): Likewise.
31646         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
31647         * ipa-prop.h (struct ipa_param_call_note): Removed.
31648         (struct ipa_node_params): Removed field param_calls.
31649         (ipa_create_all_structures_for_iinln): Declare.
31650         * cgraph.c: Described indirect edges and uids in initial comment.
31651         (cgraph_add_edge_to_call_site_hash): New function.
31652         (cgraph_edge): Search also among the indirect edges, use
31653         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
31654         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
31655         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
31656         site hash.
31657         (initialize_inline_failed): Assign a reason to indirect edges.
31658         (cgraph_create_edge_1): New function.
31659         (cgraph_create_edge): Moved some functionality to
31660         cgraph_create_edge_1.
31661         (cgraph_create_indirect_edge): New function.
31662         (cgraph_edge_remove_callee): Add an assert checking for
31663         non-indirectness.
31664         (cgraph_edge_remove_caller): Special-case indirect edges.
31665         (cgraph_remove_edge): Likewise.
31666         (cgraph_set_edge_callee): New function.
31667         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
31668         (cgraph_make_edge_direct): New function.
31669         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
31670         the declaration of the call statement matches.
31671         (cgraph_node_remove_callees): Special-case indirect edges.
31672         (cgraph_clone_edge): Likewise.
31673         (cgraph_clone_node): Clone also the indirect edges.
31674         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
31675         indirect_call, dump count of indirect_calls edges.
31676         * ipa-prop.c (iinlining_processed_edges): New variable.
31677         (ipa_note_param_call): Create indirect edges instead of
31678         creating notes.  New parameter node.
31679         (ipa_analyze_call_uses): New parameter node, pass it on to
31680         ipa_note_param_call.
31681         (ipa_analyze_stmt_uses): Likewise.
31682         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
31683         (print_edge_addition_message): Work on edges rather than on notes.
31684         (update_call_notes_after_inlining): Likewise, renamed to
31685         update_indirect_edges_after_inlining.
31686         (ipa_create_all_structures_for_iinln): New function.
31687         (ipa_free_node_params_substructures): Do not free notes.
31688         (ipa_edge_duplication_hook): Propagate bits within
31689         iinlining_processed_edges bitmap.
31690         (ipa_node_duplication_hook): Do not duplicate notes.
31691         (free_all_ipa_structures_after_ipa_cp): Renamed to
31692         ipa_free_all_structures_after_ipa_cp.
31693         (free_all_ipa_structures_after_iinln): Renamed to
31694         ipa_free_all_structures_after_iinln.
31695         (ipa_write_param_call_note): Removed.
31696         (ipa_read_param_call_note): Removed.
31697         (ipa_write_indirect_edge_info): New function.
31698         (ipa_read_indirect_edge_info): Likewise.
31699         (ipa_write_node_info): Do not stream notes, do stream information
31700         in indirect edges.
31701         (ipa_read_node_info): Likewise.
31702         (lto_ipa_fixup_call_notes): Removed.
31703         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
31704         * ipa-inline.c (pass_ipa_inline): Likewise.
31705         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
31706         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
31707         * tree-inline.c (copy_bb): Removed an unnecessary double check for
31708         is_gimple_call.
31709         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
31710         edges.
31711         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
31712         (output_cgraph): Stream also indirect edges.
31713         (lto_output_edge): Added capability to stream indirect edges.
31714         (input_edge): Likewise.
31715         (input_cgraph_1): Likewise.
31716         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
31717         of indirect edges.
31718
31719 2010-04-28  Richard Guenther  <rguenther@suse.de>
31720
31721         PR tree-optimization/43879
31722         PR tree-optimization/43909
31723         * tree-ssa-structalias.c (struct variable_info): Add
31724         only_restrict_pointers flag.
31725         (new_var_info): Initialize it.  Increment stats.total_vars here.
31726         (create_function_info_for): Do not increment stats.total_vars here.
31727         (get_function_part_constraint): Fix build with C++.
31728         (insert_into_field_list): Remove.
31729         (push_fields_onto_fieldstack): Properly merge fields.
31730         (create_variable_info_for): Split and simplify.
31731         (create_variable_info_for_1): New piece.
31732         (intra_create_variable_infos): Properly make restrict constraints
31733         from parameters.
31734
31735 2010-04-28  Richard Guenther  <rguenther@suse.de>
31736
31737         PR c++/43880
31738         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
31739
31740 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
31741             Jan Hubicka  <hubicka@ucw.cz>
31742
31743         * doc/invoke.texi (-Wsuggest-attribute=const,
31744         -Wsuggest-attribute=pure): Document.
31745         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
31746         (function_always_visible_to_compiler_p,
31747         suggest_attribute, warn_function_pure, warn_function_const):
31748         New functions.
31749         (check_call): Improve debug info.
31750         (analyze_function): Do not check availability.
31751         (add_new_function): Check availability.
31752         (propagate): Output warnings.
31753         (skip_function_for_local_pure_const): New function.
31754         (local_pure_const): Use it; output warnings.
31755         * common.opt (Wsuggest-attribute=const,
31756         Wsuggest-attribute=pure): New.
31757
31758 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
31759
31760         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
31761         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
31762         or DW_CFA_def_cfa_offset{,_sf}.
31763
31764 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
31765
31766         * tree.h: Fix truncated long macros.
31767
31768 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
31769
31770         * collect2.c (TARGET_64BIT): Redefine to target's default.
31771         * tlink.c: Likewise.
31772         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
31773         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
31774         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
31775         for underscoring __USER_LABEL_PREFIX__.
31776         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
31777         (SUB_LINK_ENTRY32): New.
31778         (SUB_LINK_ENTRY64): New.
31779         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
31780         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
31781         (SUB_LINK_ENTRY64): New.
31782         (SUB_LINK_ENTRY): New.
31783         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
31784         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
31785         x64 target is choosen.
31786         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
31787         * configure: Regenerated.
31788         * configure.ac (leading-mingw64-underscores): Option added.
31789
31790 2010-04-27  Jan Hubicka  <jh@suse.cz>
31791
31792         * doc/invoke.texi (-fipa-profile): Document.
31793         * opts.c (decode_options): Enable ipa-profile at -O1.
31794         * timevar.def (TV_IPA_PROFILE): Define.
31795         * common.opt (fipa-profile): Add.
31796         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
31797         flag for clones.
31798         (cgraph_propagate_frequency): Handle only local ones.
31799         * tree-pass.h (pass_ipa_profile): Declare.
31800         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
31801         (pass_ipa_profile): Use TV_IPA_PROFILE.
31802         * ipa.c (ipa_profile): New function.
31803         (gate_ipa_profile): Likewise.
31804         (pass_ipa_profile): New global variable.
31805         * passes.c (pass_ipa_profile): New.
31806
31807 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
31808
31809         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
31810
31811 2010-04-27  Martin Jambor  <mjambor@suse.cz>
31812
31813         PR middle-end/43812
31814         * ipa.c (dissolve_same_comdat_group_list): New function.
31815         (function_and_variable_visibility): Call
31816         dissolve_same_comdat_group_list when comdat group contains external or
31817         newly local nodes.
31818         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
31819         lists are circular and that they contain only DECL_ONE_ONLY nodes.
31820
31821 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
31822
31823         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
31824         (const_hash_1) <VECTOR_CST>: New case.
31825         (compare_constant) <VECTOR_CST>: Likewise.
31826         <ADDR_EXPR>: Deal with LABEL_REFs.
31827         (copy_constant) <VECTOR_CST>: New case.
31828
31829 2010-04-27  Jan Hubicka  <jh@suse.cz>
31830
31831         * cgraph.c (cgraph_propagate_frequency): New function.
31832         * cgraph.h (cgraph_propagate_frequency): Declare.
31833         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
31834         cgraph_propagate_frequency.
31835
31836 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
31837
31838         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
31839
31840 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
31841
31842         PR target/40657
31843         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
31844         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
31845         here to determine which regs to push and how much stack to reserve.
31846
31847 2010-04-27  Jie Zhang  <jie@codesourcery.com>
31848
31849         * doc/gimple.texi (gimple_statement_with_ops): Remove
31850         addresses_taken field.
31851         (gimple_statement_with_memory_ops): Likewise.
31852
31853 2010-04-27  Jan Hubicka  <jh@suse.cz>
31854
31855         * tree-inline.c (eni_inlining_weights): Remove.
31856         (estimate_num_insns): Special case more builtins.
31857
31858 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
31859
31860         PR c/32207
31861         * c-typeck.c (build_binary_op): Move forward check for comparison
31862         pointer with null pointer constant and adjust the diagnostic message.
31863
31864 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
31865
31866         PR lto/42776
31867         * configure.ac (gcc_cv_as_section_has_align): Set if installed
31868         binutils supports extended .section directive needed by LTO, or
31869         warn if older binutils found.
31870         (LTO_BINARY_READER): New AC_SUBST'd variable.
31871         (LTO_USE_LIBELF): Likewise.
31872         * config.gcc (lto_binary_reader): New target-specific configure
31873         variable.
31874         * Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
31875         (LTO_USE_LIBELF): Likewise.
31876         * configure: Regenerate.
31877
31878         * collect2.c (is_elf): Rename from this ...
31879         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
31880          object files in addition to ELF-formatted ones.
31881         (scan_prog_file): Caller updated.  Also allow for LTO info marker
31882         symbol to be prefixed or not by an extra underscore.
31883
31884         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
31885         * config/i386/winnt.c: Also #include lto-streamer.h
31886         (i386_pe_asm_named_section): Specify 1-byte section alignment for
31887         LTO named sections.
31888         (i386_pe_asm_output_aligned_decl_common): Add comment.
31889         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
31890
31891 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
31892
31893         PR target/43889
31894         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
31895         Add missing earlyclobber for second alternative.
31896
31897 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
31898
31899         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
31900         bits for artificial defs at the top of the block.
31901         * fwprop.c (single_def_use_enter_block): Don't call it.
31902
31903 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
31904
31905         PR 43715
31906         * configure.ac: Use "$gcc_cv_nm -g" on darwin
31907         instead of "$gcc_cv_objdump -T".
31908         Use "-undefined dynamic_lookup" on darwin.
31909         * configure: Regenerate.
31910
31911 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
31912
31913         PR c/43893
31914         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
31915
31916 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
31917
31918         * c-parser.c (struct c_token): Move location field up.
31919         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
31920         (struct c_declspecs): Convert typespec_word, storage_class, and
31921         default_int_p into bitfields.
31922         (struct c_declarator): Move loc field up.
31923
31924 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
31925
31926         * cfgloop.h (struct loop): Move can_be_parallel field up.
31927         * ipa-prop.h (struct ip_node_params): Move bitfields up.
31928         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
31929         down.
31930         (struct iv_cand): Convert pos field into a bitfield.
31931         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
31932         field up.
31933         (struct _stmt_vec_info): Shuffle fields for better packing.
31934
31935 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
31936
31937         * varasm.c (IN_NAMED_SECTION): Remove guard.
31938         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
31939         (IN_NAMED_SECTION_P): ...this.
31940         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
31941         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
31942
31943 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
31944
31945         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
31946         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
31947         of shadowing it.  Fix comments.
31948
31949 2010-04-26  Jan Hubicka  <jh@suse.cz>
31950
31951         * cgraph.c (cgraph_create_node): Set node frequency to normal.
31952         (cgraph_clone_node): Copy function frequency.
31953         * cgraph.h (node_frequency): New enum
31954         (struct cgraph_node): Add.
31955         * final.c (rest_of_clean_state): Update.
31956         * lto-cgraph.c (lto_output_node): Output node frequency.
31957         (input_overwrite_node): Input node frequency.
31958         * tre-ssa-loop-ivopts (computation_cost): Update.
31959         * lto-streamer-out.c (output_function): Do not output function
31960         frequency.
31961         * predict.c (maybe_hot_frequency_p): Update and handle functions
31962         executed once.
31963         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
31964         attribute lookup.
31965         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
31966         (compute_function_frequency): Set noreturn functions to be executed
31967         once.
31968         (choose_function_section): Update.
31969         * lto-streamer-in.c (input_function): Do not input function frequency.
31970         * function.c (allocate_struct_function): Do not initialize function
31971         frequency.
31972         * function.h (function_frequency): Remove.
31973         (struct function): Remove function frequency.
31974         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
31975         (try_update): Update.
31976         * tree-inline.c (initialize_cfun): Do not update function frequency.
31977         * passes.c (pass_init_dump_file): Update.
31978         * i386.c (ix86_compute_frame_layout): Update.
31979         (ix86_pad_returns): Update.
31980
31981 2010-04-26  Jie Zhang  <jie@codesourcery.com>
31982
31983         PR tree-optimization/43833
31984         * tree-vrp.c (range_int_cst_p): New.
31985         (range_int_cst_singleton_p): New.
31986         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
31987         when both operands are constants.  Use range_int_cst_p in
31988         BIT_IOR_EXPR case.
31989
31990 2010-04-26  Jan Hubicka  <jh@suse.cz>
31991
31992         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
31993
31994 2010-04-26  Richard Guenther  <rguenther@suse.de>
31995
31996         PR lto/43080
31997         * gimple.c (gimple_decl_printable_name): Deal gracefully
31998         with a NULL DECL_NAME.
31999
32000 2010-04-26  Richard Guenther  <rguenther@suse.de>
32001
32002         PR lto/42425
32003         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
32004         if emitting debug information and it is either a function
32005         or a namespace decl.
32006
32007 2010-04-26  Ira Rosen  <irar@il.ibm.com>
32008
32009         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
32010         determine if the statement is vectorizable, and a macro to access it.
32011         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
32012         Skip statements that can't be vectorized. If the analysis fails,
32013         mark the statement as unvectorizable if vectorizing basic block.
32014         (vect_compute_data_refs_alignment): Likewise.
32015         (vect_verify_datarefs_alignment): Skip statements marked as
32016         unvectorizable. Add print.
32017         (vect_analyze_group_access): Skip statements that can't be
32018         vectorized. If the analysis fails, mark the statement as
32019         unvectorizable if vectorizing basic block.
32020         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
32021         * tree-vect-stmts.c (vectorizable_store): Fix the number of
32022         generated stmts for SLP.
32023         (new_stmt_vec_info): Initialize the new field.
32024         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
32025         statements marked as unvectorizable.
32026
32027 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
32028
32029         * c-common.c (flag_isoc1x): New.
32030         (flag_isoc99): Update comment.
32031         * c-common.h (flag_isoc1x): New.
32032         (flag_isoc99): Update comment.
32033         * c-cppbuiltin.c (builtin_define_float_constants): Also define
32034         __<type>_DECIMAL_DIG__.
32035         * c-opts.c (set_std_c1x): New.
32036         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
32037         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
32038         * c.opt (-std=c1x, -std=gnu1x): New options.
32039         * doc/cpp.texi: Mention -std=c1x.
32040         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
32041         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
32042         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
32043         * doc/standards.texi: Mention C1X.
32044         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
32045         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
32046         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
32047         Define for C1X.
32048
32049 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
32050
32051         * config/i386/gmon-sol2.c (_mcleanup): Change format string
32052         placeholder from 0x%x to %#x.
32053         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
32054         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
32055         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
32056         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
32057         * config/i386/i386.c (ix86_target_string): Ditto.
32058         (output_pic_addr_const): Ditto.
32059         (print_operand): Ditto.
32060
32061 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
32062
32063         * combine.c (find_split_point): Add third argument.  Use it
32064         to find nested multiply-accumulate instructions.  Adjust calls.
32065         (try_combine): Adjust call to find_split_point.
32066
32067 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
32068
32069         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
32070
32071 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
32072
32073         PR tree-optimization/41442
32074         * fold-const.c (merge_truthop_with_opposite_arm): New function.
32075         (fold_binary_loc): Call it.
32076
32077 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32078
32079         * toplev.c (general_init): Set default for fdiagnostics-show-option.
32080         * opts.c (common_handle_option): Allow disabling it.
32081         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
32082
32083 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
32084
32085         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
32086         between modes if both types are integral.
32087
32088 2010-04-23  Richard Guenther  <rguenther@suse.de>
32089
32090         PR tree-optimization/43572
32091         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
32092
32093 2010-04-23  Richard Guenther  <rguenther@suse.de>
32094
32095         PR lto/43455
32096         * tree-inline.c (tree_can_inline_p): Also check compatibility
32097         of return types.
32098
32099 2010-04-23  Martin Jambor  <mjambor@suse.cz>
32100
32101         PR tree-optimization/43846
32102         * tree-sra.c (struct access): New flag grp_assignment_read.
32103         (build_accesses_from_assign): Set grp_assignment_read.
32104         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
32105         (enum mark_read_status): New type.
32106         (analyze_access_subtree): Propagate grp_assignment_read, create
32107         accesses also if both direct_read and root->grp_assignment_read.
32108
32109 2010-04-23  Martin Jambor  <mjambor@suse.cz>
32110
32111         PR middle-end/43835
32112         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
32113         function does not have type attributes.
32114
32115 2010-04-23  Richard Guenther  <rguenther@suse.de>
32116
32117         PR lto/42653
32118         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
32119         of FUNCTION_DECLs.
32120
32121 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
32122
32123         * sese.h (create_if_region_on_edge): Remove.
32124
32125         * sese.c (create_if_region_on_edge): Make static.
32126
32127         * tree-inline.c: Do not include ggc.h.
32128
32129         * expr.c: Do not include ggc.h.
32130
32131         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
32132         dependencies.
32133
32134 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
32135
32136         PR target/43744
32137         * config/sh/sh.c (find_barrier): Don't emit a constant pool
32138         in the middle of insns for casesi_worker_2.
32139
32140 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
32141
32142         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
32143
32144 2010-04-22  Ira Rosen  <irar@il.ibm.com>
32145
32146         PR tree-optimization/43842
32147         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
32148         loop unrolling in update of exit phis. Fix comment.
32149         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
32150         least two reduction statements in the loop before starting SLP
32151         analysis.
32152
32153 2010-04-22  Nick Clifton  <nickc@redhat.com>
32154
32155         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
32156
32157 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
32158
32159         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
32160         to simplify a + ~a.
32161
32162 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
32163
32164         * tree-parloops.c (loop_parallel_p): New argument
32165         parloop_obstack.  Pass it down.
32166         (parallelize_loops): New variable parloop_obstack.  Initialize it,
32167         pass it down, free it.
32168
32169         * tree-loop-linear.c (linear_transform_loops): Pass down
32170         lambda_obstack.
32171
32172         * tree-data-ref.h (lambda_compute_access_matrices): New argument
32173         of type struct obstack *.
32174
32175         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
32176         scratch_obstack.  Initialize it, pass down, free it.
32177
32178         * lambda.h (lambda_loop_new): Remove.
32179         (lambda_matrix_new, lambda_matrix_inverse)
32180         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
32181         argument of type struct obstack *.
32182
32183         * lambda-trans.c (lambda_trans_matrix_new): New argument
32184         lambda_obstack.  Pass it down, use obstack allocation for ret.
32185         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
32186         it down.
32187
32188         * lambda-mat.c (lambda_matrix_get_column)
32189         (lambda_matrix_project_to_null): Remove.
32190         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
32191         allocation for mat.
32192         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
32193         lambda_obstack.
32194
32195         * lambda-code.c (lambda_loop_new): New function.
32196         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
32197         (lambda_compute_auxillary_space, lambda_compute_target_space)
32198         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
32199         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
32200         (build_access_matrix): New argument lambda_obstack.  Use obstack
32201         allocation for am.
32202         (lambda_compute_step_signs, lambda_compute_access_matrices): New
32203         argument lambda_obstack.  Pass it down.
32204
32205 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
32206
32207         * optabs.h (expand_widening_mult): Declare.
32208
32209 2010-04-22  Richard Guenther  <rguenther@suse.de>
32210
32211         PR tree-optimization/43845
32212         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
32213         lookup the CALL_EXPR function and arguments.
32214
32215 2010-04-22  Nick Clifton  <nickc@redhat.com>
32216
32217         * config/stormy16/stormy16.c
32218         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
32219         * config/stormy16/stormy16.h: Tidy up formatting.
32220         (DONT_USE_BUILTIN_SETJMP): Remove definition.
32221         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
32222         (ineqbranchsi): Delete pattern.
32223         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
32224         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
32225         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
32226         stormy16-lib2-ucmpsi2.c.
32227
32228 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
32229
32230         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
32231         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
32232         extra set merge_set_noclobber, and use it to relax the final test
32233         slightly.
32234         * df.h (df_simulate_find_noclobber_defs): Declare.
32235         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
32236         conditional defs.
32237         (df_simulate_find_noclobber_defs): New function.
32238
32239 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
32240
32241         * config/i386/i386.md: Use {} around multi-line preparation statements.
32242
32243 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
32244
32245         * c-tree.h (push_init_level, pop_init_level, set_init_index)
32246         (process_init_element): New argument of type struct obstack *.
32247
32248         * c-typeck.c (push_init_level, pop_init_level, set_designator)
32249         (set_init_index, set_init_label, set_nonincremental_init)
32250         (set_nonincremental_init_from_string, find_init_member)
32251         (output_init_element, output_pending_init_elements)
32252         (process_init_element): New argument braced_init_obstack.  Pass it
32253         down.
32254         (push_range_stack, add_pending_init): New argument
32255         braced_init_obstack.  Use obstack allocation.
32256
32257         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
32258         braced_init_obstack.  Pass it down.
32259         (c_parser_braced_init): New variables ret, braced_init_obstack.
32260         Initialize obstack, pass it down and finally free it.
32261
32262 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
32263
32264         PR middle-end/29274
32265         * tree-pass.h (pass_optimize_widening_mul): Declare.
32266         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
32267         gate_optimize_widening_mul): New static functions.
32268         (pass_optimize_widening_mul): New.
32269         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
32270         <case MULT_EXPR>: Remove support for widening multiplies.
32271         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
32272         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
32273         simplify_gen_unary rather than directly building extensions.
32274         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
32275         WIDEN_MULT_EXPR.
32276         * expmed.c (expand_widening_mult): New function.
32277         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
32278
32279 2010-04-21  Jan Hubicka  <jh@suse.cz>
32280
32281         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
32282         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
32283         * lto-wpa-fixup.c: Remove.
32284         * Makefile.in (lto-wpa-fixup.o): Remove.
32285         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
32286         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
32287         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
32288
32289 2010-04-21  Jan Hubicka  <jh@suse.cz>
32290
32291         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
32292         add write_optimization_summary, read_optimization_summary.
32293         (ipa_write_summaries_of_cgraph_node_set): Remove.
32294         (ipa_write_optimization_summaries): Declare.
32295         (ipa_read_optimization_summaries): Declare.
32296         * ipa-cp.c (pass_ipa_cp): Update.
32297         * ipa-reference.c (pass_ipa_reference): Update.
32298         * ipa-pure-const.c (pass_ipa_pure_const): Update.
32299         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
32300         Update.
32301         * ipa-inline.c (pass_ipa_inline): Update.
32302         * ipa.c (pass_ipa_whole_program): Update.
32303         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
32304         * passes.c (ipa_write_summaries_1): Do not test wpa.
32305         (ipa_write_optimization_summaries_1): New.
32306         (ipa_write_optimization_summaries): New.
32307         (ipa_read_summaries): Do not test ltrans.
32308         (ipa_read_optimization_summaries_1): New.
32309         (ipa_read_optimization_summaries): New.
32310
32311 2010-04-21  Jan Hubicka  <jh@suse.cz>
32312
32313         * lto-cgraph.c (lto_output_node): Do not output comdat groups
32314         for boundary nodes.
32315         (output_cgraph): Do not arrange comdat groups for boundary nodes.
32316
32317 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
32318
32319         PR debug/40040
32320         * dwarf2out.c (add_name_and_src_coords_attributes): Add
32321         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
32322
32323 2010-04-21  Jan Hubicka  <jh@suse.cz>
32324
32325         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
32326
32327 2010-04-21  Jan Hubicka  <jh@suse.cz>
32328
32329         * varpool.c (decide_is_variable_needed): Variable is always needed
32330         during ltrans.
32331
32332 2010-04-21  Jan Hubicka  <jh@suse.cz>
32333
32334         * opts.c (decode_options): Enable pure-const pass for whopr.
32335
32336 2010-04-21  Jan Hubicka  <jh@suse.cz>
32337
32338         * cgraph.c (dump_cgraph_node): Dump also assembler name.
32339         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
32340         at WPA dumping.
32341         (cgraph_decide_inlining): Do not expect callee to be removed in all
32342         cases.
32343
32344 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
32345
32346         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
32347
32348 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
32349
32350         * config/i386/i386.md (x86_shrd): Add athlon_decode and
32351         amdfam10_decode attributes.
32352
32353 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
32354
32355         PR middle-end/43570
32356         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
32357         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
32358         (lower_copyprivate_clauses): Use private var in outer
32359         context instead of original var.  Make sure the types
32360         are correct for VLAs.
32361
32362 2010-04-21  Richard Guenther  <rguenther@suse.de>
32363
32364         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
32365         to non-pointer objects.
32366
32367 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
32368
32369         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
32370         last chain entry if it starts with the still current label.
32371         (add_location_or_const_value_attribute): Check that
32372         loc_list->first->next is NULL instead of comparing ->first with ->last.
32373         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
32374         to add_var_loc_to_decl.
32375
32376         * dwarf2out.c (output_call_frame_info): For dw_cie_version
32377         >= 4 add also address size and segment size fields into CIE header.
32378
32379         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
32380         long as address size is the same as sizeof (void *) and
32381         segment size is 0.
32382         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
32383         address size or segment size is unexpected, return DW_EH_PE_omit.
32384         (classify_object_over_fdes): If get_cie_encoding returned
32385         DW_EH_PE_omit, return -1.
32386         (init_object): If classify_object_over_fdes returned -1,
32387         pretend there were no FDEs at all.
32388
32389 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
32390
32391         * config/i386/i386.md (bswap<mode>2): Macroize expander from
32392         bswap{si,di}2 using SWI48 mode iterator.
32393         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
32394         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
32395         set modrm attribute of bswap insn to 0 and remove length attribute.
32396         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
32397         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
32398         set mode attribute to <MODE> and remove length attribute.
32399
32400 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
32401
32402         PR rtl-optimization/43520
32403         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
32404         zero available registers.
32405
32406 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
32407
32408         * builtins.c (fold_builtin_cproj): Fold more cases.
32409
32410 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
32411
32412         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
32413         (fold_builtin_1): Fold builtin cproj.
32414         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
32415         Use ATTR_CONST_NOTHROW_LIST.
32416
32417 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
32418
32419         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
32420         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
32421         ffsi2_no_cmove for !TARGET_CMOVE.
32422         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
32423         (ffssi2): Remove expander.
32424         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
32425         mode iterator.
32426         (ctz<mode>2): Ditto from ctz{si,di}2.
32427         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
32428         mode iterator.
32429         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
32430         mode iterator.
32431
32432 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
32433
32434         * dwarf2out.c (AT_linkage_name): Define.
32435         (clone_as_declaration): Handle DW_AT_linkage_name.
32436         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
32437         of DW_AT_MIPS_linkage_name.
32438         (move_linkage_attr): Likewise.
32439         (dwarf2out_finish): Likewise.
32440
32441 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
32442
32443         PR middle-end/41952
32444         * fold-const.c (fold_comparison): New folding rule.
32445
32446 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
32447
32448         * double-int.h (double_int_setbit): Declare.
32449         * double-int.c (double_int_setbit): New function.
32450         * rtl.h (immed_double_int_const): Declare.
32451         * emit-rtl.c (immed_double_int_const): New function.
32452         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
32453         and immed_double_int_const functions.
32454         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
32455         expand_copysign_bit): (Ditto.).
32456         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
32457         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
32458         * dojump.c (prefer_and_bit_test): (Ditto.).
32459         * expr.c (convert_modes, reduce_to_bit_field_precision,
32460         const_vector_from_tree): (Ditto.).
32461         * expmed.c (mask_rtx, lshift_value): (Ditto.).
32462
32463 2010-04-20  Jan Hubicka  <jh@suse.cz>
32464
32465         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
32466         (dump_cgraph_node): Dump new flags.
32467         * cgraph.h (struct cgraph_node): Add flags
32468         reachable_from_other_partition and in_other_partition.
32469         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
32470         other partition can not be removed.
32471         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
32472         the other partition must be output; silence sanity checking on
32473         leaking functions bodies from other paritition.
32474         * lto-cgraph.c (reachable_from_other_partition_p): New function.
32475         (lto_output_node): Output new flags; do not sanity check that inline
32476         clones are output; drop lto_forced_extern_inline_p code; do not mock
32477         visibility flags at partition boundaries.
32478         (add_node_to): New function.
32479         (output_cgraph): Use it to sort functions so masters appear before
32480         clones.
32481         (input_overwrite_node): Input new flags.
32482         * passes.c (ipa_write_summaries): Do not call
32483         lto_new_extern_inline_states.
32484         * lto-section-out.c (forced_extern_inline,
32485         lto_new_extern_inline_states lto_delete_extern_inline_states,
32486         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
32487         * lto-streamer.h (lto_new_extern_inline_states,
32488         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
32489         lto_forced_extern_inline_p): Kill.
32490
32491 2010-04-20  Richard Guenther  <rguenther@suse.de>
32492
32493         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
32494         from vars that can have pointers.
32495         (process_constraint): Dump useless constraints.
32496
32497 2010-04-20  Richard Guenther  <rguenther@suse.de>
32498
32499         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
32500         (dump_sa_points_to_info): Remove asserts.
32501         (init_base_vars): nothing_id isn't an escape point nor does it
32502         have pointers.
32503
32504 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
32505
32506         * tree.h (TYPE_REF_IS_RVALUE): Define.
32507         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
32508         should_move_die_to_comdat, prune_unused_types_walk): Handle
32509         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
32510         (modified_type_die, gen_reference_type_die): Emit
32511         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
32512         if TYPE_REF_IS_RVALUE and -gdwarf-4.
32513
32514 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
32515
32516         PR target/43635
32517         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
32518         calls for -fpic -m31 if they have been sibcall optimized.
32519
32520 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
32521
32522         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
32523         ar.lc fixed and call-used.
32524
32525         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
32526
32527 2010-04-19  Jan Hubicka  <jh@suse.cz>
32528
32529         * opts.c (decode_options): Disable whpr incompatible passes.
32530         * lto/lto.c (lto_1_to_1_map): Skip clones.
32531         (read_cgraph_and_symbols): Do not mark everything as needed.
32532         (do_whole_program_analysis): Do map only after optimizing;
32533         set proper cgraph_state; use passmanager.
32534
32535 2010-04-19  DJ Delorie  <dj@redhat.com>
32536
32537         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
32538         POINTER_PLUS_EXPR and fix them.
32539
32540 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
32541
32542         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
32543         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
32544         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
32545         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
32546         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
32547         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
32548         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
32549         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
32550         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
32551         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
32552         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
32553
32554 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
32555
32556         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
32557         (check_cond_move_block): Likewise.
32558         (cond_move_process_if_block): Likewise.
32559         (noce_find_if_block): Improve formatting.
32560         (find_if_header): Pass 0 to memset and tweak conditions.
32561         (cond_exec_find_if_block): Fix long lines and tweak conditions.
32562
32563 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
32564
32565         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
32566         for -gdwarf-4.
32567
32568         PR middle-end/43337
32569         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
32570         with non-local decl doesn't need chain.
32571
32572 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
32573
32574         * ira-color.c (allocno_reload_assign): Avoid accumulating
32575         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
32576
32577 2010-04-19  Martin Jambor  <mjambor@suse.cz>
32578
32579         * gimple.h (create_tmp_reg): Declare.
32580         * gimplify.c (create_tmp_reg): New function.
32581         (gimplify_return_expr): Use create_tmp_reg.
32582         (gimplify_omp_atomic): Likewise.
32583         (gimple_regimplify_operands): Likewise.
32584         * tree-dfa.c (make_rename_temp): Likewise.
32585         * tree-predcom.c (predcom_tmp_var): Likewise.
32586         (reassociate_to_the_same_stmt): Likewise.
32587         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
32588         (get_replaced_param_substitute): Likewise.
32589         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
32590         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
32591         * tree-ssa-pre.c (get_representative_for): Likewise.
32592         (create_expression_by_pieces): Likewise.
32593         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
32594         (create_tailcall_accumulator): Likewise.
32595
32596 2010-04-19  Martin Jambor  <mjambor@suse.cz>
32597
32598         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
32599         new_stmt.
32600         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
32601
32602 2010-04-19  Richard Guenther  <rguenther@suse.de>
32603
32604         PR tree-optimization/43796
32605         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
32606         from SCEV in the lattice.
32607         (vrp_visit_phi_node): Dump change.
32608
32609 2010-04-19  Richard Guenther  <rguenther@suse.de>
32610
32611         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
32612         * configure: Re-generated.
32613
32614 2010-04-19  Richard Guenther  <rguenther@suse.de>
32615
32616         PR tree-optimization/43783
32617         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
32618         constant ARRAY_REF operands two and three if possible.
32619
32620 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
32621
32622         PR target/43766
32623         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
32624
32625 2010-04-19  Jie Zhang  <jie@codesourcery.com>
32626
32627         PR target/43662
32628         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
32629
32630 2010-04-19  Ira Rosen  <irar@il.ibm.com>
32631
32632         PR tree-optimization/37027
32633         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
32634         and macro to access it.
32635         (vectorizable_reduction): Add argument.
32636         (vect_get_slp_defs): Likewise.
32637         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
32638         statements for possible use in SLP.
32639         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
32640         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
32641         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
32642         add new argument.
32643         (vectorizable_reduction): Likewise.
32644         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
32645         vect_get_slp_defs.
32646         (vectorizable_type_demotion, vectorizable_type_promotion,
32647         vectorizable_store): Likewise.
32648         (vect_analyze_stmt): Update call to vectorizable_reduction.
32649         (vect_transform_stmt): Likewise.
32650         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
32651         (vect_build_slp_tree): Fix indentation. Check that there are no loads
32652         from different interleaving chains in same node.
32653         (vect_slp_rearrange_stmts): New function.
32654         (vect_supported_load_permutation_p): Allow load permutations for
32655         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
32656         inside SLP nodes if necessary.
32657         (vect_analyze_slp_instance): Handle reductions.
32658         (vect_analyze_slp): Try to build SLP instances originating from groups
32659         of reductions.
32660         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
32661         (vect_get_constant_vectors): Create initial vectors for reductions
32662         according to reduction code. Add new argument.
32663         (vect_get_slp_defs): Add new argument, pass it to
32664         vect_get_constant_vectors.
32665         (vect_schedule_slp_instance): Remove SLP tree root statements.
32666
32667 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
32668
32669         * tree.h (ENUM_IS_SCOPED): Define.
32670         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
32671         for ENUM_IS_SCOPED enums.
32672
32673 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
32674
32675         * fold-const.c (fold_comparison): Use ssizetype.
32676         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
32677         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
32678         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
32679         * tree-object-size.c (compute_object_sizes): Use size_type_node.
32680
32681         * tree.h (initialize_sizetypes): Remove parameter.
32682         (build_common_tree_nodes): Remove second parameter.
32683         * stor-layout.c (initialize_sizetypes): Remove parameter.
32684         Always create an unsigned type.
32685         (set_sizetype): Assert that the passed type is unsigned and simplify.
32686         * tree.c (build_common_tree_nodes): Remove second parameter.
32687         Adjust call to initialize_sizetypes.
32688         * c-decl.c (c_init_decl_processing): Remove second argument in call to
32689         build_common_tree_nodes.
32690
32691 2010-04-18  Matthias Klose  <doko@ubuntu.com>
32692
32693         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
32694
32695 2010-04-18  Ira Rosen  <irar@il.ibm.com>
32696
32697         PR tree-optimization/43771
32698         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
32699         load permutation doesn't have gaps.
32700
32701 2010-04-18  Jan Hubicka  <jh@suse.cz>
32702
32703         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
32704         (sse_prologue_save_insn expander): Use new pattern.
32705         (sse_prologue_save_insn1): New pattern and splitter.
32706         (sse_prologue_save_insn): Update to deal also with 64bit aligned
32707         blocks.
32708         * i386.c (setup_incoming_varargs_64): Do not compute jump
32709         destination here.
32710         (ix86_gimplify_va_arg): Update alignment needed.
32711         (ix86_local_alignment): Do not align all local arrays to 128bit.
32712
32713 2010-04-17  Jan Hubicka  <jh@suse.cz>
32714
32715         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
32716
32717 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
32718
32719         * arm.md (negdi2): Remove redundant code to force values into a
32720         register.
32721
32722 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
32723
32724         * arm/bpabi.S: Add EABI alignment attributes to objects.
32725         * arm/bpabi-v6m.S: Likewise.
32726         * arm/crti.asm: Likewise.
32727         * arm/crtn.asm: Likewise.
32728         * arm/lib1funcs.asm: Likewise.
32729         * arm/libunwind.S: Likewise.
32730
32731 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
32732
32733         * arm-protos.h (tune_params): New structure.
32734         * arm.c (current_tune): New variable.
32735         (arm_constant_limit): Delete.
32736         (struct processors): Add pointer to the tune parameters.
32737         (arm_slowmul_tune): New tuning option.
32738         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
32739         (all_cores): Adjust to pick up the tuning model.
32740         (arm_constant_limit): New function.
32741         (arm_override_options): Select the appropriate tuning model.  Delete
32742         initialization of arm_const_limit.
32743         (arm_split_constant): Use the new constant-limit model.
32744         (arm_rtx_costs): Pick up the current tuning model.
32745         * arm.md (is_strongarm, is_xscale): Delete.
32746         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
32747         for Xscale variant architectures.
32748         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
32749
32750 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
32751
32752         * config/arm/arm.c (arm_gen_constant): Remove unused variable
32753         can_shift.
32754         (arm_rtx_costs_1): Remove unused variable extra_cost.
32755         (arm_unwind_emit_set): Use variable offset.
32756         (thumb1_output_casesi): Remove unused variable flags.
32757
32758 2010-04-16  Jeff Law  <law@redhat.com>
32759
32760         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
32761         needing assignment rather than doing a two-phase assignment.  Remove
32762         unused variable 'm'.
32763
32764 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
32765
32766         PR bootstrap/43767
32767         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
32768
32769 2010-04-16  Doug Kwan  <dougkwan@google.com>
32770
32771         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
32772         (next_operand_entry_id): New static variable.
32773         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
32774         (add_to_ops_vec): Assigned unique ID to operand entry.
32775         (struct oecount_s): New field ID.
32776         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
32777         (undistribute_ops_list): Assign unique IDs to oecounts.
32778         (init_reassoc): reset next_operand_entry_id.
32779
32780 2010-04-16  Doug Kwan  <dougkwan@google.com>
32781
32782         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
32783         missing left parenthesis.
32784
32785 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
32786
32787         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
32788         *btdi_rex64 using SWI48 mode iterator.
32789         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
32790         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
32791         *jcc_btdi_mask_rex64.
32792
32793 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
32794
32795         * double-int.h (tree_to_double_int): Convert to macro.
32796         * double-int.c (tree_to_double_int): Remove.
32797
32798 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
32799
32800         PR debug/43762
32801         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
32802         with want_address 2 and in case a single element list might be
32803         possible, call it again with want_address 0.
32804
32805 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
32806
32807         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
32808         case 'W' print operands for HI mode.
32809         * config/h8300/h8300.h (Y0, Y2) : New constraints.
32810         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
32811         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
32812         * config/h8300/predicate.md (bit_register_indirect_operand): New.
32813
32814         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
32815
32816         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
32817         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
32818         #xx:3 and #xx:4 mode.
32819
32820         * config/h8300/h8300.md (inverted load with HImode dest): Add
32821         support for H8300SX.
32822
32823         * config/h8300/predicate.md (bit_operand): Allow immediate values that
32824         satisfy 'U' constraint.
32825
32826 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32827
32828         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
32829         * configure: Regenerate.
32830         * config.in: Regenerate.
32831         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
32832         works.
32833
32834 2010-04-16  Richard Guenther  <rguenther@suse.de>
32835
32836         * tree.h (struct tree_decl_minimal): Move pt_uid ...
32837         (struct tree_decl_common): ... here.
32838         (DECL_PT_UID): Adjust.
32839         (SET_DECL_PT_UID): Likewise.
32840         (DECL_PT_UID_SET_P): Likewise.
32841
32842 2010-04-16  Richard Guenther  <rguenther@suse.de>
32843
32844         PR tree-optimization/43572
32845         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
32846         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
32847         * tree-flow.h (is_call_clobbered): Remove.
32848         * tree-flow-inline.h (is_call_clobbered): Likewise.
32849         * tree-dfa.c (dump_variable): Do not dump call clobber state.
32850         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
32851         (execute_return_slot_opt): Adjust.
32852         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
32853         check for call clobbered vars here.
32854         (find_tail_calls): Move tailcall verification to the
32855         proper place.
32856
32857 2010-04-16  Diego Novillo  <dnovillo@google.com>
32858
32859         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
32860
32861 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
32862
32863         PR target/40603
32864         * config/arm/arm.md (cbranchqi4): New pattern.
32865         * config/arm/predicates.md (const0_operand,
32866         cbranchqi4_comparison_operator): New predicates.
32867
32868 2010-04-16  Richard Guenther  <rguenther@suse.de>
32869
32870         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
32871         (dump_gimple_stmt): Likewise.
32872
32873 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
32874
32875         * recog.h (struct recog_data): New field is_operator.
32876         (struct insn_operand_data): New field is_operator.
32877         * recog.c (extract_insn): Set recog_data.is_operator.
32878         * genoutput.c (output_operand_data): Emit code to set the
32879         is_operator field.
32880         * reload.c (find_reloads): Use it rather than testing for an
32881         empty constraint string.
32882
32883         PR target/41514
32884         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
32885         If the previous insn is a cbranchsi4_insn with the same arguments,
32886         omit the compare instruction.
32887
32888         * config/arm/arm.md (addsi3_cbranch): If destination is a high
32889         register, inputs must be low registers and we need a low register
32890         scratch.  Handle alternative 2 like alternative 3.
32891
32892 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
32893
32894         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
32895         don't call get_addr on both.  If one expression is a VALUE and
32896         the other a REG, check VALUE's locs if the REG isn't among them.
32897
32898 2010-04-16  Christian Bruel  <christian.bruel@st.com>
32899
32900         * config/sh/sh.h (sh_frame_pointer_required): New function.
32901         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
32902         (flag_omit_frame_pointer) Set.
32903         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
32904         (rounded_frame_size): Adjust size with outgoing_args_size.
32905         (sh_set_return_address): Must return from stack pointer.
32906         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
32907         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
32908         (ACCUMULATE_OUTGOING_ARGS): Define.
32909         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
32910         * config/sh/sh.opt (maccumulate-outgoing-args): New option.
32911
32912 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
32913
32914         PR target/43471
32915         * config/sh/sh.c (sh_legitimize_reload_address): Use
32916         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
32917         Remove a unneeded check for offset_base.
32918
32919 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
32920
32921         * configure: Regenerated.
32922
32923 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
32924
32925         * config/s390/s390.c (s390_call_save_register_used): Switch back
32926         to HARD_REGNO_NREGS.
32927
32928 2010-04-15  Richard Guenther  <rguenther@suse.de>
32929
32930         * alias.c (alias_set_subset_of): Handle alias-set zero
32931         child properly.
32932
32933 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
32934             Julian Brown  <julian@codesourcery.com>
32935
32936         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
32937         alternatives according to use of high and low regs.
32938         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
32939         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
32940         optimizing for size on Thumb-2.
32941
32942 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
32943
32944         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
32945
32946 2010-04-15  Richard Guenther  <rguenther@suse.de>
32947
32948         * tree-ssa-structalias.c (struct variable_info): Add
32949         is_fn_info flag.
32950         (new_var_info): Initialize it.
32951         (dump_constraints): Support printing last added constraints.
32952         (debug_constraints): Adjust.
32953         (dump_constraint_graph): Likewise.
32954         (make_heapvar_for): Check for NULL cfun.
32955         (get_function_part_constraint): New function.
32956         (get_fi_for_callee): Likewise.
32957         (find_func_aliases): Properly implement IPA PTA constraints.
32958         (process_ipa_clobber): New function.
32959         (find_func_clobbers): Likewise.
32960         (insert_into_field_list_sorted): Remove.
32961         (create_function_info_for): Properly allocate vars for IPA mode.
32962         Do not use insert_into_field_list_sorted.
32963         (create_variable_info_for): Properly generate constraints for
32964         global vars in IPA mode.
32965         (dump_solution_for_var): Always dump the solution.
32966         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
32967         (find_what_var_points_to): Adjust.
32968         (pt_solution_set): Change.
32969         (pt_solution_ior_into): New function.
32970         (pt_solution_empty_p): Export.
32971         (pt_solution_includes_global): Adjust.
32972         (pt_solution_includes_1): Likewise.
32973         (pt_solutions_intersect_1): Likewise.
32974         (dump_sa_points_to_info): Check some invariants.
32975         (solve_constraints): Move constraint dumping ...
32976         (compute_points_to_sets): ... here.
32977         (ipa_pta_execute): ... and here.
32978         (compute_may_aliases): Do not re-compute points-to info
32979         locally if IPA info is available.
32980         (ipa_escaped_pt): New global var.
32981         (ipa_pta_execute): Properly implement IPA PTA.
32982         * tree-into-ssa.c (dump_decl_set): Support dumping
32983         decls not in referenced-vars.
32984         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
32985         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
32986         (dump_points_to_solution): Likewise.
32987         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
32988         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
32989         (remap_gimple_stmt): Reset call clobber/use information if necessary.
32990         (copy_decl_to_var): Copy DECL_PT_UID.
32991         (copy_result_decl_to_var): Likewise.
32992         * tree.c (make_node_stat): Initialize DECL_PT_UID.
32993         (copy_node_stat): Copy it.
32994         * tree.h (DECL_PT_UID): New macro.
32995         (SET_DECL_PT_UID): Likewise.
32996         (DECL_PT_UID_SET_P): Likewise.
32997         (struct tree_decl_minimal): Add pt_uid member.
32998         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
32999         (pt_solution_empty_p): Declare.
33000         (pt_solution_set): Adjust.
33001         (ipa_escaped_pt): Declare.
33002         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
33003         * gimple-pretty-print.c (pp_points_to_solution): New function.
33004         (dump_gimple_call): Dump call clobber/use information.
33005         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
33006         * tree-pass.h (TDF_ALIAS): New dump option.
33007         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
33008         * doc/invoke.texi (-fipa-pta): Update documentation.
33009
33010 2010-04-15  Richard Guenther  <rguenther@suse.de>
33011
33012         * Makefile.in (OBJS-common): Add gimple-fold.o.
33013         (gimple-fold.o): New rule.
33014         * tree.h (maybe_fold_offset_to_reference,
33015         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
33016         prototypes ...
33017         * gimple.h: ... here.
33018         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
33019         may_propagate_address_into_dereference): Move prototypes ...
33020         * gimple.h: ... here.
33021         * tree-ssa-ccp.c (get_symbol_constant_value,
33022         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
33023         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
33024         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
33025         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
33026         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
33027         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
33028         gimplify_and_update_call_from_tree): Move ...
33029         * gimple-fold.c: ... here.  New file.
33030         (ccp_fold_builtin): Rename to ...
33031         (gimple_fold_builtin): ... this.
33032         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
33033
33034 2010-04-15  Richard Guenther  <rguenther@suse.de>
33035
33036         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
33037         fit_double_type, force_fit_type_double, add_double_with_sign,
33038         neg_double, mul_double_with_sign, lshift_double, rshift_double,
33039         lrotate_double, rrotate_double, div_and_round_double): Move ...
33040         * double-int.c: ... here.
33041         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
33042         add_double, neg_double, mul_double_with_sign, mul_double,
33043         lshift_double, rshift_double, lrotate_double, rrotate_double,
33044         div_and_round_double): Move prototypes ...
33045         * double-int.h: ... here.
33046
33047 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
33048
33049         PR target/43742
33050         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
33051         matching constraints to ensure inputs match the output.
33052
33053 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
33054
33055         PR target/43742
33056         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
33057         in an input-only operand.
33058
33059 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
33060
33061         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
33062         (double_int_not, double_int_lshift, double_int_rshift): Declare.
33063         (double_int_negative_p): Convert to static inline function.
33064         * double-int.c (double_int_lshift, double_int_lshift): New functions.
33065         (double_int_negative_p): Remove.
33066         * tree.h (lshift_double, rshift_double):
33067         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
33068         * fold-const.c (fold_convert_const_int_from_real,
33069         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
33070         (lshift_double): Change type of arith argument to bool.
33071         (rshift_double): Change type of arith argument to bool. Correct
33072         comment.
33073         * expmed.c (mask_rtx, lshift_value): (Ditto.).
33074
33075 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
33076
33077         PR target/21803
33078         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
33079         at the start and end of the then/else blocks, and omit them from the
33080         conversion.
33081         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
33082         argument; all callers changed.  Pass zero to old_insns_match_p instead.
33083         (flow_find_head_matching_sequence): New function.
33084         (old_insns_match_p): Check REG_EH_REGION notes for calls.
33085         * basic-block.h (flow_find_cross_jump,
33086         flow_find_head_matching_sequence): Declare functions.
33087
33088 2010-04-14  Jason Merrill  <jason@redhat.com>
33089
33090         PR c++/36625
33091         * c-common.c (attribute_takes_identifier_p): New fn.
33092         * c-common.h: Declare it.
33093
33094 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
33095
33096         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
33097         splitter condition.
33098         (*udivmod<mode>4): Ditto.
33099
33100 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
33101
33102         * config/i386/i386.md (maxmin_int): Rename code attribute from
33103         maxminiprefix and update all users.
33104         (maxmin_float): Ditto from maxminfprefix.
33105         (logic): Ditto from logicprefix.
33106         (absneg_mnemonic): Ditto from absnegprefix.
33107         * config/i386/mmx.md: Update all users of maxminiprefix,
33108         maxminfprefix and logicprefix for rename.
33109         * config/i386/sse.md: Ditto.
33110         * config/i386/sync.md (sync_<code><mode>): Update for
33111         logicprefix rename.
33112
33113 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33114
33115         PR 42966
33116         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
33117         warnings converted to errors.
33118
33119 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
33120
33121         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
33122         used insn_type variable.
33123         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
33124         to avoid set-but-not-used warning.
33125
33126 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
33127
33128         * df-core.c (df_ref_debug): Change format string placeholder
33129         from 0x%x to %#x.
33130         * dwarf2asm.c (dw2_asm_output_data_raw,
33131         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
33132         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
33133         * dwarf2out.c (output_cfi, output_cfi_directive,
33134         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
33135         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
33136         Ditto.
33137         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
33138         * print-rtl.c (print_rtx): Ditto.
33139
33140 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
33141
33142         PR middle-end/42694
33143         * builtins.c (expand_builtin_pow_root): New function to expand pow
33144         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
33145         series of sqrt and cbrt calls under -ffast-math.
33146         (expand_builtin_pow): Call it.
33147
33148 2010-04-14  Michael Matz  <matz@suse.de>
33149
33150         PR tree-optimization/42963
33151         * tree-cfg.c (touched_switch_bbs): New static variable.
33152         (group_case_labels_stmt): New function broken out from ...
33153         (group_case_labels): ... here, use the above.
33154         (start_recording_case_labels): Allocate touched_switch_bbs.
33155         (end_recording_case_labels): Deallocate it, call
33156         group_case_labels_stmt.
33157         (gimple_redirect_edge_and_branch): Remember index of affected BB.
33158
33159 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
33160
33161         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
33162         from insn template.
33163
33164 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
33165
33166         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
33167
33168 2010-04-13  Jan Hubicka  <jh@suse.cz>
33169
33170         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
33171         of optimized out static functions.
33172         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
33173         cost computation.  Also sanity check for overflows.
33174         (update_caller_keys): Update cgraph_edge_badness call; properly
33175         update fibheap and sanity check that it is up to date.
33176         (add_new_edges_to_heap): Update cgraph_edge_badness.
33177         (cgraph_decide_inlining_of_small_function): Likewise;
33178         add sanity checking that badness in heap is up to date;
33179         improve dumping of reason; Update badness of calls to the
33180         offline copy of function currently inlined; dump badness
33181         of functions not inlined because of unit growth limits.
33182
33183 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
33184
33185         PR middle-end/32628
33186         * c-common.c (pointer_int_sum): Disregard overflow that occured only
33187         because of sign-extension change when converting to sizetype here...
33188         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
33189
33190         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
33191         the folding to constants.  Remove redundant final conversion.
33192         (fold_binary) <associate>: Do not associate if the re-association of
33193         constants alone overflows.
33194         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
33195         to the end of the list.
33196         (multiple_of_p) <COND_EXPR>: New case.
33197
33198 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33199
33200         * opt-functions.awk (opt_sanitized_name): New.
33201         (opt_enum): New.
33202         * optc-gen.awk: Use it
33203         * opth-gen.awk: Use it.
33204
33205 2010-04-13  Martin Jambor  <mjambor@suse.cz>
33206
33207         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
33208         (sra_modify_assign): Delete stmts loading dead data even if racc has no
33209         children.  Call replace_uses_with_default_def_ssa_name to handle
33210         SSA_NAES on lhs.
33211
33212 2010-04-13  Michael Matz  <matz@suse.de>
33213
33214         PR middle-end/43730
33215         * builtins.c (expand_builtin_interclass_mathfn): Also create
33216         a register if the predicate doesn't match.
33217
33218 2010-04-13  Diego Novillo  <dnovillo@google.com>
33219
33220         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
33221         * c-pch.c: Include timevar.h.
33222         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
33223         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
33224         * ggc-common.c: Include timevar.h.
33225         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
33226         * timevar.def (TV_PCH_SAVE): Define.
33227         (TV_PCH_CPP_SAVE): Define.
33228         (TV_PCH_PTR_REALLOC): Define.
33229         (TV_PCH_PTR_SORT): Define.
33230         (TV_PCH_RESTORE): Define.
33231         (TV_PCH_CPP_RESTORE): Define.
33232
33233 2010-04-13  Michael Matz  <matz@suse.de>
33234
33235         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
33236         into MINUS_EXPRs.
33237         (can_reassociate_p): New function.
33238         (break_up_subtract_bb, reassociate_bb): Use it.
33239
33240 2010-04-13  Richard Guenther  <rguenther@suse.de>
33241
33242         PR bootstrap/43737
33243         * builtins.c (c_readstr): Fix assert.
33244
33245 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
33246
33247         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
33248         when generating cltd insn.
33249
33250         (*ashl<mode>3_1): Remove special handling for register operand 2.
33251         (*ashlsi3_1_zext): Ditto.
33252         (*ashlhi3_1): Ditto.
33253         (*ashlhi3_1_lea): Ditto.
33254         (*ashlqi3_1): Ditto.
33255         (*ashlqi3_1_lea): Ditto.
33256         (*<shiftrt_insn><mode>3_1): Ditto.
33257         (*<shiftrt_insn>si3_1_zext): Ditto.
33258         (*<shiftrt_insn>qi3_1_slp): Ditto.
33259         (*<rotate_insn><mode>3_1): Ditto.
33260         (*<rotate_insn>si3_1_zext): Ditto.
33261         (*<rotate_insn>qi3_1_slp): Ditto.
33262
33263 2010-04-13  Richard Guenther  <rguenther@suse.de>
33264
33265         * tree-ssa-structalias.c (callused_id): Remove.
33266         (call_stmt_vars): New.
33267         (get_call_vi): Likewise.
33268         (lookup_call_use_vi): Likewise.
33269         (lookup_call_clobber_vi): Likewise.
33270         (get_call_use_vi): Likewise.
33271         (get_call_clobber_vi): Likewise.
33272         (make_transitive_closure_constraints): Likewise.
33273         (handle_const_call): Adjust to do per-call call-used handling.
33274         (handle_pure_call): Likewise.
33275         (find_what_var_points_to): Remove general callused handling.
33276         (init_base_vars): Likewise.
33277         (init_alias_vars): Initialize call_stmt_vars.
33278         (compute_points_to_sets): Process call-used and call-clobbered
33279         vars for call statements.
33280         (delete_points_to_sets): Free call_stmt_vars.
33281
33282 2010-04-13  Richard Guenther  <rguenther@suse.de>
33283
33284         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
33285         Only add RW dependence for dependence distance zero.
33286         Adjust maximal vectorization factor according to dependences.
33287         Move alignment handling ...
33288         (vect_find_same_alignment_drs): ... here.  New function.
33289         (vect_analyze_data_ref_dependences): Adjust.
33290         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
33291         (vect_analyze_data_refs): Adjust minimal vectorization factor
33292         according to data references.
33293         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
33294         dependences before determining the vectorization factor.
33295         Analyze alignment after determining the vectorization factor.
33296         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
33297         dependences before alignment.
33298         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
33299         Adjust prototype.
33300         (vect_analyze_data_refs): Likewise.
33301         (MAX_VECTORIZATION_FACTOR): New define.
33302
33303 2010-04-13  Duncan Sands  <baldrick@free.fr>
33304
33305         * except.h (lang_eh_type_covers): Remove.
33306         * except.c (lang_eh_type_covers): Likewise.
33307
33308 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33309             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
33310
33311         * config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
33312         * config/s390/s390.c: Replace UNTIS_PER_WORD with
33313         UNITS_PER_LONG where it is ABI relevant.
33314         (s390_return_addr_rtx): Likewise.
33315         (s390_back_chain_rtx): Likewise.
33316         (s390_frame_area): Likewise.
33317         (s390_frame_info): Likewise.
33318         (s390_initial_elimination_offset): Likewise.
33319         (save_gprs): Likewise.
33320         (s390_emit_prologue): Likewise.
33321         (s390_emit_epilogue): Likewise.
33322         (s390_function_arg_advance): Likewise.
33323         (s390_function_arg): Likewise.
33324         (s390_va_start): Likewise.
33325         (s390_gimplify_va_arg): Likewise.
33326         (s390_function_profiler): Likewise.
33327         (s390_optimize_prologue): Likewise.
33328         (s390_rtx_costs): Likewise.
33329         (s390_secondary_reload): Likewise.
33330         (s390_promote_function_mode): Likewise.
33331         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
33332         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
33333         registers available.
33334         (s390_unwind_word_mode): New function.
33335         (s390_function_value): Split 64 bit values into register pair if
33336         used as return value.
33337         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
33338         function call parameters.  Handle parallels.
33339         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
33340         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
33341         (DWARF_CIE_DATA_ALIGNMENT): New macro.
33342         (s390_expand_setmem): Remove unused variable src_addr.
33343         * longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
33344         deal with 64 bit registers.
33345         * config/s390/s390.h: Define __zarch__ predefined macro.
33346         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
33347         (UNITS_PER_LONG): New macro.
33348         * libjava/include/s390-signal.h: Define extended ucontext
33349         structure containing the upper halfs of the 64 bit registers.
33350
33351 2010-04-13  Simon Baldwin  <simonb@google.com>
33352
33353         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
33354
33355 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
33356
33357         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
33358         rvalue on the RHS if the LHS is of a non-renamable type.
33359         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
33360
33361 2010-04-13  Matthias Klose  <doko@ubuntu.com>
33362
33363         * gcc.c (cc1_options): Handle -iplugindir before processing
33364         the cc1 spec. Only add -iplugindir once.
33365         (cpp_unique_options): Add -iplugindir option if -fplugin* options
33366         found.
33367         * common.opt (iplugindir): Remove `Separate' property, initialize.
33368         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
33369         option.
33370         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
33371         (distclean): Remove plugin dir.
33372         * doc/invoke.texi: Document -iplugindir.
33373
33374 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
33375
33376         * doc/plugins.texi (Loading Plugins): Document short
33377         -fplugin=foo option.
33378         (Plugin API): Mention default_plugin_dir_name function.
33379
33380         * gcc.c (find_file_spec_function): Add new declaration.
33381         (static_spec_func): Use it for "find-file".
33382         (find_file_spec_function): Add new function.
33383         (cc1_options): Add -iplugindir option if -fplugin* options found.
33384
33385         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
33386
33387         * plugin.c (add_new_plugin): Updated comment, and handle short
33388         plugin name.
33389         (default_plugin_dir_name): Added new function.
33390
33391         * common.opt (iplugindir): New option to set the plugin directory.
33392
33393 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
33394
33395         * config/i386/i386.md (any_rotate): New code iterator.
33396         (rotate_insn): New code attribute.
33397         (rotate): Ditto.
33398         (SWIM124): New mode iterator.
33399         (<rotate_insn>ti3): New expander.
33400         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
33401         any_rotate code iterator.
33402         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
33403         using any_rotate code iterator and SWIM124 mode iterator.
33404         (ix86_rotlti3): New insn_and_split pattern.
33405         (ix86_rotrti3): Ditto.
33406         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
33407         ix86_rotl{di,ti}3 patterns.
33408         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
33409         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
33410         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
33411         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
33412         code iterator and SWI mode iterator.
33413         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
33414         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
33415         code iterator.
33416         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
33417         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
33418         (bswap rotatert splitter): Add splitter.
33419         (bswap splitter): Macroize splitter using any_rotate code iterator.
33420         Add insn predicate to split only for TARGET_USE_XCHGB or when
33421         optimizing function for size.
33422
33423 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
33424
33425         * config/pa/pa.c (emit_move_sequence): Remove use of
33426         deleted variable flag_argument_noalias.
33427
33428 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33429
33430         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
33431         configurations.
33432         Add to unsupported targets list.
33433         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
33434         sparc*-sun-solaris2.[567]* from target lists.
33435         * configure: Regenerate.
33436         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
33437         removal.
33438         Remove Solaris 7 patch references.
33439         (Specific, sparc-sun-solaris2.7): Removed.
33440         (sparc-sun-solaris2*): Update Solaris 7 example.
33441         (sparc64-*-solaris2*): Likewise.
33442
33443 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33444
33445         * config.build (alpha*-dec-osf4*): Remove.
33446         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
33447         of obsolete configurations.
33448         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
33449         support.
33450         * config/alpha/t-osf4: Renamed to ...
33451         * config/alpha/t-osf5: ... this.
33452         * config/alpha/osf.h: Renamed to ...
33453         * config/alpha/osf5.h: ... this.
33454         Merged old osf5.h contents.
33455         Update comments.
33456         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
33457         (EXTRA_SPECS): Removed.
33458         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
33459         reflect removal of Tru64 UNIX V4.0/V5.0 support.
33460         Document that.
33461
33462 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33463
33464         * doc/contrib.texi (Contributors, Rainer Orth): Update.
33465
33466 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
33467
33468         PR/43702
33469         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
33470         __thiscall convention.
33471
33472 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
33473
33474         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
33475         orig_base.
33476         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
33477
33478 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
33479
33480         * function.c (assign_parms_initialize_all): Add unused attribute
33481         to fntype.
33482
33483 2010-04-12  Richard Guenther  <rguenther@suse.de>
33484
33485         * gsstruct.def (GSS_CALL): New.
33486         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
33487         * gimple.h: Include tree-ssa-alias.h.
33488         (struct gimple_statement_call): New.
33489         (union gimple_statement_struct_d): Add gimple_call member.
33490         (gimple_call_reset_alias_info): Declare.
33491         (gimple_call_use_set): New function.
33492         (gimple_call_clobber_set): Likewise.
33493         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
33494         * gimple.c (gimple_call_reset_alias_info): New function.
33495         (gimple_build_call_1): Call it.
33496         * lto-streamer-in.c (input_gimple_stmt): Likewise.
33497         * tree-inline.c (remap_gimple_stmt): Likewise.
33498         (expand_call_inline): Remove callused handling.
33499         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
33500         * tree-dfa.c (dump_variable): Likewise.
33501         * tree-parloops.c (parallelize_loops): Likewise.
33502         * tree-ssa.c (init_tree_ssa): Likewise.
33503         (delete_tree_ssa): Likewise.
33504         * tree-flow-inline.h (is_call_used): Remove.
33505         * tree-flow.h (struct gimple_df): Remove callused member.
33506         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
33507         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
33508         (ref_maybe_used_by_call_p_1): Simplify.
33509         (call_may_clobber_ref_p_1): Likewise.
33510         * tree-ssa-structalias.c (compute_points_to_sets): Set
33511         the call stmt used and clobbered sets.
33512         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
33513         (find_tail_calls): Verify the tail call.
33514
33515 2010-04-12  Richard Guenther  <rguenther@suse.de>
33516
33517         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
33518         single-iteration always-inline inlining.
33519         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
33520         (cgraph_decide_inlining): Do not handle always-inline specially.
33521         (try_inline): Remove always-inline cycle detection special case.
33522         Do not recurse on always-inlines.
33523         (cgraph_early_inlining): Do not iterate if not optimizing.
33524         (cgraph_gate_early_inlining): remove.
33525         (pass_early_inline): Run unconditionally.
33526         (gate_cgraph_decide_inlining): New function.
33527         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
33528         not inlining or optimizing.
33529         (cgraph_decide_inlining_of_small_functions): Also consider
33530         always-inline functions.
33531         (cgraph_default_inline_p): Return true for nodes which should
33532         disregard inline limits.
33533         (estimate_function_body_sizes): Assume zero size and time for
33534         nodes which are marked as disregarding inline limits.
33535         (cgraph_decide_recursive_inlining): Do not perform recursive
33536         inlining on always-inline nodes.
33537
33538 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
33539
33540         PR bootstrap/43699
33541         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
33542         for exprs satisfying handled_component_p.
33543
33544 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
33545
33546         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
33547         non-constant aggregate elements.
33548
33549         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
33550         is a real initialization.
33551
33552 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
33553
33554         PR c/36774
33555         * c-decl.c (start_function): Move forward check for nested function.
33556
33557 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
33558
33559         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
33560         * config/sh/sh.c: Include reload.h.
33561         (sh_legitimize_reload_address): New.
33562         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
33563         sh_legitimize_reload_address.
33564
33565 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
33566
33567         * config/sh/sh.md (*movqi_pop): New insn pattern.
33568         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
33569
33570 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
33571
33572         * config/i386/i386.md (any_shiftrt): New code iterator.
33573         (shiftrt_insn): New code attribute.
33574         (shiftrt): Ditto.
33575         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
33576         using any_shiftrt code iterator.
33577         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
33578         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
33579         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
33580         pattern from corresponding peephole2 patterns.
33581         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
33582         using any_shiftrt code iterator.
33583         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
33584         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
33585         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
33586         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
33587         *{ashr,lshr}<mode>3_cmp_zext.
33588         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
33589
33590 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
33591
33592         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
33593         scratch register.
33594         (*lshr<mode>3_cconly): Ditto.
33595
33596 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
33597
33598         * config/i386/i386.md (lshr<mode>3): Macroize expander from
33599         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
33600         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
33601         pattern from *lshr{di,ti}3_1 and corresponding splitters using
33602         DWI mode iterator.
33603         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
33604         from corresponding peephole2 patterns.
33605         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
33606         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
33607         and *lshrdi3_1_rex64 using SWI mode iterator.
33608         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
33609         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
33610         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
33611         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
33612         and *lshrdi3_cmp_rex64 using SWI mode iterator.
33613         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
33614         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
33615         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
33616         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
33617         SWI mode iterator.
33618
33619 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
33620
33621         * config/i386/i386.md (ashr<mode>3): Macroize expander from
33622         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
33623         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
33624         pattern from *ashr{di,ti}3_1 and corresponding splitters using
33625         DWI mode iterator.
33626         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
33627         from corresponding peephole2 patterns.
33628         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
33629         (ashrsi3_cvt): Rename from ashrsi3_31.
33630         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
33631         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
33632         and x86_64_shift_adj_3 using SWI48 mode iterator.
33633         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
33634         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
33635         and *ashrdi3_1_rex64 using SWI mode iterator.
33636         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
33637         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
33638         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
33639         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
33640         and *ashrdi3_cmp_rex64 using SWI mode iterator.
33641         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
33642         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
33643         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
33644         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
33645         SWI mode iterator.
33646         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
33647         * config/i386/i386.c (ix86_split_ashr): Update for renamed
33648         x86_shift<mode>_adj_3 expanders.
33649
33650 2010-04-10  Wei Guozhi  <carrot@google.com>
33651
33652         PR target/42601
33653         * config/arm/arm.c (arm_pic_static_addr): New function.
33654         (legitimize_pic_address): Call arm_pic_static_addr when it detects
33655         a static symbol.
33656         (arm_output_addr_const_extra): Output expression for new pattern.
33657         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
33658
33659 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
33660
33661         * ira-costs.c (record_reg_classes): Ignore alternatives that are
33662         not enabled.
33663
33664         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
33665         * web.c: Include "insn-config.h" and "recog.h".
33666         (union_match_dups): New function.
33667         (web_main): Call it.
33668         (union_defs): Don't try to recognize match_dups.
33669
33670         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
33671         if doing so would replace the entire pattern.
33672
33673 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
33674
33675         PR target/43707
33676         PR target/43709
33677         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
33678         and splitter pattern.  Change splitter operand 1 predicate to
33679         nonmemory_operand.
33680
33681 2010-04-09  Martin Jambor  <mjambor@suse.cz>
33682
33683         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
33684         lattices are addresses of CONST_DECLs with the same initial value.
33685         (ipcp_print_all_lattices): Print values of CONST_DECLs.
33686         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
33687
33688 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
33689             Bernd Schmidt  <bernds@codesourcery.com>
33690
33691         * loop-invariant.c (replace_uses): New static function.
33692         (move_invariant_reg): Use it to ensure we can replace the uses.
33693
33694 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
33695
33696         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
33697         function template.
33698         (picochip_override_options): Enable section anchors only above -O1.
33699         (picochip_reorg): Fixed a couple of build warnings.
33700
33701 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33702
33703         * configure.ac (plugin -rdynamic test): Log result.
33704         * configure: Regenerate.
33705         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
33706         (RDYNAMIC_SPEC): Define.
33707         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
33708
33709 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33710
33711         * configure.ac: Determine Sun ld version numbers.
33712         (comdat_group): Restrict GNU ld version checks to gld.
33713         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
33714         (enable_comdat): Support --enable-comdat.
33715         * configure: Regenerate.
33716         * doc/install.texi (Configuration): Document --enable-comdat.
33717
33718 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33719
33720         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
33721         * config/sol2-gld.h: ... here.
33722         * config.gcc (sparc*-*-solaris2*): Reflect this.
33723         (i[34567]86-*-solaris2*): Use it.
33724
33725 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
33726
33727         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
33728         setup_clocks_p.
33729         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
33730
33731 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33732
33733         PR 42965
33734         * diagnostic.c (diagnostic_initialize): Initialize
33735         some_warnings_are_errors.
33736         (diagnostic_finish): New.
33737         (diagnostic_action_after_output): Call it before exiting.
33738         (diagnostic_report_diagnostic): Do not print message here. Set
33739         some_warnings_are_errors.
33740         * diagnostic.h (diagnostic_context): Delete
33741         issue_warnings_are_errors_message. Add some_warnings_are_errors.
33742         (diagnostic_finish): Declare.
33743         * toplev.c (toplev_main): Call it before exit.
33744
33745 2010-04-09  Jason Merrill  <jason@redhat.com>
33746
33747         PR c++/42623
33748         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
33749         for incomplete type.
33750
33751         PR c++/41788
33752         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
33753         based on a warning flag.
33754
33755 2010-04-09  Richard Guenther  <rguenther@suse.de>
33756
33757         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
33758
33759 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
33760
33761         PR bootstrap/43684
33762         * varasm.c (default_assemble_visibility): Wrap vars that are
33763         set, but unused, by targets without GAS.
33764         * config/rs6000/rs6000.c (paired_emit_vector_compare):
33765         Remove set, but unused, vars.
33766         (rs6000_legitimize_tls_address): Likewise.
33767         (altivec_expand_dst_builtin): Likewise.
33768         * config/darwin.c (machopic_classify_symbol): Likewise.
33769         (machopic_indirection_name): Likewise.
33770
33771 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
33772
33773         * config/i386/i386.md (DWI): New mode iterator.
33774         (S): New mode attribute.
33775         (shift_operand): Ditto.
33776         (shift_immediate_operand): Ditto.
33777         (ashl_input_operand): Ditto.
33778         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
33779         using SDWIM mode iterator.
33780         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
33781         pattern from *ashl{di,ti}3_1 and corresponding splitters using
33782         DWI mode iterator.
33783         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
33784         from corresponding peephole2 patterns.
33785         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
33786         and x86_64_shift_adj_1 using SWI48 mode iterator.
33787         (x86_shift<mode>_adj_2): Ditto.
33788         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
33789         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
33790         using SWI48 mode iterator.
33791         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
33792         *ashldi3_cmp_rex64 using SWI mode iterator.
33793         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
33794         *ashldi3_cconly_rex64 using SWI mode iterator.
33795         * config/i386/i386.c (ix86_split_ashl): Update for renamed
33796         x86_shift<mode>_adj_{1,2}.
33797         (ix86_split_ashr): Ditto.
33798         (ix86_split_lshr): Ditto.
33799
33800 2010-04-09  Richard Guenther  <rguenther@suse.de>
33801
33802         * target.h (builtin_conversion): Pass in input and output types.
33803         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
33804         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
33805         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
33806         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
33807
33808         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
33809         Handle AVX modes.
33810         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
33811
33812 2010-04-09  Richard Guenther  <rguenther@suse.de>
33813
33814         PR target/43152
33815         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
33816
33817 2010-04-09  Richard Guenther  <rguenther@suse.de>
33818
33819         * tree-vectorizer.h (struct _stmt_vec_info): Document
33820         that vectype is the type of the LHS.
33821         (supportable_widening_operation, supportable_narrowing_operation):
33822         Get both input and output vector types as arguments.
33823         (vect_is_simple_use_1): Declare.
33824         (get_same_sized_vectype): Likewise.
33825         * tree-vect-loop.c (vect_determine_vectorization_factor):
33826         Set STMT_VINFO_VECTYPE to the vector type of the def.
33827         (vectorizable_reduction): Adjust.
33828         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
33829         Adjust.  Specify the output vector type.
33830         (vect_pattern_recog_1): Adjust.
33831         * tree-vect-stmts.c (get_same_sized_vectype): New function.
33832         (vectorizable_call): Adjust.
33833         (vectorizable_conversion): Likewise.
33834         (vectorizable_operation): Likewise.
33835         (vectorizable_type_demotion): Likewise.
33836         (vectorizable_type_promotion): Likewise.
33837         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
33838         the def.
33839         (vect_is_simple_use_1): New function.
33840         (supportable_widening_operation): Get both input and output
33841         vector types.
33842         (supportable_narrowing_operation): Likewise.
33843         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
33844
33845 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
33846
33847         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
33848         __thiscall and _thiscall as predefined macros.
33849         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
33850         thiscall attribute handling.
33851         (ix86_comp_type_attributes): Likewise.
33852         (ix86_function_regparm): Likewise.
33853         (ix86_return_pops_args): Likewise.
33854         (init_cumulative_args): Likewise.
33855         (find_drap_reg): Likewise.
33856         (ix86_static_chain): Likewise.
33857         (x86_this_parameter): Likewise.
33858         (x86_output_mi_thunk): Likewise.
33859         (ix86_attribute_table): Add description for thiscall attribute.
33860         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
33861         * doc/extend.texi: Add documentation for thiscall.
33862
33863 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33864
33865         PR c++/28584
33866         * c.opt (Wint-to-pointer-cast): Available in C++.
33867         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
33868
33869 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
33870
33871         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
33872         * calls.c (expand_call): Pass the function type to aggregate_value_p.
33873         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
33874         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
33875         function type instead.  Reorder and simplify checks.
33876
33877         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
33878
33879 2010-04-08  Jing Yu  <jingyu@google.com>
33880             Zdenek Dvorak  <ook@ucw.cz>
33881
33882         PR tree-optimization/42720
33883         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
33884         loop unswitch conditions here from ...
33885         (tree_unswitch_single_loop): ... here.
33886
33887 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
33888
33889         * tree-if-conv.c: Fix comments and simplify logic.
33890
33891 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
33892
33893         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
33894         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
33895         (main_tree_if_conversion): Update call to tree_if_conversion.
33896
33897 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33898
33899         PR 42485
33900         * doc/invoke.texi (-b,-V): Delete.
33901         * doc/tm.texi: Do not mention -b.
33902         * gcc.c (display_help): Delete -b and -V.
33903         (process_command): Delete -b and -V.
33904         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
33905
33906 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
33907             Wolfgang Gellerich  <gellerich@de.ibm.com>
33908
33909         Implement target hook for loop unrolling
33910         * target.h (loop_unroll_adjust): Add a new target hook function.
33911         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
33912         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
33913         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
33914         (s390_loop_unroll_adjust): Implement the new target hook for s390.
33915         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
33916         target hook.
33917         (decide_unroll_stupid): Likewise.
33918
33919 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33920
33921         PR target/43643
33922         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
33923
33924 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33925
33926         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
33927         (Specific, *-*-solaris2*): Likewise.
33928         Don't prefer Sun as over GNU as.
33929
33930 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
33931
33932         * config/s390/s390.c (override_options): Adjust the z10 defaults
33933         for max-unroll-times, max-completely-peeled-insns
33934         and max-completely-peel-times.
33935
33936 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33937
33938         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
33939         instructions for z10.
33940         (s390_expand_setmem): Likewise.
33941         (s390_expand_cmpmem): Likewise.
33942
33943 2010-04-08  Richard Guenther  <rguenther@suse.de>
33944
33945         PR tree-optimization/43679
33946         * tree-ssa-pre.c (eliminate): Only propagate copies.
33947
33948 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
33949
33950         PR bootstrap/43681
33951         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
33952         set but not used variable warning.
33953
33954 2010-04-08  Wei Guozhi  <carrot@google.com>
33955
33956         PR target/41653
33957         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
33958         (arm_size_rtx_costs): Call the new function when optimized for size.
33959
33960 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
33961
33962         PR debug/43670
33963         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
33964         op0 is not a MEM, just return NULL instead of assertion
33965         failure.
33966         (discover_nonconstant_array_refs): Don't walk debug stmts.
33967
33968 2010-04-08  Doug Kwan  <dougkwan@google.com>
33969
33970         * configure.ac: Recognize gold and do not use its version number
33971         to test ld features.
33972         * configure: Regenerate.
33973
33974 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
33975
33976         PR middle-end/40815
33977         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
33978         (negate_value): Move code to push elements to broken_up_substracts ...
33979         (eliminate_plus_minus_pair): ... here.  Push operands that have no
33980         negative pair to plus_negates.
33981         (repropagate_negates, init_reassoc, fini_reassoc): Update.
33982
33983 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33984
33985         * doc/install.texi (Configuration): Move description of
33986         --enable-lto, --with-libelf*, --enable-gold from Java section to
33987         general section.
33988
33989         * doc/generic.texi (Working with declarations)
33990         (Function Properties, C and C++ Trees): Fix typos.
33991         * doc/sourcebuild.texi (Top Level): Likewise.
33992
33993 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
33994
33995         PR c/18624
33996         * tree.h (DECL_READ_P): Define.
33997         (struct tree_decl_common): Add decl_read_flag.
33998         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
33999         a set but not used warning.
34000         (merge_decls): Merge DECL_READ_P flag.
34001         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
34002         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
34003         * c-common.c (handle_used_attribute, handle_unused_attribute):
34004         Likewise.
34005         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
34006         New prototypes.
34007         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
34008         New functions.
34009         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
34010         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
34011         c_parser_binary_expression, c_parser_cast_expression,
34012         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
34013         Call default_function_array_read_conversion instead of
34014         default_function_array_conversion where needed.
34015         (c_parser_unary_expression, c_parser_conditional_expression,
34016         c_parser_postfix_expression_after_primary, c_parser_initelt):
34017         Likewise.  Call mark_exp_read where needed.
34018         (c_parser_statement_after_labels, c_parser_asm_operands,
34019         c_parser_typeof_specifier, c_parser_sizeof_expression,
34020         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
34021         where needed.
34022         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
34023         New.
34024         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
34025         (warn_unused_but_set_parameter): Default to warn_unused
34026         && extra_warnings.
34027         * doc/invoke.texi: Document -Wunused-but-set-variable and
34028         -Wunused-but-set-parameter.
34029
34030         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
34031         used count variable.
34032         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
34033         when operandN variables aren't used in the body of the expander
34034         or splitter.
34035         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
34036         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
34037         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
34038         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
34039         FOR_EACH_IMM_USE_ON_STMT): Likewise.
34040         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
34041         * tree.c (PROCESS_ARG): Likewise.
34042
34043 2010-04-07  Simon Baldwin  <simonb@google.com>
34044
34045         * diagnostic.h (diagnostic_override_option_index): New macro to
34046         set a diagnostic's option_index.
34047         * c-tree.h (c_cpp_error): Add warning reason argument.
34048         * opts.c (_warning_as_error_callback): New.
34049         (register_warning_as_error_callback): Store callback for
34050         warnings enabled via enable_warning_as_error.
34051         (enable_warning_as_error): Call callback, minor code tidy.
34052         * opts.h (register_warning_as_error_callback): Declare.
34053         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
34054         response to -Werror=.
34055         (c_common_init_options): Register warning_as_error_callback in opts.c.
34056         * common.opt: Add -Wno-cpp option.
34057         * c-common.c (struct reason_option_codes_t): Map cpp warning
34058         reason codes to gcc option indexes.
34059         * (c_option_controlling_cpp_error): New function, lookup the gcc
34060         option index for a cpp warning reason code.
34061         * (c_cpp_error): Add warning reason argument, call
34062         c_option_controlling_cpp_error for diagnostic_override_option_index.
34063         * doc/invoke.texi: Document -Wno-cpp.
34064
34065 2010-04-07  Richard Guenther  <rguenther@suse.de>
34066
34067         * ipa-reference.c (mark_load): Use get_base_address.
34068         (mark_store): Likewise.
34069
34070         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
34071         inserting GIMPLE_NOPs into the IL.
34072         * tree-ssa-structalias.c (get_constraint_for_component_ref):
34073         Explicitly strip handled components and indirect references.
34074
34075         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
34076         folding address expressions.
34077         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
34078         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
34079         operand_equal_p to compare decls.
34080         (ptr_deref_may_alias_decl_p): Likewise.
34081         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
34082         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
34083         Handle reversed comparison ops.
34084         * tree-sra.c (asm_visit_addr): Use get_base_address.
34085         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
34086         * ipa-reference.c (mark_address): Use get_base_address.
34087
34088 2010-04-07  Richard Guenther  <rguenther@suse.de>
34089
34090         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
34091         Propagate constants everywhere.
34092
34093 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
34094
34095         PR debug/43516
34096         * tree.c (MAX_INT_CACHED_PREC): Define.
34097         (nonstandard_integer_type_cache): New array.
34098         (build_nonstandard_integer_type): Cache results for precision
34099         <= MAX_INT_CACHED_PREC.
34100
34101 2010-04-07  Richard Guenther  <rguenther@suse.de>
34102
34103         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
34104         -fargument-noalias-global, -fargument-noalias-anything): Remove.
34105         * common.opt: Likewise.
34106         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
34107         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
34108         (nonoverlapping_memrefs_p): Likewise.
34109         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
34110         * opts.c (common_handle_option): Handle OPT_fargument_alias,
34111         OPT_fargument_noalias, OPT_fargument_noalias_anything and
34112         OPT_fargument_noalias_global for backward compatibility.
34113
34114 2010-04-07  Richard Guenther  <rguenther@suse.de>
34115
34116         PR tree-optimization/43270
34117         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
34118         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
34119         * tree-ssa-pre.c (phi_translate_1): Adjust.
34120         (fully_constant_expression): Split out vn_reference handling to ...
34121         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
34122         Fold reads from constant strings.
34123         (vn_reference_lookup): Handle fully constant references.
34124         (vn_reference_lookup_pieces): Likewise.
34125         * Makefile.in (expmed.o-warn): Add -Wno-error.
34126
34127 2010-04-07  Martin Jambor  <mjambor@suse.cz>
34128
34129         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
34130
34131 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
34132
34133         PR driver/41594
34134         * gcc.c: Add -static-libstdc++ to list of recognized options.
34135
34136 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34137
34138         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
34139
34140 2010-04-07  Richard Guenther  <rguenther@suse.de>
34141
34142         PR middle-end/42617
34143         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
34144         bases build simple mem attributes to retain points-to information.
34145
34146 2010-04-07  Richard Guenther  <rguenther@suse.de>
34147
34148         PR middle-end/42617
34149         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
34150         preserve points-to related information.
34151
34152 2010-04-07  Richard Guenther  <rguenther@suse.de>
34153
34154         PR middle-end/42617
34155         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
34156         discard plain indirect references.
34157         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
34158         * tree.c (tree_nop_conversion): Likewise.
34159
34160 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
34161
34162         PR debug/43628
34163         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
34164
34165 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
34166
34167         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
34168         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
34169
34170 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
34171
34172         * tree-if-conv.c: Fix indentation and comments.
34173
34174 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
34175
34176         * tree-if-conv.c: Sort static functions in topological order.
34177
34178 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
34179
34180         * tree-if-conv.c: Fix indentation and comments.
34181
34182 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
34183
34184         PR middle-end/43519
34185         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
34186         lang_hooks.types.type_for_size instead of
34187         build_nonstandard_integer_type.
34188         When converting an unsigned type to signed, double its precision.
34189         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
34190         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
34191         (graphite_create_new_loop_guard): When ub + 1 wraps around,
34192         use lb <= ub.
34193
34194 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
34195
34196         PR middle-end/43519
34197         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
34198         POINTER_PLUS_EXPR for pointer types.
34199
34200 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
34201
34202         PR middle-end/43519
34203         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
34204         * graphite-clast-to-gimple.c: Include langhooks.h.
34205         (max_signed_precision_type): New.
34206         (max_precision_type): Takes two types as arguments.
34207         (precision_for_value): New.
34208         (precision_for_interval): New.
34209         (gcc_type_for_interval): New.
34210         (gcc_type_for_value): New.
34211         (gcc_type_for_clast_term): New.
34212         (gcc_type_for_clast_red): New.
34213         (gcc_type_for_clast_bin): New.
34214         (gcc_type_for_clast_expr): Split up into several functions.
34215         (gcc_type_for_clast_eq): Rewritten.
34216         (compute_bounds_for_level): New.
34217         (compute_type_for_level_1): New.
34218         (compute_type_for_level): New.
34219         (gcc_type_for_cloog_iv): Removed.
34220         (gcc_type_for_iv_of_clast_loop): Rewritten.
34221         (graphite_create_new_loop): Compute the lower and upper bound types
34222         with gcc_type_for_clast_expr.
34223         (graphite_create_new_loop_guard): Same.
34224         (find_cloog_iv_in_expr): Removed.
34225         (compute_cloog_iv_types_1): Removed.
34226         (compute_cloog_iv_types): Removed.
34227         (gloog): Do not call compute_cloog_iv_types.
34228         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
34229         GBB_CLOOG_IV_TYPES.
34230         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
34231         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
34232         (GBB_CLOOG_IV_TYPES): Removed.
34233
34234 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
34235
34236         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
34237         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
34238         (detect_commutative_reduction): Same.
34239
34240 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
34241
34242         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
34243         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
34244         argument.
34245         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
34246         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
34247         (rewrite_commutative_reductions_out_of_ssa): Same.
34248         * passes.c (execute_function_todo): Call verify_ssa for every pass
34249         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
34250         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
34251         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
34252         with an extra argument.
34253         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
34254         verify_ssa only when the extra argument is true.
34255         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
34256         with an extra argument.
34257         (tree_transform_and_unroll_loop): Same.
34258
34259 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
34260
34261         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
34262         for all the passes of the LNO having LOOP_CLOSED_SSA.
34263         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
34264         * tree-loop-distribution.c (pass_loop_distribution): Same.
34265         * tree-pass.h (TODO_verify_loops): Removed.
34266         * tree-ssa-loop.c (pass_tree_loop_init): Same.
34267         (pass_lim): Same.
34268         (pass_tree_unswitch): Same.
34269         (pass_predcom): Same.
34270         (pass_vectorize): Same.
34271         (pass_linear_transform): Same.
34272         (pass_graphite_transforms): Same.
34273         (pass_iv_canon): Same.
34274         (pass_complete_unroll): Same.
34275         (pass_complete_unrolli): Same.
34276         (pass_parallelize_loops): Same.
34277         (pass_loop_prefetch): Same.
34278         (pass_iv_optimize): Same.
34279
34280 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
34281
34282         PR middle-end/32824
34283         * passes.c (init_optimization_passes): Move pass_lim before
34284         pass_copy_prop and pass_dce_loop.
34285
34286 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
34287
34288         PR target/43667
34289         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
34290         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
34291         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
34292         MULTI_* defines for 4 argument vpermil2p* builtins.
34293
34294 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
34295
34296         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
34297         * config/i386/i386.c (x86_maybe_negate_const_int): New.
34298         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
34299         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
34300         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
34301         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
34302         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
34303         Use x86_maybe_negate_const_int to output insn mnemonic.
34304         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
34305         check from instruction predicate.  Update comments.
34306         * config/i386/sync.md (sync_add<mode>): Use
34307         x86_maybe_negate_const_int to output insn mnemonic.
34308
34309 2010-04-06  Jan Hubicka  <jh@suse.cz>
34310
34311         PR tree-optimization/42906
34312         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
34313         IGNORE_SELF argument.  Set visited_control_parents for fully
34314         processed BBs.
34315         (find_obviously_necessary_stmts): Update call of
34316         mark_control_dependent_edges_necessary.
34317         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
34318
34319 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
34320
34321         * config/i386/i386.md: Remove comment about 'e' and 'E'
34322         operand modifier.
34323
34324 2010-04-06  Richard Guenther  <rguenther@suse.de>
34325
34326         PR tree-optimization/43627
34327         * tree-vrp.c (extract_range_from_unary_expr): Widenings
34328         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
34329         not varying.
34330
34331 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
34332
34333         * BASE-VER: Change to 4.6.0.
34334
34335         PR target/43638
34336         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
34337         handling.
34338
34339 2010-04-06  Richard Guenther  <rguenther@suse.de>
34340
34341         PR middle-end/43661
34342         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
34343
34344 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
34345
34346         * doc/invoke.texi (Optimize Options): Document that LTO
34347         won't remove object access purely due to incompatible
34348         declarations.
34349
34350 2010-04-04  Matthias Klose  <doko@ubuntu.com>
34351
34352         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
34353         Initialize variable.
34354
34355 2010-04-03  Richard Guenther  <rguenther@suse.de>
34356
34357         PR middle-end/42509
34358         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
34359         require a non-NULL MEM_OFFSET.
34360
34361 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
34362
34363         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
34364         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
34365         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
34366         config/alpha/predicates.md, config/arm/arm.md,
34367         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
34368         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
34369         config/darwin9.h, config/darwin.c, config/darwin.h,
34370         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
34371         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
34372         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
34373         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
34374         config/mips/mips.md, config/mn10300/mn10300.c,
34375         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
34376         config/rs6000/aix.h, config/rs6000/dfp.md,
34377         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
34378         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
34379         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
34380         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
34381         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
34382         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
34383         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
34384         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
34385         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
34386         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
34387         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
34388         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
34389         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
34390         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
34391         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
34392         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
34393         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
34394         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
34395         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
34396         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
34397         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
34398         opt-functions.awk, opth-gen.awk, params.def, passes.c,
34399         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
34400         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
34401         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
34402         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
34403         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
34404         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
34405         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
34406         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
34407         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
34408         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
34409         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
34410         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
34411         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
34412         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
34413
34414 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
34415
34416         PR other/43620
34417         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
34418         * aclocal.m4: Regenerate.
34419
34420 2010-04-02  Richard Guenther  <rguenther@suse.de>
34421
34422         PR tree-optimization/43629
34423         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
34424         if we have seen a constant value.
34425
34426 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
34427
34428         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
34429
34430 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
34431
34432         PR target/43469
34433         * arm.c (legitimize_tls_address): Adjust call to
34434         gen_tls_load_dot_plus_four.
34435         (arm_note_pic_base): New function.
34436         (arm_cannot_copy_insn_p): Use it.
34437         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
34438         constraint.
34439
34440 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
34441
34442         PR bootstrap/43531
34443
34444         Revert:
34445         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
34446
34447         * Makefile.in ($(out_object_file)): Depend on
34448         gt-$(basename $(notdir $(out_file))).h.
34449
34450 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
34451
34452         * config.gcc (lm32-*-rtems*): Add t-lm32.
34453
34454 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
34455
34456         * config.gcc: Add lm32-*-rtems*.
34457         * config/lm32/rtems.h: New file.
34458
34459 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
34460
34461         PR target/42609
34462         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
34463
34464 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
34465
34466         * dwarf2out.c (output_compilation_unit_header): For
34467         -gdwarf-4 use version 4 instead of version 3.
34468         (output_line_info): For version 4 and above emit additional
34469         maximum ops per insn header field.
34470         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
34471
34472         * dwarf2out.c (is_c_family, is_java): Remove.
34473         (lower_bound_default): New function.
34474         (add_bound_info, gen_descr_array_type_die): Use it.
34475
34476 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
34477
34478         PR debug/43325
34479         * dwarf2out.c (gen_variable_die): Allow debug info for variable
34480         re-declaration when it happens in a function.
34481
34482 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
34483
34484         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
34485         (cgraph_remove_function_insertion_hook): Same.
34486         (cgraph_call_function_insertion_hooks): Same.
34487
34488 2010-04-01  Richard Guenther  <rguenther@suse.de>
34489
34490         PR middle-end/43614
34491         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
34492         and TREE_THIS_VOLATILE.
34493         (copy_ref_info): Likewise.
34494         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
34495         * tree.c (build6_stat): Ignore side-effects of all but arg5
34496         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
34497         TARGET_MEM_REF.
34498
34499 2010-04-01  Richard Guenther  <rguenther@suse.de>
34500
34501         PR tree-optimization/43607
34502         * ipa-type-escape.c (check_call): Do not access non-existing
34503         arguments.
34504
34505 2010-04-01  Richard Guenther  <rguenther@suse.de>
34506
34507         PR middle-end/43602
34508         Revert
34509         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
34510                     Jack Howarth  <howarth@bromo.med.uc.edu>
34511
34512         * tree-profile.c (tree_init_ic_make_global_vars): Make static
34513         variables TLS.
34514
34515 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34516
34517         * doc/install.texi (Prerequisites): Document libelf usability on
34518         IRIX 5/6 and Solaris 2.
34519         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
34520         Update GNU as, GNU ld requirements.
34521         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
34522         Document Sun Studio compiler download.
34523         Update and simplify as, ld recommendations.
34524         (Specific, *-*-solaris2.7): Note obsoletion, removal.
34525
34526 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34527
34528         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
34529         with_tune_32 to pentium4.
34530
34531 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
34532
34533         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
34534
34535 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34536
34537         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
34538         obsoletion, removal.
34539         Update IDO URL.
34540         Document GNU as requirement.
34541         Update configure requirements.
34542         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
34543         Recomment IRIX 6.5.18+.
34544         Document IDF/IDL requirement.
34545         Document GNU as requirement.
34546         Document GNU ld bootstrap failure.
34547         Remove freeware.sgi.com reference.
34548
34549 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34550
34551         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
34552         UNIX V4.0, V5.0 obsoletion, removal.
34553         Remove --with-gc=simple reference.
34554         Update VM requirements during bootstrap.
34555         Remove -oldas bootstrap description.
34556         Update binutils reference.
34557         Remove comparison failure note.
34558
34559 2010-03-31  Richard Guenther  <rguenther@suse.de>
34560             Zdenek Dvorak  <ook@ucw.cz>
34561             Sebastian Pop  <sebastian.pop@amd.com>
34562
34563         PR middle-end/43464
34564         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
34565         with multiple arguments.
34566         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
34567
34568 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
34569
34570         * graphite-dependences.c (print_pddr): Call print_pdr with an
34571         extra argument.
34572         * graphite-poly.c (debug_pdr): Add an extra argument for the
34573         verbosity level.
34574         (print_pdr): Same.
34575         (print_pbb_domain): Same.
34576         (print_pbb): Same.
34577         (print_scop_context): Same.
34578         (print_scop): Same.
34579         (print_cloog): Same.
34580         (debug_pbb_domain): Same.
34581         (debug_pbb): Same.
34582         (print_pdrs): Same.
34583         (debug_pdrs): Same.
34584         (debug_scop_context): Same.
34585         (debug_scop): Same.
34586         (debug_cloog): Same.
34587         (print_scop_params): Same.
34588         (debug_scop_params): Same.
34589         (print_iteration_domain): Same.
34590         (print_iteration_domains): Same.
34591         (debug_iteration_domain): Same.
34592         (debug_iteration_domains): Same.
34593         (print_scattering_function): Same.
34594         (print_scattering_functions): Same.
34595         (debug_scattering_function): Same.
34596         (debug_scattering_functions): Same.
34597         * graphite-poly.h (debug_pdr): Update declaration.
34598         (print_pdr): Same.
34599         (print_pbb_domain): Same.
34600         (print_pbb): Same.
34601         (print_scop_context): Same.
34602         (print_scop): Same.
34603         (print_cloog): Same.
34604         (debug_pbb_domain): Same.
34605         (debug_pbb): Same.
34606         (print_pdrs): Same.
34607         (debug_pdrs): Same.
34608         (debug_scop_context): Same.
34609         (debug_scop): Same.
34610         (debug_cloog): Same.
34611         (print_scop_params): Same.
34612         (debug_scop_params): Same.
34613         (print_iteration_domain): Same.
34614         (print_iteration_domains): Same.
34615         (debug_iteration_domain): Same.
34616         (debug_iteration_domains): Same.
34617         (print_scattering_function): Same.
34618         (print_scattering_functions): Same.
34619         (debug_scattering_function): Same.
34620         (debug_scattering_functions): Same.
34621
34622 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
34623
34624         * graphite-poly.c (print_scattering_function_1): New.
34625         (print_scattering_function): Call it.
34626         (print_scop_params): Remove spaces at the end of lines.
34627         (print_cloog): New.
34628         (debug_cloog): New.
34629         * graphite-poly.h (print_cloog): Declared.
34630         (debug_cloog): Declared.
34631
34632 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
34633
34634         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
34635         in loop->header.
34636         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
34637         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
34638         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
34639         to switch between adding the IV bump in loop->latch or in loop->header.
34640
34641 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
34642
34643         * graphite-poly.c (print_scattering_function): Pretty print following
34644         the scoplib format.
34645         (print_pdr): Same.
34646         (print_pbb_domain): Same.
34647         (dump_gbb_cases): Same.
34648         (dump_gbb_conditions): Same.
34649         (print_pdrs): Same.
34650         (print_pbb): Same.
34651         (print_scop_params): Same.
34652         (print_scop_context): Same.
34653         (print_scop): Same.
34654         (print_pbb_body): New.
34655         (lst_indent_to): New.
34656         (print_lst): Start new lines with a #.
34657         * graphite-poly.h (pbb_bb): New.
34658         (pbb_index): Use pbb_bb.
34659         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
34660         disjuncts.
34661         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
34662
34663 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
34664
34665         * dwarf2out.c (size_of_die): For -gdwarf-4 use
34666         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
34667         and 0 instead of 1 for dw_val_class_flag.
34668         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
34669         dw_val_class_range_list, dw_val_class_loc_list,
34670         dw_val_class_lineptr and dw_val_class_macptr, use
34671         DW_FORM_flag_present for dw_val_class_flag and
34672         DW_FORM_exprloc for dw_val_class_loc.
34673         (output_die): For -gdwarf-4 print dw_val_class_loc
34674         size as uleb128 instead of 1 or 2 bytes and don't print
34675         anything for dw_val_class_flag.
34676
34677         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
34678         instead of cselib_lookup following by tweaking locs->setting_insn.
34679
34680         PR bootstrap/43596
34681         * cselib.c (cselib_process_insn): Clear cselib_current_insn
34682         even before returning from label, setjmp call or volatile asm
34683         handling.
34684
34685 2010-03-31  Richard Guenther  <rguenther@suse.de>
34686
34687         PR middle-end/43600
34688         * cgraphunit.c (cgraph_output_in_order): Do not allocate
34689         temporary data on stack.
34690
34691 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34692
34693         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
34694         (PUSHSECTION_ASM_OP): Remove.
34695         (POPSECTION_ASM_OP): Remove.
34696         (PUSHSECTION_FORMAT): Remove.
34697         * config/sol2.h (PUSHSECTION_FORMAT): Define.
34698         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
34699         * config/sol2.c (solaris_output_init_fini): Use it.
34700
34701 2010-03-31  Jie Zhang  <jie@codesourcery.com>
34702
34703         PR 43574
34704         * opt-functions.awk (var_type_struct): Use signed char type
34705         for simple variables.
34706
34707 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34708
34709         * config/sol2.c: Include output.h.
34710         (solaris_assemble_visibility): New function.
34711         * config/t-sol2 (sol2.o): Add output.h dependency.
34712         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
34713         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
34714         Redefine.
34715
34716 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
34717
34718         PR target/43580
34719         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
34720         V2SImode or XFmode on PRE_DEC.
34721
34722         PR debug/43557
34723         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
34724         BLKmode.
34725
34726 2010-03-31  Jie Zhang  <jie@codesourcery.com>
34727
34728         PR 43562
34729         * reload.h (caller_save_initialized_p): Declare.
34730         * toplev.c (backend_init_target): Don't call
34731         init_caller_save but set caller_save_initialized_p to false.
34732         * caller-save.c (caller_save_initialized_p): Define.
34733         (init_caller_save): Check caller_save_initialized_p.
34734         * ira.c (ira): Call init_caller_save if flag_caller_saves.
34735
34736 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34737
34738         PR target/39048
34739         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
34740         and soft-fp/t-softfp to tmake_file.
34741         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
34742         (LIBGCC2_TF_CEXT): Define.
34743         (TF_SIZE): Define.
34744
34745 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
34746
34747         PR debug/42977
34748         * cselib.c (n_useless_values): Document handling of debug locs.
34749         (n_useless_debug_values, n_debug_values): New variables.
34750         (new_elt_loc_list): Don't add to debug values, keep count.
34751         (promote_debug_loc): New.
34752         (cselib_reset_table): Zero new variables.
34753         (entry_and_rtx_equal_p): Promote debug locs.
34754         (discard_useless_locs): Increment n_useless_debug_values for
34755         debug values.
34756         (remove_useless_values): Adjust n_useless_values and n_debug_values
34757         with n_useless_debug_values.
34758         (add_mem_for_addr): Promote debug locs.
34759         (cselib_lookup_mem): Likewise.
34760         (cselib_lookup_addr): Renamed to...
34761         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
34762         (cselib_log_lookup): ... this.  Turn into...
34763         (cselib_lookup_addr): ... new wrapper.
34764         (cselib_lookup_from_insn): New.
34765         (cselib_invalidate_regno): Increment n_useless_debug_values for
34766         debug values.
34767         (cselib_invalidate_mem): Likewise.
34768         (cselib_process_insn): Take n_deleted and n_debug_values into
34769         account to guard remove_useless_value call.
34770         (cselib_finish): Zero n_useless_debug_values.
34771         * cselib.h (cselib_lookup_from_insn): Declare.
34772         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
34773         (sched_analyze_2): Likewise.
34774
34775 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
34776
34777         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
34778         functions.
34779         (adjust_mems): Replace narrowing SUBREG of expression containing
34780         just PLUS, MINUS, MULT and ASHIFT of registers and constants
34781         with operations in the narrower mode.
34782
34783         PR debug/43593
34784         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
34785         regs_invalidated_by_call instead all call_used_reg_set registers.
34786
34787 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
34788
34789         PR middle-end/43430
34790         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
34791         pointer comparisons with types_compatible_p.
34792         * tree-vect-stmts.c (vectorizable_call): Same.
34793         (vectorizable_condition): Same.
34794
34795 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34796
34797         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
34798         stack check if the mask would be zero.
34799
34800 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
34801             Jack Howarth  <howarth@bromo.med.uc.edu>
34802
34803         * tree-profile.c (tree_init_ic_make_global_vars): Make static
34804         variables TLS.
34805
34806 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
34807
34808         PR other/25232
34809         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
34810         and __unordtf2.
34811         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
34812         Include ___unordxf2 and ___unordtf2.
34813         * config/i386/libgcc-glibc.ver: Do not define inheritance from
34814         GCC_4.4.0 here.
34815
34816 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
34817
34818         * config/lm32/t-lm32: New file.
34819         * config.gcc: Use the above file when targetting lm32.
34820
34821 2010-03-28  Duncan Sands  <baldrick@free.fr>
34822
34823         * Makefile.in (PLUGIN_HEADERS): Add except.h.
34824
34825 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
34826
34827         PR middle-end/43431
34828         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
34829         Improve vectorization cost model diagnostic.
34830
34831 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
34832
34833         PR middle-end/43436
34834         * tree-vect-data-refs.c (vect_analyze_data_refs): When
34835         compute_data_dependences_for_loop returns false, early exit
34836         and output an extra diagnostic for the failed data reference
34837         analysis.
34838
34839 2010-03-29  Richard Guenther  <rguenther@suse.de>
34840
34841         PR tree-optimization/43560
34842         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
34843         (can_sm_ref_p): Treat stores to readonly locations as trapping.
34844
34845 2010-03-29  Jie Zhang  <jie@codesourcery.com>
34846
34847         PR 43564
34848         * toplev.c (process_options): Set optimization_default_node
34849         and optimization_current_node.
34850         * opts.c (decode_options): Don't set optimization_default_node
34851         and optimization_current_node.
34852
34853 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
34854
34855         * config/rtems.h: Abandon -qrtems_debug.
34856
34857 2010-03-28  Jan Hubicka  <jh@suse.cz>
34858
34859         PR tree-optimization/43505
34860         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
34861         map should not be copied.
34862
34863 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
34864
34865         PR middle-end/41674
34866         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
34867         cdtors, set DECL_PRESERVE_P.
34868         * ipa.c (cgraph_externally_visible_p): Return true if declaration
34869         should be preseved.
34870
34871 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
34872
34873         PR tree-optimization/43528
34874         * stor-layout.c (place_field): Check that constant fits into
34875         unsigned HWI when skipping calculation of MS bitfield layout.
34876
34877 2010-03-27  Jan Hubicka  <jh@suse.cz>
34878
34879         PR middle-end/43391
34880         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
34881         notice_global_symbol work.
34882
34883 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
34884
34885         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
34886         instead of dwarf2out_decl.
34887         (struct var_loc_node): Remove section_label field.
34888         (dwarf2out_function_decl): New function.
34889         (dwarf2out_var_location): Don't set section_label field.
34890         (dwarf2out_begin_function): Don't empty decl_loc_table here.
34891
34892 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
34893
34894         PR tree-optimization/43544
34895         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
34896         First argument for builtin vectorized function hook is now a
34897         tree to be able to distinguish between machine specific and
34898         standard builtins.
34899         * targhooks.c (default_builtin_vectorized_function): Ditto.
34900         * targhooks.h (default_builtin_vectorized_function): Ditto.
34901         * target.h (struct gcc_target): Ditto.
34902         * tree-vect-stmts.c (vectorizable_function): Ditto.
34903         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
34904         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
34905         Ditto.
34906
34907 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
34908
34909         PR c/43381
34910         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
34911         nested binding iff it is a FUNCTION_DECL.
34912         (store_parm_decls_newstyle): Pass nested=true to bind for
34913         FUNCTION_DECLs amongst parameters.
34914
34915 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
34916
34917         * var-tracking.c (vt_expand_loc_callback): Don't run
34918         cselib_expand_value_rtx_cb in dummy mode if
34919         cselib_dummy_expand_value_rtx_cb returned false.
34920
34921         * var-tracking.c (emit_note_insn_var_location): For one part
34922         notes with offset 0, don't add EXPR_LIST around the location.
34923         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
34924         add_location_or_const_value_attribute): Adjust for that change.
34925
34926         PR debug/43540
34927         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
34928         into first operand and location into second.
34929         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
34930         dw_cfi_oprnd_loc for DW_CFA_expression.
34931         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
34932         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
34933         assume first argument is regnum and second argument is location.
34934
34935 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
34936
34937         PR target/42113
34938         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
34939         of scratch register to DImode.  Split to DImode comparison operator.
34940         Use SImode subreg of scratch register in the multiplication.
34941         (*cmp_sadd_sidi): Ditto.
34942         (*cmp_ssub_si): Ditto.
34943         (*cmp_ssub_sidi): Ditto.
34944
34945 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
34946
34947         PR target/43524
34948         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
34949         Remove invalid assert and wrong comment.
34950
34951 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
34952
34953         PR debug/43516
34954         * flags.h (final_insns_dump_p): New extern.
34955         * final.c (final_insns_dump_p): New variable.
34956         (rest_of_clean_state): Set it before -fdump-final-insns=
34957         dumping, clear afterwards.
34958         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
34959         MEM_ALIAS_SET on MEMs.
34960
34961 2010-03-26  David S. Miller  <davem@davemloft.net>
34962
34963         * configure.ac: Fix sparc GOTDATA_OP bug check.
34964         * configure: Rebuild.
34965
34966 2010-03-26  Alan Modra  <amodra@gmail.com>
34967
34968         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
34969
34970 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34971
34972         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
34973         TLS_SECTION_ASM_FLAG.
34974
34975 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
34976
34977         PR bootstrap/43511
34978         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
34979         Clear first_function_block_is_cold.
34980
34981         PR c/43385
34982         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
34983         argument if the argument is truth_value_p.
34984
34985 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
34986
34987         * config/rs6000/constraints.md: Update copyright year for my changes.
34988
34989         PR target/43484
34990         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
34991         used in reg+reg addressing, swap registers.
34992
34993 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
34994
34995         PR debug/43293
34996         * target.h (struct gcc_target): Add code_end hook.
34997         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
34998         if not yet defined.
34999         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
35000         * toplev.c (compile_file): Call targetm.asm_out.code_end
35001         hook before unwind info/debug info output.
35002         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
35003         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
35004         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
35005         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
35006         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
35007         * config/i386/i386.c (ix86_file_end): Renamed to...
35008         (ix86_code_end): ... this.  Make static.  Don't call
35009         file_end_indicate_exec_stack.  Emit unwind info using
35010         final_start_function/final_end_function.
35011         (darwin_x86_file_end): Remove.
35012         (TARGET_ASM_CODE_END): Define.
35013         * config/i386/i386.h (TARGET_ASM_FILE_END,
35014         NEED_INDICATE_EXEC_STACK): Don't define.
35015         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
35016         (TARGET_ASM_FILE_END): Define to darwin_file_end.
35017         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
35018         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
35019
35020         PR target/43498
35021         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
35022         at the beginning and final_end_function at the end.
35023         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
35024
35025 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35026
35027         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
35028         and Sun as TLS syntax.
35029         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
35030         * configure: Regenerate.
35031         * config.in: Regenerate.
35032         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
35033         (default_elf_asm_named_section): Use it.
35034         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
35035         (i386_output_dwarf_dtprel): Likewise.
35036         (output_addr_const_extra): Likewise.
35037         (output_pic_addr_const): Lowercase @GOTTPOFF.
35038         (output_addr_const_extra): Likewise.
35039         (output_pic_addr_const): Lowercase @GOTNTPOFF.
35040         (output_addr_const_extra): Likewise.
35041         (output_pic_addr_const): Lowercase @INDNTPOFF.
35042         (output_addr_const_extra): Likewise.
35043         (output_pic_addr_const): Lowercase @NTPOFF.
35044         (output_addr_const_extra): Likewise.
35045         (output_pic_addr_const): Lowercase @TPOFF.
35046         (output_addr_const_extra): Likewise.
35047         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
35048         (*tls_global_dynamic_64): Likewise.
35049         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
35050         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
35051
35052         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
35053         (ASM_OUTPUT_TLS_COMMON): Use it.
35054         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
35055
35056         PR target/38118
35057         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
35058         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
35059         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
35060         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
35061         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
35062         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
35063
35064 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35065
35066         * config/i386/i386.c (override_options): Don't accept
35067         -mtls-dialect=sun any longer.
35068         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
35069         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
35070         (*tls_local_dynamic_base_32_sun): Likewise.
35071         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
35072
35073 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
35074
35075         PR debug/43508
35076         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
35077         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
35078
35079         PR debug/43479
35080         * ira.c (adjust_cleared_regs): New function.
35081         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
35082
35083         PR debug/19192
35084         PR debug/43479
35085         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
35086         from gimple_block.
35087         * expr.c (expand_expr_real): Restore previous
35088         curr_insn_source_location and curr_insn_block after
35089         expand_expr_real_1 call.
35090         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
35091         instead of expand_expr_real_1.
35092
35093 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
35094
35095         PR rtl-optimization/43413
35096         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
35097         hard regs too.
35098
35099 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
35100
35101         PR target/43348
35102         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
35103         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
35104
35105 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
35106
35107         * config/i386/i386.c (ix86_target_string): Add -mfma.
35108         Fix a typo in comment.
35109
35110 2010-03-22  Mike Stump  <mikestump@comcast.net>
35111
35112         PR target/23071
35113         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
35114         Don't overly align based upon packed packed fields.
35115
35116 2010-03-22  Jason Merrill  <jason@redhat.com>
35117
35118         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
35119         Use () rather than [], and move before the element type.
35120
35121 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35122
35123         * doc/configfiles.texi (Configuration Files): Removed
35124         fixinc/Makefile*, intl/Makefile.*.
35125         * doc/makefile.texi: Fixed markup. Abstract from version
35126         control system used.
35127         (Makefile): Removed obsolete java/parse.y example.
35128         * doc/sourcebuild.texi: Likewise.
35129         (Top Level): Added config, gnattools, libdecnumber, libgcc,
35130         libgomp, libssp.  Removed fastjar.
35131         (Miscellaneous Docs): Clarify location.
35132         Added COPYING3, COPYING3.LIB.
35133         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
35134
35135 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35136
35137         PR target/38085
35138         * config/i386/i386.c (x86_function_profiler)
35139         [!NO_PROFILE_COUNTERS]: Fix typo.
35140         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
35141         instead of callq.
35142
35143 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
35144             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35145
35146         * doc/sourcebuild.texi (Test Directives): Split into six
35147         subsections, with most of the current text in new subsections
35148         Directives, Selectors, and Final Actions.
35149         (Directives): Split list of test directives into multiple
35150         subsubsections.
35151         (Selectors): Describe use and syntax of selectors.
35152         (Effective-Target Keywords): Describe all existing keywords.
35153         (Add Options): Describe features for dg-add-options.
35154         (Require Support): Describe variants of dg-require-support.
35155         (Final Actions): Describe commands to use in dg-final.
35156
35157 2010-03-22  Michael Matz  <matz@suse.de>
35158
35159         PR middle-end/43475
35160         * recog.c (validate_replace_rtx_group): Replace also in
35161         REG_EQUAL and REG_EQUIV notes.
35162
35163 2010-03-22  Richard Guenther  <rguenther@suse.de>
35164
35165         PR tree-optimization/43390
35166         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
35167         sure vector extracts are type correct.
35168
35169 2010-03-22  Richard Guenther  <rguenther@suse.de>
35170
35171         PR middle-end/40106
35172         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
35173         x * sqrt (x) even when optimizing for size if the target
35174         has native support for sqrt.
35175
35176 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
35177
35178         * varasm.c (make_decl_rtl_for_debug): Also clear
35179         flag_mudflap for the duration of make_decl_rtl call.
35180
35181         PR debug/43443
35182         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
35183         locs from preserved VALUEs.
35184
35185 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
35186
35187         PR middle-end/42718
35188         * pa.md (movmemsi): Set align to one if zero.
35189         (movmemdi): Likewise.
35190
35191 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
35192
35193         PR target/42321
35194         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
35195         with their corresponding prologue pushes.
35196
35197 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
35198
35199         PR target/43156
35200         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
35201         at the begining or end.
35202         (spu_expand_epilogue): Likewise.
35203
35204 2010-03-20  Richard Guenther  <rguenther@suse.de>
35205
35206         PR rtl-optimization/43438
35207         * combine.c (make_extraction): Properly zero-/sign-extend an
35208         extraction of the low part of a CONST_INT.  Also handle
35209         CONST_DOUBLE.
35210
35211 2010-03-19  Mike Stump  <mikestump@comcast.net>
35212
35213         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
35214         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
35215         (override_options): Use SUBTARGET32_DEFAULT_CPU.
35216
35217 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
35218
35219         PR c/43211
35220         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
35221         an error.
35222
35223 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
35224
35225         PR rtl-optimization/42258
35226         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
35227         use that may match DEF.
35228
35229         PR target/40697
35230         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
35231         the cost of loading the constant rather than assuming
35232         COSTS_N_INSNS (1).
35233         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
35234         outer code is AND, do the same tests as the andsi3 expander and
35235         return COSTS_N_INSNS (1) if and is cheap.
35236
35237         * optabs.c (avoid_expensive_constant): Fix formatting.
35238
35239 2010-03-19  Michael Matz  <matz@suse.de>
35240
35241         PR c++/43116
35242         * attribs.c (decl_attributes): When rebuilding a function pointer
35243         type use the same qualifiers as the original pointer type.
35244
35245 2010-03-19  Martin Jambor  <mjambor@suse.cz>
35246
35247         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
35248         and is_gimple_ip_invariant_address.
35249
35250 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
35251
35252         Revert
35253         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
35254
35255         * config/arm/arm.c (arm_override_options): Turn off
35256         flag_dwarf2_cfi_asm for AAPCS variants.
35257
35258 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
35259
35260         PR target/43399
35261         * config/arm/arm.c (emit_multi_reg_push): Update comments.
35262         Use PRE_MODIFY instead of PRE_DEC.
35263         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
35264         (vfp_emit_fstmd): Likewise.
35265
35266 2010-03-19  Michael Matz  <matz@suse.de>
35267
35268         PR target/43305
35269         * builtins.c (expand_builtin_interclass_mathfn,
35270         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
35271         if that fails.
35272
35273 2010-03-19  Richard Guenther  <rguenther@suse.de>
35274
35275         PR tree-optimization/43415
35276         * tree-ssa-pre.c (phi_translate): Split out worker to ...
35277         (phi_translate_1): ... this.
35278         (phi_translate): Move all caching here.  Cache all NARY
35279         and REFERENCE translations.
35280
35281 2010-03-19  David S. Miller  <davem@davemloft.net>
35282
35283         With help from Eric Botcazou.
35284         * config/sparc/sparc.c: Include dwarf2out.h.
35285         (emit_pic_helper): Delete.
35286         (pic_helper_symbol_name): Delete.
35287         (pic_helper_emitted_p): Delete.
35288         (pic_helper_needed): New.
35289         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
35290         (get_pc_thunk_name): New.
35291         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
35292         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
35293         Set pic_helper_needed to true.  Don't call emit_pic_helper.
35294         (sparc_expand_prologue): Update load_pic_register call.
35295         (sparc_output_mi_thunk): Likewise.
35296         (sparc_file_end): Emit a hidden comdat symbol for the PIC
35297         thunk if possible.  Output CFI information as needed.
35298
35299 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
35300             Jack Howarth  <howarth@bromo.med.uc.edu>
35301
35302         PR target/36399
35303         * config/i386/i386.h: Fix ABI on darwin x86-32.
35304
35305 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
35306
35307         * tree.h: Declare make_decl_rtl_for_debug.
35308         * varasm.c (make_decl_rtl_for_debug): New.
35309         * dwarf2out.c (rtl_for_decl_location): Call it.
35310         * cfgexpand.c (expand_debug_expr): Call it.
35311
35312 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
35313
35314         PR bootstrap/43399
35315         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
35316         mem_mode.
35317
35318         PR bootstrap/43403
35319         * var-tracking.c (vt_init_cfa_base): Do nothing if
35320         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
35321
35322 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
35323
35324         PR debug/42873
35325         * var-tracking.c (canonicalize_vars_star): New.
35326         (dataflow_post_merge_adjust): Use it.
35327
35328 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
35329
35330         PR debug/43058
35331         * var-tracking.c (non_suitable_const): New function.
35332         (add_uses): For DEBUG_INSNs with constants, don't record any
35333         value, instead just the constant value itself.
35334         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
35335         is not VAR_LOC_UNKNOWN_P, set var to the constant.
35336         (emit_notes_in_bb): Likewise.
35337         (emit_note_insn_var_location): For onepart variables if
35338         cur_loc is a VOIDmode constant, use DECL_MODE.
35339
35340 2010-03-18  Martin Jambor  <mjambor@suse.cz>
35341
35342         PR middle-end/42450
35343         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
35344         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
35345         all non-clones.  Moved call redirection...
35346         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
35347         (cgraph_materialize_all_clones): Dispose of all
35348         combined_args_to_skip bitmaps.
35349         (verify_cgraph_node): Do not check for edges pointing to wrong
35350         nodes in inline clones.
35351         * tree-inline.c (copy_bb): Call
35352         cgraph_redirect_edge_call_stmt_to_callee.
35353         * ipa.c (cgraph_remove_unreachable_nodes): Call
35354         cgraph_node_remove_callees even when there are used clones.
35355
35356 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
35357
35358         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
35359
35360 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
35361
35362         PR target/43383
35363         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
35364         for 32bit.
35365
35366 2010-03-18  Michael Matz  <matz@suse.de>
35367
35368         PR middle-end/43419
35369         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
35370         into sqrt(x) if we need to preserve signed zeros.
35371
35372 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
35373             Eric Botcazou  <ebotcazou@adacore.com>
35374
35375         PR rtl-optimization/43360
35376         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
35377         note if we don't know its invariant status.
35378
35379 2010-03-18  Michael Matz  <matz@suse.de>
35380
35381         PR tree-optimization/43402
35382         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
35383         PHI chains of ssa names registered for update.
35384
35385 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
35386
35387         PR target/42427
35388         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
35389         non-offsettable and pre_modify update addressing.
35390         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
35391         and "2" alternatives "#".
35392         (*movdd_softfloat32): Make all alternatives "#";
35393         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
35394         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
35395         (*movdf_softfloat32): Make all alternatives "#";
35396         (movdi): Use the new DIFD mode iterator to create a common splitter
35397         for movdi, movdf and movdd patterns.
35398
35399 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
35400
35401         * common.opt (dumpdir): Remove redundant tab.
35402
35403 2010-03-17  Martin Jambor  <mjambor@suse.cz>
35404
35405         PR tree-optimization/43347
35406         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
35407         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
35408
35409 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
35410
35411         PR rtl-optimization/42216
35412         * regrename.c (create_new_chain): New function, broken out from...
35413         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
35414         appending a use to an empty chain.
35415         (build_def_use): Remove previous changes that convert OP_INOUT to
35416         OP_OUT operands; instead detect the case where an OP_INOUT operand
35417         uses a previously untracked register and create an empty chain for it.
35418
35419 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35420
35421         * doc/extend.texi (Function Attributes): Rewrite unfinished
35422         sentence in ms_abi documentation.
35423
35424 2010-03-17  Alan Modra  <amodra@gmail.com>
35425
35426         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
35427         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
35428         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
35429         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
35430
35431 2010-03-16  Richard Henderson  <rth@redhat.com>
35432
35433         PR middle-end/43365
35434         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
35435         (lower_try_finally): Save and restore eh_seq around the expansion
35436         of the try-finally.
35437
35438 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
35439
35440         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
35441         statements before splitting block.
35442
35443 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35444
35445         * doc/sourcebuild.texi (Testsuites): Fix markup.
35446         Use pathnames relative to gcc/testsuite.
35447         (Test Directives): Move description of how timeout is determined.
35448         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
35449         (C Tests): Correct gcc.misc-tests directory.
35450         Framework tests now live in gcc.test-framework.
35451
35452 2010-03-16  Richard Guenther  <rguenther@suse.de>
35453
35454         PR middle-end/43379
35455         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
35456         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
35457
35458 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
35459             Alexandre Oliva  <aoliva@redhat.com>
35460
35461         PR tree-optimization/42917
35462         * lambda-code.c (remove_iv): Skip debug statements.
35463         (lambda_loopnest_to_gcc_loopnest): Likewise.
35464         (not_interesting_stmt): Debug statements are not interesting.
35465
35466 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
35467
35468         PR debug/43051
35469         PR debug/43092
35470         * cselib.c (cselib_preserve_constants,
35471         cfa_base_preserved_val): New static variables.
35472         (preserve_only_constants): New function.
35473         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
35474         clear its REG_VALUES.  If cselib_preserve_constants, don't
35475         empty the whole hash table, but preserve there VALUEs with constants,
35476         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
35477         (cselib_preserve_cfa_base_value): New function.
35478         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
35479         (cselib_init): Change argument to int bitfield.  Set
35480         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
35481         is in it.
35482         (cselib_finish): Clear cselib_preserve_constants and
35483         cfa_base_preserved_val.
35484         * cselib.h (enum cselib_record_what): New enum.
35485         (cselib_init): Change argument to int.
35486         (cselib_preserve_cfa_base_value): New prototype.
35487         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
35488         * dse.c (dse_step1): Likewise.
35489         * cfgcleanup.c (thread_jump): Likewise.
35490         * sched-deps.c (sched_analyze): Likewise.
35491         * gcse.c (local_cprop_pass): Likewise.
35492         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
35493         If FN is non-NULL, call the callback always and whenever it returns
35494         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
35495         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
35496         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
35497         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
35498         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
35499         * var-tracking.c: Include recog.h.
35500         (bb_stack_adjust_offset): Remove.
35501         (vt_stack_adjustments): Don't call it, instead just gather the
35502         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
35503         (adjust_stack_reference): Remove.
35504         (compute_cfa_pointer): New function.
35505         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
35506         (struct adjust_mem_data): New type.
35507         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
35508         functions.
35509         (get_address_mode): New function.
35510         (replace_expr_with_values): Use it.
35511         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
35512         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
35513         (adjust_sets): Remove.
35514         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
35515         Use get_address_mode.
35516         (get_adjusted_src): Remove.
35517         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
35518         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
35519         (add_with_sets): Don't call adjust_sets.
35520         (fp_setter, vt_init_cfa_base): New functions.
35521         (vt_initialize): Change return type to bool.  Move most of pool etc.
35522         initialization to the beginning of the function from end.  Pass
35523         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
35524         If !frame_pointer_needed, call vt_stack_adjustment before mos
35525         vector is filled, call vt_init_cfa_base if argp/framep has been
35526         eliminated to sp.  If frame_pointer_needed and argp/framep has
35527         been eliminated to hard frame pointer, set
35528         hard_frame_pointer_adjustment and call vt_init_cfa_base after
35529         encountering fp setter in the prologue.  For MO_ADJUST, call
35530         log_op_type before pusing the op into mos vector, not afterwards.
35531         Call adjust_insn before cselib_process_insn/add_with_sets,
35532         call cancel_changes (0) afterwards.
35533         (variable_tracking_main_1): Adjust for vt_initialize calling
35534         vt_stack_adjustments and returning whether it succeeded or not.
35535
35536 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
35537
35538         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
35539         debug statements.
35540
35541 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
35542
35543         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
35544         has been set.
35545         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
35546         drap_reg has not been set.
35547
35548 2010-03-15  Michael Matz  <matz@suse.de>
35549
35550         PR middle-end/43300
35551         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
35552         use it to expand block copies.
35553         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
35554         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
35555         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
35556
35557 2010-03-15  Richard Guenther  <rguenther@suse.de>
35558
35559         PR tree-optimization/43367
35560         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
35561         elimination check.
35562
35563 2010-03-15  Richard Guenther  <rguenther@suse.de>
35564
35565         PR tree-optimization/43317
35566         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
35567
35568 2010-03-15  Martin Jambor  <mjambor@suse.cz>
35569
35570         PR tree-optimization/43141
35571         * tree-sra.c (create_abstract_origin): New function.
35572         (modify_function): Call create_abstract_origin.
35573
35574 2010-03-15  Chris Demetriou  <cgd@google.com>
35575
35576         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
35577         wasn't copied.
35578
35579 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
35580
35581         PR middle-end/43354
35582         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
35583         call insert_out_of_ssa_copy for default definitions.
35584
35585 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
35586
35587         * graphite-clast-to-gimple.c (my_long_long): Defined.
35588         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
35589         * graphite-sese-to-poly.c (my_long_long): Defined.
35590         (scop_ivs_can_be_represented): Use it.
35591
35592 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
35593
35594         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
35595         graphite-max-bbs-per-function, and loop-block-tile-size.
35596         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
35597         with "maximum".
35598         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
35599
35600 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
35601
35602         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
35603         forward declaration.
35604         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
35605         (add_upper_bounds_from_estimated_nit): New.
35606         (build_loop_iteration_domains): Use it.
35607
35608 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
35609
35610         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
35611
35612 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
35613
35614         PR middle-end/43306
35615         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
35616         should be an INTEGER_CST.  Also handle CASE_CONVERT.
35617
35618 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
35619
35620         * graphite.c (graphite_initialize): To bound the number of bbs per
35621         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
35622         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
35623         * doc/invoke.texi: Document it.
35624
35625 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
35626
35627         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
35628         * graphite-sese-to-poly.h (build_poly_scop): Same.
35629
35630 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
35631
35632         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
35633         the number of parameters in the scop.  Use as an upper bound
35634         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
35635         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
35636         * doc/invoke.texi: Document it.
35637
35638 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
35639
35640         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
35641         * doc/c-tree.texi: Remove.
35642         * doc/generic.texi: Merge c-tree.texi here.
35643         * doc/gccint.texi (Trees): Remove menu entry.
35644         (c-tree.texi): Remove @include.
35645         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
35646         * doc/languages.texi (Reading RTL): Ditto.
35647
35648 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
35649
35650         PR target/42869
35651         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
35652
35653 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
35654
35655         PR middle-end/42431
35656         * config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
35657         code added to work around reload clobbering CONST insns.
35658
35659 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
35660
35661         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
35662         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
35663         (cselib_preserve_only_values): Remove retain argument, don't
35664         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
35665         * cselib.h (cselib_preserve_only_values): Remove retain argument.
35666         * var-tracking.c (micro_operation): Move insn field before union.
35667         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
35668         (struct variable_tracking_info_def): Remove n_mos field, change
35669         mos into a vector of micro_operations.
35670         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
35671         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
35672         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
35673         changing into a vector.
35674         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
35675         come before all other uops generated by add_stores.
35676         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
35677         argument removal.
35678         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
35679         a vector.  Run just one pass over the bbs instead of separate counting
35680         and computation phase.
35681         (vt_finalize): Free VTI (bb)->mos vector instead of array.
35682
35683         PR debug/43329
35684         * tree-inline.c (remap_decls): Put old_var rather than origin_var
35685         into *nonlocalized_list vector.
35686         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
35687         even if origin is non-NULL.
35688         (gen_variable_die): Likewise.
35689         (process_scope_var): Don't change origin.
35690         (gen_decl_die): Likewise.
35691         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
35692         before adding new edges instead of after it, fix moving over
35693         debug stmts.
35694
35695 2010-03-11  David S. Miller  <davem@davemloft.net>
35696
35697         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
35698         of four.
35699         * configure: Rebuild.
35700
35701 2010-03-11  Martin Jambor  <mjambor@suse.cz>
35702
35703         PR tree-optimization/43257
35704         * tree.c (assign_assembler_name_if_neeeded): New function.
35705         (free_lang_data_in_cgraph): Assembler name assignment moved to the
35706         above new function.
35707         * tree.h (assign_assembler_name_if_neeeded): Declare.
35708         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
35709         the function if needed.
35710
35711 2010-03-11  Chris Demetriou  <cgd@google.com>
35712
35713         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
35714         include/stdint-gcc.h, and include/stdint.h world-readable.
35715
35716 2010-03-11  Richard Guenther  <rguenther@suse.de>
35717
35718         PR tree-optimization/43255
35719         * tree-vrp.c (process_assert_insertions_for): Do not insert
35720         asserts for trivial conditions.
35721
35722 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35723
35724         PR tree-optimization/43280
35725         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
35726         generation.  Move calculation of size out of the if branch.
35727         (find_bswap): Modify compare number generation.
35728
35729 2010-03-11  Richard Guenther  <rguenther@suse.de>
35730
35731         PR lto/43200
35732         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
35733         (input_gimple_stmt): Fixup handled component types during
35734         operand read.  Also fix up decls in ADDR_EXPRs.
35735
35736 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
35737
35738         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
35739         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
35740
35741 2010-03-10  Jan Hubicka  <jh@suse.cz>
35742
35743         PR c/43288
35744         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
35745         * varasm.c (get_variable_section): Don't do that here...
35746         (make_decl_rtl): ... and here.
35747         (do_assemble_alias): Produce decl RTL.
35748         (assemble_alias): Likewise.
35749
35750 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
35751
35752         PR debug/43290
35753         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
35754         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
35755         of fde->vdrap_reg.
35756         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
35757         (based_loc_descr): Only express drap or vdrap regno based expressions
35758         using DW_OP_fbreg when not optimizing.
35759         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
35760         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
35761         REG_CFA_SET_VDRAP note.
35762
35763 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
35764
35765         PR tree-optimization/43236
35766         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
35767         error in calculation of base address in reverse iteration case.
35768         (generate_builtin): Take number of latch executions if the statement
35769         is in the latch.
35770
35771 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
35772
35773         PR middle-end/42859
35774         * tree-eh.c: Include pointer-set.h.
35775         (lower_eh_dispatch): Filter out duplicate case labels and
35776         remove the unneeded edge when the label is unused.  Return
35777         true when some edges are removed.
35778         (execute_lower_eh_dispatch): When any lowering resulted in
35779         removing an edge, also delete unreachable blocks.
35780
35781 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
35782
35783         PR bootstrap/43287
35784         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
35785         UNSPEC_MACHOPIC_OFFSET.
35786
35787 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
35788
35789         PR target/43294
35790         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
35791         (m68k_delegitimize_address): New function.
35792
35793 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
35794
35795         PR debug/43299
35796         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
35797
35798         PR debug/43299
35799         * var-tracking.c (adjust_sets): New function.
35800         (count_with_sets, add_with_sets): Use it.
35801         (get_adjusted_src): New inline function.
35802         (add_stores): Use it.
35803
35804         PR debug/43304
35805         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
35806         call cselib_dummy_expand_value_rtx_cb instead of
35807         cselib_expand_value_rtx_cb.
35808
35809         PR debug/43293
35810         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
35811         * config/i386/i386.c: Include debug.h and dwarf2out.h.
35812         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
35813         and .cfi_endproc around the pic thunks.
35814         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
35815         all queued unwind info register saves are saved before the call.
35816         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
35817         considered as sp-=4 for unwind info and the pop as sp+=4 which
35818         also clobbers dest, but doesn't actually restore it.
35819
35820         PR debug/43290
35821         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
35822         RTX_FRAME_RELATED_P.
35823
35824 2010-03-09  Jie Zhang  <jie@codesourcery.com>
35825
35826         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
35827         whitespaces in output template.
35828
35829 2010-03-09  Jie Zhang  <jie@codesourcery.com>
35830
35831         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
35832         out array boundary.
35833
35834 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
35835
35836         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
35837         builtins.exp in a separate job.
35838
35839 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35840
35841         * graphite-sese-to-poly.c (add_param_constraints): Use
35842         lower_bound_in_type and upper_bound_in_type.
35843
35844 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35845
35846         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
35847         instead of unsigned_type_node.
35848
35849 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35850             Reza Yazdani  <reza.yazdani@amd.com>
35851
35852         PR middle-end/43065
35853         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
35854         on pointer type parameters.
35855
35856 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
35857
35858         PR middle-end/42644
35859         PR middle-end/42130
35860         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
35861         handle conversions from pointer to integers.
35862         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
35863         induction variable, to be able to work with code generated by CLooG.
35864         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
35865         (build_poly_scop): Bail out if we cannot codegen a loop.
35866
35867 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
35868
35869         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
35870         code generation with gloog_error.
35871
35872 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35873
35874         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
35875         Call fold_convert on all the returned values.
35876         (expand_scalar_variables_expr): Pass to
35877         expand_scalar_variables_ssa_name the type of the resulting expression.
35878
35879 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35880
35881         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
35882         ppl_min_for_le_pointset.
35883         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
35884         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
35885
35886 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35887
35888         * graphite-dependences.c (map_into_dep_poly): Removed.
35889         (dependence_polyhedron_1): Use combine_context_id_scat.
35890
35891 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35892
35893         * graphite-poly.h (struct poly_scattering): Add layout documentation.
35894         (struct poly_bb): Same.
35895         (combine_context_id_scat): New.
35896
35897 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35898
35899         PR middle-end/42326
35900         * sese.c (name_defined_in_loop_p): Return false for default
35901         definitions.
35902
35903 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35904
35905         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
35906         and clean up the logic.
35907
35908 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35909
35910         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
35911         early return.
35912
35913 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
35914
35915         * var-tracking.c (remove_cselib_value_chains): Define only for
35916         ENABLE_CHECKING.
35917         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
35918         delete_slot_part, emit_notes_for_differences_1): Don't call
35919         remove_cselib_value_chains here.
35920         (set_slot_part, emit_notes_for_differences_2): Don't call
35921         add_cselib_value_chains here.
35922         (preserved_values): New vector.
35923         (preserve_value): New function.
35924         (add_uses, add_stores, vt_add_function_parameters): Use it
35925         instead of cselib_preserve_value.
35926         (changed_values_stack): New vector.
35927         (check_changed_vars_0): New function.
35928         (check_changed_vars_1, check_changed_vars_2): Use it.
35929         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
35930         changed_values_stack VALUEs.
35931         (vt_emit_notes): For all preserved_values call
35932         add_cselib_value_chains.  If ENABLE_CHECKING call
35933         remove_cselib_value_chains before verifying value_chains is empty.
35934         Initialize and free changed_values_stack.
35935         (vt_initialize): Initialize preserved_values.
35936         (vt_finalize): Free preserved_values.
35937
35938 2010-03-08  Richard Guenther  <rguenther@suse.de>
35939
35940         PR tree-optimization/43269
35941         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
35942         region detection.
35943
35944 2010-03-08  Martin Jambor  <mjambor@suse.cz>
35945
35946         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
35947         (ipa_is_param_called): Removed.
35948         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
35949         (ipa_print_node_params): Do not print the called flag.
35950         (ipa_write_node_info): Do not stream the called flag.
35951         (ipa_read_node_info): Likewise.
35952
35953 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
35954
35955         PR debug/43176
35956         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
35957         * cselib.c (struct expand_value_data): Add dummy field.
35958         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
35959         dummy to false.
35960         (cselib_dummy_expand_value_rtx_cb): New function.
35961         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
35962         any rtl.
35963         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
35964         * var-tracking.c: Include pointer-set.h.
35965         (variable): Change n_var_parts to char from int.  Add
35966         cur_loc_changed and in_changed_variables fields.
35967         (variable_canonicalize): Remove.
35968         (shared_var_p): New inline function.
35969         (unshare_variable): Maintain cur_loc_changed and
35970         in_changed_variables fields.  If var was in changed_variables,
35971         replace it there with new_var.  Just copy cur_loc instead of
35972         resetting it to something else.
35973         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
35974         (dataflow_set_union): Don't call variable_canonicalize.
35975         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
35976         of their DEBUG_EXPR_TREE_DECLs.
35977         (canonicalize_loc_order_check): Verify that cur_loc is NULL
35978         and in_changed_variables and cur_loc_changed is false.
35979         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
35980         and cur_loc_changed.  Don't update cur_loc here.
35981         (variable_merge_over_src): Don't call variable_canonicalize.
35982         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
35983         removing loc that is equal to cur_loc, clear cur_loc,
35984         set cur_loc_changed and ensure variable_was_changed is called.
35985         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
35986         compare pointers in cur_loc check, if it is equal to loc,
35987         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
35988         (variable_different_p): Remove compare_current_location argument,
35989         don't compare cur_loc.
35990         (dataflow_set_different_1): Adjust variable_different_p caller.
35991         (variable_was_changed): If dv had some var in changed_variables
35992         already, reset in_changed_variables flag for it and propagate
35993         cur_loc_changed over to the new variable.  On empty var
35994         always set cur_loc_changed.  Set in_changed_variables on whatever
35995         var is added to changed_variables.
35996         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
35997         Use shared_var_p.  When removing loc that is equal to cur_loc,
35998         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
35999         end, don't set it to something else, just call variable_was_changed.
36000         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
36001         loc being removed, clear cur_loc and set cur_loc_changed.
36002         Set cur_loc_changed if all locations have been removed.
36003         (struct expand_loc_callback_data): New type.
36004         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
36005         allocated.  Always create SUBREGs if simplify_subreg failed.
36006         Prefer to use cur_loc, when that fails and still in
36007         changed_variables (and seen first time) recompute it.  Set
36008         cur_loc_changed of variables which had to change cur_loc and
36009         compute elcd->cur_loc_changed if any of the subexpressions used
36010         had to change cur_loc.
36011         (vt_expand_loc): Adjust to pass arguments in
36012         expand_loc_callback_data structure.
36013         (vt_expand_loc_dummy): New function.
36014         (emitted_notes): New variable.
36015         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
36016         that weren't used for any other decl in current
36017         emit_notes_for_changes call call vt_expand_loc_dummy to update
36018         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
36019         first loc_chain location if NULL before.  Always use just
36020         cur_loc instead of first loc_chain location.  When cur_loc_changed
36021         is false, when not --enable-checking=rtl just don't emit any note.
36022         When rtl checking, compute the note and assert it is the same
36023         as previous note.  Clear cur_loc_changed and in_changed_variables
36024         at the end before removing from changed_variables.
36025         (check_changed_vars_3): New function.
36026         (emit_notes_for_changes): Traverse changed_vars to call
36027         check_changed_vars_3 on each changed var.
36028         (emit_notes_for_differences_1): Clear cur_loc_changed and
36029         in_changed_variables.  Recompute cur_loc of new_var.
36030         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
36031         (vt_emit_notes): Initialize and destroy emitted_notes.
36032
36033 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
36034
36035         PR rtl-optimization/42220
36036         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
36037         Use verify_reg_tracked to determine if we should use OP_OUT rather
36038         than OP_INOUT.
36039         (build_def_use): If we see an in-out operand for a register that we
36040         know nothing about, treat is an output if possible, fail the block if
36041         not.
36042
36043 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
36044
36045         PR debug/42897
36046         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
36047         permanently.
36048
36049 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
36050
36051         PR debug/42897
36052         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
36053         uses of relevant DEFs that are dead outside the loop too.
36054
36055 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
36056
36057         * var-tracking.c (dataflow_set_merge): Swap src and src2.
36058         Reverted:
36059         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
36060         PR debug/41371
36061         * var-tracking.c (values_to_unmark): New variable.
36062         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
36063         values_to_unmark vector.  Moved body to...
36064         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
36065         instead queue it into values_to_unmark vector.
36066         (vt_find_locations): Free values_to_unmark vector.
36067
36068 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
36069
36070         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
36071         (site.exp): Export them when plugins are enabled.
36072
36073 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
36074
36075         PR middle-end/42326
36076         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
36077         that contain scevs.
36078         (chrec_fold_multiply): Same.
36079
36080 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
36081
36082         PR c/43248
36083         * c-decl.c (build_compound_literal): Return early if init is
36084         an error_mark_node.
36085
36086 2010-03-04  Martin Jambor  <mjambor@suse.cz>
36087
36088         PR tree-optimization/43164
36089         PR tree-optimization/43191
36090         * tree-sra.c (type_consists_of_records_p): Reject records with
36091         zero-size bit-fields at the end.
36092
36093 2010-03-04  Mike Stump  <mikestump@comcast.net>
36094
36095         * Makefile.in (TAGS): Remove *.y.
36096
36097 2010-03-04  Richard Guenther  <rguenther@suse.de>
36098
36099         PR tree-optimization/40761
36100         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
36101         in reverse order.
36102         (my_rev_post_order_compute): New function.
36103         (init_pre): Call it.
36104
36105 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
36106
36107         PR middle-end/43209
36108         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
36109         decrease the cost of an IV candidate when the cost is infinite.
36110
36111 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
36112
36113         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
36114         Use '3DNow!' for the extension of that name, ensure normal space
36115         after the string.
36116         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
36117
36118 2010-03-03  Jeff Law  <law@redhat.com>
36119
36120         * PR middle-end/32693
36121         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
36122         than gen_rtx_SUBREG.
36123         (extract_bit_field_1): Likewise.
36124
36125 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
36126
36127         * doc/sourcebuild.texi (Test directives): Document that arguments
36128         include-opts and exclude-opts are now optional for dg-skip-if,
36129         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
36130
36131 2010-03-03  Jason Merrill  <jason@redhat.com>
36132
36133         PR c++/12909
36134         * cgraph.h (varpool_node): Add extra_name field.
36135         * varpool.c (varpool_extra_name_alias): New.
36136         (varpool_assemble_decl): Emit extra name aliases.
36137         (varpool_mark_needed_node): Look past an extra name alias.
36138         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
36139         * lto-streamer-in.c (lto_input_tree): Read it.
36140         * lto-streamer-out.c (output_unreferenced_globals): Write it.
36141
36142 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
36143
36144         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
36145         (sparc*-*-solaris2*): ...this.
36146
36147 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
36148
36149         PR debug/43229
36150         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
36151         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
36152         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
36153         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
36154
36155         PR debug/43237
36156         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
36157         fallthrough to default handling, just with want_address 0 instead of 2.
36158         For single element lists, add_AT_loc directly, otherwise create an
36159         artificial variable DIE and stick location list to it.
36160
36161         PR debug/43177
36162         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
36163         (VAL_EXPR_HAS_REVERSE): Define.
36164         (reverse_op): New function.
36165         (add_stores): For reversible operations add an extra MO_VAL_USE.
36166
36167 2010-03-02  Jason Merrill  <jason@redhat.com>
36168
36169         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
36170
36171 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
36172
36173         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
36174         (sparc64-*-linux*): Likewise.
36175         (sparc64-*-solaris2*): Include assembler files before linker ones.
36176         (sparc-*-solaris2*): Simplify and reorder to match previous case.
36177         * config/sparc/gas.h: Delete.
36178         * config/sparc/sol2-64.h: Add copyright notice.
36179         * config/sparc/sol2-gas-bi.h: Likewise.
36180         * config/sparc/sol2-gld.h: Likewise.
36181         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
36182         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
36183         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
36184         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
36185         (sparc_elf_asm_named_section): Rename into...
36186         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
36187
36188 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
36189
36190         * config/alpha/alpha.c (override_options): Fix -mtune error message.
36191
36192 2010-03-02  Jeff Law  <law@redhat.com>
36193
36194         PR middle-end/42431
36195         * reload1.c (rtx_p, substitute_stack): Declare.
36196         (substitute): Record addresses of changed rtxs.
36197         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
36198         Restore the original rtx when complete.
36199         (reload): Free subsitute_stack when complete.
36200
36201 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
36202
36203         * doc/gccint.texi (menu): Add Testsuites as a chapter.
36204         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
36205         new chapter.
36206         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
36207         LTO Testing, gcov Testing, profopt Testing, compat Testing,
36208         Torture Tests): Change from subsection to section.
36209
36210 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
36211             Steven Bosscher  <steven@gcc.gnu.org>
36212
36213         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
36214         instead of bb.
36215
36216 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
36217
36218         PR middle-end/42640
36219         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
36220         the assignment from the new induction variable to the assignment
36221         of the value from the original loop PHI function.
36222
36223 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
36224             Daniel Jacobowitz  <dan@codesourcery.com>
36225
36226         * doc/sourcebuild.texi (Test directives): Clarify options to
36227         dg-skip-if.
36228
36229 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36230
36231         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
36232         Disable cfi directives unless GCC and gas agree on using read-only
36233         .eh_frame sections for 64-bit.
36234         * configure: Regenerate.
36235
36236 2010-03-01  Richard Guenther  <rguenther@suse.de>
36237
36238         PR tree-optimization/43220
36239         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
36240         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
36241
36242 2010-03-01  Richard Guenther  <rguenther@suse.de>
36243             Martin Jambor  <mjambor@suse.cz>
36244
36245         PR middle-end/41250
36246         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
36247         gimplified parameters.
36248
36249 2010-03-01  Christian Bruel  <christian.bruel@st.com>
36250
36251         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
36252
36253 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
36254
36255         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
36256
36257 2010-03-01  Richard Guenther  <rguenther@suse.de>
36258
36259         PR middle-end/43213
36260         * expr.c (expand_assignment): Use the alias-oracle to tell
36261         if the rhs aliases the result decl.
36262
36263 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36264
36265         PR pch/14940
36266         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
36267         to sol_gt_pch_get_address.
36268         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
36269         64-bit, SPARC and x86.
36270         (sol_gt_pch_get_address): New function.
36271
36272 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
36273
36274         * toplev.h (inform_n, error_n): Declare.
36275         * diagnostic.c (inform_n, error_n): New function.
36276
36277 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
36278
36279         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
36280         has no rtl yet when processing local_decls, queue it and recheck
36281         if deferred stack allocation hasn't assigned it rtl.
36282
36283 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
36284
36285         * config/sh/sh.c (unspec_bbr_uid): New.
36286         (gen_block_redirect): Use it instead of INSN_UID.
36287         (gen_far_branch): Likewise.
36288
36289 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
36290
36291         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
36292         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
36293
36294 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
36295
36296         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
36297         (Warning Options): -Wno-conversion-null is valid for
36298         Objective-C++ as well.
36299         * doc/tm.texi (Named Address Spaces): Likewise.
36300         * doc/plugins.texi (Plugins): Replace TABs with spaces.
36301         * doc/tree-ssa.texi (Tree SSA): Likewise.
36302
36303 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
36304
36305         PR bootstrap/43202
36306         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
36307         by default.  Don't set the default arch for
36308         i[34567]86-*-darwin*|x86_64-*-darwin*.
36309
36310 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
36311
36312         PR bootstrap/43202
36313         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
36314         default.  Set the default 32bit/64bit archs with $with_arch
36315         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
36316
36317 2010-02-27  Richard Guenther  <rguenther@suse.de>
36318
36319         PR tree-optimization/43186
36320         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
36321         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
36322         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
36323         unroller iterations.
36324
36325 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
36326
36327         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
36328         required and i[34567]86-*-* targets don't support 64bit ISA.
36329
36330 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
36331
36332         PR ada/43096
36333         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
36334         the same alias set.
36335
36336 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
36337
36338         * config.gcc: Set the default arch at least to Prescott for
36339         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
36340         if SSE math is enabled.
36341
36342 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36343
36344         * diagnostic.c (diagnostic_initialize): Update.
36345         (diagnostic_report_diagnostic): Test inhibit_notes_p for
36346         informative notes.
36347         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
36348         (diagnostic_inhibit_notes): New.
36349         * toplev.c (process_options): inhibit notes with -fcompare-debug.
36350
36351 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36352
36353         PR c/20631
36354         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
36355         * doc/standards.texi: Likewise.
36356         * doc/extend.texi: Likewise.
36357         * doc/trouble.texi: Likewise.
36358         * doc/cppopts.texi: Likewise.
36359         * doc/install.texi: Likewise.
36360         * c.opt (std=c90,std=gnu90): New options.
36361         * c-opts.c (c_common_handle_option): Handle them.
36362
36363 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36364
36365         PR c/24577
36366         * c-decl.c (undeclared_variable): Use an informative note.
36367
36368 2010-02-26  Richard Guenther  <rguenther@suse.de>
36369
36370         PR tree-optimization/43186
36371         * gimple.h (gimple_fold): Remove.
36372         * gimple.c (gimple_fold): Remove.  Inline into single user ...
36373         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
36374         Try harder for conditions.
36375
36376 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
36377
36378         PR debug/43190
36379         * function.c (used_types_insert): Don't skip through named pointer
36380         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
36381         and it is different from the main variant's type.
36382
36383 2010-02-26  Nick Clifton  <nickc@redhat.com>
36384
36385         * config/rx/rx.md (sminsi3): Remove bogus alternative.
36386
36387 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
36388
36389         * config.gcc: Support --with-fpmath=sse for x86.
36390
36391         * config/i386/ssemath.h: New.
36392
36393         * doc/install.texi (--with-fpmath=sse): Documented.
36394
36395 2010-02-26  Richard Guenther  <rguenther@suse.de>
36396
36397         PR tree-optimization/43188
36398         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
36399         vector types of over-aligned element type.
36400
36401 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
36402
36403         PR target/43175
36404         * config/i386/i386.c (expand_vec_perm_blend): Use correct
36405         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
36406
36407 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
36408
36409         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
36410
36411 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
36412
36413         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
36414         * var-tracking.c: Include diagnostic.h.
36415         (debug_dv): New function.
36416         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
36417
36418         PR debug/43160
36419         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
36420         (add_value_chain, add_value_chains, remove_value_chain,
36421         remove_value_chains): Handle DEBUG_EXPRs.
36422         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
36423
36424         PR debug/43161
36425         * regcprop.c (struct queued_debug_insn_change): New type.
36426         (struct value_data_entry): Add debug_insn_changes field.
36427         (struct value_data): Add n_debug_insn_changes field.
36428         (debug_insn_changes_pool): New variable.
36429         (free_debug_insn_changes, apply_debug_insn_changes,
36430         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
36431         (kill_value_one_regno): Call free_debug_insn_changes if needed.
36432         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
36433         fields.
36434         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
36435         changes for them.
36436         (copyprop_hardreg_forward_1): Don't call apply_change_group for
36437         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
36438         changes, call cprop_find_used_regs via note_stores.
36439         (copyprop_hardreg_forward): When copying vd from predecessor
36440         which has any queued DEBUG_INSN changes, make sure the pointers are
36441         cleared.  At the end call df_analyze and then if there are any
36442         DEBUG_INSN changes queued at the end of some basic block for still
36443         live registers, apply them.
36444         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
36445
36446 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
36447
36448         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
36449         (arm*-*-*): Ditto.
36450
36451 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
36452
36453         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
36454         targets.  Set the default with_cpu/with_arch from arch/cpu.
36455         Allow x86-64 and native for with_cpu/with_arch.
36456
36457 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
36458
36459         * ebitmap.c: Change calls to verify_popcount with calls to
36460         sbitmap_verify_popcount.
36461         (ebitmap_clear_bit): Fixed map->cacheindex test and
36462         map>cache update when bit clearing results in an empty
36463         element.
36464
36465 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
36466
36467         PR target/43154
36468         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
36469         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
36470         and support both V2DF and V2DI modes.
36471         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
36472         support both V2DF and V2DI modes.
36473         (general): Delete trailing whitespace from a few patterns.
36474
36475         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
36476         V2DF/V2DI interleave high/low builtins.
36477
36478         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
36479         new VSX builtins.
36480
36481         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
36482         interleave high/low functions.
36483
36484 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
36485
36486         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
36487         #pragma extern_prefix.
36488
36489 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
36490
36491         PR debug/43166
36492         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
36493         BLKmode, assert op0 is a MEM and just adjust its mode.
36494
36495         PR debug/43165
36496         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
36497         if bitpos isn't multiple of mode's bitsize.
36498
36499 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36500
36501         * c.opt (-ftemplate-depth=): New.
36502         (-ftemplate-depth-): Deprecate.
36503         * optc-gen.awk: Handle -ftemplate-depth=.
36504         * opth-gen.awk: Likewise.
36505         * c-opts.c (c_common_handle_option): Likewise.
36506         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
36507
36508 2010-02-24  Jason Merrill  <jason@redhat.com>
36509
36510         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
36511
36512 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36513
36514         * cfg.c (alloc_aux_for_block): Remove inline.
36515         (alloc_aux_for_edge): Likewise.
36516
36517 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36518
36519         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
36520
36521 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36522
36523         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
36524         * config/i386/sol2-gas.h: New file.
36525         * config.gcc (i[34567]86-*-solaris2*): Use it.
36526
36527 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36528
36529         PR c/43128
36530         * c-typeck.c (ep_convert_and_check): New.
36531         (build_conditional_expr): Use it.
36532         (build_binary_op): Likewise.
36533
36534 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
36535
36536         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
36537
36538         PR debug/43150
36539         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
36540         bounds even for -O+.
36541         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
36542         expr needs to have DECL_NAME set.
36543
36544 2010-02-24  Nick Clifton  <nickc@redhat.com>
36545
36546         * config/mep/mep.c: Include gimple.h.
36547         (mep_function_uses_sp): Delete unused function.
36548         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
36549         parameters.  Use unsigned integers to count args.  Return a
36550         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
36551
36552 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
36553
36554         PR target/43107
36555         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
36556         greater or equal to nelt instead of 2 * nelt.
36557         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
36558         with nelt - 1.
36559
36560 2010-02-23  Jason Merrill  <jason@redhat.com>
36561
36562         PR debug/42800
36563         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
36564         in cfun->local_decls even if they have register types.
36565
36566         PR c++/42837
36567         * stor-layout.c (place_field): Don't warn about unnecessary
36568         DECL_PACKED if the type is packed.
36569
36570 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
36571
36572         PR target/43139
36573         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
36574         GOTOFF relocs, even when the base reg isn't pic pointer.
36575
36576 2010-02-23  Michael Matz  <matz@suse.de>
36577
36578         PR debug/43077
36579         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
36580         (expand_gimple_basic_block): Generate and use debug temps if there
36581         are debug uses left after the last real use of TERed ssa names.
36582         Unlink debug immediate uses when they are expanded.
36583
36584 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36585
36586         PR 43123
36587         * config/i386/i386.c (override_options): Reorganise to provide
36588         better error messages.
36589
36590 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
36591
36592         PR middle-end/43083
36593         * graphite-scop-detection.c (create_single_exit_edge): Move
36594         the call to find_single_exit_edge to....
36595         (create_sese_edges): ...here.  Don't handle multiple edges
36596         exiting the function.
36597         (build_graphite_scops): Don't handle multiple edges
36598         exiting the function.
36599
36600 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
36601
36602         PR middle-end/43097
36603         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
36604         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
36605
36606 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
36607
36608         PR middle-end/43026
36609         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
36610
36611 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36612
36613         PR c++/43126
36614         * c-typeck.c (convert_arguments): Print declaration location.
36615         * c-common.c (validate_nargs): Rename as
36616         builtin_function_validate_nargs.
36617         (check_builtin_function_arguments): Update.
36618
36619 2010-02-22  Richard Guenther  <rguenther@suse.de>
36620
36621         PR lto/43045
36622         * tree-inline.c (declare_return_variable): Use the type of
36623         the call stmt lhs if available.
36624
36625 2010-02-22  Duncan Sands  <baldrick@free.fr>
36626
36627         * passes.c (register_pass): Always consider all pass lists when
36628         ref_pass_instance_number is zero.
36629
36630 2010-02-22  Richard Guenther  <rguenther@suse.de>
36631
36632         PR tree-optimization/42749
36633         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
36634         parameter.  Do arithmetic in the original type.
36635         (update_accumulator_with_ops): Likewise.
36636         (adjust_accumulator_values): Adjust.
36637
36638 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
36639
36640         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
36641         (QI to BLKmode splitter): New splitter.
36642
36643 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
36644
36645         * config/i386/i386.c (initial_ix86_tune_features): Turn on
36646         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
36647
36648 2010-02-22  Richard Guenther  <rguenther@suse.de>
36649
36650         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
36651
36652 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
36653
36654         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
36655         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
36656         ($(T)crti.o, $(T)crtn.o): Remove rules.
36657
36658 2010-02-21  Tobias Burnus  <burnus@net-b.de>
36659
36660         PR fortran/35259
36661         * doc/invoke.texi (-fassociative-math): Document that this
36662         option is automatically enabled for Fortran.
36663
36664 2010-02-20  David S. Miller  <davem@davemloft.net>
36665
36666         * configure.ac: Test if linker and assembler properly support
36667         GOTDATA_OP relocations.
36668         * configure: Rebuild.
36669         * config.in: Likewise.
36670         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
36671         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
36672         (movsi_high_pic): Likewise.
36673         (movdi_lo_sum_pic): Likewise.
36674         (movdi_high_pic): Likewise.
36675         (movsi_pic_gotdata_op): New pattern.
36676         (movdi_pic_gotdata_op): Likewise.
36677         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
36678         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
36679
36680 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
36681
36682         PR target/43067
36683         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
36684         attribute to ssemul.
36685         (xop_mulv2div2di3_high): Ditto.
36686
36687 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36688
36689         PR c++/35669
36690         * c.opt (Wconversion-null): New option.
36691         * doc/invoke.texi (Wconversion-null): Document.
36692
36693 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36694
36695         * common.opt (Wlarger-than-): Add Undocumented.
36696
36697 2010-02-19  Mike Stump  <mikestump@comcast.net>
36698
36699         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
36700
36701 2010-02-19  Jason Merrill  <jason@redhat.com>
36702
36703         PR target/40332
36704         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
36705         * configure: Likewise.
36706
36707 2010-02-20  Alan Modra  <amodra@gmail.com>
36708
36709         PR middle-end/42344
36710         * cgraph.h (cgraph_make_decl_local): Declare.
36711         * cgraph.c (cgraph_make_decl_local): New function.
36712         (cgraph_make_node_local): Use it.
36713         * cgraphunit.c (cgraph_function_versioning): Likewise.
36714         * ipa.c (function_and_variable_visibility): Likewise.
36715
36716 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
36717
36718         PR bootstrap/43121
36719         * except.c (sjlj_emit_function_enter): Don't call
36720         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
36721         directly.
36722         * rtl.h (add_reg_br_prob_note): Remove prototype.
36723
36724 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36725
36726         PR 41779
36727         * c-common.c (conversion_warning): Remove widening conversions
36728         before checking the conversion of integers to reals.
36729
36730 2010-02-19  Mike Stump  <mikestump@comcast.net>
36731
36732         PR middle-end/43125
36733         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
36734
36735         PR objc/43061
36736         * cgraphunit.c (process_function_and_variable_attributes): Check
36737         DECL_PRESERVE_P instead of looking up attribute "used".
36738         * ipa-pure-const.c (check_decl): Likewise.
36739         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
36740         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
36741         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
36742         instead of attribute "used".
36743         * config/sol2-c.c (solaris_pragma_init): Likewise.
36744         (solaris_pragma_fini): Likewise.
36745
36746 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
36747
36748         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
36749         Use XCNEW instead of xcalloc.
36750         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
36751         XNEW instead of xmalloc.
36752         (get_fields): Use XNEWVEC instead of xmalloc.
36753
36754         PR debug/43084
36755         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
36756         populate vars array.
36757         (create_new_general_access): For debug stmts just reset value.
36758         (get_stmt_accesses): For accesses within debug stmts just record them
36759         using add_access_to_acc_sites instead of preventing the peeling or
36760         counting them as accesses.
36761
36762         PR middle-end/42233
36763         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
36764
36765 2010-02-19  Richard Guenther  <rguenther@suse.de>
36766
36767         PR tree-optimization/42916
36768         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
36769         instructions.
36770
36771 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
36772
36773         * configure.ac: Replace all uses of changequote in macro arguments
36774         with proper quoting.
36775
36776 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
36777
36778         PR middle-end/42233
36779         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
36780
36781 2010-02-19  Richard Guenther  <rguenther@suse.de>
36782
36783         PR tree-optimization/42944
36784         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
36785         test for aliasing with errno.
36786
36787 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
36788
36789         PR middle-end/42233
36790         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
36791         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
36792         * dojump.c: Include output.h.
36793         (inv): New inline function.
36794         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
36795         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
36796         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
36797         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
36798         argument, pass it down to other calls.
36799         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
36800         add REG_BR_PROB note to the conditional jump.
36801         * cfgexpand.c (add_reg_br_prob_note): Removed.
36802         (expand_gimple_cond): Don't call it, add the probability
36803         as last argument to jumpif_1/jumpifnot_1.
36804         * Makefile.in (dojump.o): Depend on output.h.
36805         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
36806         callers.
36807         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
36808         * stmt.c (do_jump_if_equal): Likewise.
36809         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
36810         * loop-unswitch.c (compare_and_jump_seq): Likewise.
36811         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
36812         Likewise.
36813         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
36814         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
36815         jumpifnot_1 callers.
36816         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
36817         callers.
36818         (store_expr): Adjust jumpifnot caller.
36819         (store_constructor): Adjust jumpif caller.
36820
36821         PR middle-end/42233
36822         * gimplify.c (gimple_boolify): For __builtin_expect call
36823         gimple_boolify also on its first argument.
36824
36825 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
36826
36827         * configure.ac (gnu-unique-object): Wrap regexps using [] in
36828         changequote block.
36829         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
36830         * configure: Regenerated.
36831
36832 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
36833
36834         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
36835         lang_hooks.types_compatible_p instead of comptypes.
36836
36837 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
36838
36839         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
36840         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
36841         if __prefer_thumb__ is defined.
36842
36843 2010-02-18  Martin Jambor  <mjambor@suse.cz>
36844
36845         PR tree-optimization/43066
36846         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
36847         array with zero-sized element type.
36848
36849 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
36850
36851         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
36852         rtx, allocate struct var_loc_node here and return it to the
36853         caller, and only if it is actually needed.
36854         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
36855         move it earlier and return immediately if it returns NULL.
36856
36857 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
36858
36859         * config/sparc/gas.h: New file.  Restore
36860         TARGET_ASM_NAMED_SECTION to its ELF default.
36861         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
36862         check !HAVE_GNU_AS.
36863         * config/sparc/sparc.c (sparc_elf_asm_named_section):
36864         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
36865         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
36866         after sparc/sysv4.h.
36867
36868 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
36869
36870         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
36871
36872 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
36873
36874         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
36875         patterns from predicated pattern.
36876
36877 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
36878
36879         PR target/43103
36880         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
36881         for insn mnemonic suffix.
36882
36883 2010-02-17  Richard Guenther  <rguenther@suse.de>
36884
36885         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
36886         to loop PHI nodes.
36887
36888 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
36889
36890         PR debug/42918
36891         * caller-save.c (save_call_clobbered_regs): If BB ends with
36892         a DEBUG_INSN, move any notes in between last real insn and the last
36893         DEBUG_INSN after the last DEBUG_INSN.
36894
36895 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
36896
36897         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
36898         Fix return type.  Fix argument type.  Explain meaning of return value.
36899
36900 2010-02-16  Richard Guenther  <rguenther@suse.de>
36901
36902         PR tree-optimization/41043
36903         * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
36904         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
36905         statements ...
36906         (vrp_visit_phi_node): ... but only for loop PHI nodes.
36907
36908 2010-02-16  Ira Rosen  <irar@il.ibm.com>
36909
36910         PR tree-optimization/43074
36911         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
36912         * tree-vect-loop.c (vect_analyze_loop_operations): Add
36913         vectorizable cycles in hybrid SLP check.
36914         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
36915
36916 2010-02-16  Richard Guenther  <rguenther@suse.de>
36917
36918         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
36919         (true_dependence): If memrefs_conflict_p computes must-alias
36920         trust it.  Move TBAA check after offset-based disambiguation.
36921         (canon_true_dependence): Likewise.
36922
36923 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
36924
36925         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
36926         * doc/invoke.texi: Document it.
36927         * var-tracking.c: Include toplev.h and params.h.
36928         (vt_find_locations): Return bool indicating success.  Compute
36929         hash sizes unconditionally.  Check new parameter, report.
36930         (variable_tracking_main_1): Check vt_find_locations results and
36931         retry.  Renamed from...
36932         (variable_tracking_main): ... this.  New wrapper to preserve
36933         flag_var_tracking_assignments.
36934         * Makefile.in (var-tracking.o): Adjust dependencies.
36935
36936 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
36937             Jakub Jelinek  <jakub@redhat.com>
36938
36939         PR target/42854
36940         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
36941         if weak_import attribute is present.
36942         * config/darwin.c (machopic_select_section): Likewise.
36943
36944 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
36945
36946         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
36947         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
36948         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
36949         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
36950
36951         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
36952         types.
36953
36954         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
36955         Fix argument types.
36956
36957         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
36958         Rewrite text to refer to the names.
36959
36960 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
36961
36962         * config/i386/i386-builtin-types.def
36963         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
36964         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
36965         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
36966         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
36967         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
36968         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
36969         IX86_BUILTIN_VPERMIL2PS256.
36970         (MULTI_ARG_4_DF2_DI_I): Defined.
36971         (MULTI_ARG_4_DF2_DI_I1): Defined.
36972         (MULTI_ARG_4_SF2_SI_I): Defined.
36973         (MULTI_ARG_4_SF2_SI_I1): Defined.
36974         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
36975         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
36976         __builtin_ia32_vpermil2ps256.
36977         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
36978         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
36979         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
36980         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
36981         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
36982         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
36983         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
36984         CODE_FOR_xop_vpermil2v8sf3.
36985         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
36986         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
36987         * config/i386/xopintrin.h (_mm_permute2_pd): New.
36988         (_mm256_permute2_pd): New.
36989         (_mm_permute2_ps): New.
36990         (_mm256_permute2_ps): New.
36991
36992 2010-02-15  Nick Clifton  <nickc@redhat.com>
36993
36994         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
36995         boolean parameters.  Use emit_jump_insn when emitting a pop
36996         instruction containing a return insn.
36997         (push): Use 'true' rather than '1' as second parameter to F.
36998         (h8300_expand_prologue): Likewise.
36999         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
37000         (h8300_expand_epilogue): Likewise.
37001
37002 2010-02-15  Richard Guenther  <rguenther@suse.de>
37003
37004         PR middle-end/43068
37005         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
37006         if that is zero.
37007
37008 2010-02-15  Nick Clifton  <nickc@redhat.com>
37009
37010         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
37011         delta.
37012
37013 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
37014
37015         * intl.c (fake_ngettext): New function.
37016         * intl.h (fake_ngettext): Declare.
37017         (ngettext): Define macro.
37018         * collect2.c (notice_translated): New function.
37019         (main): Use notice_translated and ngettext.
37020         * collect2.h (notice_translated): Declare.
37021
37022 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
37023
37024         * reorg.c (delete_computation): Comment fixes.
37025         * caller-save.c (setup_save_areas): Idem.
37026         * sel-sched-dump.c (dump_lv_set): Idem.
37027         * rtl.def: Idem.
37028
37029 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
37030
37031         * config/s390/s390.c (s390_sched_init): New function.
37032         (TARGET_SCHED_INIT): Target hook defined.
37033
37034 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
37035             Jack Howarth  <howarth@bromo.med.uc.edu>
37036             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
37037
37038         PR target/42982
37039         Partial revert of unintended change in fix for PR41605.
37040         * config/darwin.h: Fix typo.
37041         * config/darwin9.h: Same.
37042
37043 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
37044
37045         * c-pch.c (pch_init): Clear v.
37046
37047 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
37048
37049         PR middle-end/42930
37050         * graphite-scop-detection.c (graphite_can_represent_scev): Call
37051         graphite_can_represent_init for MULT_EXPR.
37052
37053 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
37054
37055         PR middle-end/42914
37056         PR middle-end/42530
37057         * graphite-sese-to-poly.c (remove_phi): New.
37058         (translate_scalar_reduction_to_array): Call remove_phi.
37059
37060 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
37061
37062         PR middle-end/42771
37063         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
37064         * graphite-clast-to-gimple.h (gloog): Update declaration.
37065         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
37066         * graphite-poly.h (struct poly_bb): Add missing comments.
37067         (struct scop): Add poly_scop_p field.
37068         (POLY_SCOP_P): New.
37069         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
37070         * graphite.c (graphite_transform_loops): Build the polyhedral
37071         representation for each scop before code generation.
37072         * sese.c (rename_variables_in_operand): Removed.
37073         (rename_variables_in_expr): Return the renamed expression.
37074         (rename_sese_parameters): New.
37075         * sese.h (rename_sese_parameters): Declared.
37076
37077 2010-02-11  Richard Guenther  <rguenther@suse.de>
37078
37079         PR tree-optimization/42998
37080         * tree-ssa-pre.c (create_expression_by_pieces): Treat
37081         POINTER_PLUS_EXPR properly.
37082
37083 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
37084             Changpeng Fang  <changpeng.fang@amd.com>
37085
37086         PR middle-end/40886
37087         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
37088         the cost of an IV candidate when the IV is used in a test against zero.
37089
37090         * gcc.dg/tree-ssa/ivopts-3.c: New.
37091
37092 2010-02-11  Richard Guenther  <rguenther@suse.de>
37093
37094         PR lto/41664
37095         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
37096         pointer-vs-decl case by swapping refs.  Handle some cases
37097         of pointer-vs-decl disambiguations more conservatively.
37098         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
37099         to false after expanding.
37100
37101 2010-02-11  Richard Guenther  <rguenther@suse.de>
37102
37103         PR driver/43021
37104         * gcc.c (process_command): Handle LTO file@offset case more
37105         appropriately.
37106
37107 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
37108
37109         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
37110         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
37111         of DEBUG_INSNs.
37112         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
37113
37114         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
37115         if MEM's mode size isn't DWARF2_ADDR_SIZE.
37116         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
37117         Optimize eq/ne comparisons when both arguments are known to be
37118         zero-extended.
37119         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
37120         Don't mask operands unnecessarily if they are known to be already
37121         zero-extended.
37122
37123 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
37124
37125         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
37126         instead of loop.
37127
37128 2010-02-10  Richard Guenther  <rguenther@suse.de>
37129
37130         PR tree-optimization/43017
37131         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
37132         for wrapping signed arithmetic.
37133
37134 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
37135
37136         PR debug/43010
37137         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
37138         if no debug info should be emitted for it.
37139
37140 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
37141
37142         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
37143         note when flag_exceptions is set.
37144
37145 2010-02-10  Duncan Sands  <baldrick@free.fr>
37146
37147         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
37148
37149 2010-02-10  Richard Guenther  <rguenther@suse.de>
37150
37151         PR c/43007
37152         * tree.c (get_unwidened): Handle constants.
37153         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
37154
37155 2010-02-10  Martin Jambor  <mjambor@suse.cz>
37156
37157         PR lto/42985
37158         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
37159         check for variable argument counts independently.
37160
37161 2010-02-10  Christian Bruel  <christian.bruel@st.com>
37162
37163         PR target/42841
37164         * config/sh/sh.c (find_barrier): Increase length for non delayed
37165         conditional branches.
37166
37167 2010-02-10  Christian Bruel  <christian.bruel@st.com>
37168
37169         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
37170
37171 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
37172
37173         * builtins.c (set_builtin_user_assembler_name): Also handle
37174         ffs if int is smaller than word.
37175
37176 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
37177
37178         PR middle-end/42973
37179         * ira-conflicts.c (get_dup): Remove.
37180         (process_reg_shuffles): Add new parameter.  Use it as an
37181         additional guard for copy generation.
37182         (add_insn_allocno_copies): Rewrite.
37183
37184 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
37185
37186         * common.opt (fsched2-use-traces): Preserved for backward
37187         compatibility.
37188         * doc/invoke.texi: Remove the documentation about option
37189         -fsched2-use-traces.
37190         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
37191         flag_sched2_use_traces.
37192         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
37193         the backward compatibility flag section.
37194
37195 2010-02-09  Richard Guenther  <rguenther@suse.de>
37196
37197         PR tree-optimization/43008
37198         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
37199         make HEAP variables initialized from global memory if they
37200         are not known builtin functions.
37201         (find_func_aliases): Adjust.
37202
37203 2010-02-09  Richard Guenther  <rguenther@suse.de>
37204
37205         PR tree-optimization/43000
37206         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
37207         arithmetic manually.
37208
37209 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
37210
37211         PR tree-optimization/42931
37212         * tree-loop-linear.c (try_interchange_loops): Don't call
37213         double_int_mul if estimated_loop_iterations failed.
37214
37215 2010-02-08  Martin Jambor  <mjambor@suse.cz>
37216
37217         PR middle-end/42898
37218         * tree-sra.c (build_accesses_from_assign): Do not mark in
37219         should_scalarize_away_bitmap if stmt has volatile ops.
37220         (sra_modify_assign): Do not process assigns piecemeal if if stmt
37221         has volatile ops.
37222
37223 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
37224
37225         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
37226
37227 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
37228
37229         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
37230         before the pattern.
37231
37232 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
37233
37234         PR middle-end/42946
37235         * df-core.c (df_finish_pass): Change type of saved_flags to int.
37236
37237 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
37238
37239         PR middle-end/42988
37240         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
37241         to unknown_dependence.
37242         (graphite_legal_transform_dr): Handle the unknown_dependence.
37243         (graphite_carried_dependence_level_k): Same.
37244
37245 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
37246
37247         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
37248
37249 2010-02-07  Richard Guenther  <rguenther@suse.de>
37250
37251         PR middle-end/42991
37252         * expr.c (get_inner_reference): Always initialize *pbitsize.
37253
37254 2010-02-07  Richard Guenther  <rguenther@suse.de>
37255
37256         PR middle-end/42956
37257         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
37258         new ARRAY_REFs on variable size element or minimal index arrays.
37259         Complete.
37260         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
37261         gimple_fold_indirect_ref.
37262
37263 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
37264
37265         PR target/42957
37266         * arm.c (arm_override_options): Just return if the user has specified
37267         an invalid fpu name.
37268
37269 2010-02-03  Jason Merrill  <jason@redhat.com>
37270
37271         PR c++/42870
37272         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
37273         i386_pe_maybe_record_exported_symbol.
37274
37275 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
37276
37277         PR target/42924
37278         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
37279         (pa_delegitimize_address): New function.
37280
37281 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
37282
37283         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
37284         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
37285
37286 2010-02-05  Richard Guenther  <rguenther@suse.de>
37287
37288         PR lto/42762
37289         * lto-streamer-in.c (get_resolution): Deal with references
37290         to undefined functions.
37291
37292 2010-02-05  Richard Guenther  <rguenther@suse.de>
37293
37294         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
37295         (fold_const_aggregate_ref): Likewise.
37296         (ccp_fold_stmt): Substitute loads.
37297         (maybe_fold_reference): Verify types before substituting.
37298         Unshare properly.
37299         (fold_gimple_assign): Unshare properly.
37300         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
37301
37302 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
37303
37304         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
37305         for rs6000_gen_cell_microcode.
37306
37307 2010-02-04  Richard Guenther  <rguenther@suse.de>
37308
37309         PR rtl-optimization/42952
37310         * dse.c (const_or_frame_p): Remove MEM handling.
37311
37312 2010-02-04  Nick Clifton  <nickc@redhat.com>
37313
37314         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
37315         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
37316         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
37317         (mn10300_asm_output_mi_thunk): New function.
37318         (mn10300_can_output_mu_thunk): New function.
37319         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
37320         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
37321         (FUNCTION_ARG): Delete incorrect comment.
37322
37323 2010-02-03  Jason Merrill  <jason@redhat.com>
37324
37325         PR c++/40138
37326         * fold-const.c (operand_equal_p): Handle erroneous types.
37327
37328 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
37329
37330         * config/h8300/h8300.md (can_delay): Fix attibute condition.
37331
37332 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
37333
37334         PR rtl-optimization/42941
37335         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
37336         of xmalloc.
37337
37338 2010-02-03  Jason Merrill  <jason@redhat.com>
37339
37340         PR c++/35652
37341         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
37342
37343 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
37344
37345         PR debug/42896
37346         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
37347         (cselib_reset_table): Renamed from...
37348         (cselib_reset_table_with_next_value): ... this.
37349         (cselib_get_next_uid): Renamed from...
37350         (cselib_get_next_unknown_value): ... this.
37351         * cselib.c (next_uid): Renamed from...
37352         (next_unknown_value): ... this.
37353         (cselib_clear_table): Adjust.
37354         (cselib_reset_table): Adjust.  Renamed from...
37355         (cselib_reset_table_with_next_value): ... this.
37356         (cselib_get_next_uid): Adjust.  Renamed from...
37357         (cselib_get_next_unknown_value): ... this.
37358         (get_value_hash): Use hash.
37359         (cselib_hash_rtx): Likewise.
37360         (new_cselib_val): Adjust.  Set and dump uid.
37361         (cselib_lookup_mem): Pass next_uid as hash.
37362         (cselib_subst_to_values): Likewise.
37363         (cselib_log_lookup): Dump uid.
37364         (cselib_lookup): Pass next_uid as hash.  Adjust.
37365         (cselib_process_insn): Adjust.
37366         (cselib_init): Initialize next_uid.
37367         (cselib_finish): Adjust.
37368         (dump_cselib_table): Likewise.
37369         * dse.c (canon_address): Dump value uid.
37370         * print-rtl.c (print_rtx): Print value uid.
37371         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
37372         (dvuid): New type.
37373         (dv_uid): New function, sort of renamed from...
37374         (dv_htab_hash): ... this, reimplemented in terms of it and...
37375         (dv_uid2hash): ... this.  New.
37376         (variable_htab_eq): Drop excess assertions.
37377         (tie_break_pointers): Removed.
37378         (canon_value_cmp): Compare uids.
37379         (variable_post_merge_New_vals): Print uids.
37380         (vt_add_function_parameters): Adjust.
37381         (vt_initialize): Reset table.  Adjust.
37382
37383 2010-02-03  Richard Guenther  <rguenther@suse.de>
37384
37385         PR tree-optimization/42944
37386         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
37387         (call_may_clobber_ref_p_1): Likewise.  Properly handle
37388         malloc and calloc clobbering errno.
37389
37390 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
37391
37392         * doc/invoke.texi: Fix name of sched1 dump.
37393
37394         * opts.c (decode_options): Set flag_tree_switch_conversion
37395         only conditionally on optimize >= 2.
37396
37397         * gcse.c: Assorted comment fixes in pass description.
37398
37399 2010-02-03  Anthony Green  <green@moxielogic.com>
37400
37401         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
37402         nop padding in order to maintain alignment of storage location of
37403         target function address.
37404         (moxie_trampoline_init): Store target function address at newly
37405         aligned location.
37406         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
37407         to 32.
37408         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
37409
37410 2010-02-03  Richard Guenther  <rguenther@suse.de>
37411
37412         PR middle-end/42927
37413         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
37414
37415 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37416
37417         * config.gcc: Reenable check for obsolete targets.
37418         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
37419         mips-sgi-irix6.[0-4]*.
37420
37421 2010-02-02  Nick Clifton  <nickc@redhat.com>
37422
37423         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
37424         constant size of 4 as being the same as 0.
37425         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
37426         can take values in the range 0..4.
37427
37428 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
37429
37430         PR java/41991
37431         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
37432         as _darwin10_Unwind_FindEnclosingFunction().
37433         * libgcc-libsystem.ver: New.
37434
37435 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
37436
37437         PR target/41399
37438         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
37439         implicitly set registers.
37440
37441 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
37442
37443         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
37444         (arm_override_options): Allow automatic selection of the thread
37445         pointer register if thumb2.
37446         (legitimize_pic_address): Improve code sequences for Thumb2.
37447         (arm_call_tls_get_addr): Likewise.
37448         (legitimize_tls_address): Likewise.
37449         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
37450         (pic_load_addr_32bit): ... this.  New named pattern.
37451         * thumb2.md (pic_load_addr_thumb2): Delete.
37452         (pic_load_dot_plus_four): Delete.
37453         (tls_load_dot_plus_four): New named pattern.
37454
37455 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37456
37457         PR libgomp/29986
37458         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
37459         Document fix for TLS bug.
37460
37461 2010-01-31  Richard Guenther  <rguenther@suse.de>
37462
37463         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
37464         conservatively correct.
37465
37466 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
37467
37468         PR target/42850
37469         Revert:
37470         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
37471
37472         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
37473
37474 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
37475
37476         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
37477
37478 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
37479
37480         * config.gcc: Adjust order of makefile fragments for mingw targets.
37481
37482 2010-01-31  Richard Guenther  <rguenther@suse.de>
37483
37484         PR middle-end/42898
37485         * gimplify.c (gimplify_init_constructor): For volatile LHS
37486         initialize a temporary.
37487
37488 2010-01-31  Matthias Klose  <doko@ubuntu.com>
37489
37490         * configure.ac: Fix __stack_chk_fail check for cross builds configured
37491         --with-headers
37492         * configure: Regenerate.
37493
37494 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
37495
37496         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
37497         the same alias set and their sizes different constantness.
37498         (aliasing_component_refs_p): Revert 2009-10-24 change.
37499
37500 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37501
37502         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
37503         unused.
37504
37505 2010-01-29  Richard Guenther  <rguenther@suse.de>
37506
37507         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
37508         Assert we successfully updated the call.
37509
37510 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
37511
37512         PR rtl-optimization/42889
37513         * df.h (df_set_bb_dirty_nonlr): New prototype.
37514         * df-core.c (df_set_bb_dirty_nonlr): New function.
37515         * df-scan.c (df_insn_rescan): Call it instead of
37516         df_set_bb_dirty for DEBUG_INSNs.
37517
37518 2010-01-29  Richard Guenther  <rguenther@suse.de>
37519
37520         PR middle-end/37448
37521         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
37522         quadratic behavior in most cases.
37523
37524 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
37525
37526         PR target/42891
37527         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
37528         in the call to gen_x86_movsicc_0_m1.
37529
37530 2010-01-28  Richard Guenther  <rguenther@suse.de>
37531
37532         PR tree-optimization/42871
37533         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
37534
37535 2010-01-28  Richard Guenther  <rguenther@suse.de>
37536
37537         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
37538         into call arguments.
37539
37540 2010-01-28  Richard Guenther  <rguenther@suse.de>
37541
37542         PR middle-end/42883
37543         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
37544         the forwarder if the destination is an EH landing pad.
37545
37546 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
37547
37548         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
37549         block list passed to gimple_duplicate_sese_tail.
37550         (parallelize_loops): Avoid parallelization when the function
37551         has_nonlocal_label.
37552         Avoid parallelization when the preheader is IRREDUCIBLE.
37553         Try to optimize when estimated_loop_iterations_int is unresolved.
37554         Add the loop's location to the dump file.
37555         * tree-cfg.c (add_phi_args_after_redirect): Remove.
37556         (gimple_duplicate_sese_tail): Remove the check for the latch.
37557         Redirect nexits to the exit block.
37558         Remove handling of the incoming edges to the latch.
37559         Redirect the backedge from the copied latch to the exit bb.
37560
37561 2010-01-28  Michael Matz  <matz@suse.de>
37562
37563         PR target/42881
37564         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
37565         Wrap force_reg into a sequence, emit it before user.
37566
37567 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
37568
37569         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
37570         (arm_rev): New.
37571         (arm_legacy_rev): Likewise.
37572         (thumb_legacy_rev): Likewise.
37573
37574 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
37575
37576         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
37577         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
37578         on MEM's address failed, try avoid_constant_pool_reference and
37579         recurse if it returned something different.
37580         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
37581         address, try avoid_constant_pool_reference and recurse if it
37582         returned something different.
37583         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
37584         address and avoid_constant_pool_reference returned something
37585         different, don't set have_address.
37586
37587 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
37588
37589         PR debug/42861
37590         * var-tracking.c (val_store): Add modified argument, obey it.
37591         Adjust callers.
37592         (count_uses): Move down logging of main.
37593         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
37594         don't need resolution.
37595         (emit_notes_in_bb): Likewise.
37596
37597 2010-01-27  Richard Guenther  <rguenther@suse.de>
37598
37599         PR middle-end/42878
37600         * tree-inline.c (remap_decl): Delay remapping of SSA name
37601         default definitions until we need them.
37602
37603 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
37604
37605         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
37606         (rs6000_delegitimize_address): New function.
37607
37608         * config/s390/s390.c (s390_delegitimize_address): Call
37609         delegitimize_mem_from_attrs.
37610
37611         PR middle-end/42874
37612         * tree-inline.c (cannot_copy_type_1): Removed.
37613         (copy_forbidden): Don't forbid copying of functions containing
37614         records/unions with variable length fields.
37615
37616 2010-01-27  Christian Bruel  <christian.bruel@st.com>
37617
37618         Revert:
37619         PR target/42841
37620         * config/sh/sh.c (find_barrier): Increase length for non delayed
37621         conditional branches.
37622
37623 2010-01-27  Matthias Klose  <doko@ubuntu.com>
37624
37625         * configure.ac (gnu-unique-object): Fix ldd version check.
37626         * configure: Regenerate.
37627
37628 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37629
37630         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
37631         HAVE_GNU_AS value.
37632         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
37633         Test for HAVE_GNU_AS value.
37634
37635 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37636
37637         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
37638         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
37639         INT64_TYPE): Define.
37640         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
37641         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
37642         INT_LEAST64_TYPE): Define.
37643         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
37644         UINT_LEAST64_TYPE): Define.
37645         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
37646         INT_FAST64_TYPE): Define.
37647         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
37648         UINT_FAST64_TYPE): Define.
37649         (INTMAX_TYPE, UINTMAX_TYPE): Define.
37650         (INTPTR_TYPE, UINTPTR_TYPE): Define.
37651         (SIG_ATOMIC_TYPE): Define.
37652
37653 2010-01-26  Richard Guenther  <rguenther@suse.de>
37654
37655         * df-scan.c (df_scan_set_bb_info): Remove assert.
37656         (df_insn_rescan_debug_internal): Merge asserts.
37657         (df_install_ref): Likewise.
37658         (df_mark_reg): Use bitmap_set_range.
37659         (df_hard_reg_used_p): Remove assert.
37660         (df_hard_reg_used_count): Likewise.
37661
37662 2010-01-26  Richard Guenther  <rguenther@suse.de>
37663
37664         PR rtl-optimization/42685
37665         * web.c (web_main): Ignore DEBUG_INSNs.
37666
37667 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
37668
37669         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
37670
37671         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
37672         Fix types of fndecl and arglist parameters.
37673
37674 2010-01-26  Richard Guenther  <rguenther@suse.de>
37675
37676         PR middle-end/42806
37677         * tree-eh.c (unsplit_eh): Skip debug insns.
37678
37679 2010-01-26  Richard Guenther  <rguenther@suse.de>
37680
37681         PR tree-optimization/42250
37682         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
37683
37684 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
37685
37686         PR fortran/42866
37687         * omp-low.c (expand_omp_sections): Only use single_pred if
37688         l2_bb is single_pred_p.
37689
37690 2010-01-25  Christian Bruel  <christian.bruel@st.com>
37691
37692         PR target/42841
37693         * config/sh/sh.c (find_barrier): Increase length for non delayed
37694         conditional branches.
37695         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
37696
37697 2010-01-24  David S. Miller  <davem@davemloft.net>
37698
37699         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
37700         define if not using GAS.
37701         * config/sparc/sparc.c (sparc_elf_asm_named_section):
37702         Likewise.  Delete SECTION_MERGE code, which is only applicable
37703         when using GAS.
37704
37705 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
37706
37707         PR c++/42748
37708         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
37709         mangling of va_list in system headers.
37710
37711 2010-01-23  Toon Moene  <toon@moene.org>
37712
37713         * tree-predcom.c (combine_chains): Return NULL, not false.
37714
37715 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
37716
37717         * tree-loop-distribution.c (distribute_loop): Fix declaration and
37718         initialization of variable res to agree with return type.
37719
37720 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
37721
37722         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
37723         * tree-sra.c: Add include of expr.h.
37724
37725 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
37726
37727         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
37728         insert the debug stmt on the single non-EH edge from the stmt.
37729
37730 2010-01-22  Richard Henderson  <rth@redhat.com>
37731
37732         PR tree-opt/42833
37733         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
37734         the RHS until after generate_subtree_copies has insertted its
37735         code before the current statement.
37736
37737 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
37738
37739         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
37740
37741         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
37742
37743 2010-01-21  Martin Jambor  <mjambor@suse.cz>
37744
37745         PR tree-optimization/42585
37746         * tree-sra.c (struct access): New field grp_total_scalarization.
37747         (dump_access): Dump the new field.
37748         (should_scalarize_away_bitmap): New variable.
37749         (cannot_scalarize_away_bitmap): Likewise.
37750         (sra_initialize): Allocate new bitmaps.
37751         (sra_deinitialize): Free new bitmaps.
37752         (create_access_1): New function.
37753         (create_access): Parts moved to create_access_1.
37754         (type_consists_of_records_p): New function.
37755         (completely_scalarize_record): Likewise.
37756         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
37757         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
37758         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
37759         access.
37760         (analyze_all_variable_accesses): Completely scalarize small eligible
37761         records.
37762
37763 2010-01-21  Martin Jambor  <mjambor@suse.cz>
37764
37765         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
37766
37767 2010-01-21  Andrew Haley  <aph@redhat.com>
37768
37769         * gcc.c (process_command): Move lang_specific_driver before
37770         setting cc_libexec_prefix.
37771
37772 2010-01-21  Richard Guenther  <rguenther@suse.de>
37773
37774         PR middle-end/19988
37775         * fold-const.c (negate_expr_p): Pretend only negative
37776         real constants are easily negatable.
37777
37778 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
37779             Jason Merrill  <jason@redhat.com>
37780
37781         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
37782         (TYPE_TRANSPARENT_AGGR): this, for union and record.
37783         * calls.c (initialize argument_information): Handle it.
37784         * c-common.c (handle_transparent_union_attribute): Use new name.
37785         * c-decl.c (finish_struct): Ditto.
37786         * c-typeck.c (type_lists_compatible_p): Ditto.
37787         (convert_for_assignment): Use new name and also handle record.
37788         * function.c (aggregate_value_p): Handle it.
37789         (pass_by_reference): Ditto.
37790         (assign_parm_data_types): Ditto.
37791         * print-tree.c (print_node): Ditto.
37792         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
37793         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
37794         * tree.c (first_field): New fn.
37795
37796 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
37797
37798         PR target/42818
37799         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
37800         even when linking statically, for now.
37801
37802 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
37803
37804         PR debug/42715
37805         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
37806         without a cselib val.
37807         (count_uses): Accept MO_VAL_SET with no val on stores.
37808         (add_stores): Likewise.
37809
37810 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
37811
37812         * var-tracking.c (check_value_val): Add a compile time assertion.
37813         (dv_is_decl_p): Simplify.
37814         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
37815         gcc_assert if ENABLE_CHECKING.
37816
37817 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
37818
37819         PR debug/42782
37820         * var-tracking.c: Include tree-flow.h.
37821         (mem_dies_at_call): New.
37822         (dataflow_set_preserve_mem_locs): Use it.
37823         (dataflow_set_remove_mem_locs): Likewise.
37824         (dump_var): Renamed from dump_variable.  Adjust all callers.
37825         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
37826         * Makefile.in (var-tracking.o): Adjust deps.
37827
37828 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
37829
37830         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
37831
37832 2010-01-20  Richard Guenther  <rguenther@suse.de>
37833
37834         PR tree-optimization/42717
37835         * tree-ssa-dce.c (get_live_post_dom): Remove.
37836         (forward_edge_to_pdom): Take an arbitrary edge to copy
37837         degenerate PHI args from.
37838         (remove_dead_stmt): Use the first post-dominator even if it
37839         does not contain live statements as redirection destination.
37840
37841 2010-01-20  Richard Guenther  <rguenther@suse.de>
37842
37843         * tree-inline.c (estimate_num_insns): Handle EH builtins.
37844
37845 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
37846
37847         * sel-sched.c (create_speculation_check): Remove set but not used
37848         variable twin.
37849         (try_transformation_cache): Remove set but not used variable ds.
37850         (calculate_privileged_insns): Remove set but not used variables
37851         cur_insn and min_spec_insn.
37852         (find_best_expr): Remove set but not used variable avail_n.
37853         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
37854         variable e.
37855         * cgraphunit.c (assemble_thunk): Remove set but not used variable
37856         false_label.
37857         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
37858         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
37859         new_scop_exit_edge.
37860
37861 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
37862
37863         PR bootstrap/42786
37864         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
37865         cpu types.  Add support for *-sse3 cpu types.
37866         (x86_64-*-*): Ditto.
37867
37868 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
37869
37870         PR middle-end/42803
37871         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
37872         argument, call initializer_constant_valid_p_1 instead of
37873         initializer_constant_valid_p, pass CACHE to it, return NULL
37874         immediately if first call returns NULL.
37875         (initializer_constant_valid_p_1): New function.
37876         (initializer_constant_valid_p): Use it.
37877
37878 2010-01-20  Thomas Quinot  <quinot@adacore.com>
37879
37880         * tree.def (PLACEHOLDER_EXPR): Fix comment.
37881
37882 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
37883
37884         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
37885         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
37886         (loc_list_from_tree): Don't handle unsigned division.  Handle
37887         signed modulo using DW_OP_{over,over,div,mul,minus}.
37888         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
37889         modulo instead of signed.
37890
37891 2010-01-20  DJ Delorie  <dj@redhat.com>
37892
37893         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
37894         (Fpa): Pass it
37895         (h8300_emit_stack_adjustment): Propogate it.
37896         (push): Pass it.
37897         (h8300_expand_prologue): Likewise.
37898         (h8300_expand_epilogue): Likewise.
37899
37900 2010-01-19  Michael Matz  <matz@suse.de>
37901
37902         PR tree-optimization/41783
37903         * tree-data-ref.c (toplevel): Include flags.h.
37904         (dump_data_dependence_relation):  Also dump the inputs if the
37905         result will be unknown.
37906         (split_constant_offset_1): Look through some conversions.
37907         * tree-predcom.c (determine_roots_comp): Restart a new chain if
37908         the offset from last element is too large.
37909         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
37910         (reassociate_to_the_same_stmt): Handle vector registers.
37911         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
37912         (e.g. conversions).
37913         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
37914         wide_prolog_niters argument, emit widening instructions.
37915         (vect_do_peeling_for_alignment): Adjust caller, use widened
37916         variant of the iteration cound.
37917         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
37918
37919 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
37920
37921         PR target/38697
37922         * config/arm/neon-testgen.m (emit_automatics): New parameter
37923         features. Adjust for Fixed_return_reg feature.
37924         (test_intrinsic): Call emit_automatics with new feature.
37925         * config/arm/neon.ml: Update copyright years.
37926         (features): New Fixed_return_reg feature.
37927         (ops): Update feature for Vget_low.
37928
37929 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
37930
37931         PR tree-optimization/42719
37932         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
37933         stmt uses.
37934
37935         PR debug/42728
37936         * fwprop.c (all_uses_available_at): Return false if def_set dest
37937         is a REG that is used in def_insn.
37938
37939 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
37940
37941         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
37942
37943         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
37944         Add argument names.
37945
37946         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
37947
37948         * target.h (struct gcc_target) <secondary_reload>: Change type
37949         of last argument to secondary_reload_info *.
37950
37951 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
37952
37953         PR target/42774
37954         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
37955         memory references with unaligned offsets.  Remove CQImode handling.
37956         (unaligned_memory_operand): Return 1 for memory references with
37957         unaligned offsets.  Remove CQImode handling.
37958
37959 2010-01-18  Richard Guenther  <rguenther@suse.de>
37960
37961         PR middle-end/39954
37962         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
37963         builtin calls.
37964
37965 2010-01-18  Richard Guenther  <rguenther@suse.de>
37966
37967         PR tree-optimization/42781
37968         * tree-ssa-structalias.c (find_what_var_points_to): Skip
37969         restrict processing only if the original variable was artificial.
37970
37971 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
37972
37973         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
37974         find number of popped argument bytes.
37975
37976         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
37977         Fix the text that describes the return value for invalid insns.
37978
37979         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
37980
37981         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
37982         Clarify what 'cost of the -dependence' is.  Fix quoting.
37983
37984         * toplev.c (default_get_pch_validity): Rename argument to "sz".
37985         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
37986
37987 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
37988
37989         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
37990         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
37991
37992 2010-01-17  Richard Guenther  <rguenther@suse.de>
37993
37994         PR middle-end/42248
37995         * function.c (split_complex_args): Take a VEC to modify.
37996         (assign_parms_augmented_arg_list): Build a VEC instead of
37997         a chain of PARM_DECLs.
37998         (assign_parms_unsplit_complex): Take a VEC of arguments.
37999         Do not fixup unmodified parms.
38000         (assign_parms): Deal with the VEC.
38001         (gimplify_parameters): Likewise.
38002
38003 2010-01-17  Richard Guenther  <rguenther@suse.de>
38004
38005         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
38006         node existence check.
38007         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
38008         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
38009         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
38010         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
38011         (gimple_execute_on_growing_pred): Likewise.
38012
38013 2010-01-17  Richard Guenther  <rguenther@suse.de>
38014
38015         PR tree-optimization/42773
38016         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
38017         (compute_antic_aux): Likewise.
38018         (compute_partial_antic_aux): Likewise.
38019
38020 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
38021
38022         PR debug/42767
38023         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
38024         and US_TRUNCATE.
38025
38026 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
38027
38028         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
38029         appearance.
38030
38031         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
38032         Fix markup for strict argument.
38033
38034         (TARGET_SCHED_REORDER2): Fix argument types.
38035
38036         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
38037         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
38038
38039         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
38040         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
38041
38042         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
38043         Add argument name.
38044
38045         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
38046         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
38047         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
38048         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
38049         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
38050
38051         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
38052
38053         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
38054
38055         (TARGET_ASM_RELOC_RW_MASK): Add return type.
38056         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
38057
38058         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
38059
38060         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
38061         Use prototype.
38062
38063         (TARGET_ASM_NAMED_SECTION): Fix argument list.
38064
38065         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
38066         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
38067
38068         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
38069
38070         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
38071
38072         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
38073         referring to it.  Fix language.
38074
38075         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
38076
38077         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
38078
38079         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
38080
38081         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
38082
38083         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
38084         '@var{stream}.  Remove stray 'and'.
38085
38086         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
38087
38088         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
38089
38090         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
38091
38092         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
38093         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
38094
38095         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
38096         Fix description of return value.
38097         Rename argument "sz" to "len."
38098
38099         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
38100         Clarify meaning of 'true' return value.
38101
38102         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
38103
38104         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
38105         rep_mode versus mode_rep.
38106
38107         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
38108
38109         (TARGET_BUILTIN_DECL): Fix name.
38110
38111         (TARGET_COMMUTATIVE_P): Fix type of first argument.
38112
38113         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
38114
38115         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
38116
38117         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
38118
38119         (TARGET_RELAXED_ORDERING): Use @deftypevr.
38120
38121         (TARGET_GET_DRAP_RTX): Note that this is a hook.
38122         Clarify language.
38123
38124         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
38125         Rename argument tm_fn to md_fn.
38126
38127         (TARGET_OPTION_PRINT): Fix argument list.
38128
38129 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
38130
38131         PR target/42664
38132         * config/i386/i386.c (ix86_fixup_binary_operands):
38133         Revert FMA4 fixup of operands.
38134
38135 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
38136
38137         PR other/42525
38138         * Makefile.in (write_entries_to_file, install-plugin):
38139         Use \012 instead of \n with tr.
38140
38141 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
38142
38143         * configure.ac (HAVE_AS_REF): New C macro.
38144         * configure: Regenerate.
38145         * config.in: Likewise.
38146         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
38147         if HAVE_AS_REF.
38148         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
38149         if HAVE_AS_REF.
38150
38151 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
38152
38153         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
38154
38155         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
38156
38157         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
38158
38159         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
38160
38161         (TARGET_IN_SMALL_DATA_P): Fix argument type.
38162
38163         (TARGET_BINDS_LOCAL_P): Fix argument type.
38164
38165         (TARGET_ASM_FILE_END): Use prototype.
38166
38167         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
38168
38169         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
38170
38171         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
38172
38173         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
38174
38175         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
38176         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
38177
38178         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
38179         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
38180
38181         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
38182         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
38183         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
38184         (TARGET_ADDR_SPACE_CONVERT): Likewise.
38185
38186         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
38187
38188         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
38189
38190         (TARGET_INIT_BUILTINS): Use prototype.
38191
38192         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
38193         Put 'const char *' in braces.  Fix parameter types.
38194         (TARGET_INVALID_CONVERSION): Fix parameter types.
38195         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
38196         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
38197
38198         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
38199         Fix argument type.
38200
38201         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
38202
38203         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
38204
38205 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
38206
38207         * doc/tm.texi (TARGET_HELP): Fix return type.
38208
38209         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
38210         in braces.  Fix argument types.
38211
38212         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
38213
38214         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
38215
38216         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
38217
38218         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
38219         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
38220
38221         (TARGET_MANGLE_TYPE): Fix argument types.
38222
38223         (TARGET_IRA_COVER_CLASSES): Use prototype.
38224
38225         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
38226
38227         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
38228
38229         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
38230
38231         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
38232
38233         (TARGET_CALLEE_COPIES): Fix argument types.
38234
38235         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
38236
38237         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
38238
38239         (TARGET_FUNCTION_VALUE): Fix argument types.
38240
38241         (TARGET_RETURN_IN_MSB): Fix argument type.
38242
38243         (TARGET_RETURN_IN_MEMORY): Fix argument types.
38244
38245         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
38246
38247         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
38248
38249         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
38250         agree with return type.
38251
38252         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
38253
38254 2010-01-15  Jing Yu  <jingyu@google.com>
38255
38256         PR rtl-optimization/42691
38257         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
38258         a pseudo to a constant and are merged, and adjust comments.
38259
38260 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
38261
38262         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
38263
38264 2010-01-15  Richard Guenther  <rguenther@suse.de>
38265
38266         PR middle-end/42739
38267         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
38268         labels of computed or non-local gotos to the destination.
38269         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
38270         landing pad label is the first label.
38271
38272 2010-01-15  Richard Guenther  <rguenther@suse.de>
38273
38274         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
38275
38276 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
38277
38278         PR target/42747
38279         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
38280         to allow generation of the xssqrtdp instruction on power7.
38281         (sqrtdf2_fpr): Ditto.
38282
38283 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
38284
38285         PR middle-end/42674
38286         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
38287         functions with noreturn attribute.
38288
38289         PR c++/42608
38290         * varasm.c (declare_weak): Add weak attribute to decl if it
38291         doesn't have one already.
38292         (assemble_external): Only add decls to weak_decls if they also
38293         have weak attribute.
38294
38295 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
38296
38297         * var-tracking.c (var_reg_delete): Don't delete the association
38298         between REGs and values or one-part variables if the register
38299         isn't clobbered.
38300
38301 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
38302
38303         PR debug/42657
38304         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
38305         because its first operand is a non-localized variable.
38306
38307 2010-01-14  Martin Jambor  <mjambor@suse.cz>
38308
38309         PR tree-optimization/42706
38310         * tree-sra.c (encountered_recursive_call): New variable.
38311         (encountered_unchangable_recursive_call): Likewise.
38312         (sra_initialize): Initialize both new variables.
38313         (callsite_has_enough_arguments_p): New function.
38314         (scan_function): Call decl and flags check only for IPA-SRA, check
38315         whether there is a recursive call and whether it has enough arguments.
38316         (all_callers_have_enough_arguments_p): New function.
38317         (convert_callers): Look for recursive calls only when
38318         encountered_recursive_call is set.
38319         (ipa_early_sra): Bail out either if
38320         !all_callers_have_enough_arguments_p or
38321         encountered_unchangable_recursive_call.
38322
38323 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
38324
38325         * sel-sched.c: Add 2010 to copyright years.
38326         * sel-sched-ir.c: Likewise.
38327         * sel-sched-ir.h: Likewise.
38328
38329 2010-01-14  Martin Jambor  <mjambor@suse.cz>
38330
38331         PR tree-optimization/42714
38332         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
38333         constructors specially.
38334
38335 2010-01-14  Andi Kleen  <ak@linux.intel.com>
38336
38337         * config/i386/drivers-i386.c (detect_caches_intel):
38338         Add l2sizekb parameter and fill in.
38339         (host_detect_local_cpu): Add l2sizekb, fill in.
38340         Add Atom small cache heuristic.
38341
38342 2010-01-14  Andi Kleen  <ak@linux.intel.com>
38343
38344         * config/i386/drivers-i386.c (detect_caches_cpuid4):
38345         Add level3 parameter and fill in.
38346         (detect_caches_intel): Handle level3 cache.
38347
38348 2010-01-14  Andi Kleen  <ak@linux.intel.com>
38349
38350         * config/i386/drivers-i386.c (host_detect_local_cpu):
38351         Fix core duo detection.
38352
38353 2010-01-14  Andi Kleen  <ak@linux.intel.com>
38354
38355         * config/i386/drivers-i386.c (host_detect_local_cpu):
38356         Fix Atom detection.
38357
38358 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
38359
38360         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
38361         (rs6000_variable_issue_1): this.  Use...
38362         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
38363
38364 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
38365
38366         * sel-sched-ir.c (sel_restore_other_notes): Rename to
38367         sel_restore_notes.  Update all callers.  Call reemit_notes
38368         for all insns.
38369
38370 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
38371
38372         PR rtl-optimization/42246
38373         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
38374         loops.
38375
38376 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
38377
38378         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
38379         all successors is the same as number of successors in current region.
38380
38381 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
38382
38383         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
38384         to rename is not separable.  Otherwise check that its LHS is not NULL.
38385
38386 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
38387
38388         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
38389
38390 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
38391
38392         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
38393         available registers when failed to discover LHS register class.
38394         Fix indentation.  Update comment.
38395
38396 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
38397             Alexander Monakov  <amonakov@ispras.ru>
38398
38399         PR rtl-optimization/42389
38400         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
38401         to can_issue_more.
38402         (advance_state_on_fence): Likewise.
38403         (sel_target_adjust_priority): Print debug output only when
38404         sched_verbose >= 4, not 2.
38405         (get_expr_cost): Do not issue all unique insns on the next cycle.
38406         (fill_insns): Initialize can_issue_more from the value saved
38407         with the fence.
38408         * sel-sched-ir.c (flist_add): New parameter issue_more.
38409         Init FENCE_ISSUE_MORE with it.
38410         (merge_fences): Likewise.
38411         (init_fences): Update call to flist_add.
38412         (add_to_fences, add_clean_fence_to_fences)
38413         (add_dirty_fence_to_fences): Likewise.
38414         (move_fence_to_fences): Update call to merge_fences.
38415         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
38416         sched groups.
38417         * sel-sched-ir.h (struct _fence): New field issue_more.
38418         (FENCE_ISSUE_MORE): New accessor macro.
38419
38420 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
38421
38422         PR rtl-optimization/42388
38423         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
38424         that have no predecessors nor successors.  Do not call move_bb_info
38425         for empty blocks outside of current region.
38426
38427 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
38428
38429         PR rtl-optimization/42294
38430         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
38431         * sel-sched.c (move_exprs_to_boundary): Transitively add all
38432         originators' originators.
38433
38434 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
38435
38436         PR rtl-optimization/39453
38437         PR rtl-optimization/42246
38438         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
38439         for pipelining_p.
38440         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
38441
38442 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
38443             Alexander Monakov  <amonakov@ispras.ru>
38444
38445         PR middle-end/42245
38446         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
38447         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
38448         argument.  Update all callers.
38449         (tidy_control_flow): ... and here.  Recompute topological order
38450         of basic blocks in region if necessary.
38451         (sel_redirect_edge_and_branch): Change return type.  Return true
38452         if topological order might have been invalidated.
38453         (purge_empty_blocks): Export and move from...
38454         * sel-sched.c (purge_empty_blocks): ... here.
38455         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
38456         (maybe_tidy_empty_bb): Delete prototype.
38457         (purge_empty_blocks): Declare.
38458
38459 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
38460
38461         PR rtl-optimization/42249
38462         * sel-sched.c (try_replace_dest_reg): When chosen register
38463         and original register is the same, do not bail out early, but
38464         still check all original insns for validity of replacing destination
38465         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
38466         in this case.
38467
38468 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
38469
38470         PR c/42721
38471         Port from no-undefined-overflow branch:
38472         2009-03-09  Richard Guenther  <rguenther@suse.de>
38473
38474         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
38475
38476 2010-01-14  Richard Guenther  <rguenther@suse.de>
38477
38478         PR lto/42665
38479         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
38480
38481 2010-01-14  Ira Rosen  <irar@il.ibm.com>
38482
38483         PR tree-optimization/42709
38484         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
38485         as scalar type in creation of constant vector operand.
38486
38487 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
38488
38489         PR testsuite/42414
38490         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
38491         (check-parallel-%): Match `testsuite' directory component only
38492         at the end.
38493
38494 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
38495
38496         PR translation/39521
38497         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
38498         strings with _().
38499
38500 2010-01-13  Richard Guenther  <rguenther@suse.de>
38501
38502         PR tree-optimization/42730
38503         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
38504         offset zero.
38505
38506 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
38507
38508         PR target/pr42542
38509         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
38510         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
38511         them signed.
38512
38513 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
38514
38515         * config/bfin/libgcc-bfin.ver: Regenerate based on current
38516         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
38517         ___umulsi3_highpart.
38518
38519         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
38520         rather than schedule_insns if the pass is enabled.
38521
38522 2010-01-13  Martin Jambor  <mjambor@suse.cz>
38523
38524         PR tree-optimization/42704
38525         * tree-sra.c (sra_modify_assign): Do not delete assignments to
38526         SSA_NAMEs.
38527
38528 2010-01-13  Martin Jambor  <mjambor@suse.cz>
38529
38530         PR tree-optimization/42703
38531         * tree-sra.c (analyze_access_subtree): Check that we can build a
38532         reference to the original data within the aggregate.
38533
38534 2010-01-13  Richard Guenther  <rguenther@suse.de>
38535
38536         PR tree-optimization/42705
38537         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
38538
38539 2010-01-13  Richard Guenther  <rguenther@suse.de>
38540
38541         PR middle-end/42716
38542         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
38543
38544 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
38545
38546         PR debug/41371
38547         * var-tracking.c (values_to_unmark): New variable.
38548         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
38549         values_to_unmark vector.  Moved body to...
38550         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
38551         instead queue it into values_to_unmark vector.
38552         (vt_find_locations): Free values_to_unmark vector.
38553
38554 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
38555
38556         * config/s390/s390.c (override_options): Set
38557         default of max-pending-list-length to 256
38558
38559 2010-01-13  Richard Guenther  <rguenther@suse.de>
38560
38561         PR lto/42678
38562         * tree-pass.h (PROP_gimple_lcx): New.
38563         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
38564         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
38565         before the final cleanup_eh.
38566         (dump_properties): Dump PROP_gimple_lcx.
38567         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
38568         (tree_lower_complex_O0): Remove.
38569         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
38570         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
38571         tree_lower_complex, schedule TODO_update_ssa.
38572         * lto-streamer-out.c (output_function): Stream the functions
38573         properties.
38574         * lto-streamer-in.c (input_function): Likewise.
38575         (lto_read_body): Do not override them here.
38576
38577 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
38578
38579         PR c/42708
38580         * c-typeck.c (build_c_cast): Fold value cast to union type before
38581         wrapping it in a CONSTRUCTOR.
38582
38583 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
38584
38585         PR rtl-optimization/42699
38586         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
38587         involved.
38588
38589 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38590
38591         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
38592         SUBTARGET_WARN_UNUSED_SPEC): Move ...
38593         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
38594         SUBTARGET_WARN_UNUSED_SPEC): ... here
38595         * config/mips/iris5.h (LIBGCC_SPEC): Define.
38596
38597 2010-01-12  Julian Brown  <julian@codesourcery.com>
38598
38599         * config/arm/neon-schedgen.ml (Utils): Don't try to
38600         open missing module.
38601         (find_with_result): New.
38602
38603 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
38604
38605         PR debug/42662
38606         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
38607         sharing when canonicalizing ({lt,ge}u (plus a b) b).
38608
38609         PR tree-optimization/42645
38610         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
38611         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
38612         decl_map, set processing_debug_stmt to -1 and return name without
38613         any remapping.
38614
38615 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
38616
38617         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
38618         binutils version, and reword target configuration description.
38619
38620 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
38621
38622         * config/avr/avr.h (LINKER_NAME): Remove.
38623
38624 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
38625
38626         PR target/42416
38627         * config/rs6000/rs6000.c (rs6000_override_options): On targets
38628         that support VSX, warn for -mno-altivec if vsx is not disabled,
38629         and disable vsx.
38630
38631 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
38632             Shujing Zhao  <pearly.zhao@oracle.com>
38633
38634         PR translation/42469
38635         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
38636         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
38637         character between option name and help text.
38638         * c.opt (imultilib): Likewise.
38639
38640 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
38641
38642         * lto-streamer-out.c (output_unreferenced_globals): Output static
38643         variables.
38644
38645 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
38646
38647         PR rtl-optimization/42621
38648         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
38649         optimizing for size.
38650         (duplicate_computed_gotos): Remove now-redundant check.
38651
38652 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
38653
38654         PR target/37454
38655         * configure.ac: Save and restore LDFLAGS and LIBS
38656         * configure: Regenerate.
38657
38658 2010-01-10  Richard Guenther  <rguenther@suse.de>
38659
38660         PR middle-end/42667
38661         * builtins.c (fold_builtin_strlen): Add type argument and
38662         convert the resulting length to it.
38663         (fold_builtin_1): Adjust.
38664
38665 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
38666
38667         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
38668         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
38669         1 insn.
38670         (num_insns_constant_wide): Adjust for that change.
38671
38672 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38673
38674         PR debug/42631
38675         * web.c (union_defs): Add used argument, to combine uses of
38676         uninitialized regs.
38677         (entry_register): Adjust type and tests of used argument.
38678         (web_main): Widen used for new use.  Pass it to union_defs.
38679         * df.h (union_defs): Adjust prototype.
38680
38681 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38682
38683         PR debug/42630
38684         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
38685         uses in new incoming argument.  Free body.
38686         (reset_debug_uses_in_loop): New.
38687         (analyze_insn_to_expand_var): Call the latter if the former found
38688         anything.  Fix whitespace.  Reject invalid dest overlaps before
38689         going through all insns in the loop.
38690
38691 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38692
38693         PR debug/42629
38694         * haifa-sched.c (dying_use_p): Debug insns don't count.
38695
38696 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38697
38698         PR middle-end/42363
38699         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
38700         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
38701         (verify_gimple_call): Reject LHS in noreturn calls.
38702
38703 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38704
38705         PR debug/42604
38706         PR debug/42395
38707         * tree-vect-loop-manip.c (adjust_info): New type.
38708         (adjust_vec): New pointer to vector.
38709         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
38710         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
38711         (slpeel_update_phis_for_duplicate_loop): Use them.
38712         (slpeel_update_phi_nodes_for_guard1): Likewise.
38713         (slpeel_update_phi_nodes_for_guard2): Likewise.
38714         (slpeel_tree_peel_loop_to_edge): Likewise.
38715         (vect_update_ivs_after_vectorizer): Likewise.
38716
38717 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38718
38719         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
38720         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
38721
38722 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
38723
38724         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
38725         bogus uninitialized warning.
38726
38727 2010-01-09  Richard Guenther  <rguenther@suse.de>
38728
38729         PR middle-end/42512
38730         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
38731         the evolution is compatible with the initial condition.
38732
38733 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
38734
38735         * gcc.c (process_command): Update copyright notice dates.
38736         * gcov.c (print_version): Likewise.
38737         * gcov-dump.c (print_version): Likewise.
38738         * mips-tfile.c (main): Likewise.
38739         * mips-tdump.c (main): Likewise.
38740
38741 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
38742
38743         PR target/41885
38744         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
38745         (rotlhi3): Delete.
38746         (rotlhi3_8): Delete.
38747         (rotlsi3): Delete.
38748         (rotlsi3_8): Delete.
38749         (rotlsi3_16): Delete.
38750         (rotlsi3_24): Delete.
38751         (rotl<mode>3): New.
38752         (*rotw<mode>3): New.
38753         (*rotb<mode>3): New.
38754         * config/avr/avr.c (avr_rotate_bytes): New function.
38755         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
38756
38757 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
38758
38759         PR target/37454
38760         * configure.ac: Modify -rdynamic check.
38761         * configure: Regenerate.
38762
38763 2010-01-08  DJ Delorie  <dj@redhat.com>
38764
38765         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
38766         register popping order.
38767
38768 2010-01-08  Richard Guenther  <rguenther@suse.de>
38769
38770         PR lto/42528
38771         * c.opt (fsigned-char): Also let LTO handle this option.
38772         (funsigned-char): Likewise.
38773
38774 2010-01-07  Richard Guenther  <rguenther@suse.de>
38775
38776         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
38777         (gimple_op): Likewise.
38778         (gimple_op_ptr): Likewise.
38779         (gimple_assign_set_lhs): Remove gcc_assert.
38780         (gimple_assign_set_rhs1): Likewise.
38781         (gimple_assign_set_rhs2): Likewise.
38782         (gimple_call_set_lhs): Likewise.
38783         (gimple_call_set_fn): Likewise.
38784         (gimple_call_set_fndecl): Likewise.
38785         (gimple_call_fndecl): Likewise.
38786         (gimple_call_return_type): Likewise.
38787         (gimple_call_set_chain): Likewise.
38788         (gimple_call_num_args): Likewise.
38789         (gimple_call_set_arg): Likewise.
38790         (gimple_cond_set_code): Likewise.
38791         (gimple_cond_set_lhs): Likewise.
38792         (gimple_cond_set_rhs): Likewise.
38793         (gimple_cond_set_true_label): Likewise.
38794         (gimple_cond_set_false_label): Likewise.
38795         (gimple_label_set_label): Likewise.
38796         (gimple_goto_set_dest): Likewise.
38797         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
38798         (gimple_debug_bind_get_value): Likewise.
38799         (gimple_debug_bind_get_value_ptr): Likewise.
38800         (gimple_debug_bind_set_var): Likewise.
38801         (gimple_debug_bind_set_value): Likewise.
38802         (gimple_debug_bind_reset_value): Likewise.
38803         (gimple_debug_bind_has_value_p): Likewise.
38804         (gimple_return_retval_ptr): Remove gcc_assert.
38805         (gimple_return_retval): Likewise.
38806         (gimple_return_set_retval): Likewise.
38807         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
38808         (safe_referenced_var_iterator): Remove.
38809         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
38810         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
38811         (fill_referenced_var_vec): Remove.
38812         (first_readonly_imm_use): Remove redundant gcc_assert.
38813         (phi_arg_index_from_use): Combine gcc_asserts.
38814         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
38815         (first_imm_use_stmt): Remove redundant gcc_assert.
38816         * tree-cfg.c (verify_gimple_call): Verify function and chain
38817         operands.  Verify arguments.
38818         (verify_types_in_gimple_stmt): Verify condition code and labels.
38819
38820 2010-01-07  Richard Guenther  <rguenther@suse.de>
38821
38822         PR tree-optimization/42641
38823         * sese.c (rename_map_elt_info): Use the SSA name version, do
38824         not hash pointers.
38825
38826 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
38827
38828         PR tree-optimization/42625
38829         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
38830         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
38831
38832 2010-01-07  Duncan Sands  <baldrick@free.fr>
38833
38834         * Makefile.in (PLUGIN_HEADERS): Add version.h.
38835
38836 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
38837
38838         PR target/42511
38839         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
38840         note itself is not function_invariant_p.
38841
38842 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
38843
38844         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
38845         Do not add the DF_NOTE problem.
38846         * store-motion.c (execute_rtl_store_motion): Likewise.
38847
38848 2010-01-07  Martin Jambor  <mjambor@suse.cz>
38849
38850         PR tree-optimization/42157
38851         * tree-sra.c (compare_access_positions): Stabilize sort if both
38852         accesses have integer types, return zero immediately if they are the
38853         same.
38854
38855 2010-01-06  Richard Henderson  <rth@redhat.com>
38856
38857         PR middle-end/41883
38858         * haifa-sched.c (add_to_note_list): Merge into ...
38859         (concat_note_lists): ... here, and ...
38860         (unlink_other_notes, rm_other_notes): Merge into...
38861         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
38862         NOTE_INSN_EPILOGUE_BEG.
38863
38864 2010-01-06  Richard Guenther  <rguenther@suse.de>
38865
38866         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
38867         not inline regular functions into always-inline functions.
38868
38869 2010-01-06  Nick Clifton  <nickc@redhat.com>
38870
38871         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
38872         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
38873         used together.
38874         (OVERRIDE_OPTIONS): Delete.
38875         (OPTIMIZATION_OPTIONS): Define.
38876         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
38877         * config/rx/rx.c (rx_handle_option): Issue an error message if
38878         -mcpu=rx200 and -fpu are used together.
38879         (rx_set_optimization_options): New function.  Issue an error
38880         message if an optimization attribute attempts to reset the FPU/
38881         math optimization pairing.
38882         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
38883         * config/rx/rx.opt: Set the default to 32-bit doubles.
38884         * config/rx/t-rx: Add multilibs for -nofpu option.
38885         * doc/invoke.texi: Update documentation of RX options.
38886
38887 2010-01-06  Richard Guenther  <rguenther@suse.de>
38888
38889         * tree-ssa-pre.c (name_to_id): New global.
38890         (alloc_expression_id): Simplify SSA name handling.
38891         (lookup_expression_id): Likewise.
38892         (init_pre): Zero name_to_id.
38893         (fini_pre): Free it.
38894
38895 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
38896
38897         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
38898
38899 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
38900
38901         PR target/42542
38902         * config/i386/sse.md (smaxv2di3): New.
38903         (umaxv2di3): Likewise.
38904         (sminv2di3): Likewise.
38905         (uminv2di3): Likewise.
38906
38907 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
38908
38909         PR target/42564
38910         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
38911         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
38912         (legitimize_tls_address): Likewise.
38913         (sparc_tls_referenced_p): Likewise.
38914         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
38915         and adjust calls to legitimize_pic_address.
38916         (legitimate_constant_p) Use sparc_tls_referenced_p.
38917         (legitimate_pic_operand_p): Likewise.
38918         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
38919         (sparc_tls_symbol_ref_1): Delete.
38920         (sparc_tls_referenced_p): Make static, recognize specific patterns.
38921         (legitimize_tls_address): Make static, handle CONST patterns.
38922         (legitimize_pic_address): Make static, remove unused parameter and
38923         adjust recursive calls.
38924         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
38925         and adjust call to legitimize_pic_address.
38926         (sparc_output_mi_thunk): Likewise.
38927
38928 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
38929             H.J. Lu  <hongjiu.lu@intel.com>
38930
38931         PR target/42542
38932         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
38933         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
38934         operands to make them signed.
38935
38936         Revert:
38937         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
38938
38939         PR target/42542
38940         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
38941         GTU to GT for V4SI and V2DI.
38942
38943         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
38944         (umin<mode>3): Removed.
38945         (uminv8hi3): New.
38946         (uminv4si3): Likewise.
38947
38948 2010-01-05  Martin Jambor  <mjambor@suse.cz>
38949
38950         PR tree-optimization/42462
38951         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
38952         current_function_decl to helper functions and macros.
38953
38954 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38955
38956         PR bootstrap/41771
38957         * flags.h: Don't include real.h.
38958         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
38959         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
38960         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
38961         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
38962         * dominance.c: Update copyright.
38963         * gimple.c (walk_gimple_op): Remove inline.
38964         * tree-ssa-reassoc.c: Include real.h.
38965         * Makefile.in (FLAGS_H): Remove $(REAL_H).
38966         (tree-ssa-reassoc.o): Depend on $(REAL_H).
38967
38968 2010-01-05  Nick Clifton  <nickc@redhat.com>
38969
38970         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
38971         register to push into the stack frame when the accumulator has to
38972         be saved during interrupts.
38973
38974 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
38975
38976         * doc/invoke.texi: Remove the documentation about option
38977         -Wunreachable-code.
38978         * common.opt (Wunreachable-code):  Preserved for backward
38979         compatibility.
38980         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
38981         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
38982         the backward compatibility flag section.
38983
38984 2010-01-05  Richard Guenther  <rguenther@suse.de>
38985
38986         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
38987
38988 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
38989
38990         PR other/42611
38991         * cfgexpand.c (expand_one_var): Diagnose too large variables.
38992
38993         PR tree-optimization/42508
38994         * tree-sra.c (convert_callers): Check for recursive call
38995         by comparing cgraph nodes instead of decls.
38996         (modify_function): Call ipa_modify_formal_parameters also
38997         on all same_body aliases.
38998
38999         * cgraphunit.c (cgraph_materialize_all_clones): Compare
39000         cgraph nodes when checking for same_body aliases.
39001
39002 2010-01-05  Richard Guenther  <rguenther@suse.de>
39003
39004         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
39005         allocation and lookup.
39006         (get_or_alloc_expr_for_constant): Likewise.
39007         (phi_translate): Sink allocation.
39008
39009 2010-01-04  Richard Guenther  <rguenther@suse.de>
39010
39011         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
39012         a new entry only if needed.
39013         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
39014         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
39015         hashtable lookup.
39016         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
39017         the result array.
39018         (phi_translate): Handle CONSTANTs early.
39019
39020 2010-01-04  Martin Jambor  <mjambor@suse.cz>
39021
39022         PR tree-optimization/42398
39023         * tree-sra.c (struct access): Removed flag grp_different_types.
39024         (dump_access): Do not dump the removed flag.
39025         (sort_and_splice_var_accesses): Do not set the removed flag.
39026         (sra_modify_expr): Check for type compatibility directly.
39027
39028 2010-01-04  Martin Jambor  <mjambor@suse.cz>
39029
39030         PR tree-optimization/42366
39031         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
39032         edges with variable number of parameters.
39033         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
39034         flag instead of asserting it.
39035         (ipa_read_node_info): Read uses_analysis_done flag.
39036
39037 2010-01-04  Richard Guenther  <rguenther@suse.de>
39038
39039         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
39040         iterative_hash_* as intended.
39041         (vn_reference_compute_hash): Likewise.  Simplify hashing
39042         SSA names.
39043         (vn_reference_lookup_2): Likewise.
39044         (vn_nary_op_compute_hash): Likewise.
39045         (vn_phi_compute_hash): Likewise.
39046         (expressions_equal_p): Remove strange code.
39047         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
39048         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
39049         (bitmap_insert_into_set_1): Take value-id as parameter.
39050         (add_to_value): Pass it.
39051         (bitmap_insert_into_set): Likewise.
39052         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
39053
39054 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
39055
39056         PR driver/42442
39057         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
39058         (do_self_spec): For switches with SWITCH_IGNORE set set also
39059         SWITCH_IGNORE_PERMANENTLY.
39060         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
39061         of SWITCH_IGNORE.
39062
39063 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
39064
39065         * lto-streamer-out.c (output_unreferenced_globals): Output the full
39066         tree of an unreferenced global var.
39067
39068 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
39069
39070         PR target/42542
39071         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
39072         GTU to GT for V4SI and V2DI.
39073
39074         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
39075         (umin<mode>3): Removed.
39076         (uminv8hi3): New.
39077         (uminv4si3): Likewise.
39078
39079 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
39080
39081         PR lto/42581
39082         * collect2.c (main): Turn on trace in collect2 if -v is passed
39083         to gcc with LTO.
39084
39085 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
39086
39087         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
39088         description of expression operand.
39089
39090 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
39091
39092         * configure.ac: Add install-html to target_list for Make-hooks.
39093         * configure: Regenerate.
39094         * fortran/Make-lang.in (F95_HTMLFILES): New.
39095         (fortran.html): Use it.
39096         (fortran.install-html): New.
39097         * Makefile.in (install-html): Add lang.install-html.
39098         * java/Make-lang.in (JAVA_HTMLFILES): New.
39099         (java.html): Use it.
39100         (java.install-html): New.
39101         * objc/Make-lang.in (objc.install-html): New.
39102         * objcp/Make-lang.in (obj-c++.install-html): New.
39103         * cp/Make-lang.in (c++.install-html): New.
39104         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
39105         * lto/Make-lang.in (lto.install-html): New.
39106
39107 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
39108
39109         PR lto/42520
39110         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
39111
39112 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
39113
39114         PR rtl-optimization/41862
39115         * store-motion.c (store_killed_in_insn, compute_store_table,
39116         remove_reachable_equiv_notes, replace_store_insn,
39117         build_store_vectors): Ignore all DEBUG_INSNs.
39118
39119 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
39120
39121         PR lto/41564
39122         * common.opt: Add dumpdir.
39123
39124         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
39125         isn't specified.
39126         (option_map): Add --dumpdir.
39127
39128         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
39129
39130         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
39131
39132         * opts.c (decode_options): Try dump_dir_name first if
39133         dump_base_name isn't an absolute path.
39134         (common_handle_option): Handle OPT_dumpdir.
39135
39136         * toplev.c (dump_dir_name): New.
39137         (print_switch_values): Also ignore -dumpdir.
39138
39139         * toplev.h (dump_dir_name): New.
39140
39141 2010-01-03  Richard Guenther  <rguenther@suse.de>
39142
39143         PR tree-optimization/42589
39144         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
39145         double-word expansion of bswap32.
39146
39147 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
39148
39149         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
39150         with BLOCK_FOR_INSN.
39151         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
39152         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
39153         noce_process_if_block): Likewise.
39154         * gcse.c (compute_local_properties, insert_expr_in_table,
39155         insert_set_in_table, canon_list_insert, find_avail_set,
39156         pre_insert_copy_insn): Likewise.
39157
39158         * basic-block.h (BLOCK_NUM): Move from here...
39159         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
39160
39161 2010-01-03  Richard Guenther  <rguenther@suse.de>
39162
39163         PR tree-optimization/42438
39164         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
39165         contains_may_not_return_call flag.
39166         (BB_MAY_NOTRETURN): New.
39167         (valid_in_sets): Trapping nary operations are not valid
39168         in blocks that may not return.
39169         (insert_into_preds_of_block): Remove check for trapping expressions.
39170         (compute_avail): Compute also BB_MAY_NOTRETURN.
39171
39172 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
39173
39174         * doc/invoke.texi: Add 2010 to copyright years.
39175
39176 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
39177
39178         * config/sparc/sparc.c: Fix formatting nits.
39179
39180 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
39181             Alexander Monakov  <amonakov@ispras.ru>
39182
39183         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
39184
39185 2010-01-02  Richard Guenther  <rguenther@suse.de>
39186
39187         PR middle-end/42577
39188         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
39189         (simplify_switch_using_ranges): Mark to be removed edges
39190         as non-executable.
39191
39192 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
39193
39194         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
39195
39196         * collect2.c (scan_libraries): Add missing argument in call to
39197         scan_prog_file.
39198
39199 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
39200
39201         PR target/42448
39202         * config/alpha/predicates.md (aligned_memory_operand): Return false
39203         for CQImode.
39204         (unaligned_memory_operand): Return true for CQImode.
39205         * config/alpha/alpha.c (get_aligned_mem): Assert that location
39206         doesn not cross aligned SImode word boundary.
39207
39208 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
39209
39210         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
39211         Remove.
39212         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
39213         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
39214
39215 2010-01-02  Richard Guenther  <rguenther@suse.de>
39216
39217         PR lto/41597
39218         * toplev.c (compile_file): Emit LTO marker properly.  Change
39219         it to __gnu_lto_v1.
39220         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
39221
39222 2010-01-01  Richard Guenther  <rguenther@suse.de>
39223
39224         PR debug/42455
39225         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
39226
39227 2010-01-01  Richard Guenther  <rguenther@suse.de>
39228
39229         PR c/42570
39230         * c-decl.c (grokdeclarator): For zero-size arrays force
39231         structural equality checks as layout_type does.
39232
39233 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
39234
39235         * builtins.c: Update copyright to 2010.
39236
39237 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
39238
39239         PR lto/42531
39240         * lto-streamer-out.c (produce_asm): Revert the last change.
39241         (copy_function): Likewise.
39242
39243         * lto-streamer.c (lto_get_section_name): Skip any leading
39244         asterisk in name.
39245
39246 2010-01-01  Richard Guenther  <rguenther@suse.de>
39247
39248         PR middle-end/42559
39249         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
39250         for LABEL_DECLs.
39251
39252 \f
39253 Copyright (C) 2010 Free Software Foundation, Inc.
39254
39255 Copying and distribution of this file, with or without modification,
39256 are permitted in any medium without royalty provided the copyright
39257 notice and this notice are preserved.