In gcc/: 2010-12-18 Nicola Pero <nicola.pero@meta-innovation.com>
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2010-12-18  Nicola Pero  <nicola.pero@meta-innovation.com>
2
3         * c-parser.c (c_parser_objc_try_catch_finally_statement): Call
4         objc_maybe_warn_exceptions.
5         (c_parser_objc_synchronized_statement): Call
6         objc_maybe_warn_exceptions.
7         
8 2010-12-18  Jakub Jelinek  <jakub@redhat.com>
9
10         PR tree-optimization/46985
11         * tree-scalar-evolution.c (instantiate_scev_r): If chrec is NULL,
12         return it immediately.
13
14 2010-12-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15
16         PR target/46915
17         * config/pa/pa.c (branch_to_delay_slot_p): Use next_active_insn instead
18         of next_real_insn.  Search forward checking for both ASM_INPUT and
19         ASM_OPERANDS asms until exit condition is found.
20         (branch_needs_nop_p): Likewise.
21         (use_skip_p): New function.
22         (output_cbranch): Use use_skip_p.
23         (output_bb, output_bvb): Likewise.
24
25 2010-12-18  Kai Tietz  <kai.tietz@onevision.com>
26
27         PR target/36834
28         * config/i386/i386.c (ix86_keep_aggregate_return_pointer):
29         New local function.
30         (ix86_return_pops_args): Use ix86_keep_aggregate_return_pointer
31         function instead of KEEP_AGGREGATE_RETURN_POINTER.
32         (ix86_handle_callee_pop_aggregate_return): New handler.
33         (ix86_attribute_table): Add new attribute
34         callee_pop_aggregate_return.
35         * doc/extend.texi (callee_pop_aggregate_return): Add
36         attribute documentation.
37
38 2010-12-18  Iain Sandoe  <iains@gcc.gnu.org>
39
40         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS):
41         Only set sjlj exceptions for NeXT/m32.
42
43 2010-12-18  Iain Sandoe  <iains@gcc.gnu.org>
44
45         * config/darwin.h (GCC_DRIVER_HOST_INITIALIZATION):
46         Only expose when not building for target.
47
48 2010-12-17  Joseph Myers  <joseph@codesourcery.com>
49
50         * config/netbsd.opt, config/netbsd-elf.opt: New files.
51         * config.gcc (alpha*-*-netbsd*, arm*-*-netbsdelf*, arm*-*-netbsd*,
52         i[34567]86-*-netbsdelf*, i[34567]86-*-netbsd*, x86_64-*-netbsd*,
53         m68k*-*-netbsdelf*, mips*-*-netbsd*, powerpc-*-netbsd*,
54         sh*-*-netbsd*, sparc-*-netbsdelf*, sparc64-*-netbsd*,
55         vax-*-netbsdelf*, vax-*-netbsd*): Use these .opt files.
56
57 2010-12-17  Richard Henderson  <rth@redhat.com>
58
59         * regcprop.c (find_oldest_value_reg): Continue search instead of
60         failing if an element in the copy chain is of the wrong regclass.
61
62 2010-12-17  Paolo Bonzini  <bonzini@gnu.org>
63
64         PR c/20385
65         * function.c (used_types_insert): Handle ERROR_MARK.
66         * c-decl.c (grokdeclarator): Handle ERROR_MARK.
67         (declspecs_add_type): Leave error_mark_node in specs->type.
68         (finish_declspecs): Change it to integer_type_node here.
69         * c-parser.c (c_parser_peek_2nd_token): Move earlier.
70         (enum c_lookahead_kind): New.
71         (c_parser_next_token_starts_typename): New name of
72         c_parser_next_tokens_start_typename.  Accept lookahead enum
73         and handle it here instead of...
74         (c_parser_next_tokens_start_declaration): ... here.  Call it.
75         (c_parser_declspecs): Accept another argument.  Do not exit
76         on C_ID_ID if it is guessed to be an unknown typename.
77         (c_parser_parms_declarator): Use 2nd token to distinguish a K&R
78         declaration from an ANSI declaration starting with an unknown
79         typename.
80         (c_parser_struct_declaration, c_parser_objc_type_name,
81         c_parser_typeof_specifier, c_parser_declarator,
82         c_parser_direct_declarator_inner): Adjust calls.
83         (c_parser_parameter_declaration): Likewise.
84         (c_parser_type_name): Pass back an error_mark_node to the caller.
85         (c_parser_postfix_expression): Do error recovery when 
86         c_parser_type_name returns NULL.
87
88 2010-12-17  Joseph Myers  <joseph@codesourcery.com>
89
90         * config/i386/netware.h (ASM_SPEC, SIZE_TYPE, PTRDIFF_TYPE):
91         Define.
92         * config/i386/nto.h (LIB_SPEC, ASM_SPEC): Define.
93         (DBX_REGISTER_NUMBER): Undefine.
94         * config/i386/sol2.h (SIZE_TYPE, PTRDIFF_TYPE): Define.
95         * config/i386/vxworksae.h (ASM_SPEC, SIZE_TYPE, PTRDIFF_TYPE):
96         Define.
97         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
98         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
99         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
100         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
101         i[3456x]86-*-netware*, i[34567]86-*-nto-qnx*,
102         i[34567]86-*-solaris2*,
103         i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae): Don't use svr4.h.
104
105 2010-12-17  H.J. Lu  <hongjiu.lu@intel.com>
106
107         * config/i386/i386.c (move_or_delete_vzeroupper_2): Replace
108         "BB [%i]" with "[bb %i]" in dump.
109         (move_or_delete_vzeroupper_1): Likewise.
110         (rescan_move_or_delete_vzeroupper): Likewise.  Always dump
111         upper 128bit state at exit.
112
113 2010-12-17  Joseph Myers  <joseph@codesourcery.com>
114
115         * config/interix.opt: New.
116         * config/interix.h (LINK_SPEC): Don't handle -soname*.
117         * config.gcc (i[34567]86-*-interix3*): Use interix.opt.
118
119 2010-12-17  Andrew Stubbs  <ams@codesourcery.com>
120
121         * config/arm/arm.md (maddhisi4, *maddhidi4): Use the canonical
122         operand order for plus.
123         Drop redundant % from constraints.
124
125 2010-12-17  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
126
127         * config/spu/t-spu-elf (LIB2FUNCS_EXCLUDE): Add _floattisf and
128         _floatunstisf.
129         * config/spu/spu.md ("floattisf2"): New expander.
130         ("floatunstisf2"): New insn pattern and splitter.
131         ("cgt_ti_m1"): New insn pattern.
132
133 2010-12-17  Bernd Schmidt  <bernds@codesourcery.com>
134
135         * config/arm/arm.c (arm_select_cc_mode): Before calling
136         arm_select_dominance_cc_mode for AND or IOR operations, ensure
137         that op is NE or EQ.
138
139 2010-12-17  Alexander Monakov  <amonakov@ispras.ru>
140
141         PR middle-end/46761
142         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Prefer
143         to use unadjusted UB.
144
145 2010-12-17  Dodji Seketeli  <dodji@redhat.com>
146
147         * dwarf2out.c (gen_type_die_with_usage): Do not try to emit debug
148         info for a redundant typedef that has DECL_ORIGINAL_TYPE set. Use
149         that underlying type instead.
150
151 2010-12-16  Jan Hubicka  <jh@suse.cz>
152
153         PR middle-end/44563 
154         * ipa-inline.c: Update doplevel comment. 
155         (cgraph_estimate_size_after_inlining): Remove times attribute. 
156         (cgraph_mark_inline_edge): Update. 
157         (cgraph_mark_inline): Remove. 
158         (cgraph_estimate_growth): Update. 
159         (cgraph_check_inline_limits): Remove one only argument. 
160         (cgraph_edge_badness): Update. 
161         (cgraph_decide_recursive_inlining): Update. 
162         (cgraph_decide_inlining_of_small_function): Fix handling of tree_can_inline_p 
163         and call_stmt_cannot_inline_p. 
164         (cgraph_flatten): Likewise. 
165         (cgraph_decide_inlining): Update. 
166         (cgraph_decide_inlining_incrementally): Fix handling of call_stmt_cannot_inline_p. 
167
168 2010-12-16  Joseph Myers  <joseph@codesourcery.com>
169
170         * config/darwin.opt (dylinker, headerpad_max_install_names,
171         keep_private_externs, nofixprebinding, nomultidefs, noprebind,
172         noseglinkedit, object, prebind, prebind_all_twolevel_modules,
173         preload, private_bundle, pthread, seglinkedit, twolevel_namespace,
174         twolevel_namespace_hints, whatsloaded, whyload, y, Mach, X): New
175         Driver options.
176         * config/darwin.h (LINK_SPEC): Remove '*' after
177         headerpad_max_install_names.
178
179 2010-12-16  Sebastian Pop  <sebastian.pop@amd.com>
180
181         PR tree-optimization/46924
182         * graphite-sese-to-poly.c (detect_commutative_reduction): Do not
183         detect reductions outside the current SESE region.
184         * sese.h (stmt_in_sese_p): New.
185         (defined_in_sese_p): Call stmt_in_sese_p.
186
187 2010-12-16  Jakub Jelinek  <jakub@redhat.com>
188
189         PR tree-optimization/46966
190         * graphite-sese-to-poly.c (build_scop_drs): Call free_gimple_bb for
191         for bbs that are removed from SCOP_BBS vector.
192
193 2010-12-16  Eric Botcazou  <ebotcazou@adacore.com>
194
195         * tree-ssa-sccvn.c (vn_reference_lookup_3): Always punt if the call to
196         get_ref_base_and_extent returns -1 as the max size.
197
198 2010-12-16  Konrad Eisele  <konrad@gaisler.com>
199             Eric Botcazou  <ebotcazou@adacore.com>
200
201         Support for LEON processor
202         * config.gcc (sparc-*-elf*): Deal with sparc-leon specifically.
203         (sparc-*-linux*): Likewise.
204         (sparc-*-rtems*): Remove Solaris left-overs.
205         (sparc*-*-*): Remove obsolete sparc86x setting.
206         (sparc-leon*): Default to --with-cpu=v8 and --with-tune=leon.
207         * doc/invoke.texi (SPARC Options): Document -mcpu/-mtune=leon.
208         * config/sparc/sparc.h (TARGET_CPU_leon): Define.
209         (TARGET_CPU_sparc86x): Delete.
210         (TARGET_CPU_cypress): Define as alias to TARGET_CPU_v7.
211         (TARGET_CPU_f930): Define as alias to TARGET_CPU_sparclite.
212         (TARGET_CPU_f934): Likewise.
213         (TARGET_CPU_tsc701): Define as alias to TARGET_CPU_sparclet.
214         (CPP_CPU_SPEC): Add entry for -mcpu=leon.
215         (enum processor_type): Add PROCESSOR_LEON.  Reorganize.
216         * config/sparc/sparc.c (leon_costs): New cost array.
217         (sparc_option_override): Add entry for TARGET_CPU_leon and -mcpu=leon.
218         Initialize cost array to leon_costs if -mtune=leon.
219         * config/sparc/sparc.md (cpu attribute): Add leon.  Reorganize.
220         Include leon.md scheduling description.
221         * config/sparc/leon.md: New file.
222         * config/sparc/t-elf: Do not assemble Solaris startup files.
223         * config/sparc/t-leon: New file.
224         * config/sparc/t-leon3: Likewise.
225
226 2010-12-16  Jakub Jelinek  <jakub@redhat.com>
227
228         PR tree-optimization/43655
229         * tree-ssa-ter.c (is_replaceable_p): Don't use
230         gimple_references_memory_p for -O0, instead check for load
231         by looking at rhs.
232
233 2010-12-16  Sebastian Pop  <sebastian.pop@amd.com>
234
235         PR tree-optimization/46404
236         * graphite-clast-to-gimple.c (gloog): Call scev_reset.
237
238 2010-12-16  Anatoly Sokolov  <aesok@post.ru>
239
240         * config/sh/sh.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
241         * config/sh/sh.c (sh_asm_output_addr_const_extra): New function.
242         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
243
244 2010-12-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
245
246         * config/spu/t-spu-elf (LIB2_SIDITI_CONV_FUNC): Define.
247         * config/spu/spu.h (MIN_UNITS_PER_WORD): Do not define.
248         (LIBGCC2_UNITS_PER_WORD): Define if not already defined.
249
250 2010-12-16  Jakub Jelinek  <jakub@redhat.com>
251
252         PR debug/46893
253         * cfgexpand.c (expand_debug_expr): If GET_MODE (op0) is VOIDmode,
254         use TYPE_MODE (TREE_TYPE (tem)) instead of mode1.
255
256 2010-12-16  Chung-Lin Tang  <cltang@codesourcery.com>
257
258         PR target/46883
259         * config/arm/arm.md
260         (zero_extendhisi2 for register input splitter): Change
261         "register_operand" to "s_register_operand".
262         (zero_extendqisi2 for register input splitter): Same.
263
264 2010-12-16  Jan Hubicka  <jh@suse.cz>
265
266         PR middle-end/46939
267         * predic.c (predict_paths_leading_to_edge): New function.
268         (apply_return_prediction): Use it.
269         (predict_paths_for_bb): Do not special case abnormals.
270
271 2010-12-16  Joseph Myers  <joseph@codesourcery.com>
272
273         * config.gcc (powerpc-*-lynxos*): Don't add lynx.opt to
274         extra_options twice.
275
276 2010-12-15  Joseph Myers  <joseph@codesourcery.com>
277
278         * doc/tm.texi.in (US_SOFTWARE_GOFAST): Don't document.
279         * doc/tm.texi: Regenerate.
280         * system.h (US_SOFTWARE_GOFAST): Poison.
281         * config.gcc (enable_gofast): Don't handle.
282         * config/gofast.h: Remove.
283         * config/mips/t-gofast: Remove.
284         * config/fp-bit.c (US_SOFTWARE_GOFAST): Don't handle.
285         * config/fp-bit.h (US_SOFTWARE_GOFAST): Don't handle.
286         * config/mips/elforion.h: Don't mention GOFAST in comment.
287         * config/mips/mips.c: Don't include gofast.h.
288         (mips_init_libfuncs): Don't call gofast_maybe_init_libfuncs.
289         * config/mips/t-sr71k (dp-bit.c, fp-bit.c): Don't define
290         US_SOFTWARE_GOFAST.
291         * config/sparc/sparc.c: Don't include gofast.h.
292         (sparc_init_libfuncs): Don't call gofast_maybe_init_libfuncs.
293         * config/spu/t-spu-elf (dp-bit.c, fp-bit.c): Don't undefine
294         US_SOFTWARE_GOFAST.
295
296 2010-12-14  Jan Hubicka  <jh@suse.cz>
297
298         * config/darwin.opt (dylinker, headerpad_max_install_names,
299         keep_private_externs, nofixprebinding, nomultidefs, noprebind,
300         noseglinkedit, object, prebind, prebind_all_twolevel_modules,
301         preload, private_bundle, pthread, seglinkedit, twolevel_namespace,
302         twolevel_namespace_hints, whatsloaded, whyload, y, Mach, X): New
303         Driver options.
304         * config/darwin.h (LINK_SPEC): Remove '*' after
305         headerpad_max_install_names.
306
307 2010-12-16  Sebastian Pop  <sebastian.pop@amd.com>
308
309         PR tree-optimization/46924
310         * graphite-sese-to-poly.c (detect_commutative_reduction): Do not
311         detect reductions outside the current SESE region.
312         * sese.h (stmt_in_sese_p): New.
313         (defined_in_sese_p): Call stmt_in_sese_p.
314
315 2010-12-16  Jakub Jelinek  <jakub@redhat.com>
316
317         PR tree-optimization/46966
318         * graphite-sese-to-poly.c (build_scop_drs): Call free_gimple_bb for
319         for bbs that are removed from SCOP_BBS vector.
320
321 2010-12-16  Eric Botcazou  <ebotcazou@adacore.com>
322
323         * tree-ssa-sccvn.c (vn_reference_lookup_3): Always punt if the call to
324         get_ref_base_and_extent returns -1 as the max size.
325
326 2010-12-16  Konrad Eisele  <konrad@gaisler.com>
327             Eric Botcazou  <ebotcazou@adacore.com>
328
329         Support for LEON processor
330         * config.gcc (sparc-*-elf*): Deal with sparc-leon specifically.
331         (sparc-*-linux*): Likewise.
332         (sparc-*-rtems*): Remove Solaris left-overs.
333         (sparc*-*-*): Remove obsolete sparc86x setting.
334         (sparc-leon*): Default to --with-cpu=v8 and --with-tune=leon.
335         * doc/invoke.texi (SPARC Options): Document -mcpu/-mtune=leon.
336         * config/sparc/sparc.h (TARGET_CPU_leon): Define.
337         (TARGET_CPU_sparc86x): Delete.
338         (TARGET_CPU_cypress): Define as alias to TARGET_CPU_v7.
339         (TARGET_CPU_f930): Define as alias to TARGET_CPU_sparclite.
340         (TARGET_CPU_f934): Likewise.
341         (TARGET_CPU_tsc701): Define as alias to TARGET_CPU_sparclet.
342         (CPP_CPU_SPEC): Add entry for -mcpu=leon.
343         (enum processor_type): Add PROCESSOR_LEON.  Reorganize.
344         * config/sparc/sparc.c (leon_costs): New cost array.
345         (sparc_option_override): Add entry for TARGET_CPU_leon and -mcpu=leon.
346         Initialize cost array to leon_costs if -mtune=leon.
347         * config/sparc/sparc.md (cpu attribute): Add leon.  Reorganize.
348         Include leon.md scheduling description.
349         * config/sparc/leon.md: New file.
350         * config/sparc/t-elf: Do not assemble Solaris startup files.
351         * config/sparc/t-leon: New file.
352         * config/sparc/t-leon3: Likewise.
353
354 2010-12-16  Jakub Jelinek  <jakub@redhat.com>
355
356         PR tree-optimization/43655
357         * tree-ssa-ter.c (is_replaceable_p): Don't use
358         gimple_references_memory_p for -O0, instead check for load
359         by looking at rhs.
360
361 2010-12-16  Sebastian Pop  <sebastian.pop@amd.com>
362
363         PR tree-optimization/46404
364         * graphite-clast-to-gimple.c (gloog): Call scev_reset.
365
366 2010-12-16  Anatoly Sokolov  <aesok@post.ru>
367
368         * config/sh/sh.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
369         * config/sh/sh.c (sh_asm_output_addr_const_extra): New function.
370         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
371
372 2010-12-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
373
374         * config/spu/t-spu-elf (LIB2_SIDITI_CONV_FUNC): Define.
375         * config/spu/spu.h (MIN_UNITS_PER_WORD): Do not define.
376         (LIBGCC2_UNITS_PER_WORD): Define if not already defined.
377
378 2010-12-16  Jakub Jelinek  <jakub@redhat.com>
379
380         PR debug/46893
381         * cfgexpand.c (expand_debug_expr): If GET_MODE (op0) is VOIDmode,
382         use TYPE_MODE (TREE_TYPE (tem)) instead of mode1.
383
384 2010-12-16  Chung-Lin Tang  <cltang@codesourcery.com>
385
386         PR target/46883
387         * config/arm/arm.md
388         (zero_extendhisi2 for register input splitter): Change
389         "register_operand" to "s_register_operand".
390         (zero_extendqisi2 for register input splitter): Same.
391
392 2010-12-16  Jan Hubicka  <jh@suse.cz>
393
394         PR middle-end/46939
395         * predic.c (predict_paths_leading_to_edge): New function.
396         (apply_return_prediction): Use it.
397         (predict_paths_for_bb): Do not special case abnormals.
398
399 2010-12-16  Joseph Myers  <joseph@codesourcery.com>
400
401         * config.gcc (powerpc-*-lynxos*): Don't add lynx.opt to
402         extra_options twice.
403
404 2010-12-15  Joseph Myers  <joseph@codesourcery.com>
405
406         * doc/tm.texi.in (US_SOFTWARE_GOFAST): Don't document.
407         * doc/tm.texi: Regenerate.
408         * system.h (US_SOFTWARE_GOFAST): Poison.
409         * config.gcc (enable_gofast): Don't handle.
410         * config/gofast.h: Remove.
411         * config/mips/t-gofast: Remove.
412         * config/fp-bit.c (US_SOFTWARE_GOFAST): Don't handle.
413         * config/fp-bit.h (US_SOFTWARE_GOFAST): Don't handle.
414         * config/mips/elforion.h: Don't mention GOFAST in comment.
415         * config/mips/mips.c: Don't include gofast.h.
416         (mips_init_libfuncs): Don't call gofast_maybe_init_libfuncs.
417         * config/mips/t-sr71k (dp-bit.c, fp-bit.c): Don't define
418         US_SOFTWARE_GOFAST.
419         * config/sparc/sparc.c: Don't include gofast.h.
420         (sparc_init_libfuncs): Don't call gofast_maybe_init_libfuncs.
421         * config/spu/t-spu-elf (dp-bit.c, fp-bit.c): Don't undefine
422         US_SOFTWARE_GOFAST.
423
424 2010-12-14  Jan Hubicka  <jh@suse.cz>
425
426         * tree.c (get_file_function_name): Avoid using random seed on GLOBAL_sub_I
427         and GLOBAL_sub_D.
428
429 2010-12-15  Martin Jambor  <mjambor@suse.cz>
430
431         PR tree-optimization/46053
432         PR middle-end/46287
433         PR middle-end/46242
434         * cgraph.h (cgraph_indirect_call_info): New field thunk_delta.
435         * gimple.h (gimple_fold_obj_type_ref): Declaration removed.
436         (gimple_fold_call): Declare.
437         (gimple_adjust_this_by_delta): Likewise.
438         * cgraph.c (cgraph_make_edge_direct): New parameter delta.  Updated
439         all users.
440         (cgraph_clone_edge): Create a copy of indirect_info also for direct
441         edges.
442         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Adjust this
443         parameters.
444         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Renamed to
445         gimple_get_virt_mehtod_for_binfo, new parameter delta.  Do not search
446         through thunks, in fact bail out if we encounter one, check that
447         BINFO_VIRTUALS is not NULL.
448         (gimple_adjust_this_by_delta): New function.
449         (gimple_fold_obj_type_ref): Removed.
450         (gimple_fold_obj_type_ref_call): New function.
451         (fold_gimple_call): Renamed to gimple_fold_call, made external.
452         Updated users.  Call gimple_fold_obj_type_ref_call instead of
453         gimple_fold_obj_type_ref.
454         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Process
455         thunk deltas.
456         (ipcp_discover_new_direct_edges): Likewise.
457         * ipa-prop.c (ipa_make_edge_direct_to_target): New parameter delta.
458         Updated callers.
459         (ipa_write_indirect_edge_info): Stream thunk_delta.
460         (ipa_read_indirect_edge_info): Likewise.
461         * tree-ssa-ccp.c (ccp_fold_stmt): Use gimple_fold_call instead of
462         gimple_fold_obj_type_ref.
463
464 2010-12-15  Alexander Monakov  <amonakov@ispras.ru>
465
466         PR rtl-optimization/46649
467         * sel-sched-ir.c (purge_empty_blocks): Unconditionally skip the first
468         basic block in the region.
469
470 2010-12-15  Joseph Myers  <joseph@codesourcery.com>
471
472         * config/stormy16/stormy16.h (LINK_SPEC, WCHAR_TYPE): Define.
473         * config.gcc (xstormy16-*-elf): Don't use svr4.h.
474
475 2010-12-15  Joseph Myers  <joseph@codesourcery.com>
476
477         * config/rx/rx.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
478         * config.gcc (rx-*-elf*): Don't use svr4.h.
479
480 2010-12-14  Sebastian Pop  <sebastian.pop@amd.com>
481
482         PR tree-optimization/46845
483         * sese.c (scalar_evolution_in_region): Handle scop parameters
484         before scev analysis.
485
486 2010-12-14  Sebastian Pop  <sebastian.pop@amd.com>
487
488         PR tree-optimization/46928
489         * tree-data-ref.c (analyze_overlapping_iterations): Handle "A[p] == A[p]"
490         in data dependence analysis with p a parameter of the loop.
491
492 2010-12-14  Sebastian Pop  <sebastian.pop@amd.com>
493
494         PR tree-optimization/45948
495         * tree-loop-distribution.c (ssa_name_has_uses_outside_loop_p): New.
496         (stmt_has_scalar_dependences_outside_loop): New.
497         (stmt_generated_in_another_partition): New.
498         (add_scalar_computations_to_partition): New.
499         (rdg_build_partitions): Call add_scalar_computations_to_partition.
500
501 2010-12-14  Joseph Myers  <joseph@codesourcery.com>
502
503         * config/arc/arc.h (LIB_SPEC): Define.
504         * config.gcc (arc-*-elf*): Don't use svr4.h.
505
506 2010-12-14  Joseph Myers  <joseph@codesourcery.com>
507
508         * config/sh/elf.h (LIB_SPEC): Define.
509         * config.gcc (sh-*-elf* | sh[12346l]*-*-elf* | sh-*-symbianelf* |
510         sh[12346l]*-*-symbianelf* | sh-*-linux* | sh[2346lbe]*-*-linux* |
511         sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* |
512         sh5l*-*-netbsd* | sh64-*-netbsd* | sh64l*-*-netbsd*, sh-*-rtems*,
513         sh-wrs-vxworks): Don't use svr4.h.
514
515 2010-12-14  Jan Hubicka  <jh@suse.cz>
516
517         PR lto/46940
518         PR lto/44463
519         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Construct nodes
520         for aliases when they are used.
521
522 2010-12-14  Joseph Myers  <joseph@codesourcery.com>
523
524         * config.gcc (sparc-*-elf*, sparc-*-rtems*, sparc-*-linux*,
525         sparc-*-netbsdelf*, sparc*-*-solaris2*, sparc-wrs-vxworks,
526         sparc64-*-elf*, sparc64-*-rtems*, sparc64-*-linux*,
527         sparc64-*-netbsd*, sparc64-*-openbsd*): Don't use svr4.h.
528
529 2010-12-14  Thomas Klein  <th.r.klein@web.de>
530
531         * config/arm/arm.c (arm_expand_prologue): Report the static stack
532         size if -fstack-usage is used.
533         (thumb1_expand_prologue): Likewise.
534
535 2010-12-14  Jakub Jelinek  <jakub@redhat.com>
536
537         PR debug/46885
538         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Use gsi_last_bb
539         instead of gsi_last_nondebug_bb if bump_in_latch.
540
541         PR tree-optimization/46909
542         * gimple-fold.c (and_var_with_comparison_1): Save partial
543         result even in the is_and case, if both partial results
544         are the same, return it.
545         (or_var_with_comparison_1): Use is_or predicate instead of
546         innercode == TRUTH_OR_EXPR test.  Save partial result
547         even in the is_or case, if both partial results are the
548         same, return it.  In the !is_or case when both partial
549         results are the same, return the partial result instead
550         of boolean_true_node.
551
552 2010-12-14  Jan Hubicka  <jh@suse.cz>
553
554         PR middle-end/46667
555         * varasm.c (assemble_start_function): Do not call resolve_unique_section.
556         * cfgexpand.c (gimple_expand_cfg): Resolve it here.
557
558 2010-12-14  Alexander Monakov  <amonakov@ispras.ru>
559
560         PR rtl-optimization/46875
561         * sched-vis.c (print_pattern): Dump "sequence" for ADDR_VECs.
562         * sel-sched-ir.c (bb_has_removable_jump_to_p): Forbid table jumps.
563
564 2010-12-14  Kaushik Phatak <kaushik.phatak@kpitcummins.com>
565
566         * config/h8300/h8300.md (define_split) : Add condition for
567         "and with single_zero" splitter to handle 16-bit const operands.
568         * config/h8300/h8300.md (define_split) : Add condition for
569         "ior with single_one" splitter to handle 16-bit const operands.
570         * config/h8300/h8300.md (define_split) : Add condition for
571         "xor with single_one" splitter to handle 16-bit const operands. 
572         * testsuite/gcc.dg/h8300-bit-insn-ice.c: New.
573
574 2010-12-13  Jan Hubicka  <jh@suse.cz>
575
576         PR middle-end/45388
577         * ipa.c (cgraph_build_static_cdtor_1): Break out from ... ; add FINAL parameter.
578         (cgraph_build_static_cdtor): ... here.
579         (build_cdtor): Use cgraph_build_static_cdtor_1.
580
581 2010-12-13  Joseph Myers  <joseph@codesourcery.com>
582
583         * config/m32c/m32c.h (ENDFILE_SPEC, LINK_SPEC, SIZE_TYPE,
584         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
585         * config.gcc (m32c-*-rtems*, m32c-*-elf*): Don't use svr4.h.
586
587 2010-12-14  Bernd Schmidt  <bernds@codesourcery.com>
588
589         PR rtl-optimization/44374
590         Reapply patch with fixes.
591         * basic-block.h (enum bb_flags): Add BB_MODIFIED.
592         * df-core.c (df_set_bb_dirty): Set it.
593         * ifcvt.c (find_memory): Remove function.
594         (dead_or_predicable): Use can_move_insns_across.
595         * df.h (can_move_insns_across): Declare function.
596         * cfgcleanup.c (block_was_dirty): New static variable.
597         (flow_find_head_matching_sequence): Test for epilogue notes.
598         (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
599         than df_get_bb_dirty.
600         (try_head_merge_bb): New static function.
601         (try_optimize_cfg): Call it.  Call df_analyze if block_was_dirty
602         is set.
603         * df-problems.c: Include "target.h"
604         (df_simulate_find_uses): New static function.
605         (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
606         (find_memory, find_memory_store): New static functions.
607         (can_move_insns_across): New function.
608         * Makefile.in (df-problems.o): Update dependencies.
609
610 2010-12-13  Joseph Myers  <joseph@codesourcery.com>
611
612         * config/xtensa/elf.h (SIZE_TYPE, PTRDIFF_TYPE): Define.
613         (DBX_REGISTER_NUMBER): Undefine.
614         * config/xtensa/linux.h (SIZE_TYPE, PTRDIFF_TYPE): Define.
615         (DBX_REGISTER_NUMBER): Undefine.
616         * config.gcc (xtensa*-*-elf*, xtensa*-*-linux*): Don't use svr4.h.
617
618 2010-12-13  Jack Howarth <howarth@bromo.med.uc.edu>
619             Joseph Myers <joseph@codesourcery.com>
620
621         PR bootstrap/46650
622         * system.h: Include cstring for cxx bootstrap.
623
624 2010-12-13  Jakub Jelinek  <jakub@redhat.com>
625
626         PR lto/46879
627         * lto-streamer-out.c (output_gimple_stmt): Never replace first
628         GIMPLE_DEBUG argument with MEM_REF.
629
630         PR debug/46867
631         * var-tracking.c (emitted_notes, string_pointer_flags): Removed.
632         (emit_note_insn_var_location): Remove ENABLE_RTL_CHECKING verification.
633         (vt_emit_notes): Don't initialize and destroy emitted_notes.
634
635 2010-12-13  Nathan Froyd  <froydnj@codesourcery.com>
636
637         PR target/46040
638         * config.gcc (arm*-*-linux-*eabi): Use bpabi-lib.h.
639         (arm*-*-uclinux*eabi, arm*-*-eabi*): Likewise.
640
641 2010-12-13  Joseph Myers  <joseph@codesourcery.com>
642
643         * config/v850/v850.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
644         WCHAR_TYPE_SIZE): Define.
645         * config.gcc (v850e1-*-*, v850e-*-*, v850-*-*): Don't use svr4.h.
646
647 2010-12-13  Joseph Myers  <joseph@codesourcery.com>
648
649         * config.gcc (s390-*-linux*, s390x-*-linux*, s390x-ibm-tpf*):
650         Don't use svr4.h.
651
652 2010-12-13  Joseph Myers  <joseph@codesourcery.com>
653
654         * config/mn10300/linux.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
655         WCHAR_TYPE_SIZE): Undefine.
656         * config/mn10300/mn10300.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
657         WCHAR_TYPE_SIZE): Define.
658         * config.gcc (mn10300-*-*): Don't use svr4.h.
659
660 2010-12-13  Joseph Myers  <joseph@codesourcery.com>
661
662         * config/m68k/linux.h (DBX_REGISTER_NUMBER): Undefine and
663         redefine.
664         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
665         * config.gcc (m68k-*-uclinux*, m68k-*-linux*): Don't use svr4.h.
666
667 2010-12-13  Alexandre Oliva  <aoliva@redhat.com>
668
669         PR debug/46756
670         * jump.c (mark_all_labels): Skip debug insns.
671
672 2010-12-13  Alexandre Oliva  <aoliva@redhat.com>
673
674         PR debug/46782
675         * cfgcleanup.c (try_forward_edges): Skip debug insns.
676
677 2010-12-12  Jan Hubicka  <jh@suse.cz>
678             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
679
680         * varasm.c (default_function_section): Check flag_reorder_functions
681         and targetm.have_named_sections.
682         * config/darwin.c (darwin_function_section): Check
683         flag_reorder_functions.
684
685 2010-12-12  Finn Thain  <fthain@telegraphics.com.au>
686
687         PR target/46179
688         * config/m68k/m68k.c (handle_move_double): Insert calls to
689         m68k_final_prescan_insn to clean up @TLS operand syntax.
690
691 2010-12-10  Sebastian Pop  <sebastian.pop@amd.com>
692
693         PR tree-optimization/43023
694         * tree-data-ref.c (mem_write_stride_of_same_size_as_unit_type_p):
695         Removed.
696         (stores_zero_from_loop): Call stmt_stores_zero.
697         * tree-data-ref.h (stmt_stores_zero): New.
698         * tree-loop-distribution.c (generate_memset_zero): Do not return a
699         boolean.  Call gcc_assert on stride_of_unit_type_p.
700         (generate_builtin): Call stmt_stores_zero.
701         (rdg_flag_all_uses): Removed.
702         (rdg_flag_similar_memory_accesses): Removed.
703         (build_rdg_partition_for_component): Removed parameter
704         other_stores.  Removed call to rdg_flag_similar_memory_accesses.
705         (can_generate_builtin): New.
706         (similar_memory_accesses): New.
707         (fuse_partitions_with_similar_memory_accesses): New.
708         (rdg_build_partitions): Call
709         fuse_partitions_with_similar_memory_accesses.
710
711 2010-12-10  Jakub Jelinek  <jakub@redhat.com>
712
713         PR rtl-optimization/46804
714         * regmove.c (optimize_reg_copy_3): Look for REG_EQUAL note
715         on the setter of src_reg rather than on insn.  If it is
716         equal to the setter's original SET_SRC, replace it with its
717         zero or sign extension instead of dropping it.
718
719 2010-12-10  Richard Guenther  <rguenther@suse.de>
720
721         PR lto/46808
722         * lto-symtab.c (lto_symtab_merge_decls_2): Avoid type warnings
723         after errors.
724         (lto_symtab_merge_decls_1): Adjust.
725
726 2010-12-10  Dave Korn  <dave.korn.cygwin@gmail.com>
727
728         PR middle-end/46674
729         PR lto/43157
730         * target.def (mangle_assembler_name): New target asm_out hook.
731         * targhooks.c (default_mangle_assembler_name): Add default hook
732         implementation.
733         * targhooks.h (default_mangle_assembler_name): Add prototype.
734         * lto-symtab.c (lto_symtab_register_decl): Use new hook when
735         processing DECL_ASSEMBLER_NAMEs for lto symtabs.
736         (lto_symtab_get_resolution): Likewise.
737         (lto_cgraph_replace_node): Likewise.
738         (lto_symtab_prevailing_decl): Likewise.
739         * lto-streamer-out.c (write_symbol): Likewise.
740         * doc/tm.texi.in (TARGET_MANGLE_ASSEMBLER_NAME): Add @hook directive.
741         * doc/tm.texi: Regenerate.
742         * config/i386/cygming.h (TARGET_MANGLE_ASSEMBLER_NAME): Define to
743         point at i386_pe_mangle_assembler_name.
744         * config/i386/winnt.c (i386_pe_mangle_assembler_name): New function.
745         * config/i386/i386-protos.h (i386_pe_mangle_assembler_name): Add
746         prototype.
747
748 2010-12-10  Nathan Froyd  <froydnj@codesourcery.com>
749
750         * c-typeck.c (readonly_error): Delete.
751
752 2010-12-10  Jakub Jelinek  <jakub@redhat.com>
753
754         PR rtl-optimization/46865
755         * rtl.c (rtx_equal_p_cb, rtx_equal_p): For last operand of
756         ASM_OPERANDS and ASM_INPUT if integers are different,
757         call locator_eq.
758         * jump.c (rtx_renumbered_equal_p): Likewise.
759
760         PR tree-optimization/46864
761         * tree-ssa-loop-im.c (loop_suitable_for_sm): Return false even
762         when there are EDGE_EH exit edges.
763
764 2010-12-10  Tobias Burnus  <burnus@net-b.de>
765
766         PR fortran/46540
767         * configure.ac: Handle --disable-libquadmath-support.
768         * doc/install.texi: Document --disable-libquadmath and
769         --disable-libquadmath-support
770         * configure: Regenerate.
771         * config.in: Regenerate.
772
773 2010-12-10  Jack Howarth  <howarth@bromo.med.uc.edu>
774             Iain Sandoe  <iains@gcc.gnu.org>
775
776         PR 43751/target
777         * config/darwin9.h (DSYMUTIL_SPEC): Add fortran source types.
778
779 2010-12-10  Iain Sandoe <iains@gcc.gnu.org>
780
781         * config/rs6000/rs6000.c
782         (rs6000_darwin64_record_arg_advance_recurse): Name register increment
783         explicitly.  (rs6000_darwin64_record_arg_recurse): Make sure we split
784         long doubles when we run out of regs.   Also flag that this requires
785         stack and therefore cannot be returned by value.
786         (rs6000_darwin64_record_arg): Update comment.
787         (rs6000_function_value): Likewise.
788
789 2010-12-10  Nicola Pero  <nicola.pero@meta-innovation.com>
790
791         * c-parser.c (c_parser_objc_class_definition): Recognize
792         Objective-C 2.0 class extensions.
793
794 2010-12-10  Iain Sandoe <iains@gcc.gnu.org>
795
796         * config/darwin.c: Remove c-tree.h and c-lang.h
797         * config/t-darwin: Remove dependencies on c-tree.h and c-lang.h.
798
799 2010-12-10  Joern Rennecke  <amylaar@spamcop.net>
800
801         PR target/46881
802         * doc/tm.texi: Regenerate.
803         * target.def: Fix "preferred" spelling.  Refer to rclass by its
804         exact name.
805         * config/arm/arm.c (arm_preferred_rename_class): Rename parameter class
806         to rclass.
807
808 2010-12-09  Paul Koning  <ni1d@arrl.net>
809
810         * config/pdp11/pdp11-protos.h (output_move_double,
811         output_move_quad): Delete.
812         (output_move_multiple, pdp11_expand_operands): New functions.
813         (pdp11_action, pdp11_partorder): New enums.
814         * config/pdp11/pdp11.md (movdi, movsi, movdf, movsf): Use
815         output_move_multiple.
816         (adddi3, subdi3, negdi2): New patterns.
817         (addsi3, subsi3, negsi2): Use pdp11_expand_operands.
818         (abshi2): Delete.
819         (neghi2, negqi2): Use PDPint iterator.
820         * config/pdp11/pdp11.c (find_addr_reg, output_move_double,
821         output_move_quad): Delete.
822         (pdp11_expand_operands, output_move_multiple): New functions.
823
824 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
825
826         * config/vax/linux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
827         * config.gcc (vax-*-linux*): Don't use svr4.h.
828
829 2010-12-09  Nathan Froyd  <froydnj@codesourcery.com>
830
831         * c-typeck.c (build_indirect_ref): Call invalid_indirection_error.
832
833 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
834
835         * doc/extend.texi (Attribute Syntax): Correct description of
836         attributes in pointer declarators.
837
838 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
839
840         * config/mips/vxworks.h (DBX_REGISTER_NUMBER): Undefine.
841         * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux*,
842         mips*-*-linux*, mips-wrs-vxworks): Don't use svr4.h.
843
844 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
845
846         * config/mep/mep.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
847         WCHAR_TYPE_SIZE): Define.
848         * config.gcc (mep-*-*): Don't use svr4.h.
849
850 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
851
852         * config/mcore/mcore.h (PTRDIFF_TYPE, WCHAR_TYPE,
853         WCHAR_TYPE_SIZE): Define.
854         * config/svr3.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
855         WCHAR_TYPE_SIZE): Don't define.
856         * config.gcc (mcore-*-elf): Don't use svr4.h.
857
858 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
859
860         * config.gcc (m32r-*-elf*, m32rle-*-elf*, m32r-*-rtems*,
861         m32r-*-linux*, m32rle-*-linux*): Don't use svr4.h.
862
863 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
864
865         * config/iq2000/iq2000.h (LINK_SPEC, SIZE_TYPE, PTRDIFF_TYPE,
866         WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
867         * config.gcc (iq2000*-*-elf*): Don't use svr4.h.
868
869 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
870
871         * config.gcc (ia64*-*-linux*, ia64*-*-hpux*): Don't use svr4.h.
872
873 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
874
875         * config/pa/pa32-linux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
876         * config.gcc (hppa*64*-*-linux*, hppa*-*-linux*): Don't use
877         svr4.h.
878
879 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
880
881         * config/moxie/moxie.h (LINK_SPEC, SIZE_TYPE, PTRDIFF_TYPE,
882         WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
883         * config/moxie/rtems.h (LINK_SPEC, SIZE_TYPE, PTRDIFF_TYPE,
884         WCHAR_TYPE, WCHAR_TYPE_SIZE): Undefine.
885         * config.gcc (moxie-*-elf, moxie-*-uclinux*): Don't use svr4.h.
886
887 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
888
889         * config/frv/frv.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
890         WCHAR_TYPE_SIZE): Define.
891         * config.gcc (frv-*-elf, frv-*-*linux*): Don't use svr4.h.
892
893 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
894
895         * config/fr30/fr30.h (LIB_SPEC, LINK_SPEC, SIZE_TYPE,
896         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
897         * config.gcc (fr30-*-elf): Don't use svr4.h.
898
899 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
900
901         * config/cris/linux.h (SIZE_TYPE, PTRDIFF_TYPE): Define.
902         * config.gcc (crisv32-*-linux* | cris-*-linux*): Don't use svr4.h.
903
904 2010-12-09  Richard Guenther  <rguenther@suse.de>
905
906         PR middle-end/46844
907         * gimple-fold.c (canonicalize_constructor_val): Canonicalize
908         addresses.
909
910 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
911
912         * config/i386/netware.h (TARGET_POSIX_IO): Define.
913         * config/i386/nto.h (TARGET_POSIX_IO): Define.
914         * config/ia64/hpux.h (TARGET_POSIX_IO): Define.
915         * config/moxie/moxie.h (TARGET_POSIX_IO): Don't undefine.
916         * config/openbsd.h (TARGET_POSIX_IO): Define.
917         * config/rtems.h (TARGET_POSIX_IO): Define.
918         * config/sh/embed-elf.h (TARGET_POSIX_IO): Don't undefine.
919         * config/sol2.h (TARGET_POSIX_IO): Define.
920         * config/svr4.h (TARGET_POSIX_IO): Don't define.
921         * config/vxworksae.h (TARGET_POSIX_IO): Define.
922
923 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
924
925         * config/i386/nto.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
926         * config/ia64/hpux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
927         Define.
928         * config/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Don't
929         undefine.
930         * config/mips/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Don't
931         undefine.
932         * config/mips/netbsd.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
933         Don't undefine.
934         * config/rs6000/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
935         Don't undefine.
936         * config/rs6000/linux64.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
937         Don't undefine.
938         * config/sol2.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
939         * config/sparc/netbsd-elf.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
940         Don't undefine.
941         * config/sparc/openbsd64.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
942         Don't undefine.
943         * config/sparc/sp64-elf.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
944         Don't undefine.
945         * config/svr4.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Don't
946         define.
947         * config/xtensa/elf.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Don't
948         undefine.
949
950 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
951
952         * config/ia64/hpux.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Define for
953         non-GNU assembler.
954         * config/m68k/netbsd-elf.h (AS_NEEDS_DASH_FOR_PIPED_INPUT):
955         Remove.
956         * config/m68k/openbsd.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Remove.
957         * config/mips/openbsd.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Remove.
958         * config/sol2.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Define for
959         non-GNU assembler.
960         * config/sparc/sparc.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Remove.
961         * config/svr4.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Remove.
962
963 2010-12-09  Martin Jambor  <mjambor@suse.cz>
964
965         * ipa-prop.c (compute_complex_ancestor_jump_func): Work also if the
966         zero is the first phi parameter.
967
968 2010-12-09  Martin Jambor  <mjambor@suse.cz>
969
970         * ipa-prop.h (struct ipa_parm_adjustment): New field alias_ptr_type.
971         * ipa-prop.c (ipa_modify_call_arguments): Use it.
972         * tree-sra.c (splice_param_accesses): Test that all accesses have the
973         same alias reference type.
974         (turn_representatives_into_adjustments): Set alias_ptr_type of the
975         adjustment.
976
977 2010-12-09  Martin Jambor  <mjambor@suse.cz>
978
979         PR middle-end/46734
980         * tree-sra.c (splice_param_accesses): Check that there are not
981         multiple ADDRESSABLE types.
982
983 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
984
985         * config/arc/arc.h (ASM_SPEC): Remove %{v}.
986         * config/bfin/bfin.h (ASM_SPEC): Remove %{v}.
987         * config/cris/cris.h (ASM_SPEC): Remove %{v:-v}.
988         * config/fr30/fr30.h (ASM_SPEC): Remove %{v}.
989         * config/frv/frv.h (ASM_SPEC): Remove %{v}.
990         * config/i386/linux.h (ASM_SPEC): Remove %{v}.
991         * config/i386/linux64.h (ASM_SPEC): Remove %{v}.
992         * config/i386/mingw-w64.h (ASM_SPEC): Remove %{v}.
993         * config/i386/sol2-10.h (ASM_SPEC): Remove %{v}.
994         * config/i386/vxworks.h (ASM_SPEC): Remove %{v}.
995         * config/i386/x86-64.h (ASM_SPEC): Remove %{v}.
996         * config/lm32/lm32.h (ASM_SPEC): Remove %{v}.
997         * config/m32r/m32r.h (ASM_SPEC): Remove %{v}.
998         * config/m68k/linux.h (ASM_SPEC): Remove %{v:-V}.
999         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{v}.
1000         * config/mips/mips.h (ASM_SPEC): Remove %{v}.
1001         * config/mips/vxworks.h (ASM_SPEC): Remove %{v}.
1002         * config/pa/pa-linux.h (ASM_SPEC): Remove %{v:-V}.
1003         * config/rs6000/freebsd.h (SVR4_ASM_SPEC): Remove %{v}.
1004         * config/rs6000/linux64.h (ASM_SPEC): Remove %{v:-V}.
1005         * config/rs6000/vxworks.h (ASM_SPEC): Remove %{v:-v}.
1006         * config/sparc/openbsd64.h (ASM_SPEC): Remove %{v:-V}.
1007         * config/svr4.h (SVR4_ASM_SPEC): Remove %{v:-V}.
1008         * config/xtensa/elf.h (ASM_SPEC): Remove %{v}.
1009         * config/xtensa/linux.h (ASM_SPEC): Remove %{v}.
1010
1011 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1012
1013         * config/i386/openbsdelf.h (LINK_SPEC): Use %{r:} not %{r*:}.
1014         * config/mips/openbsd.h (LINK_SPEC): Use %{r:} not %{r*:}.
1015         * config/netbsd-aout.h (NETBSD_LINK_SPEC_AOUT): Use %{r:} not
1016         %{r*:}.
1017         * config/netbsd-elf.h (NETBSD_LINK_SPEC_ELF): Use %{r:} not
1018         %{r*:}.
1019         * config/sparc/openbsd64.h (LINK_SPEC): Use %{r:} not %{r*:}.
1020         * config/vax/netbsd-elf.h (LINK_SPEC): Use %{r:} not %{r*:}.
1021
1022 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1023
1024         * config/alpha/freebsd.h (LINK_SPEC): Don't use
1025         %{!dynamic-linker:}.
1026         * config/alpha/linux-elf.h (LINK_SPEC): Likewise.
1027         * config/arm/freebsd.h (LINK_SPEC): Likewise.
1028         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Likewise.
1029         * config/bfin/linux.h (LINK_SPEC): Likewise.
1030         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Likewise.
1031         * config/frv/linux.h (LINK_SPEC): Likewise.
1032         * config/i386/freebsd.h (LINK_SPEC): Likewise.
1033         * config/i386/freebsd64.h (LINK_SPEC): Likewise.
1034         * config/i386/linux.h (LINK_SPEC): Likewise.
1035         * config/i386/linux64.h (LINK_SPEC): Likewise.
1036         * config/i386/openbsdelf.h (LINK_SPEC): Likewise.
1037         * config/ia64/freebsd.h (LINK_SPEC): Likewise.
1038         * config/ia64/linux.h (LINK_SPEC): Likewise.
1039         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
1040         * config/m32r/linux.h (LINK_SPEC): Likewise.
1041         * config/m68k/linux.h (LINK_SPEC): Likewise.
1042         * config/microblaze/linux.h (LINK_SPEC): Likewise.
1043         * config/mips/linux.h (LINK_SPEC): Likewise.
1044         * config/mips/linux64.h (LINK_SPEC): Likewise.
1045         * config/mips/openbsd.h (LINK_SPEC): Likewise.
1046         * config/mn10300/linux.h (LINK_SPEC): Likewise.
1047         * config/netbsd-elf.h (LINK_SPEC): Likewise.
1048         * config/pa/pa-linux.h (LINK_SPEC): Likewise.
1049         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC32,
1050         LINK_OS_LINUX_SPEC64): Likewise.
1051         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC,
1052         LINK_OS_LINUX_SPEC, LINK_OS_GNU_SPEC, LINK_OS_NETBSD_SPEC):
1053         Likewise.
1054         * config/s390/linux.h (LINK_SPEC): Likewise.
1055         * config/sh/linux.h (SUBTARGET_LINK_SPEC): Likewise.
1056         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
1057         * config/sparc/linux.h (LINK_SPEC): Likewise.
1058         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
1059         LINK_SPEC): Likewise.
1060         * config/sparc/openbsd64.h (LINK_SPEC): Likewise.
1061         * config/vax/linux.h (LINK_SPEC): Likewise.
1062         * config/xtensa/linux.h (LINK_SPEC): Likewise.
1063
1064 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1065
1066         * config/bfin/bfin.h (ASM_SPEC): Remove %{n} and %{T}.
1067         * config/frv/frv.h (ASM_SPEC): Likewise.
1068         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
1069         * config/i386/sol2.h (ASM_SPEC): Likewise.
1070         * config/m68k/linux.h (ASM_SPEC): Likewise.
1071         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
1072         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
1073         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
1074         * config/sol2.h (ASM_SPEC): Likewise.
1075         * config/sparc/linux.h (ASM_SPEC): Likewise.
1076         * config/sparc/linux64.h (ASM_SPEC): Likewise.
1077         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
1078         * config/sparc/sysv4.h (ASM_SPEC): Likewise.
1079         * config/svr4.h (SVR4_ASM_SPEC): Likewise.
1080
1081 2010-12-09  Richard Guenther  <rguenther@suse.de>
1082
1083         * reginfo.c (struct subregs_of_mode_node): Remove.
1084         (subregs_of_mode): Likewise.
1085         (som_hash): Likewise.
1086         (som_eq): Likewise.
1087         (invalid_mode_changes): New bitmap.
1088         (record_subregs_of_mode): Get subregs_of_mode argument.
1089         Fill in invalid_mode_changes bitmap.
1090         (find_subregs_of_mode): Get subregs_of_mode argument and pass
1091         it through.
1092         (init_subregs_of_mode): Adjust.
1093         (finish_subregs_of_mode): Likewise.
1094         (invalid_mode_change_p): Query invalid_mode_changes bitmap.
1095
1096 2010-12-09  Richard Guenther  <rguenther@suse.de>
1097
1098         * ira.c (ira): Do not call finish_subregs_of_mode.
1099         * ira-costs.c (finish_costs): Call finish_subregs_of_mode.
1100
1101 2010-12-09  Richard Guenther  <rguenther@suse.de>
1102
1103         * rtl.h (invalid_mode_change_p): Adjust prototype.
1104         * reginfo.c (invalid_mode_change_p): Remove from argument.
1105         * ira-costs.c (print_allocno_costs): Adjust callers.
1106         (find_costs_and_classes): Likewise.
1107
1108 2010-12-09  Jakub Jelinek  <jakub@redhat.com>
1109
1110         * config/s390/s390.md (*mov<mode>cc): Change lgoc and stgoc to
1111         locg and stocg even in comment.
1112         (sync_old_<atomic><mode>): Give mode to UNSPEC_VOLATILE.
1113
1114         PR target/41082
1115         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Use stvx
1116         instead of stve*x.
1117         (altivec_expand_stv_builtin): For op0 use mode of operand 1 instead
1118         of operand 0.
1119         * config/rs6000/altivec.md (VI_scalar): New mode attr.
1120         (altivec_stve<VI_char>x, *altivec_stvesfx): Use scalar instead of
1121         vector mode for operand 0, put operand 1 into UNSPEC.
1122
1123 2010-12-09  Yao Qi  <yao@codesourcery.com>
1124
1125         * config/arm/arm.c (arm_preferred_rename_class): Implement targethook
1126         PREFERRED_RENAME_CLASS.
1127
1128 2010-12-08  Ian Lance Taylor  <iant@google.com>
1129
1130         * doc/sourcebuild.texi (Front End): Remove reference to
1131         snapshot-README and snapshot-index.html.
1132
1133 2010-12-08  Ian Lance Taylor  <iant@google.com>
1134
1135         * doc/sourcebuild.texi (Texinfo Manuals): Change update_web_docs
1136         to update_web_docs_svn.
1137         (Front End): Likewise.
1138
1139 2010-12-08  Iain Sandoe <iains@gcc.gnu.org>
1140
1141         gcc/config.gcc (with_cpu): Default i[34567]86-*-darwin* and
1142         x86_64-*-darwin* to with_cpu:-core2.
1143         gcc/config/i386/mmx.md (*mov<mode>_internal_rex64): Replace movq
1144         with movd for darwin assembler.
1145         gcc/config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
1146         (*vec_concatv2di_rex64_sse): Ditto.
1147
1148 2010-12-08  Richard Guenther  <rguenther@suse.de>
1149             Sebastian Pop  <sebastian.pop@amd.com>
1150
1151         PR tree-optimization/45230
1152         PR tree-optimization/45231
1153         PR tree-optimization/45370
1154         * sese.c (rename_uses): Returns a bool.  Call
1155         recompute_tree_invariant_for_addr_expr only on the RHS of a
1156         GIMPLE_ASSIGN.
1157         (graphite_copy_stmts_from_block): Call fold_stmt_inplace when
1158         rename_uses returns true.
1159         * tree-ssa-copy.c (replace_exp): Add a comment about calling
1160         fold_stmt_inplace after replace_exp.
1161
1162 2010-12-08  Mike Stump  <mikestump@comcast.net>
1163
1164         PR debug/46749
1165         * config/darwin.h (COLLECT_RUN_DSYMUTIL): Add.
1166         (DSYMUTIL_SPEC): Use `linker' flags instead to handle lto better.
1167         * config/darwin9.h (COLLECT_RUN_DSYMUTIL): Add.
1168         (DSYMUTIL_SPEC): Use `linker' flags instead to handle lto better.
1169         * collect2.c (post_ld_pass): Add.
1170         (process_args): Add.
1171         (maybe_run_lto_and_relink): Call post_ld_pass after ld.
1172         (main): Likewise.  Call process_args.
1173
1174 2010-12-08  Jakub Jelinek  <jakub@redhat.com>
1175
1176         PR middle-end/46844
1177         * regrename.c (check_new_reg_p): Add ATTRIBUTE_UNUSED to reg
1178         parameter.
1179
1180 2010-12-08  Richard Earnshaw  <rearnsha@arm.com>
1181
1182         PR target/46631
1183         * arm.c (thumb2_reorg): Also try to reduce <commutative_op> Rd, Rn, Rd
1184         into a 16-bit instruction.
1185
1186 2010-12-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
1187
1188         PR middle-end/42694
1189         * builtins.c (expand_builtin_pow_root): Don't optimize pow(x,y)
1190         where y is 0.25, 1./6., or 0.75 if the target does not have a sqrt
1191         instruction, but do optimize if y is 0.5 or 1./3. since that
1192         changes an expensive call into a cheaper one.
1193
1194 2010-12-08  Richard Guenther  <rguenther@suse.de>
1195
1196         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use a shift
1197         instead of a division to divide by BITS_PER_UNIT.
1198
1199 2010-12-08  Richard Guenther  <rguenther@suse.de>
1200
1201         * gimplify.c (gimple_tree_eq): Assert hashes are equal only
1202         when checking is enabled.
1203
1204 2010-12-07  Andrey Belevantsev  <abel@ispras.ru>
1205
1206         PR target/43603
1207         * haifa-sched.c (sched_create_recovery_edges): Update
1208         dominator info.
1209         * sel-sched-ir.c (maybe_tidy_empty_bb): Update dominator info
1210         after deleting an empty block.
1211         (tidy_control_flow): Also verify dominators.
1212         (sel_remove_bb): Update dominator info after removing a block.
1213         (sel_redirect_edge_and_branch_force): Assert that no unreachable
1214         blocks will be created. Update dominator info.
1215         (sel_redirect_edge_and_branch): Update dominator info when
1216         basic blocks do not become unreachable.
1217         (sel_remove_loop_preheader): Update dominator info.
1218
1219 2010-12-07  Richard Guenther  <rguenther@suse.de>
1220
1221         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
1222         Reset alignment information.
1223         (bump_vector_ptr): Likewise.
1224
1225 2010-12-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1226
1227         PR middle-end/46671
1228         PR target/46685
1229         * config/pa/pa.c (pa_function_section): New function.
1230         (TARGET_ASM_FUNCTION_SECTION): Define.
1231
1232 2010-12-07  Ian Lance Taylor  <iant@google.com>
1233             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1234
1235         PR bootstrap/46810
1236         * configure.ac: Disable AC_MSG_ERROR while looking for the C++
1237         preprocessor.
1238         * configure: Rebuild.
1239
1240 2010-12-07  Paul Koning  <ni1d@arrl.net>
1241
1242         * config/pdp11/pdp11.c (output_addr_const_pdp11): Output negative
1243         values with sign rather than as unsigned.
1244
1245 2010-12-07  Paul Koning  <ni1d@arrl.net>
1246
1247         * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_SECTION): Define.
1248         (pdp11_function_section): New function.
1249
1250 2010-12-07  Joseph Myers  <joseph@codesourcery.com>
1251
1252         * config/mcore/mcore.c Don't include assert.h.
1253         (layout_mcore_frame, handle_structs_in_regs): Use gcc_assert.
1254         * config/spu/spu.c: Don't include assert.h.
1255         (spu_sms_res_mii): Use gcc_assert.
1256
1257 2010-12-07  Sebastian Pop  <sebastian.pop@amd.com>
1258
1259         PR tree-optimization/42327
1260         * tree-data-ref.c (omega_setup_subscript): Call build_int_cst
1261         instead of using integer_minus_one_node.
1262
1263 2010-12-07  Nathan Froyd  <froydnj@codesourcery.com>
1264
1265         PR c++/45330
1266         * params.def (CXX_MAX_NAMESPACES_FOR_DIAGNOSTIC_HELP): New parameter.
1267         * doc/invoke.texi (cxx-max-namespaces-for-diagnostic-help): Document.
1268
1269 2010-12-07  Richard Guenther  <rguenther@suse.de>
1270
1271         PR tree-optimization/46832
1272         * tree-ssa-math-opts.c (execute_optimize_widening_mul): Check
1273         that the call has a lhs.
1274
1275 2010-12-07  Yao Qi  <yao@codesourcery.com>
1276
1277         * Makefile.in: Add $(TARGET_H) to the regrename.o rule.
1278         * regrename.c (struct du_head): Add new element length.
1279         (sort_du_head, get_element, merge, merge_sort_comparison):
1280         New functions of merge sort implementation to du_head list.
1281         (regrename_optimize): Sort du_head linked list by length.
1282         Iterate registers in a preferred-register-first order.
1283         Move some code to ...
1284         (check_new_reg_p): here.  New function.
1285         (create_new_chain):  Initialize length.
1286         (scan_rtx_reg): Increase length for non-debug insns.
1287         * target.def: New hook preferred_rename_class.
1288         * targhook.c (default_preferred_rename_class): New.
1289         * targhook.h: Declare it.
1290         * doc/tm.texi.in: New hook TARGET_PREFERRED_RENAME_CLASS.
1291         * doc/tm.texi: Regenerate.
1292
1293 2010-12-07  Jakub Jelinek  <jakub@redhat.com>
1294
1295         PR debug/46799
1296         * tree-parloops.c (separate_decls_in_region): Use UNKNOWN_LOCATION
1297         instead of BUILTINS_LOCATION.
1298         (create_loop_fn): Add LOC argument, pass it to build_decl instead of
1299         BUILTINS_LOCATION.
1300         (create_parallel_loop): Add LOC argument, use it for OMP clauses
1301         and GIMPLE_*OMP* statements.
1302         (gen_parallel_loop): Determine locus for the parallel loop, pass it
1303         to create_loop_fn and create_parallel_loop.
1304         * cfgexpand.c (gimple_expand_cfg): For builtin functions, call
1305         set_curr_insn_source_location (UNKNOWN_LOCATION).
1306
1307 2010-12-07  Joern Rennecke  <amylaar@spamcop.net>
1308             Richard Guenther  <rguenther@suse.de>
1309
1310         PR target/46737
1311         * config/bfin/bfin.c (BB_AUX_INDEX): Cast to intptr_t.
1312         (bfin_reorder_loops): Change type of index to intptr_t.
1313
1314 2010-12-07  Richard Guenther  <rguenther@suse.de>
1315
1316         PR tree-optimization/46726
1317         * tree-inline.c (estimate_num_insns): Special case pow (x, 2.0).
1318
1319 2010-12-07  Richard Guenther  <rguenther@suse.de>
1320
1321         * tree-ssa-math-opts.c (execute_optimize_widening_mul): Unlink
1322         virtual operands.
1323
1324 2010-12-07  Nicola Pero  <nicola.pero@meta-innovation.com>
1325
1326         * c-parser.c (c_parser_typeof_specifier): Removed special
1327         treatment of objc_volatilized attribute for Objective-C.
1328
1329 2010-12-06  Vladimir Makarov  <vmakarov@redhat.com>
1330
1331         * ira.c (update_equiv_regs): Prohibit move insns if
1332         pressure-sensitive scheduling was done.
1333
1334 2010-12-06  Nicola Pero  <nicola.pero@meta-innovation.com>
1335
1336         * c-parser.c (c_parser_for_statement): Use c_fully_fold() instead
1337         of c_process_expr_stmt() for the iterating and collection
1338         expressions of an Objective-C fast enumeration loop.
1339
1340 2010-12-06  Jakub Jelinek  <jakub@redhat.com>
1341
1342         PR debug/45997
1343         * dwarf2out.c (modified_type_die): If both is_const_type and
1344         is_volatile_type is set, start with DW_TAG_const_type or
1345         DW_TAG_volatile_type depending on where we get qualified type
1346         in the recursive call.
1347
1348         PR target/43897
1349         * config/ia64/ia64.c (rtx_needs_barrier): Handle asm CLOBBER
1350         as a store into that register.
1351
1352         PR tree-optimization/46528
1353         PR debug/46338
1354         * profile.c (branch_prob): Make sure last is never set to a debug
1355         stmt.
1356
1357         PR debug/46771
1358         * reginfo.c (init_subregs_of_mode): Don't call find_subregs_of_mode
1359         on DEBUG_INSNs.
1360
1361         PR rtl-optimization/46777
1362         * cfglayout.c (duplicate_insn_chain): Avoid duplicating
1363         also barrier after tablejump.
1364
1365 2010-12-06  Joern Rennecke  <amylaar@spamcop.net>
1366             Richard Henderson  <rth@redhat.com>
1367
1368         PR target/46740
1369         * config/vax/vax.c (vax_output_int_move): Fold #if into if.
1370
1371 2010-12-06  Eric Botcazou  <ebotcazou@adacore.com>
1372
1373         * config/sparc/sol2.h (PUSHSECTION_FORMAT): Redefine unconditionally.
1374         * config/sparc/sol2-gas.h (PUSHSECTION_FORMAT): Redefine.
1375
1376 2010-12-06  Joern Rennecke  <amylaar@spamcop.net>
1377
1378         PR target/46735
1379         * config/frv/predicates.md (gpr_or_int12_operand): Use IN_RANGE.
1380         (gpr_fpr_or_int12_operand, gpr_or_int10_operand): Likewise.
1381         (int12_operand, int_2word_operand, uint16_operand): Likewise.
1382         (fpr_or_int6_operand, int6_operand, int5_operand): Likewise.
1383         (uint5_operand, uint4_operand): Likewise.
1384         * config/frv/frv.h (IN_RANGE_P): Delete.
1385         (GPR_P, FPR_P, CC_P, ICC_P, FCC_P, CR_P, ICR_P, FCR_P): Use IN_RANGE.
1386         (ACC_P, ACCG_P, SPR_P, CONST_OK_FOR_I, CONST_OK_FOR_J): Likewise.
1387         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
1388         (CONST_OK_FOR_P): Likewise.
1389         * config/frv/frv.md (*movqicc_internal2_int): Likewise.
1390         (*movqicc_internal2_float, *movhicc_internal2_int): Likewise.
1391         (*movhicc_internal2_float, *movsicc_internal2_int): Likewise.
1392         (*movsicc_internal2_float, casesi): Likewise.
1393         * config/frv/frv.c (frv_frame_offset_rtx): Likewise.
1394         (frv_asm_output_mi_thunk, frv_legitimate_address_p_1): Likewise.
1395         (frv_emit_movsi, output_move_single, frv_emit_cond_move): Likewise.
1396         (frv_split_cond_move, frv_rtx_costs): Likewise.
1397
1398         PR target/46739
1399         * config/mmix/mmix.c (mmix_intval): Split shift count.
1400
1401 2010-12-06  H.J. Lu  <hongjiu.lu@intel.com>
1402
1403         * config/i386/i386.c (m_COREI7): New.
1404         (initial_ix86_tune_features): Turn on
1405         X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL and
1406         X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL for Core i7.
1407
1408 2010-12-06  H.J. Lu  <hongjiu.lu@intel.com>
1409
1410         * config.gcc: Allow corei7-avx for --with-arch/--with-cpu.
1411
1412         * config/i386/driver-i386.c (host_detect_local_cpu): Support
1413         Sandy Bridge.
1414
1415         * config/i386/i386.c (override_options): Handle "corei7-avx".
1416
1417         * doc/invoke.texi: Document corei7-avx.
1418
1419 2010-12-06  Richard Guenther  <rguenther@suse.de>
1420
1421         PR tree-optimization/46806
1422         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do not
1423         coalesce different types.
1424
1425 2010-12-06  Richard Guenther  <rguenther@suse.de>
1426
1427         PR tree-optimization/46785
1428         * tree-vect-loop.c (vect_is_simple_reduction_1): Also allow
1429         call statements as operand definition.
1430
1431 2010-12-06  Mingjie Xing  <mingjie.xing@gmail.com>
1432
1433         * doc/tm.texi.in: Fix typo.
1434         * doc/tm.texi: Regenerate.
1435
1436 2010-12-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1437
1438         * config.gcc [hppa[12]*-*-hpux10*, hppa[12]*-*-hpux11*]: Fix typo in
1439         last change.
1440
1441 2010-12-06  Nicola Pero  <nicola.pero@meta-innovation.com>
1442
1443         * c-family/c-common.h: Removed the declarations of all the objc_
1444         callbacks, and moved them into c-objc.h.  Removed
1445         objc_ivar_visibility_kind and moved it into c-objc.h.
1446         * c-family/c-objc.h: New file.
1447         * c-family/c-common.c: Include c-objc.h.
1448         * c-family/c-format.c: Same change.
1449         * c-family/stub-objc.c: Same change.
1450         * c-decl.c: Include c-family/c-objc.h.
1451         * c-parser.c: Same change.
1452         * c-typeck.c: Same change.
1453         * c-config-lang.in (gtfiles): Added c-family/c-objc.h.
1454         * Makefile.in (c-decl.o): Depend on c-family/c-objc.h.
1455         (c-parser.o): same change.
1456         (c-typeck.o): Same change.
1457         (c-family/c-format.o): Same change.
1458         (c-family/stub-objc.o): Same change.
1459         (c-family/c-common.o): Same change.
1460         (PLUGIN_HEADERS): Added c-family/c-objc.h.
1461
1462 2010-12-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1463
1464         * config.gcc [hppa[12]*-*-hpux10*, hppa[12]*-*-hpux11*]:  Ignore
1465         --with-dwarf2 option.
1466
1467 2010-12-03  Jan Hubicka  <jh@suse.cz>
1468
1469         * lto-streamer-in.c (input_cfg): Fix pasto.
1470
1471 2010-12-03  Jan Hubicka  <jh@suse.cz>
1472
1473         * ipa.c (cgraph_externally_visible_p): Do not localize builtins
1474         and functions with user asm defined names.
1475         (varpool_externally_visible_p): Do not localize vars with user
1476         asm defined names.
1477
1478 2010-12-03  Jan Hubicka  <jh@suse.cz>
1479
1480         * dwarf2asm.c (dw2_output_indirect_constant_1): Set DECL_ASSEMBLER_NAME
1481         to prevent mangling with lto frontend.
1482
1483 2010-12-03  Jan Hubicka  <jh@suse.cz>
1484
1485         * Makefile.in (LTO_STREAMER_H): Add GCOV_IO_H.
1486         * lto-cgraph.c (merge_profile_summaries): Fix thinko.
1487
1488 2010-12-03  Jan Hubicka  <jh@suse.cz>
1489
1490         PR tree-optimization/46760
1491         * cgraph.c (cgraph_create_node): Initialize count_materialization_scale.
1492         * cgraph.h (struct cgraph_node): Add count_materialization_scale.
1493         * lto-cgraph.c (lto_output_edge): Fix assert.
1494         (lto_output_node): Output count_materialization_scale.
1495         (output_profile_summary): Output only runs and sum_max.
1496         (input_node): Input count_materialization_scale.
1497         (input_profile_summary): Read data into file specific gcov summary.
1498         (merge_profile_summaries): New function.
1499         (input_cgraph): Update call of input_profile_summary;
1500         call merge_profile_summaries.
1501         * lto-streamer-in.c (input_cfg): Add count_materialization_scale arg;
1502         rescale counts at read in.
1503         (intput_bb): Likewise.
1504         (input_function): Update call of input_bb.
1505         (lto_read_body): Update call of input_cfg.
1506         * lto-streamer.h: Inlclude gcov-io.h
1507         (lto_file_decl_data): Add gcov_ctr_summary.
1508
1509 2010-12-03  Dave Korn  <dave.korn.cygwin@gmail.com>
1510
1511         * doc/tm.texi.in (Cond. Exec. Macros): Rename node from this ...
1512         (Cond Exec Macros): ... to this.
1513         * doc/tm.texi: Regenerate.
1514
1515 2010-12-03  Jason Merrill  <jason@redhat.com>
1516
1517         PR debug/46123
1518         * dwarf2out.c (gen_tagged_type_die): Don't put local types in
1519         a declaration DIE.
1520
1521 2010-12-03  Nathan Froyd  <froydnj@codesourcery.com>
1522
1523         * config/arm/arm.c (arm_legitimate_index_p): Split
1524         VALID_NEON_QREG_MODE and VALID_NEON_DREG_MODE cases.  Permit
1525         slightly larger constants in the latter case.
1526         (thumb2_legitimate_index_p): Likewise.
1527
1528 2010-12-03  Joseph Myers  <joseph@codesourcery.com>
1529
1530         * common.opt (N, Q, Qn, Qy, Z, n, r, s, t): New options.
1531         * gcc.c (cc1_options): Add %{Qy:}.
1532
1533 2010-12-03  Joseph Myers  <joseph@codesourcery.com>
1534
1535         * gcc.c (LINK_COMMAND_SPEC): Don't handle -A, -d or -m.
1536         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
1537         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Likewise.
1538
1539 2010-12-03  Alexander Monakov  <amonakov@ispras.ru>
1540
1541         PR rtl-optimization/45354
1542         * sel-sched-ir.c (jump_leads_only_to_bb_p): Rename to ...
1543         (bb_has_removable_jump_to_p): This.  Update all callers. Make static.
1544         Allow BBs ending with a conditional jump.  Forbid EDGE_CROSSING jumps.
1545         * sel-sched-ir.h (jump_leads_only_to_bb_p): Delete prototype.
1546
1547 2010-12-03  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1548
1549         * basic-block.h (struct edge_prediction): Remove forward
1550         declaration.
1551         * tree-flow.h (struct edge_prediction): Move from here...
1552         * predict.c (struct edge_prediction): ...to here.
1553         * cselib.h (struct elt_list): Move from here...
1554         * cselib.c (struct elt_list): ...to here.
1555
1556 2010-12-02  Ian Lance Taylor  <iant@google.com>
1557
1558         * gcc.c (default_compilers): Add entry for ".go".
1559         * common.opt: Add -static-libgo as a driver option.
1560         * doc/install.texi (Configuration): Mention libgo as an option for
1561         --enable-shared.  Mention go as an option for --enable-languages.
1562         * doc/invoke.texi (Overall Options): Mention .go as a file name
1563         suffix.  Mention go as a -x option.
1564         * doc/frontends.texi (G++ and GCC): Mention Go as a supported
1565         language.
1566         * doc/sourcebuild.texi (Top Level): Mention libgo.
1567         * doc/standards.texi (Standards): Add section on Go language.
1568         Move references for other languages into their own section.
1569         * doc/contrib.texi (Contributors): Mention that I contributed the
1570         Go frontend.
1571
1572 2010-12-03  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1573
1574         * tree.h (struct call_expr_arg_iterator_d): Remove GTY tag.
1575         (const_call_expr_arg_iterator_d): Likewise.
1576         (expanded_location): Likewise.
1577         * c-tree.h (struct c_arg_tag_d): Likewise.
1578         * dwarf2out.c (struct cfa_loc): Likewise.
1579         (struct skeleton_chain_struct): Likewise.
1580         * except.c (struct ttypes_filter): Likewise.
1581         * cselib.h (struct cselib_val_struct): Likewise.
1582         (elt_loc_list): Likewise.
1583         (elt_list): Likewise.
1584         * varasm.c (struct addr_const): Likewise.
1585         * tree-flow.h (struct edge_prediction): Likewise.
1586         (struct int_tree_map): Likewise.
1587         (struct _edge_var_map): Likewise.
1588
1589 2010-12-02  H.J. Lu  <hongjiu.lu@intel.com>
1590
1591         PR target/46768
1592         * config/i386/i386.c (initial_ix86_tune_features): Turn on
1593         X86_TUNE_INTER_UNIT_MOVES for Core 2 and Core i7.
1594
1595 2010-12-02  H.J. Lu  <hongjiu.lu@intel.com>
1596
1597         * config.gcc: Allow corei7 for --with-arch=/--with-cpu=.
1598
1599 2010-12-02  Ian Lance Taylor  <iant@google.com>
1600
1601         * configure.ac: AC_DEFINE ENABLE_BUILD_WITH_CXX.  Check for C++
1602         header files unordered_map, tr1/unordered_map, and ext/hash_map.
1603         * configure, config.in: Rebuild.
1604
1605 2010-11-02  Eric Botcazou  <ebotcazou@adacore.com>
1606
1607         PR target/46685
1608         * config/sparc/sparc.c (can_use_mov_pic_label_ref): New predicate.
1609         (sparc_expand_move): Call it to decide whether to emit the special
1610         mov{si,di}_pic_label_ref patterns.
1611         (sparc_legitimize_pic_address): Call it to decide whether to emit
1612         the regular PIC sequence for labels.  Fix long line.
1613         (sparc_file_end): Set is_thunk for the PIC helper.
1614
1615 2010-12-02  Eric Botcazou  <ebotcazou@adacore.com>
1616
1617         * tree.c (build_range_type_1): Do not SET_TYPE_STRUCTURAL_EQUALITY
1618         for a non-shared type.
1619
1620 2010-12-02  Sebastian Pop  <sebastian.pop@amd.com>
1621
1622         PR middle-end/45297
1623         * tree-scalar-evolution.c (interpret_rhs_expr): Handle ADDR_EXPR
1624         with MEM_REFs as POINTER_PLUS_EXPR.
1625
1626 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
1627
1628         * config/i386/linux.h, config/m32r/linux.h, config/m68k/linux.h,
1629         config/sparc/linux.h, config/sparc/linux64.h: Remove comments
1630         mentioning /lib/elf.
1631
1632 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
1633
1634         * config/bfin/bfin.h (LINK_SPEC): Remove %{b}.
1635         * config/frv/frv.h (LINK_SPEC): Remove %{b}.
1636         * config/i386/netware.h (LINK_SPEC): Remove %{b}.
1637         * config/i386/nto.h (LINK_SPEC): Remove %{b}.
1638         * config/lm32/uclinux-elf.h (LINK_SPEC): Remove %{b}.
1639         * config/sol2.h (LINK_SPEC): Remove %{b}.
1640         * config/svr4.h (LINK_SPEC): Remove %{b}.
1641
1642 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
1643
1644         * config/i386/freebsd.h (LINK_SPEC): Cut long comment.
1645         * config/i386/linux.h (LINK_SPEC): Cut long comment.
1646         * config/i386/netware.h (LINK_SPEC): Remove %{V}.
1647         * config/m32r/linux.h (LINK_SPEC): Cut long comment.
1648         * config/m68k/linux.h (LINK_SPEC): Cut long comment.
1649         * config/sparc/linux.h (LINK_SPEC): Cut long comment.
1650         (ASM_SPEC): Remove %{V} and %{v:%{!V:-V}}.
1651         * config/sparc/linux64.h (LINK_SPEC): Cut long comment.
1652         (ASM_SPEC): Remove %{V} and %{v:%{!V:-V}}.
1653         * config/sparc/netbsd-elf.h (ASM_SPEC): Remove %{V} and
1654         %{v:%{!V:-V}}.
1655
1656 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
1657
1658         * gcc.c (trad_capable_cpp, default_compilers): Don't handle
1659         -ftraditional.
1660
1661 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
1662
1663         * config/alpha/freebsd.h (LINK_SPEC): Don't handle -Wl,.
1664         * config/bfin/bfin.h (ASM_SPEC): Don't handle -Wa,.
1665         * config/frv/frv.h (ASM_SPEC): Don't handle -Wa,.
1666         * config/lm32/uclinux-elf.h (LINK_SPEC): Don't handle -Wl,.
1667         * config/microblaze/microblaze.h (LINK_SPEC): Don't handle -Wl,.
1668         * config/mn10300/linux.h (ASM_SPEC): Don't handle -Wa,.
1669         * config/pa/pa-linux.h (ASM_SPEC): Don't handle -Wa,.
1670         * config/rs6000/freebsd.h (SVR4_ASM_SPEC): Don't handle -Wa,.
1671         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Don't handle -Wa,.
1672         * config/rs6000/sysv4.h (LINK_SPEC): Don't handle -Wl,.
1673         * config/rs6000/vxworks.h (ASM_SPEC): Don't handle -Wa,.
1674         * config/sol2.h (ASM_SPEC): Don't handle -Wa,.
1675         * config/sparc/linux.h (ASM_SPEC): Don't handle -Wa,.
1676         * config/sparc/linux64.h (ASM_SPEC): Don't handle -Wa,.
1677         * config/sparc/sp-elf.h (ASM_SPEC): Don't handle -Wa,.
1678         * config/sparc/sysv4.h (ASM_SPEC): Don't handle -Wa,.
1679         * config/svr4.h (SVR4_ASM_SPEC): Don't handle -Wa,.
1680         * config/vxworks.h (VXWORKS_LINK_SPEC): Don't handle -Wl,.
1681
1682 2010-12-02  Paul Koning  <ni1d@arrl.net>
1683
1684         * config/pdp11/pdp11.c (output_jump): Map unsigned to signed
1685         opcodes if CC_NO_OVERFLOW is set.
1686         (notice_update_cc_on_set): Correct setting of CC0 as a side
1687         effect; set CC_NO_OVERFLOW for cases where C flag is not
1688         meaningful.
1689
1690 2010-12-02  Ian Lance Taylor  <iant@google.com>
1691
1692         * doc/install.texi (Configuration): Update default for
1693         --with-boot-ldflags.
1694
1695 2010-12-02  Nathan Froyd  <froydnj@codesourcery.com>
1696
1697         PR c/45062
1698         * c-decl.c (grokparms): Set arg_info->parms to NULL_TREE when
1699         !funcdef_flag.
1700
1701 2010-12-02  Sebastian Pop  <sebastian.pop@amd.com>
1702
1703         PR tree-optimization/45199
1704         * tree-data-ref.c (mem_write_stride_of_same_size_as_unit_type_p): New.
1705         (stores_zero_from_loop): Call
1706         mem_write_stride_of_same_size_as_unit_type_p.
1707         * tree-data-ref.h (stride_of_unit_type_p): New.
1708         * tree-loop-distribution.c (generate_memset_zero): Simplified.
1709         Call stride_of_unit_type_p.
1710         (build_rdg_partition_for_component): Do not call
1711         rdg_flag_similar_memory_accesses when
1712         flag_tree_loop_distribute_patterns is set.
1713
1714 2010-12-02  Richard Guenther  <rguenther@suse.de>
1715
1716         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Disregard
1717         sign-changing conversions for induction detection.
1718
1719 2010-12-02  Richard Guenther  <rguenther@suse.de>
1720
1721         PR tree-optimization/46723
1722         * tree-vect-loop.c (get_initial_def_for_induction): Strip
1723         conversions from the induction evolution and apply it to
1724         the result instead.
1725         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Handle
1726         assigns for induction defs.
1727
1728 2010-12-02  Richard Guenther  <rguenther@suse.de>
1729
1730         * value-prof.c (gimple_ic): Use stmt_ends_bb_p to detect
1731         the case we need to split the edge and not the block.
1732
1733 2010-12-02  Bernd Schmidt  <bernds@codesourcery.com>
1734
1735         DFA model for Core 2 and Core i7 scheduling.
1736
1737         * config/i386/core2.md: New DFA model for Core 2 and Core i7.
1738         * config/i386/i386.c (ix86_option_override_internal): Update entries
1739         for Core 2 and Core i7.
1740         (ix86_issue_rate): Set issue rate to 3 [be realistic].
1741         * config/i386/i386.md: Include "core2.md".
1742         (define_attr cpu): Add "corei7".
1743
1744 2010-12-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
1745
1746         Define tuning for Core 2 and Core i7.
1747
1748         * config/i386/i386-c.c (ix86_target_macros_internal): Update.
1749         * config/i386/i386.c (core2_cost): Delete, use generic costs instead.
1750         (m_CORE2): Replace with m_CORE2_{32,64}.
1751         (m_CORE2I7{,_32,_64}): New macros.
1752         (m_GENERIC32, m_GENERIC64): Update.
1753         (initial_ix86_tune_features, x86_accumulate_outgoing_args,)
1754         (x86_arch_always_fancy_math_387): Set m_CORE2I7_32 iff m_GENERIC32 and
1755         set m_CORE2I7_64 iff m_GENERIC64.
1756         (processor_target_table): Use generic costs for Core 2 and Core i7.
1757         (ix86_option_override_internal): Update entries for Core 2 and Core i7.
1758         (ix86_issue_rate): Remove entry for Core 2.
1759         (ia32_multipass_dfa_lookahead, ix86_sched_init_global): Update.
1760         * config/i386/i386.h (TARGET_CORE2_32, TARGET_CORE2_64): New macros.
1761         (TARGET_CORE2): Update.
1762         (PROCESSOR_CORE2_32, PROCESSOR_CORE2_64): New constants.
1763         (PROCESSOR_CORE2): Remove.
1764
1765 2010-12-02  Richard Guenther  <rguenther@suse.de>
1766
1767         * lto-streamer.h (LTO_major_version): Bump to 2.
1768
1769 2010-12-02  Richard Guenther  <rguenther@suse.de>
1770
1771         PR lto/44871
1772         * gimple.c (canonical_type_hash_cache): New hashtable.
1773         (gimple_type_hash): Make a wrapper around ...
1774         (gimple_type_hash_1): ... this.  Take gtc_mode argument.
1775         (gimple_canonical_type_hash): Likewise.
1776         (gtc_visit): Take a gtc_mode argument.
1777         (gimple_types_compatible_p_1): Likewise. Do not compare struct
1778         tag names or field names when computing canonical types.
1779         (gimple_types_compatible_p): Adjust.
1780         (visit): Take a gtc_mode argument.
1781         (iterative_hash_gimple_type): Likewise.  Do not hash struct tag
1782         names or field names when computing hashes of canonical types.
1783         (gimple_register_canonical_type): Use gimple_canonical_type_hash
1784         for the hash.
1785         (print_gimple_types_stats): Dump stats of canonical_type_hash_cache.
1786         (free_gimple_type_tables): Free canonical_type_hash_cache.
1787
1788 2010-12-02  Richard Guenther  <rguenther@suse.de>
1789             Ira Rosen  <irar@il.ibm.com>
1790
1791         PR tree-optimization/46663
1792         * tree-vect-patterns.c (vect_recog_pow_pattern): Check that
1793         FUNCTION_DECL exists and that it's a builtin.
1794
1795 2010-12-02  Jie Zhang  <jie@codesourcery.com>
1796
1797         PR middle-end/46674
1798         * varasm.c (compute_visible_aliases): Handle user set
1799         assembler name.
1800
1801 2010-12-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
1802
1803         * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
1804         thinko regarding setting -mno-<xxx> debug switches.
1805         (rs6000_rtx_costs): Add FMA.  Delete old rtl based FMA costs.
1806
1807 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
1808
1809         * intl.c: Don't include tm.h.
1810         * Makefile.in (intl.o): Don't depend on $(TM_H).
1811
1812 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
1813
1814         * graphite-sese-to-poly.c (analyze_drs_in_stmts): Fix set but
1815         unused warning.
1816         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
1817
1818 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
1819
1820         * graphite-sese-to-poly.c (analyze_drs): Removed.
1821         (build_scop_drs): Do not call analyze_drs.
1822         (analyze_drs_in_stmts): New.
1823         (insert_stmts): New.
1824         (insert_out_of_ssa_copy): Call analyze_drs_in_stmts.
1825         (insert_out_of_ssa_copy_on_edge): Same.
1826         (rewrite_close_phi_out_of_ssa): Call insert_stmts.
1827         (rewrite_phi_out_of_ssa): Same.
1828         (rewrite_cross_bb_scalar_dependence): Same.
1829         (split_reduction_stmt): Move data references in the new basic blocks.
1830         (translate_scalar_reduction_to_array_for_stmt): Call insert_stmts.
1831
1832 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
1833
1834         * sese.c (rename_uses): Do not handle ADDR_EXPR in LHS of assignments.
1835
1836 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
1837
1838         PR middle-end/45297
1839         * graphite-poly.c (new_poly_bb): Returns a poly_bb_p.  Do not take
1840         the reduction bool in parameter.  Clear PBB_IS_REDUCTION.  Set GBB_PBB.
1841         * graphite-poly.h (new_poly_bb): Update declaration.
1842         (gbb_from_bb): Moved here...
1843         (pbb_from_bb): New.
1844         * graphite-sese-to-poly.c (var_used_in_not_loop_header_phi_node):
1845         Removed.
1846         (graphite_stmt_p): Removed.
1847         (try_generate_gimple_bb): Returns a gimple_bb_p.  Do not pass in
1848         sbitmap reductions.  Always build a gimple_bb_p.  Do not call
1849         new_poly_bb.
1850         (build_scop_bbs_1): Do not pass in sbitmap reductions.
1851         (build_scop_bbs): Same.
1852         (gbb_from_bb): ... from here.
1853         (add_conditions_to_constraints): Moved up.
1854         (analyze_drs): New.
1855         (build_scop_drs): Call analyze_drs.  Remove all the PBBs that do
1856         not contain data references.
1857         (new_pbb_from_pbb): New.
1858         (insert_out_of_ssa_copy_on_edge): Call new_pbb_from_pbb after a
1859         block is split.
1860         (rewrite_close_phi_out_of_ssa): Update call to
1861         insert_out_of_ssa_copy_on_edge.
1862         (rewrite_reductions_out_of_ssa): Now static.
1863         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
1864         (split_pbb): New.
1865         (split_reduction_stmt): Call split_pbb.
1866         (translate_scalar_reduction_to_array): Pass in the scop, do not
1867         pass in the sbitmap reductions.
1868         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
1869         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
1870         (rewrite_commutative_reductions_out_of_ssa): Same.
1871         (build_poly_scop): Call build_scop_bbs,
1872         rewrite_commutative_reductions_out_of_ssa,
1873         rewrite_reductions_out_of_ssa, and
1874         rewrite_cross_bb_scalar_deps_out_of_ssa.  Move build_scop_drs
1875         before scop_to_lst.
1876         * graphite-sese-to-poly.h (rewrite_commutative_reductions_out_of_ssa):
1877         Removed declaration.
1878         (rewrite_reductions_out_of_ssa): Same.
1879         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
1880         (build_scop_bbs): Same.
1881         * graphite.c (graphite_transform_loops): Do not initialize reductions.
1882         Do not call build_scop_bbs,
1883         rewrite_commutative_reductions_out_of_ssa,
1884         rewrite_reductions_out_of_ssa, and
1885         rewrite_cross_bb_scalar_deps_out_of_ssa.
1886         * sese.h (struct gimple_bb): Add field pbb.
1887         (GBB_PBB): New.
1888
1889 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
1890
1891         * graphite-sese-to-poly.c (handle_scalar_deps_crossing_scop_limits):
1892         New.
1893         (rewrite_cross_bb_scalar_deps): Pass in the scop.  Call
1894         handle_scalar_deps_crossing_scop_limits.
1895         (rewrite_cross_bb_scalar_deps_out_of_ssa): Create an empty BB
1896         after the scop.  Update call to rewrite_cross_bb_scalar_deps.
1897
1898 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
1899
1900         * sese.c (rename_uses): Call recompute_tree_invariant_for_addr_expr
1901         when replacing a constant in an ADDR_EXPR.
1902
1903 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
1904
1905         * graphite-blocking.c (lst_do_strip_mine_loop): Extra parameter
1906         for the stride.
1907         (lst_do_strip_mine): Same.
1908         (scop_do_strip_mine): Same.
1909         * graphite-poly.c (apply_poly_transforms): Update call to
1910         scop_do_strip_mine.
1911         * graphite-poly.h (scop_do_strip_mine): Update declaration.
1912
1913 2010-12-01  Jan Hubicka  <jh@suse.cz>
1914
1915         * tree.c (build_common_builtin_nodes): Do not initialize
1916         BUILT_IN_PROFILE_FUNC_ENTER and BUILT_IN_PROFILE_FUNC_EXIT.
1917         * builtins.c (expand_builtin_profile_func): Remove.
1918         (expand_builtin): Do not handle BUILT_IN_PROFILE_FUNC_ENTER and
1919         BUILT_IN_PROFILE_FUNC_EXIT.
1920         * builtins.def (profile_func_enter, profile_func_exit): Remove stubs.
1921         (__cyg_profile_func_enter, __cyg_profile_func_exit): New.
1922         * gimplify.c (gimplify_function_tree): Reorganize code calling
1923         profiling functions.
1924
1925 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
1926
1927         * opts.c: Expand comment on tm.h include.
1928
1929 2010-12-01  Yao Qi  <yao@codesourcery.com>
1930
1931         * config/arm/predicates.md ("vfp_register_operand"): Return true for
1932         VFP_D0_D7_REGS classes.
1933
1934 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
1935
1936         * common.opt (flag_stack_check): New Variable entry.
1937         (fcompare-debug-second): Use Var.
1938         * flags.h (flag_compare_debug, flag_stack_check): Remove.
1939         * opts.c (flag_compare_debug): Remove.
1940         (common_handle_option): Don't handle OPT_fcompare_debug_second.
1941         Set opts->x_flag_stack_check for OPT_fstack_check_.
1942         * toplev.c (flag_stack_check): Remove.
1943
1944 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
1945
1946         * common.opt (main_input_filename, main_input_basename,
1947         main_input_baselength): New Variable entries.  From toplev.c.
1948         * final.c (output_quoted_string): Move from toplev.c.
1949         * output.h (output_quoted_string): Move from toplev.h.
1950         * opts-global.c (read_cmdline_options): Use gcc_options pointer to
1951         access main_input_filename, main_input_baselength and
1952         main_input_basename.
1953         * targhooks.c: Include intl.h and opts.h.
1954         (option_affects_pch_p, default_get_pch_validity): Move from
1955         toplev.c.
1956         * targhooks.h (option_affects_pch_p, default_get_pch_validity):
1957         Move from toplev.h.
1958         * toplev.c (main_input_filename, main_input_basename,
1959         main_input_baselength): Move to common.opt.
1960         (output_quoted_string): Move to final.c.
1961         (warn_deprecated_use): Move to tree.c.
1962         (option_affects_pch_p, default_get_pch_validity,
1963         pch_option_mismatch, default_pch_valid_p): Move to targhooks.c.
1964         * toplev.h (skip_leading_substring): Move to tree-dump.c.
1965         (warn_deprecated_use): Move to tree.h.
1966         (output_quoted_string): Move to output.h.
1967         (main_input_filename, main_input_basename, main_input_baselength):
1968         Move to common.opt.
1969         (default_get_pch_validity, default_pch_valid_p): Move to
1970         targhooks.c.
1971         * tree-dump.c (skip_leading_substring): Move from toplev.h.
1972         * tree.c (warn_deprecated_use): Move from toplev.c.
1973         * tree.h (warn_deprecated_use): Move from toplev.h.
1974         * c-typeck.c, config/alpha/alpha.c, config/arc/arc.c,
1975         config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
1976         config/cris/cris.c, config/crx/crx.c, config/fr30/fr30.c,
1977         config/frv/frv.c, config/h8300/h8300.c, config/ia64/ia64.c,
1978         config/iq2000/iq2000.c, config/lm32/lm32.c, config/m32c/m32c.c,
1979         config/m32r/m32r.c, config/m68hc11/m68hc11.c, config/m68k/m68k.c,
1980         config/mcore/mcore.c, config/mep/mep.c,
1981         config/microblaze/microblaze.c, config/mips/mips.c,
1982         config/mmix/mmix.c, config/mn10300/mn10300.c,
1983         config/moxie/moxie.c, config/pa/pa.c, config/pdp11/pdp11.c,
1984         config/picochip/picochip.c, config/s390/s390.c,
1985         config/score/score.c, config/sh/sh.c, config/sparc/sparc.c,
1986         config/spu/spu.c, config/stormy16/stormy16.c, config/v850/v850.c,
1987         config/vax/vax.c, config/xtensa/xtensa.c, gimple-low.c,
1988         graphite-sese-to-poly.c, plugin.c, tree-cfg.c, tree-inline.c,
1989         varasm.c, xcoffout.c: Don't include toplev.h.
1990         * Makefile.in (c-typeck.o, tree-inline.o, tree-cfg.o,
1991         gimple-low.o, graphite-sese-to-poly.o, targhooks.o, plugin.o,
1992         varasm.o, xcoffout.o): Update dependencies.
1993         * config/arm/t-arm (arm.o): Update dependencies.
1994         * config/spu/t-spu-elf (spu.o): Update dependencies.
1995
1996 2010-12-01  Richard Guenther  <rguenther@suse.de>
1997
1998         PR tree-optimization/46730
1999         * value-prof.c (gimple_ic): Always generate a separate merge BB.
2000
2001 2010-11-30  Ian Lance Taylor  <iant@google.com>
2002
2003         * config/i386/linux.h (ASM_SPEC): Pass -v as -v, not -V.  Remove
2004         all of %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*}.
2005         * config/i386/linux64.h (ASM_SPEC): Likewise.
2006         * config/i386/mingw-w64.h (ASM_SPEC): Likewise.
2007         * config/i386/sol2-10.h (ASM_SPEC) [USE_GAS]: Likewise.
2008         * config/i386/vxworks.h (ASM_SPEC): Likewise.
2009         * config/i386/x86-64.h (ASM_SPEC): Likewise.
2010         * config/i386/sol2.h (ASM_SPEC): Remove %{Wa,*:%*}.
2011         * config/i386/sol2-10.h (ASM_SPEC) [!USE_GAS]: Likewise.
2012
2013 2010-11-30  Nicola Pero  <nicola.pero@meta-innovation.com>
2014
2015         * c-decl.c (finish_function): Call objc_finish_function in
2016         Objective-C.
2017         * c-typeck.c (convert_for_assignment): Do not call
2018         objc_type_quals_match().
2019
2020 2010-11-30  Richard Guenther  <rguenther@suse.de>
2021
2022         PR tree-optimization/46722
2023         * tree-ssa-math-opts.c (convert_mult_to_fma): Get multiplication
2024         operands as arguments.
2025         (execute_optimize_widening_mul): Also handle power of two as
2026         multiplication.
2027
2028 2010-11-30  Dave Korn  <dave.korn.cygwin@gmail.com>
2029
2030         PR middle-end/46709
2031         * cgraphunit.c (process_function_and_variable_attributes): Fix
2032         cut'n'pasteo.
2033
2034 2010-11-30  Joseph Myers  <joseph@codesourcery.com>
2035
2036         * hwint.c:  New.  Extracted from toplev.c.
2037         * hwint.h (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
2038         Move from toplev.h.
2039         * toplev.c (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
2040         Move to hwint.c.
2041         * toplev.h (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
2042         Move to hwint.h.
2043         * builtins.c, combine.c, config/i386/winnt.c, double-int.c,
2044         explow.c, expmed.c, fold-const.c, ggc-page.c, ggc-zone.c, ifcvt.c,
2045         ipa-struct-reorg.c, ira-color.c, matrix-reorg.c, omp-low.c,
2046         real.c, recog.c, reload.c, rtlanal.c, simplify-rtx.c,
2047         stor-layout.c, tree-dfa.c, tree-ssa-alias.c,
2048         tree-ssa-loop-niter.c, tree-vect-data-refs.c,
2049         tree-vect-loop-manip.c, tree-vect-loop.c, tree-vect-stmts.c,
2050         tree-vrp.c: Don't include toplev.h.
2051         * genattrtab.c, genconditions.c, genemit.c, genextract.c,
2052         genoutput.c, genpeep.c, genpreds.c, genrecog.c: Don't include
2053         toplev.h in generated output.
2054         * Makefile.in (OBJS-common): Add hwint.o.
2055         Dependencies for above files changed to remove toplev.h.
2056         (hwint.o): New.
2057         (insn-attrtab.o, insn-emit.o, insn-extract.o, insn-output.o,
2058         insn-peep.o, insn-preds.o, insn-recog.o): Don't depend on
2059         toplev.h.
2060         * config/i386/t-cygming (winnt.o): Don't depend on toplev.h.
2061         * config/i386/t-interix (winnt.o): Don't depend on toplev.h.
2062
2063 2010-11-30  Richard Guenther  <rguenther@suse.de>
2064
2065         PR tree-optimization/46717
2066         * value-prof.c (gimple_ic): Preserve EH edges of the indirect
2067         call.  Manually create EH edges for the direct call and update
2068         target PHI nodes.
2069
2070 2010-11-30  Joseph Myers  <joseph@codesourcery.com>
2071
2072         * diagnostic-core.h: Include bversion.h.
2073         * toplev.h: Don't include input.h or bversion.h.
2074         (parse_optimize_options): Don't declare here.
2075         * alias.c, auto-inc-dec.c, c-aux-info.c, c-convert.c, c-parser.c,
2076         caller-save.c, cfg.c, cfganal.c, cfgbuild.c, cfgcleanup.c,
2077         combine-stack-adj.c, config/arm/pe.c, config/darwin-c.c,
2078         config/host-darwin.c, config/i386/host-cygwin.c,
2079         config/i386/host-mingw32.c, config/i386/msformat-c.c,
2080         config/i386/netware.c, config/i386/nwld.c,
2081         config/i386/winnt-cxx.c, config/i386/winnt-stubs.c,
2082         config/ia64/ia64-c.c, config/m32c/m32c-pragma.c,
2083         config/mep/mep-pragma.c, config/microblaze/microblaze-c.c,
2084         config/rs6000/host-darwin.c, config/rs6000/rs6000-c.c,
2085         config/score/score3.c, config/score/score7.c,
2086         config/sh/symbian-base.c, config/sh/symbian-c.c,
2087         config/sh/symbian-cxx.c, config/sol2-c.c, config/sol2.c,
2088         config/v850/v850-c.c, config/vxworks.c, convert.c, cppbuiltin.c,
2089         cselib.c, dbgcnt.c, ddg.c, dfp.c, dominance.c, emit-rtl.c,
2090         fixed-value.c, fwprop.c, ggc-common.c, gimple.c, gimplify.c,
2091         graphite-blocking.c, graphite-clast-to-gimple.c,
2092         graphite-dependences.c, graphite-flattening.c,
2093         graphite-interchange.c, graphite-poly.c,
2094         graphite-scop-detection.c, graphite.c, haifa-sched.c,
2095         implicit-zee.c, integrate.c, ipa-pure-const.c, ipa-reference.c,
2096         ira-build.c, ira-conflicts.c, ira-costs.c, ira-lives.c, jump.c,
2097         lists.c, loop-doloop.c, loop-iv.c, lto-cgraph.c, lto-compress.c,
2098         lto-opts.c, lto-section-in.c, lto-section-out.c,
2099         lto-streamer-out.c, lto-symtab.c, modulo-sched.c, optabs.c,
2100         params.c, postreload-gcse.c, postreload.c, predict.c, profile.c,
2101         regcprop.c, reginfo.c, regmove.c, reorg.c, resource.c,
2102         sched-deps.c, sched-ebb.c, sched-rgn.c, sdbout.c,
2103         sel-sched-dump.c, sel-sched-ir.c, sese.c, stmt.c, targhooks.c,
2104         tree-cfgcleanup.c, tree-mudflap.c, tree-nomudflap.c,
2105         tree-object-size.c, tree-outof-ssa.c, tree-phinodes.c,
2106         tree-profile.c, tree-sra.c, tree-ssa-ccp.c, tree-ssa-coalesce.c,
2107         tree-ssa-live.c, tree-ssa-loop-prefetch.c, tree-ssa-loop.c,
2108         tree-ssa-operands.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
2109         tree-vect-patterns.c, value-prof.c, var-tracking.c, web.c: Don't
2110         include toplev.h.
2111         * Makefile.in (TOPLEV_H): Remove.  All uses changed to use
2112         toplev.h.  Dependencies for above files and c-family files changed
2113         to remove $(TOPLEV_H) or toplev.h.
2114         (C_TREE_H): Don't include $(TOPLEV_H).
2115         (DIAGNOSTIC_CORE_H): Use $(INPUT_H) instead of input.h.  Add
2116         bversion.h.
2117         * config/arm/t-pe, config/arm/t-wince-pe, config/i386/t-cygming,
2118         config/ia64/t-ia64, config/mep/t-mep, config/score/t-score-elf,
2119         config/t-darwin, config/t-sol2,
2120         config/t-vxworks, config/v850/t-v850, config/v850/t-v850e:
2121         Dependencies for above files changed to remove $(TOPLEV_H) or
2122         toplev.h.
2123
2124 2010-11-30  Richard Guenther  <rguenther@suse.de>
2125
2126         PR lto/44986
2127         * gcc.c (main): Use the first input with a compiler as infile
2128         for link spec processing.
2129
2130 2010-11-30  Richard Guenther  <rguenther@suse.de>
2131
2132         PR lto/45949
2133         * cgraphunit.c (ipa_passes): Stop after errors from
2134         small IPA passes.
2135
2136 2010-11-30  Mingjie Xing  <mingjie.xing@gmail.com>
2137
2138         * gcc-plugin.h: Include coretypes.h.
2139         * Makefile.in (FUNCTION_H): Add hard-reg-set.h.
2140
2141 2010-11-30  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2142
2143         * ggc-zone.c (ggc_pch_read): Fix conditional compilation.
2144         * ggc-none.c (ggc_internal_alloc_zone_stat)
2145         (ggc_internal_cleared_alloc_zone_stat): New.
2146
2147 2010-11-29  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
2148
2149         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Check
2150         TARGET_SINGLE_PIC_BASE for RS6000_PIC_OFFSET_TABLE_REGNUM.
2151         (rs6000_emit_prologue): Don't set PIC register if
2152         TARGET_SINGLE_PIC_BASE.
2153         * config/rs6000/rs6000.opt (msingle-pic-base): New option.
2154         * doc/invoke.texi (msingle-pic-base): Document.
2155
2156 2010-11-29  H.J. Lu  <hongjiu.lu@intel.com>
2157
2158         PR driver/46712
2159         * exec-tool.in (id): New.
2160         Check and export LT_RCU_$id instead of LT_RCU.
2161
2162 2010-11-29  Zdenek Dvorak  <rakdver@kam.uniff.cz>
2163
2164         PR tree-optimization/46675
2165         * tree-ssa-loop-niter.c (split_to_var_and_offset): Avoid overflow
2166         in offset calculation.
2167
2168 2010-11-29  Jan Hubicka  <jh@suse.cz>
2169
2170         * collect2.c (main): Do not imply verbose output with
2171         LTO and linker plugin.
2172
2173 2010-11-29  Dodji Seketeli  <dodji@redhat.com>
2174
2175         * dwarf2out.c (print_die): Print the address of the current DIE or
2176         of any DIE referenced by the current one.
2177
2178 2010-11-29  Dodji Seketeli  <dodji@redhat.com>
2179
2180         PR debug/46101
2181         * dwarf2out.c (lookup_type_die_strip_naming_typedef): New
2182         function.
2183         (scope_die_for, gen_type_die_for_member): Replace uses of
2184         lookup_type_die with use of lookup_type_die_strip_naming_typedef.
2185
2186 2010-11-29  Iain Sandoe  <iains@gcc.gnu.org>
2187
2188         * config/darwin.c (darwin_mergeable_string_section): Remove blank line.
2189         (darwin_asm_declare_object_name): Correct spelling.
2190         (darwin_output_aligned_bss): Likewise.
2191
2192 2010-11-29  Iain Sandoe  <iains@gcc.gnu.org>
2193             Mike Stump  <mrs@gcc.gnu.org>
2194
2195         PR target/26427
2196         PR target/33120
2197         PR testsuite/35710
2198         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Remove
2199         (ASM_OUTPUT_LOCAL): Likewise.
2200         * config/darwin-protos.h (darwin_asm_declare_object_name): New.
2201         (darwin_output_aligned_bss): Likewise.
2202         (darwin_asm_output_aligned_decl_local): Likewise.
2203         (darwin_asm_output_aligned_decl_common): Likewise.
2204         (darwin_use_anchors_for_symbol_p): Likewise.
2205         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Remove.
2206         (TARGET_ASM_OUTPUT_ANCHOR): Define.
2207         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define.
2208         (DARWIN_SECTION_ANCHORS): Set to 1.
2209         * config/darwin.c (emit_aligned_common): New var.
2210         (darwin_init_sections): Check that the Darwin private zero-size section
2211         marker is in range.
2212         (darwin_text_section): Check for zero-sized objects.
2213         (darwin_mergeable_string_section): Likewise.
2214         (darwin_mergeable_constant_section): Likewise.
2215         (machopic_select_section): Adjust to check for zero-sized objects.
2216         Assert that OBJC meta data are non-zero sized.
2217         (darwin_asm_declare_object_name): New.
2218         (darwin_asm_declare_constant_name): Adjust for zero-sized
2219         object sections.
2220         (BYTES_ZFILL): Define.
2221         (darwin_emit_weak_or_comdat): New.
2222         (darwin_emit_local_bss): New.
2223         (darwin_emit_common): New.
2224         (darwin_output_aligned_bss): New.
2225         (darwin_asm_output_aligned_decl_common): New.
2226         (darwin_asm_output_aligned_decl_local): New.
2227         (darwin_file_end): Disable subsections_via_symbols when section
2228         anchoring is active.
2229         (darwin_asm_output_anchor): Re-enable.
2230         (darwin_use_anchors_for_symbol_p): New.
2231         (darwin_override_options): Check for versions that can emit
2232         aligned common.  Update usage of flags to current.
2233         * config/darwin-sections.def: Update comments and flags for
2234         non-anchor sections.  zobj_const_section, zobj_data_section,
2235         zobj_bss_section, zobj_const_data_section: New.
2236         * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Redefine.
2237         (ASM_OUTPUT_ALIGN): Make whitespace output consistent.
2238         (L2_MAX_OFILE_ALIGNMENT): Define.
2239         (ASM_OUTPUT_ALIGNED_BSS): Define.
2240         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
2241         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
2242         (SECTION_NO_ANCHOR): Define.
2243         (TARGET_ASM_OUTPUT_ANCHOR) Define with a default of NULL.
2244         (DARWIN_SECTION_ANCHORS): Define with a default of 0.
2245
2246 2010-11-29  Joseph Myers  <joseph@codesourcery.com>
2247
2248         * system.h: Include "safe-ctype.h" instead of <safe-ctype.h>.
2249         Include <signal.h>, <sys/mman.h>, <sys/resource.h> and <sys/times.h>.
2250         (O_BINARY, SIGCHLD, MAP_FAILED, MAP_ANONYMOUS, kill):
2251         Conditionally define.
2252         (GET_ENVIRONMENT): Poison.
2253         * configure.ac: Don't test for mincore.
2254         * configure: Regenerate.
2255         * config.in: Regenerate.
2256         * collect2-aix.c: Don't include <sys/mman.h>.
2257         * collect2.c: Don't include <signal.h>.
2258         (SIGCHLD): Don't define.
2259         (prefix_from_env): Use getenv instead of GET_ENVIRONMENT.
2260         * config/alpha/alpha.c: Include "splay-tree.h" instead of
2261         <splay-tree.h>.
2262         * config/arm/arm.c (arm_target_help): Use getenv instead of
2263         GET_ENVIRONMENT.
2264         * config/avr/driver-avr.c: Don't include <stdlib.h>.
2265         * config/frv/frv.c: Don't include <ctype.h>.
2266         * config/host-darwin.c: Don't include <sys/mman.h>.
2267         * config/host-hpux.c: Don't include <sys/mman.h> or <unistd.h>.
2268         (MAP_FAILED): Don't define.
2269         * config/host-linux.c: Don't include <sys/mman.h> or <limits.h>.
2270         * config/host-solaris.c: Don't include <sys/mman.h>.
2271         * config/i386/cygming.h: Don't include <stdio.h>.
2272         * config/i386/driver-i386.c: Don't include <stdlib.h>.
2273         * config/i386/host-cygwin.c: Don't include <sys/mman.h>.
2274         * config/iq2000/iq2000.c: Don't include <signal.h>.
2275         * config/m32c/m32c-pragma.c: Don't include <stdio.h>.
2276         * config/m68hc11/m68hc11.c: Don't include <stdio.h>.
2277         * config/mep/mep-pragma.c: Don't include <stdio.h>.
2278         * config/microblaze/microblaze.c: Don't include <signal.h>.
2279         * config/mips/mips.c: Don't include <signal.h>.
2280         * config/rs6000/host-darwin.c: Don't include <signal.h>.
2281         * cppdefault.c (cpp_relocated): Use getenv instead of GET_ENVIRONMENT.
2282         * defaults.h (GET_ENVIRONMENT): Don't define.
2283         * et-forest.h: Don't include <ansidecl.h> or <stddef.h>.
2284         * gcc.c: Don't include <signal.h>, <sys/mman.h> or <sys/types.h>.
2285         (SIGCHLD, MAP_FAILED, kill): Don't define.
2286         (process_command): Use getenv instead of GET_ENVIRONMENT.
2287         * genhooks.c: Don't include <string.h>.
2288         * ggc-common.c: Don't include <sys/resource.h>, <sys/mman.h> or
2289         <sys/types.h>.
2290         (MAP_FAILED): Don't define.
2291         * ggc-page.c Don't include <sys/mman.h>.
2292         (MAP_ANONYMOUS, MAP_FAILED): Don't define.
2293         * ggc-zone.c: Don't include <sys/mman.h>.
2294         (MAP_ANONYMOUS, MAP_FAILED): Don't define.
2295         * graph.c: Include "config.h" instead of <config.h>.
2296         * incpath.c (add_env_var_paths): Use getenv instead of GET_ENVIRONMENT.
2297         * lto-wrapper.c: Don't include <errno.h>, <signal.h> or "libiberty.h".
2298         (SIGCHLD, kill): Don't define.
2299         * mips-tfile.c: Don't include <signal.h>.
2300         * opts.c: Don't include <signal.h> or <sys/resource.h>.
2301         (print_specific_help): Use getenv instead of GET_ENVIRONMENT.
2302         * passes.c: Don't include <signal.h>, <sys/resource.h> or
2303         <sys/times.h>.
2304         * sparseset.h: Don't include <assert.h>.
2305         * timevar.c: Don't include <sys/times.h> or <sys/resource.h>.
2306         * tlink.c: Don't include "libiberty.h".
2307         * toplev.c: Don't include <signal.h> or <sys/times.h>.
2308         * tree-mudflap.c: Include "demangle.h" instead of <demangle.h>.
2309         * tree-switch-conversion.c: Don't include <signal.h>.
2310         * vmsdbgout.c: Don't include <errno.h> or <string.h>.
2311
2312 2010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
2313
2314         * c-parser.c (c_parser_objc_try_catch_statement): Renamed to
2315         c_parser_objc_try_catch_finally_statement for consistency with the
2316         C++ parser.  Parse @catch(...) and pass NULL_TREE to
2317         objc_begin_catch_clause() in that case.  Improved error recovery.
2318         Reorganized code to be almost identical to
2319         cp_parser_objc_try_catch_finally_statement.
2320
2321 2010-11-29  Joern Rennecke  <amylaar@spamcop.net>
2322
2323         PR tree-optimization/46621
2324         * gimple.h: Don't include tm.h or hard-reg-set.h .
2325         * Makefile.in (GIMPLE_H): Remove $(TM_H).
2326
2327         PR bootstrap/44756
2328         * cppbuiltin.c: Include target.h .
2329         (define_builtin_macros_for_type_sizes):
2330         Use targetm.float_words_big_endian.
2331
2332 2010-11-27  Jan Hubicka  <jh@suse.cz>
2333
2334         * dwarf2out.c (dwarf2out_begin_function): Set cold_text_section
2335         and output cold_text_section_label.
2336         (dwarf2out_init): Don't do that there.
2337         (dwarf2out_finish): Handle cold section end label only if cold
2338         section was used.
2339
2340 2010-11-27  Eric Botcazou  <ebotcazou@adacore.com>
2341
2342         * tree-nested.c (remap_vla_decls): Fully expand value expressions of
2343         VLA variables.
2344
2345 2010-11-27  Richard Guenther  <rguenther@suse.de>
2346
2347         * gimple.c (gimple_assign_copy_p): Use gimple_assign_single_p.
2348         (gimple_assign_ssa_name_copy_p): Likewise.
2349         (gimple_assign_unary_nop_p): Use is_gimple_assign.
2350         (is_gimple_cast): Remove.
2351         (gimple_assign_single_p): Move ...
2352         * gimple.h (gimple_assign_single_p): ... here.
2353         (is_gimple_cast): Remove.
2354         (gimple_assign_rhs_code): Simplify.
2355         * gimple-fold.c (gimple_fold_builtin): Use CONVERT_EXPR_P
2356         instead of is_gimple_cast.
2357         * ipa-type-escape.c (look_for_casts): Likewise.
2358
2359 2010-11-26  Joseph Myers  <joseph@codesourcery.com>
2360
2361         * doc/options.texi (Enum, EnumValue): Document new record types.
2362         (Enum): Document new option flag.
2363         * opt-functions.awk
2364         * optc-gen.awk: Handle enumerated option arguments.
2365         * opth-gen.awk: Handle enumerated option arguments.
2366         * opts-common.c (enum_arg_ok_for_language, enum_arg_to_value,
2367         enum_value_to_arg): New.
2368         (decode_cmdline_option): Handle enumerated arguments.
2369         (read_cmdline_option): Handle CL_ERR_ENUM_ARG.
2370         (set_option, option_enabled, get_option_state): Handle CLVC_ENUM.
2371         * opts.c (print_filtered_help, print_specific_help): Take
2372         lang_mask arguments.
2373         (print_filtered_help): Handle printing values of enumerated
2374         options.  Print possible arguments for enumerated options.
2375         (print_specific_help): Update call to print_filtered_help.
2376         (common_handle_option): Update calls to print_specific_help.  Use
2377         value rather than arg for OPT_fdiagnostics_show_location_.  Don't
2378         handle OPT_ffp_contract_, OPT_fexcess_precision_,
2379         OPT_fvisibility_, OPT_ftls_model_, OPT_fira_algorithm_ or
2380         OPT_fira_region_ here.
2381         * opts.h (enum cl_var_type): Add CLVC_ENUM.
2382         (struct cl_option): Add var_enum.
2383         (CL_ENUM_CANONICAL, CL_ENUM_DRIVER_ONLY, struct cl_enum_arg,
2384         struct cl_enum, cl_enums, cl_enums_count): New.
2385         (CL_ERR_ENUM_ARG): Define.
2386         (CL_ERR_NEGATIVE): Update value.
2387         (enum_value_to_arg): Declare.
2388         * common.opt (flag_ira_algorithm, flag_ira_region,
2389         flag_fp_contract_mode, flag_excess_precision_cmdline,
2390         default_visibility, flag_tls_default): Remove Variable entries.
2391         (help_enum_printed): New Variable.
2392         (fdiagnostics-show-location=): Use Enum.  Add associated
2393         SourceInclude, Enum and EnumValue entries.
2394         (fexcess-precision=, ffp-contract=, fira-algorithm=, fira-region=,
2395         ftls-model=, fvisibility=): Use Enum, Var and Init.  Add
2396         associated Enum and EnumValue entries.
2397
2398 2010-11-26  Joern Rennecke  <amylaar@spamcop.net>
2399
2400         PR target/46623
2401         * config/microblaze/microblaze.c (microblaze_block_move_straight):
2402         Use XALLOCAVEC.
2403         (microblaze_option_override): Don't use C++ style comments.
2404         (save_restore_insns): Remove unused variable base_offset.
2405         (microblaze_expand_prologue): Remove unused variable insn.
2406         (microblaze_secondary_reload): Adjust type to match target.h .
2407         (microblaze_elf_in_small_data_p): Move declarations to start of block.
2408         (microblaze_expand_move): Likewise.
2409         * config/microblaze/microblaze.h (LARGE_INT):
2410         Avoid signed / unsigned comparisons.
2411         (ASM_OUTPUT_ALIGNED_COMMON, ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
2412         (ASM_FORMAT_PRIVATE_NAME): Make format specifier match printed data.
2413         (ASM_FINISH_DECLARE_OBJECT): Likewise.  Constify name.
2414
2415 2010-11-26  Michael Matz  <matz@suse.de>
2416
2417         * tree-ssa-copy.c (fini_copy_prop): Don't DCE when we have loops.
2418
2419         * passes.c (init_optimization_passes): Remove superfluous
2420         copy-prop pass.
2421
2422 2010-11-26  Richard Guenther  <rguenther@suse.de>
2423
2424         PR lto/46648
2425         * gimple.c (gtc_visit): Do not return true for members of an
2426         SCC still being processed but the current lattice value of
2427         the member.  Treat SCC members comparison state as lattice,
2428         starting at equal, eventually dropping to unequal.
2429         (gimple_types_compatible_p_1): Likewise.
2430
2431 2010-11-26  Richard Guenther  <rguenther@suse.de>
2432
2433         PR middle-end/46559
2434         * dwarf2out.c (dwarf2out_finish): Use comp_unit_die as root
2435         for location list processing.
2436
2437 2010-11-26  Richard Guenther  <rguenther@suse.de>
2438
2439         PR lto/46560
2440         * cgraph.c (cgraph_clone_edge): Clone call_stmt dependent
2441         flags manually.
2442
2443 2010-11-26  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2444
2445         * config/s390/s390.c (print_operand_address): Replace assert with
2446         error message.
2447         (print_operand): Replace assertions, gcc_unreachable and
2448         fatal_insn with error messages.
2449
2450 2010-11-26  Richard Guenther  <rguenther@suse.de>
2451
2452         PR tree-optimization/46665
2453         * tree-ssa-structalias.c (pt_solution_set_var): Use DECL_PT_UID.
2454
2455 2010-11-26  Ian Bolton  <ian.bolton@arm.com>
2456
2457         * config/arm/arm.c (arm_option_override): enable loop array
2458         prefetching at -O3 for suitable targets, and configure params.
2459         * config/arm/arm-protos.h (struct tune_params): Add fields for
2460         configuring loop array prefetching.
2461
2462 2010-11-26  Christian Borntraeger  <borntraeger@de.ibm.com>
2463
2464         * config/s390/2817.md (z196_crack): Add z196_g3 as possible slot.
2465
2466 2010-11-26  Richard Guenther  <rguenther@suse.de>
2467
2468         PR tree-optimization/46664
2469         * tree-affine.c (aff_combination_to_tree): Add rest last.
2470
2471 2010-11-26  Michael Haubenwallner  <michael.haubenwallner@salomon.at>
2472
2473         PR target/33637
2474         * configure.ac: Accept extra arguments for AS_FOR_TARGET,
2475         LD_FOR_TARGET, NM_FOR_TARGET, OBJDUMP_FOR_TARGET.
2476         * configure: Regenerated.
2477         * exec-tool.in: Not quoting command, may have extra arguments.
2478
2479 2010-11-26  Richard Guenther  <rguenther@suse.de>
2480
2481         PR tree-optimization/46528
2482         PR debug/46338
2483         * profile.c (branch_prob): Do not split blocks based on locations
2484         from debug statements.
2485
2486 2010-11-26  Jakub Jelinek  <jakub@redhat.com>
2487
2488         PR middle-end/46647
2489         * builtins.c (fold_builtin_memset): Check c is INTEGER_CST instead
2490         of host_integerp check.  Use TREE_INT_CST_LOW instead of tree_low_cst.
2491
2492         PR bootstrap/45700
2493         * tree.h (build1_stat_loc, build2_stat_loc, build3_stat_loc,
2494         build4_stat_loc, build5_stat_loc, build6_stat_loc): New inlines.
2495         (build1_loc, build2_loc, build3_loc, build4_loc, build5_loc,
2496         build6_loc): Define.
2497         * fold-const.c (protected_set_expr_location_unshare): New inline.
2498         (fold_convert_loc, pedantic_non_lvalue_loc): Use it.
2499         (negate_expr, associate_trees, non_lvalue_loc, omit_one_operand_loc,
2500         pedantic_omit_one_operand_loc, omit_two_operands_loc,
2501         fold_truth_not_expr, invert_truthvalue_loc, make_bit_field_ref,
2502         optimize_bit_field_compare, make_range, fold_range_test, fold_truthop,
2503         build_fold_addr_expr_with_type_loc, fold_unary_loc, fold_binary_loc,
2504         fold_indirect_ref_1, build_fold_indirect_ref_loc): Use builN_loc
2505         instead of buildN followed by SET_EXPR_LOCATION or
2506         protected_set_expr_location.
2507         (fold_build1_stat_loc, fold_build2_stat_loc, fold_build3_stat_loc):
2508         Use buildN_stat_loc instead of buildN_stat followed by
2509         SET_EXPR_LOCATION.
2510
2511 2010-11-26  Basile Starynkevitch  <basile@starynkevitch.net>
2512
2513         * Makefile.in (s-tm-texi): Remove spurous tab.
2514
2515 2010-11-26  Alexandre Oliva  <aoliva@redhat.com>
2516
2517         PR debug/46258
2518         * tree-cfg.c (replace_uses_by): Don't mark BBs as altered on
2519         debug stmts.
2520
2521 2010-11-26  Alexandre Oliva  <aoliva@redhat.com>
2522
2523         * toplev.c (finalize): Add no_backend parameter.  Don't finish
2524         passes when preprocessing only.  Adjust...
2525         (do_compile): ... caller.
2526
2527 2010-11-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2528
2529         * config/pa/pa.md (negdf2): Condition on !flag_signed_zeros instead of
2530         flag_unsafe_math_optimizations.
2531         (negsf2): Likewise.
2532         Move fnegabs related patterns together.  Only use fmpynfadd instruction
2533         to negate a multiply if !flag_signed_zeros is true.
2534
2535 2010-11-25  Uros Bizjak  <ubizjak@gmail.com>
2536
2537         * gengtype-state.c (read_state_structures): Initialize "previous".
2538
2539 2010-11-25  Basile Starynkevitch  <basile@starynkevitch.net>
2540             Jeremie Salvucci  <jeremie.salvucci@free.fr>
2541
2542         * gengtype-state.c: Add new file.
2543
2544         * gengtype.c (type count): New variable.
2545         (new_structure, find_param_structure, create_pointer)
2546         (create_array): Use it to set state_number in types.
2547         (dump_everything): Improve comment.
2548         (main): Call read_state and write_state. Print type_count.
2549
2550         * gengtype.h (type_lineloc): New function.
2551         (read_state, write_state): New declarations.
2552
2553         * Makefile.in (GENGTYPE_FLAGS): New variable.
2554         (s-gtype): Run gengtype twice and generate gtype.state.
2555         (build/gengtype-state.o): New rule.
2556         (build/gengtype$(build_exeext)): Link gengtype-state.o.
2557         (mostlyclean): Update comment.  Remove gtype.state.
2558
2559 2010-11-25  Jakub Jelinek  <jakub@redhat.com>
2560
2561         PR middle-end/46637
2562         * combine.c (try_combine): When substing i2dest for i2src, pass
2563         1 as last argument even if
2564         i0_feeds_i1_n && i1_feeds_i2_n && i0dest_in_i0src.
2565
2566 2010-11-25  H.J. Lu  <hongjiu.lu@intel.com>
2567
2568         PR middle-end/46647
2569         * builtins.c (target_char_cast): Check INTEGER_CST instead of
2570         host_integerp.  Replace tree_low_cst with TREE_INT_CST_LOW.
2571
2572 2010-11-25  Joseph Myers  <joseph@codesourcery.com>
2573
2574         * target.def (supports_split_stack, except_unwind_info): Take
2575         gcc_options parameters.
2576         * targhooks.c (default_except_unwind_info,
2577         dwarf2_except_unwind_info, sjlj_except_unwind_info): Take
2578         gcc_options parameters.
2579         * targhooks.h (default_except_unwind_info,
2580         dwarf2_except_unwind_info, sjlj_except_unwind_info): Update
2581         prototypes.
2582         * doc/tm.texi.in (TARGET_IRA_COVER_CLASSES,
2583         TARGET_HAVE_NAMED_SECTIONS, TARGET_UNWIND_TABLES_DEFAULT):
2584         Document that hooks must not be modified.
2585         (TARGET_EXCEPT_UNWIND_INFO): Refer to opts argument.
2586         * doc/tm.texi: Regenerate.
2587         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Pass
2588         &global_options to targetm.except_unwind_info.
2589         * dwarf2out.c (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
2590         dwarf2out_begin_prologue, dwarf2out_frame_init,
2591         dwarf2out_frame_finish, dwarf2out_assembly_start): Pass
2592         &global_options to targetm.except_unwind_info.
2593         * except.c (init_eh, finish_eh_generation,
2594         gate_convert_to_eh_region_ranges,
2595         output_one_function_exception_table): Pass &global_options to
2596         targetm.except_unwind_info.
2597         * expr.c (build_personality_function): Pass &global_options to
2598         targetm.except_unwind_info.
2599         * function.c (expand_function_end): Pass &global_options to
2600         targetm.except_unwind_info.
2601         * hooks.c (hook_bool_bool_gcc_optionsp_false): New.
2602         * hooks.h (hook_bool_bool_gcc_optionsp_false): Declare.
2603         * opts.c (finish_options): Pass opts to targetm.except_unwind_info
2604         and targetm.supports_split_stack.  Remove assertions about opts
2605         and opts_set.
2606         (common_handle_option): Remove assertions about opts, opts_set and dc.
2607         * tree-tailcall.c (suitable_for_tail_call_opt_p): Pass
2608         &global_options to targetm.except_unwind_info.
2609         * tree.c (build_common_builtin_nodes: Pass &global_options to
2610         targetm.except_unwind_info.
2611         * config/arm/arm.c (arm_except_unwind_info): Add gcc_options parameter.
2612         (arm_compute_func_type, arm_expand_prologue, thumb_pushpop,
2613         thumb1_expand_prologue, thumb1_output_function_prologue,
2614         arm_unwind_emit, arm_output_fn_unwind): Update calls to
2615         arm_except_unwind_info.
2616         * config/i386/i386.c (ix86_supports_split_stack): Add gcc_options
2617         parameter.
2618         * config/ia64/ia64.c (ia64_except_unwind_info): Add gcc_options
2619         parameter.
2620         (ia64_output_function_prologue, ia64_add_bundle_selector_before,
2621         ia64_reorg, ia64_asm_unwind_emit): Update calls to
2622         ia64_except_unwind_info.
2623         * config/pa/pa.c (pa_option_override): Pass &global_options to
2624         targetm.except_unwind_info.
2625         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
2626         Remove prototype.
2627
2628 2010-11-25  Kai Tietz  <kai.tietz@onevision.com>
2629
2630         * cgraphunit.c (process_function_and_variable_attributes):
2631         Mark dllexport-ed function/variables as needed.
2632         * ipa.c (cgraph_externally_visible_p): Make dllexport-ed
2633         as externally visible.
2634
2635 2010-11-25  Alexander Monakov  <amonakov@ispras.ru>
2636
2637         PR rtl-optimization/46585
2638         * sel-sched-ir.c (return_regset_to_pool): Verify that RS is not NULL.
2639         (vinsn_init): Skip computation of dependencies for local NOPs.
2640         (vinsn_delete): Don't try to free regsets for local NOPs.
2641         (setup_nop_and_exit_insns): Change definition of nop_pattern.
2642
2643 2010-11-25  Alexander Monakov  <amonakov@ispras.ru>
2644
2645         PR rtl-optimization/46602
2646         * sel-sched-ir.c (maybe_tidy_empty_bb): Move checking ...
2647         (tidy_control_flow): Here.
2648
2649 2010-11-25  Joern Rennecke  <amylaar@spamcop.net>
2650             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2651
2652         PR bootstrap/45888
2653         * Makefile.in (s-tm-texi): Remove \r occurences from tmp-tm.texi.
2654         Fix target.def pathname in timestamp comparison.
2655
2656 2010-11-24  Richard Henderson  <rth@redhat.com>
2657
2658         * config/ia64/predicates.md (pmpyshr_operand): New.
2659         * config/ia64/ia64.c (ia64_expand_unpack): New.
2660         (ia64_expand_widen_mul_v4hi): New.
2661         (ia64_expand_widen_sum): Update for pattern renames.
2662         (ia64_expand_dot_prod_v8qi): Likewise.
2663         * config/ia64/ia64-protos.h: Update.
2664         * config/ia64/vect.md (vecwider): New mode attribute.
2665         (vec_widen_umult_lo_v8qi, vec_widen_umult_hi_v8qi): New.
2666         (vec_widen_smult_lo_v8qi, vec_widen_smult_hi_v8qi): New.
2667         (pmpyshr2, pmpyshr2_u): New.
2668         (vec_widen_smult_lo_v4hi, vec_widen_smult_hi_v4hi): New.
2669         (vec_widen_umult_lo_v4hi, vec_widen_umult_hi_v4hi): New.
2670         (mulv2si3): New.
2671         (vec_pack_ssat_v4hi): Rename from pack2_sss.
2672         (vec_pack_usat_v4hi): Rename from *pack2_uss.
2673         (vec_pack_ssat_v2si): Rename from pack4_sss.
2674         (vec_interleave_lowv8qi): Rename from unpack1_l, use the correct
2675         vec_select operation.
2676         (vec_interleave_highv8qi): Similarly.
2677         (mux1_alt): Rename from *mux1_alt.
2678         (vec_extract_evenv8qi, vec_extract_oddv8qi): New.
2679         (vec_interleave_lowv4hi): Rename from unpack2_l.
2680         (vec_interleave_highv4hi): Rename from unpack2_h.
2681         (mix2_r): Rename from *mix2_r.
2682         (mix2_l): Similarly.
2683         (vec_extract_evenodd_helper): New.
2684         (vec_extract_evenv4hi, vec_extract_oddv4hi): New.
2685         (vec_interleave_lowv2si): Rename from *unpack4_l.
2686         (vec_interleave_highv2si): Rename from *unpack4_h.
2687         (vec_extract_evenv2si, vec_extract_oddv2si): New.
2688         (vec_interleave_lowv2sf): Rename from fmix_r.
2689         (vec_interleave_highv2sf): Rename from *fmix_l.
2690         (vec_extract_evenv2sf, vec_extract_oddv2sf): New.
2691         (vec_unpacku_lo_<VECINT12>, vec_unpacku_hi_<VECINT12>): New.
2692         (vec_unpacks_lo_<VECINT12>, vec_unpacks_hi_<VECINT12>): New.
2693         (vec_pack_trunc_v4hi, vec_pack_trunc_v2si): New.
2694
2695 2010-11-24  Nathan Froyd  <froydnj@codesourcery.com>
2696
2697         * targhooks.c (default_except_unwind_info): Remove
2698         MUST_USE_SJLJ_EXCEPTIONS case.
2699         * config/h8300/h8300.h (MUST_USE_SJLJ_EXCEPTIONS): Delete.
2700         * config/h8300/h8300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
2701         * doc/tm.texi.in (MUST_USE_SJLJ_EXCEPTIONS): Delete.
2702         * doc/tm.texi: Regenerate.
2703         * system.h (MUST_USE_SJLJ_EXCEPTIONS): Poison.
2704
2705 2010-11-24  Nathan Froyd  <froydnj@codesourcery.com>
2706
2707         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
2708         __FLOAT_WORD_ORDER__ according to FLOAT_WORDS_BIG_ENDIAN.
2709         * config/dfp-bit.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Delete.
2710         * doc/cpp.texi (__FLOAT_WORD_ORDER__): Document.
2711         * system.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Poison.
2712
2713 2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>
2714
2715         PR target/46519
2716         * config/i386/i386.c (ix86_expand_call): Don't check
2717         TREE_THIS_VOLATILE.
2718
2719 2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>
2720
2721         PR target/46519
2722         * config/i386/i386.c (upper_128bits_state): New.
2723         (block_info_def): Remove upper_128bits_set and done.  Add state,
2724         referenced, count, processed and rescanned.
2725         (check_avx256_stores): Updated.
2726         (move_or_delete_vzeroupper_2): Updated. Handle deleted BB_END.
2727         Call note_stores only if needed.  Set referenced and count.
2728         (move_or_delete_vzeroupper_1): Updated.  Set rescan_vzeroupper_p.
2729         (rescan_move_or_delete_vzeroupper): New.
2730         (move_or_delete_vzeroupper):  Process and rescan all all basic
2731         blocks instead of predecessor blocks of all exit points.
2732         (ix86_option_override_internal): Enable vzeroupper optimization
2733         only for -fexpensive-optimizations and not optimizing for size.
2734         (use_avx256_p): Removed.
2735         (init_cumulative_args): Don't set use_avx256_p.
2736         (ix86_function_arg): Likewise.
2737         (ix86_expand_move): Likewise.
2738         (ix86_expand_vector_move_misalign): Likewise.
2739         (ix86_local_alignment): Likewise.
2740         (ix86_minimum_alignment): Likewise.
2741         (ix86_expand_epilogue): Don't check use_avx256_p when generating
2742         vzeroupper.
2743         (ix86_expand_call): Likewise.
2744
2745         * config/i386/i386.h (machine_function): Remove use_vzeroupper_p
2746         and use_avx256_p.  Add rescan_vzeroupper_p.
2747
2748 2010-11-24  Joseph Myers  <joseph@codesourcery.com>
2749
2750         * toplev.c: Include <signal.h>.
2751
2752 2010-11-24  Richard Guenther  <rguenther@suse.de>
2753
2754         PR lto/43218
2755         * lto-symtab.c (lto_cgraph_replace_node): Mark edges with
2756         conflicting function signatures as non-inlineable.
2757
2758 2010-11-24  Jakub Jelinek  <jakub@redhat.com>
2759
2760         PR rtl-optimization/46614
2761         * sched-deps.c (NON_FLUSH_JUMP_KIND, NON_FLUSH_JUMP_P): Define.
2762          (deps_analyze_insn): Mark JUMP_INSNs in
2763         last_pending_memory_flush that weren't added through
2764         flush_pending_lists with NON_FLUSH_JUMP_KIND.
2765         (sched_analyze_2, sched_analyze_insn): Check NON_FLUSH_JUMP_P
2766         on INSN_LIST instead of JUMP_P check on its operand.
2767         * sched-rgn.c (concat_INSN_LIST): Copy over REG_NOTE_KIND.
2768
2769 2010-11-24  Richard Guenther  <rguenther@suse.de>
2770
2771         * lto-streamer-in.c (input_gimple_stmt): Use types_compatible_p.
2772
2773 2010-11-24  Richard Guenther  <rguenther@suse.de>
2774
2775         PR lto/46606
2776         * lto-streamer-in.c (input_gimple_stmt): When we cannot find
2777         a FIELD_DECL that is type correct issue a warning and fixup
2778         with a VIEW_CONVERT_EXPR.
2779
2780 2010-11-24  Basile Starynkevitch  <basile@starynkevitch.net>
2781
2782         * doc/invoke.texi (Options for Debugging Your Program or GCC):
2783         Explain static numbering of dump files.
2784
2785 2010-11-24  Joseph Myers  <joseph@codesourcery.com>
2786
2787         * common.opt (user_vect_verbosity_level): New Variable entry.
2788         (ftree-vectorizer-verbose=): Mark as UInteger.
2789         * flag-types.h (enum vect_verbosity_levels): Move from enum
2790         verbosity_levels in tree-vectorizer.h.
2791         * opts.c: Don't include tree.h.
2792         (vect_set_verbosity_level): Move from tree-vectorizer.c.  Use
2793         gcc_options parameter; take integer option argument.
2794         (common_handle_option): Update call to vect_set_verbosity_level.
2795         * tree-vectorizer.c (user_vect_verbosity_level): Remove.
2796         (vect_set_verbosity_level): Move to opts.c.
2797         (vect_verbosity_level, vect_print_dump_info): Update for change of
2798         enum name.
2799         * tree-vectorizer.h (enum verbosity_levels): Move to flag-types.h.
2800         (vect_print_dump_info): Update for change of enum name.
2801         * tree.h (vect_set_verbosity_level): Remove.
2802         * Makefile.in (opts.o): Update dependencies.
2803
2804 2010-11-24  Jakub Jelinek  <jakub@redhat.com>
2805
2806         PR middle-end/46629
2807         * cfgexpand.c (maybe_cleanup_end_of_block): Test NEXT_INSN (insn)
2808         instead of insn with any_condjump_p.
2809
2810 2010-11-24  Mingjie Xing  <mingjie.xing@gmail.com>
2811
2812         * config/mips/loongson.md: Change the description comment of the file
2813         and update the copyright years.
2814         (define_insn "<u>div<mode>3): Add loongson3a support.
2815         (define_insn "<u>mod<mode>3"): Likewise.
2816         * config/mips/mips.md: Rename mul<mode>3_mul3_ls2ef to
2817         mul<mode>3_mul3_loongson.
2818         (define_expand "mul<mode>3"): Add TARGET_LOONGSON_3A.
2819         (define_insn "mul<mode>3_mul3_loongson"): Add loongson3a support.
2820
2821 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
2822
2823         * common.opt (initial_max_fld_align, flag_debug_asm,
2824         flag_dump_rtl_in_asm, flag_dump_all_passed, rtl_dump_and_exit,
2825         flag_print_asm_name, graph_dump_format, help_printed,
2826         help_columns, flag_opts_finished): New Variable entries.
2827         (fdbg-cnt-list, fdbg-cnt=, fdebug-prefix-map=, frandom-seed,
2828         frandom-seed=): Mark deferred.
2829         (fsched-verbose=): Use UInteger and Var.
2830         * flags.h (set_struct_debug_option, flag_print_asm_name,
2831         rtl_dump_and_exit, flag_debug_asm, flag_dump_rtl_in_asm,
2832         graph_dump_format): Don't declare here.
2833         * haifa-sched.c (sched_verbose_param, fix_sched_param): Remove.
2834         * opts-global.c: Include dbgcnt.h and debug.h.
2835         (decode_options): Pass location to finish_options.
2836         (handle_common_deferred_options): Check flag_dump_all_passed.
2837         Handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list, OPT_fdebug_prefix_map_,
2838         OPT_frandom_seed and OPT_frandom_seed_.  Don't assert on
2839         OPT_fstack_limit.
2840         * opts.c: Don't include toplev.h, dbgcnt.h or debug.h.
2841         (set_struct_debug_option): Add location_t parameter.  Update
2842         recursive call.  Use error_at.
2843         (default_options_optimization): Use error_at.
2844         (finish_options): Add location_t parameter.  Use
2845         opts->x_flag_opts_finished instead of first_time_p.  Use
2846         opts->x_optimize instead of optimize.  Use error_at.  Pass
2847         location to inform.
2848         (print_filtered_help): Use opts->x_help_printed to track what
2849         options have been printed.
2850         (print_specific_help): Use opts->x_help_columns to track number of
2851         columns.
2852         (common_handle_option): Pass locations and gcc_options pointers to
2853         more functions.  Use warning_at instead of fnotice and warning.
2854         Don't handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list or
2855         OPT_fdebug_prefix_map_.  Use error_at.  Set
2856         opts->x_initial_max_fld_align; don't set maximum_field_alignment.
2857         Don't handle OPT_frandom_seed or OPT_frandom_seed_.  Don't handle
2858         OPT_fsched_verbose_.
2859         (handle_param): Add location_r parameter.  Use error_at.
2860         (set_debug_level): Add location_r parameter.  Use error_at and
2861         warning_at.
2862         (setup_core_dumping): Add diagnostic_context parameter.
2863         (decode_d_option): Add gcc_options, location_t and
2864         diagnostic_context parameters and use them instead of global
2865         state.  Use warning_at.
2866         (enable_warning_as_error): Use error_at.
2867         * opts.h (finish_options): Update prototype.
2868         (set_struct_debug_option): Declare here.
2869         * rtl.h (fix_sched_param): Remove.
2870         * stor-layout.c (initial_max_fld_align): Remove.
2871         * toplev.c (rtl_dump_and_exit, flag_print_asm_name,
2872         graph_dump_format, flag_debug_asm, flag_dump_rtl_in_asm): Remove.
2873         (process_options): Set maximum_field_alignment.
2874         * tree.h (initial_max_fld_align) Don't declare here.
2875         * Makefile.in (opts.o, opts-global.o): Update dependencies.
2876
2877 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
2878
2879         * flag-types.h (struct visibility_flags): Don't declare here.
2880         * flags.h (strip_off_ending, fast_math_flags_set_p,
2881         fast_math_flags_struct_set_p): Declare here.
2882         (visibility_options): Don't declare here.
2883         * opts-common.c (option_enabled, get_option_state): Move from
2884         opts.c.
2885         * opts-global.c: Include diagnostic.h instead of
2886         diagnostic-core.h.  Include tree.h, langhooks.h, lto-streamer.h
2887         and toplev.h.
2888         (const_char_p, ignored_options, in_fnames, num_in_fnames,
2889         write_langs, complain_wrong_lang, postpone_unknown_option_warning,
2890         print_ignored_options, unknown_option_callback,
2891         post_handling_callback, lang_handle_option, add_input_filename,
2892         read_cmdline_options, initial_lang_mask, init_options_once,
2893         decode_cmdline_options_to_array_default_mask,
2894         set_default_handlers, decode_options): Move from opts.c.
2895         (print_ignored_options): Use warning_at instead of saving and
2896         restoring input_location.
2897         * opts.c: Include <signal.h> and <sys/resource.h>.  Include rtl.h
2898         instead of expr.h.  Don't include langhooks.h, except.h or
2899         lto-streamer.h.  Add more comments on includes.
2900         (strip_off_ending, setup_core_dumping, decode_d_option): Move from
2901         toplev.c.
2902         (visibility_options): Move to c-family/c-common.c.
2903         (const_char_p, ignored_options, in_fnames, num_in_fnames,
2904         write_langs, complain_wrong_lang, postpone_unknown_option_warning,
2905         print_ignored_options, unknown_option_callback,
2906         post_handling_callback, lang_handle_option, add_input_filename,
2907         read_cmdline_options, initial_lang_mask, init_options_once,
2908         decode_cmdline_options_to_array_default_mask,
2909         set_default_handlers, decode_options): Move to opts-global.c.
2910         (target_handle_option, default_options_optimization,
2911         finish_options, common_handle_option): Remove static.
2912         (option_enabled, get_option_state): Move to opts-common.c.
2913         * opts.h (common_handle_option, target_handle_option,
2914         finish_options, default_options_optimization): Declare.
2915         * toplev.c: Don't include <signal.h> or <sys/resource.h>.
2916         (setup_core_dumping, strip_off_ending, decode_d_option): Move to
2917         opts.c.
2918         * toplev.h (strip_off_ending, decode_d_option,
2919         fast_math_flags_set_p, fast_math_flags_struct_set_p): Don't
2920         declare here.
2921         * Makefile.in (opts.o, opts-global.o): Update dependencies.
2922
2923 2010-11-23  Dave Korn  <dave.korn.cygwin@gmail.com>
2924
2925         PR driver/42690
2926         * gcc.c (LINK_COMMAND_SPEC): Remove hard-coded pass-through plugin
2927         options, replace by call of pass-through-libs spec function to process
2928         link_gcc_c_sequence spec.
2929         (lto_libgcc_spec): Delete variable.
2930         (static_specs[]): Remove related entry.
2931         (static_spec_functions[]): Add new entry for pass-through-libs.
2932         (main): Don't generate deleted lto_libgcc_spec.
2933         (pass_through_libs_spec_func): New function to implement the new
2934         pass-through-libs spec function.
2935         * doc/invoke.texi (pass-through-libs): Document new spec function.
2936
2937 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
2938
2939         * doc/options.texi (Warning, Optimization): Document.
2940
2941 2010-11-23  Jan Hubicka  <jh@suse.cz>
2942
2943         * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): New macro.
2944         (tree_decl_with_vis): Add implicit_section_name_p.
2945         * targhooks.h (default_function_section): Declare.
2946         * target.def (function_section): New hook.
2947         * defaults.h (HOT_TEXT_SECTION_NAME,
2948         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
2949         * predict.c (choose_function_section): Remove.
2950         (estimate_bb_frequencies): Do not use choose_function_section.
2951         * coretypes.h (enum node_frequency): Move here from cgraph.h
2952         * cgraph.h (enum node_frequency): Remove.
2953         * varasm.c (initialize_cold_section_name, unlikely_text_section,
2954         unlikely_text_section_p): Remove.
2955         (named_subsection_entry): New structure.
2956         (get_text_section): New function.
2957         (default_function_section): New function.
2958         (function_section_1): Break out from ...; handle profile info.
2959         (function_section): ... here.
2960         (unlikely_text_section): Remove.
2961         (unlikely_text_section_p): Use function_section_1.
2962         (assemble_start_function): Do not initialize cold section.
2963         (default_section_type_flags): Do not special case cold subsection.
2964         (switch_to_section): Likewise.
2965         * output.h (get_text_section): Define.
2966         * config/i386/winnt.c: Do not special case cold section.
2967         * config/darwin-protos.h (darwin_function_section): Declare.
2968         * config/microblaze/microblaze.h (HOT_TEXT_SECTION_NAME,
2969         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
2970         * config/ia64/hpux.h (HOT_TEXT_SECTION_NAME,
2971         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
2972         (TARGET_ASM_FUNCTION_SECTION): Define to ia64_hpux_function_section.
2973         * config/ia64/ia64.c (ia64_hpux_function_section): New function.
2974         * config/darwin.c (machopic_select_section): Use
2975         darwin_function_section.
2976         (darwin_function_section): New function.
2977         * config/darwin.h (HOT_TEXT_SECTION_NAME,
2978         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
2979         (TARGET_ASM_FUNCTION_SECTION): Define.
2980         * system.h (HOT_TEXT_SECTION_NAME,
2981         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Poison.
2982
2983 2010-11-23  Iain Sandoe  <iains@gcc.gnu.org>
2984
2985         * config/darwin.h (LINK_COMMAND_SPEC_A): Use %(link_gcc_c_sequence).
2986         LINK_GCC_C_SEQUENCE_SPEC: Define new macro.
2987
2988 2010-11-23  Jakub Jelinek  <jakub@redhat.com>
2989
2990         PR middle-end/46499
2991         * cfgexpand.c (maybe_cleanup_end_of_block): Remove also BARRIERs
2992         following unconditional jumps.
2993
2994 2010-11-23  Richard Guenther  <rguenther@suse.de>
2995
2996         * doc/md.texi (386 constraints): Clarify A constraint documentation.
2997
2998 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
2999             Jeremie Salvucci  <jeremie.salvucci@free.fr>
3000
3001         * gengtype.c (enum typekind, struct options)
3002         (struct nested_ptr_data, struct pair, NUM_PARAM)
3003         (enum gc_used_num, struct type, UNION_P, UNION_OR_STRUCT_P):
3004         Move to gengtype.h.
3005         (string_type, scalar_nonchar, scalar_nonchar, scalar_char):
3006         Remove static, add zero state_number.
3007         (typedefs, structures, param_structs, variables): Remove static.
3008         (create_option): Remove.
3009         (create_string_option, create_type_option, create_nested_option):
3010         New functions.
3011         (create_nested_ptr_option): Use create_nested_option.
3012         (note_variable, adjust_field_rtx_def, adjust_field_type): Call the
3013         new create*option functions.
3014         (process_gc_options): Adjust for discriminated option.
3015         (output_mangled_typename): Handle TYPE_NONE.
3016         (walk_type): Test option kinds.
3017         (write_types_process_field): Handle TYPE_NONE and TYPE_ARRAY.
3018         (write_func_for_structure, write_type, write_local, write_root)
3019         (write_roots, note_def_vec, dump_options): Adjust for
3020         discriminated option.
3021
3022         * gengtype.h (typedefs, structures, param_structs, variables
3023         enum typekind): Move from gengtype.c
3024         (enum option_kind): New discriminating enumeration.
3025         (struct options): Becomes discriminated.
3026         (struct nested_ptr_data): Nove from gengtype.c
3027         (create_string_option, create_type_option, create_nested_option)
3028         (create_nested_ptr_option): New functions
3029         (struct pair, enum_gc_used_enum, NUM_PARAM, struct type, UNION_P)
3030         (UNION_OR_STRUCT_P): Move from gengtype.c
3031
3032         * gengtype-parse.c (str_optvalue_opt, type_optvalue, option): Make
3033         discriminated options.
3034
3035 2010-11-23  Richard Guenther  <rguenther@suse.de>
3036
3037         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid doing work
3038         twice.  Avoid re-allocating the ops vector all the time.
3039
3040 2010-11-23  Richard Guenther  <rguenther@suse.de>
3041
3042         * tree-ssa-alias.c (refs_may_alias_p_1): Avoid calls to
3043         is_gimple_min_invariant, group tree code checks to allow
3044         combining them.
3045         (stmt_may_clobber_ref_p_1): Check for SSA_NAME instead
3046         of is_gimple_reg.
3047
3048 2010-11-23  Eric Botcazou  <ebotcazou@adacore.com>
3049
3050         * config.gcc (sparc*-*-*): Reorder.
3051
3052 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
3053
3054         * gengtype.c (header_dot_h_frul, source_dot_c_frul):
3055         Remove ENABLE_CHECKING around DBGPRINTF.
3056
3057 2010-11-22  Joseph Myers  <joseph@codesourcery.com>
3058
3059         * common.opt (exit_after_options, write_symbols, debug_info_level,
3060         use_gnu_debug_info_extensions): New Variable entries.
3061         (fprofile-dir=): Use Var.
3062         * flag-types.h (enum debug_info_level): Rename to enum
3063         debug_info_levels.
3064         * flags.h (write_symbols, debug_info_level,
3065         use_gnu_debug_info_extensions): Remove declarations.
3066         * opts.c (exit_after_options, write_symbols, debug_info_level): Remove.
3067         (set_struct_debug_option): Make static variables const.
3068         (use_gnu_debug_info_extensions): Remove.
3069         (set_debug_level, print_filtered_help, print_specific_help,
3070         fast_math_flags_set_p): Take gcc_options parameters and use them
3071         in place of global variables.
3072         (print_filtered_help): Make new_help non-static.
3073         (print_specific_help): Update call to print_filtered_help.
3074         (common_handle_option): Update calls to print_specific_help.  Use
3075         gcc_options structure for more settings.  Make --help table
3076         const.  Don't handle OPT_fprofile_dir_ here.  Update calls to
3077         set_debug_level.
3078         * toplev.c (profile_data_prefix): Remove.
3079         * toplev.h (profile_data_prefix, exit_after_options): Remove
3080         declarations.
3081         (fast_math_flags_set_p): Update prototype.
3082         * cppbuiltin.c (define_builtin_macros_for_compilation_flags):
3083         Update call to fast_math_flags_set_p.
3084
3085 2010-11-22  Richard Henderson  <rth@redhat.com>
3086
3087         PR target/46434
3088         * config/crx/crx.c (crx_addr_reg): Rename from crx_addr_reg_p;
3089         return the address register extracted.
3090         (crx_decompose_address): Update the extracted address register.
3091
3092 2010-11-22  Dmitry Gorbachev  <d.g.gorbachev@gmail.com>
3093
3094         PR driver/43335
3095         * gcc.c (main): Don't crash when lto-wrapper program is not found.
3096
3097 2010-11-22  Joern Rennecke  <amylaar@spamcop.net>
3098
3099         PR target/46608
3100         * config/picochip/picochip.c (picochip_secondary_reload): Make static.
3101         * config/picochip/picochip-protos.h: Don't include "target.h" .
3102         (picochip_secondary_reload): Don't declare.
3103
3104         PR target/46613
3105         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Declare.
3106         * config/m32c/m32c.c (m32c_conditional_register_usage): No longer
3107         static.
3108
3109 2010-11-22  H.J. Lu  <hongjiu.lu@intel.com>
3110
3111         PR bootstrap/46609
3112         * gengtype.c (header_dot_h_frul): Check ENABLE_CHECKING.
3113         (source_dot_c_frul): Likewise.
3114
3115 2010-11-22  Basile Starynkevitch  <basile@starynkevitch.net>
3116
3117         * gimple-pretty-print.c (dump_bb_header): Add check for cfun.
3118
3119 2010-11-22  Paolo Bonzini  <bonzini@gnu.org>
3120
3121         PR bootstrap/44970
3122         * Makefile.in (fwprop.o) Add sparseset.h.
3123         * fwprop.c: Include sparseset.h
3124         (struct find_occurrence_data, find_occurrence_callback,
3125         find_occurrence): Remove.
3126         (active_defs, active_defs_check, register_active_defs,
3127         update_df_init, update_uses): New.
3128         (update_df): Rewrite.
3129         (try_fwprop_subst, forward_propagate_asm): Add calls to
3130         update_df_init and update_df.
3131         (fwprop_init): Allocate active_defs and active_defs_check.
3132         (fwprop_done): Free them.
3133         (fwprop, fwprop_addr): Adjust comments.
3134         * df.h (df_uses_create): Declare.
3135         * df-scan.c (df_install_ref_incremental): Break out of df_ref_create.
3136         (df_ref_create): Return result of df_ref_create_structure directly.
3137         (df_ref_create_structure): Call df_install_ref_incremental when
3138         no collection_rec is passed.
3139         (df_ref_record): Do not create multiword hard reg info when no
3140         collection_rec is passed.
3141         (df_uses_create): New.
3142
3143 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
3144
3145         PR middle-end/43057
3146         * fold-const.c (pedantic_non_lvalue_loc): Unshare x before
3147         setting location.
3148
3149 2010-11-22  Richard Guenther  <rguenther@suse.de>
3150
3151         * gimple-fold.c (maybe_fold_reference): When canonicalizing
3152         MEM_REFs, preserve volatileness.
3153         * cgraphbuild.c (mark_address): Properly check for FUNCTION_DECL
3154         addresses.
3155
3156 2010-11-22  Richard Guenther  <rguenther@suse.de>
3157
3158         * tree-ssa-ccp.c (get_base_constructor): Remove superfluous breaks.
3159
3160 2010-11-22  Alexander Monakov  <amonakov@ispras.ru>
3161
3162         PR rtl-optimization/45652
3163         * alias.c (get_reg_base_value): New.
3164         * rtl.h (get_reg_base_value): Add prototype.
3165         * sel-sched.c (init_regs_for_mode): Use it.  Don't use registers with
3166         non-null REG_BASE_VALUE for renaming.
3167
3168 2010-11-22  Jeremie Salvucci  <jeremie.salvucci@free.fr>
3169             Basile Starynkevitch  <basile@starynkevitch.net>
3170
3171         * gengtype.c: Include xregex.h and obstack.h
3172         Added comments about role of get_output_file_with_visibility and
3173         our regexpr machinery.
3174         (frul_actionrout_t, struct file_rule_st): New.
3175         (hader_dot_h_frul, source_dot_c_frul): New functions.
3176         (NULL_REGEX,  NULL_FRULACT): New.
3177         (files_rules): New.
3178         (matching_file_name_substitute): New function.
3179         (get_output_file_with_visibility): Updated comments and rewritten
3180         to use the new files_rules machinery.
3181
3182         * Makefile.in (XREGEX_H): Added variable.
3183         (build/gengtype.o): Added dependencies for xregex.h and obstack.h
3184
3185 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
3186
3187         * system.h (FUNCTION_ARG_BOUNDARY): Really poison.
3188
3189 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
3190
3191         * target.def (conditional_register_usage): Define.
3192         * reginfo.c (init_reg_sets_1): Call
3193         targetm.conditional_register_usage.
3194         * system.h (CONDITIONAL_REGISTER_USAGE): Poison.
3195         * doc/tm.texi.in (CONDITIONAL_REGISTER_USAGE): Adjust language
3196         for making it a hook.
3197         * doc/tm.texi: Regenerate.
3198         * config/alpha/alpha.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3199         * config/alpha/alpha.c (alpha_conditional_register_usage): ...here.
3200         New function.
3201         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3202         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3203         * config/arc/arc.c (arc_conditional_register_usage): ...here.
3204         New function.
3205         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3206         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3207         * config/arm/arm.c (arm_conditional_register_usage): ...here.
3208         New function.
3209         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3210         * config/bfin/bfin.h (CONDITIONAL_REGISTER_USAGE): Delete.
3211         * config/bfin/bfin-protos.h (conditional_register_usage): Delete.
3212         * config/bfin/bfin.c (conditional_register_usage): Move code into...
3213         (bfin_conditional_register_usage): ...here.  New function.
3214         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3215         * config/cris/cris.h (CONDITIONAL_REGISTER_USAGE): Delete.
3216         * config/cris/cris-protos.h (cris_conditional_register_usage): Delete.
3217         * config/cris/cris.c (cris_conditional_register_usage): Make static.
3218         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3219         * config/fr30/fr30.h (FIXED_REGISTERS): Adjust comment.
3220         * config/frv/frv.h (CONDITIONAL_REGISTER_USAGE): Delete.
3221         * config/frv/frv-protos.h (frv_conditional_register_usage): Delete.
3222         * config/frv/frv.c (frv_conditional_register_usage): Make static.
3223         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3224         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3225         * config/h8300/h8300.c (h8300_conditional_register_usage): ...here.
3226         New function.
3227         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3228         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Delete.
3229         * config/i386/i386-protos.h (ix86_conditional_register_usage): Delete.
3230         * config/i386/i386.c (ix86_conditional_register_usage): Make static.
3231         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3232         * config/m32c/m32c.h (CONDITIONAL_REGISTER_USAGE): Delete.
3233         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Delete.
3234         * config/m32c/m32c.c (m32c_conditional_register_usage): Make static.
3235         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3236         * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3237         * config/m32r/m32r.c (m32r_conditional_register_usage): ...here.
3238         New function.
3239         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3240         * config/m68hc11/m68hc11.h (CONDITIONAL_REGISTER_USAGE): Delete.
3241         * config/m68hc11/m68hc11-protos.h (m68hc11_conditional_register_usage):
3242         Delete.
3243         * config/m68hc11/m68hc11.c (m68hc11_conditional_register_usage): Make
3244         static.
3245         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3246         * config/mep/mep.h (CONDITIONAL_REGISTER_USAGE): Delete.
3247         * config/mep/mep-protos.h (mep_conditional_register_usage): Delete.
3248         * config/mep/mep.c (mep_conditional_register_usage): Make static.
3249         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3250         * config/mips/mips.h (CONDITIONAL_REGISTER_USAGE): Delete.
3251         * config/mips/mips-protos.h (mips_conditional_register_usage): Delete.
3252         * config/mips/mips.c (mips_conditional_register_usage): Make static.
3253         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3254         * config/mmix/mmix.h (CONDITIONAL_REGISTER_USAGE): Delete.
3255         * config/mmix/mmix-protos.h (mmix_conditional_register_usage): Delete.
3256         * config/mmix/mmix.c (mmix_conditional_register_usage): Make static.
3257         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3258         * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3259         * config/mn10300/mn10300.c (mn10300_conditional_register_usage):
3260         ...here.  New function.
3261         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3262         * config/pa/pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3263         * config/pa/pa64-regs.h (CONDITIONAL_REGISTER_USAGE): ...with this...
3264         * config/pa/pa.c (pa_conditional_register_usage): ...here.
3265         New function.
3266         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3267         * config/pdp11/pdp11.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3268         * config/pdp11/pdp11.c (pdp11_conditional_register_usage): ...here.
3269         New function.
3270         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3271         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Delete.
3272         * config/rs6000/rs6000-protos.h (rs6000_conditional_register_usage):
3273         Delete.
3274         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): Make
3275         static.
3276         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3277         * config/rx/rx.h (CONDITIONAL_REGISTER_USAGE): Delete.
3278         * config/rx/rx-protos.h (rx_conditional_register_usage): Delete.
3279         * config/rx/rx.c (rx_conditional_register_usage): Make static.
3280         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3281         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Delete.
3282         * config/s390/s390-protos.h (s390_conditional_register_usage): Delete.
3283         * config/s390/s390.c (s390_conditional_register_usage): Make static.
3284         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3285         * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3286         * config/score/score.c (score_conditional_register_usage): ...here.
3287         New function.
3288         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3289         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3290         * config/sh/sh.c (sh_conditional_register_usage): ...here.
3291         New function.
3292         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3293         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3294         * config/sparc/sparc.c (sparc_conditional_register_usage): ...here.
3295         New function.
3296         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3297         * config/spu/spu.h (CONDITIONAL_REGISTER_USAGE): Delete.
3298         * config/spu/spu-protos.h (spu_conditional_register_usage): Delete.
3299         * config/spu/spu.c (spu_conditional_register_usage): Make static.
3300         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3301         * config/v850/v850.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3302         * config/v850/v850.c (v850_conditional_register_usage): ...here.
3303         New function.
3304         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3305
3306 2010-11-21  Jan Hubicka  <jh@suse.cz>
3307             Dominique d'Humieres <dominiq@lps.ens.ft>
3308
3309         PR target/46510
3310         * tree-emutls.c (get_emutls_init_templ_addr, new_emutls_decl): Do not
3311         finalize external decls.
3312
3313 2010-11-21  Joseph Myers  <joseph@codesourcery.com>
3314
3315         * system.h (strerror): Poison.
3316
3317 2010-11-21  Richard Henderson  <rth@redhat.com>
3318
3319         * config/ia64/ia64.c (ia64_expand_builtin): Use the correct mode
3320         for infq/huge_valq.
3321
3322 2010-11-21  Richard Henderson  <rth@redhat.com>
3323
3324         PR rtl-optimization/46571
3325         * gcse.c (hash_scan_set): Use next_nonnote_nondebug_insn.
3326         (compute_hash_table_work): Use NONDEBUG_INSN_P.
3327
3328 2010-11-21  Paul Koning  <ni1d@arrl.net>
3329
3330         * config/mips/pdp11.md (negsi2): Fix wrong code.
3331
3332 2010-11-21  Paul Koning  <ni1d@arrl.net>
3333
3334         * config/mips/pdp11.c (pdp11_legitimate_address_p): New function.
3335         * config/mips/pdp11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3336
3337 2010-11-21  Eric Botcazou  <ebotcazou@adacore.com>
3338
3339         * config/mips/mips.c (machine_function): Rename load_label_length to
3340         load_label_num_insns.
3341         (mips_load_label_length): Rename to...
3342         (mips_load_label_num_insns): ...this.  Adjust to first renaming.
3343         (mips_adjust_insn_length): Adjust to second renaming.  Fix thinko.
3344
3345 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
3346
3347         PR target/46533
3348         * config/alpha/predicates.md (direct_call_operand): Return false
3349         for !TARGET_SMALL_TEXT targets.
3350
3351 2010-11-20  Joseph Myers  <joseph@codesourcery.com>
3352
3353         * doc/tm.texi.in (HANDLE_SYSV_PRAGMA,
3354         HANDLE_PRAGMA_PACK_PUSH_POP): Remove.
3355         (HANDLE_PRAGMA_PACK_WITH_EXPANSION): Don't refer to HANDLE_SYSV_PRAGMA.
3356         * doc/tm.texi: Regenerate.
3357         * system.h (HANDLE_PRAGMA_PACK_PUSH_POP, HANDLE_SYSV_PRAGMA,
3358         HANDLE_PRAGMA_WEAK): Poison.
3359         * config/alpha/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
3360         * config/alpha/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3361         * config/alpha/osf5.h (HANDLE_SYSV_PRAGMA): Don't define.
3362         * config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Don't define.
3363         * config/arm/arm.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3364         * config/arm/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
3365         * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3366         * config/darwin.h (HANDLE_SYSV_PRAGMA): Don't define.
3367         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3368         * config/elfos.h (HANDLE_SYSV_PRAGMA): Don't define.
3369         * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3370         * config/frv/frv.h (HANDLE_SYSV_PRAGMA): Don't define.
3371         * config/i386/cygming.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3372         * config/i386/djgpp.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3373         * config/i386/i386-interix.h (HANDLE_SYSV_PRAGMA): Don't define.
3374         (HANDLE_PRAGMA_WEAK): Don't undefine.
3375         * config/i386/netware.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3376         * config/i386/vxworks.h (HANDLE_SYSV_PRAGMA): Don't define.
3377         * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3378         * config/ia64/ia64.h (HANDLE_SYSV_PRAGMA): Don't define.
3379         * config/interix.h (HANDLE_SYSV_PRAGMA): Don't define.
3380         (HANDLE_PRAGMA_WEAK): Don't undefine.
3381         * config/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3382         * config/m32r/linux.h (HANDLE_SYSV_PRAGMA): Don't define.
3383         (HANDLE_PRAGMA_PACK): Don't undefine.
3384         * config/m32r/m32r.h (HANDLE_SYSV_PRAGMA): Don't undefine.
3385         * config/mep/mep.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3386         * config/mips/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3387         * config/mips/sde.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3388         * config/mmix/mmix.h (HANDLE_SYSV_PRAGMA): Don't define.
3389         * config/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
3390         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3391         * config/openbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
3392         * config/pa/pa-hpux.h (HANDLE_SYSV_PRAGMA): Don't define.
3393         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3394         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Don't define.
3395         * config/rs6000/sysv4.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3396         * config/rx/rx.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3397         * config/score/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
3398         * config/spu/spu.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3399         * config/stormy16/stormy16.h (HANDLE_SYSV_PRAGMA): Don't define.
3400         * config/xtensa/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3401
3402 2010-11-20  Eric Botcazou  <ebotcazou@adacore.com>
3403
3404         PR target/31100
3405         * config/sparc/sparc.h (ASM_OUTPUT_ALIGN_WITH_NOP): Move to...
3406         * config/sparc/sol2.h (ASM_OUTPUT_ALIGN_WITH_NOP): ...here.
3407         * config/sparc/sol2-gas.h (ASM_OUTPUT_ALIGN_WITH_NOP): Undefine.
3408
3409 2010-11-20  Jan Hubicka  <jh@suse.cz>
3410
3411         * cgraph.c (ld_plugin_symbol_resolution_names): New.
3412         (dump_cgraph_node): Dump resolution.
3413         * cgraph.h (ld_plugin_symbol_resolution_names): Declare.
3414         (cgraph_comdat_can_be_unshared_p): Dclare.
3415         * lto-streamer-out.c (produce_symtab): Use
3416         cgraph_comdat_can_be_unshared_p.
3417         * ipa.c (cgraph_address_taken_from_non_vtable_p): New function.
3418         (cgraph_comdat_can_be_unshared_p): New function based on logic
3419         in cgraph_externally_visible_p.
3420         (cgraph_externally_visible_p): Use it.
3421         (varpool_externally_visible_p): Virtual tables can be unshared.
3422         * varpool.c (dump_varpool_node): Dump resolution.
3423
3424 2010-11-20  Jan Hubicka  <jh@suse.cz>
3425
3426         * stmt.c (lshift_cheap_p): Support properly optimize_insn_for_speed_p.
3427
3428 2010-11-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3429
3430         PR other/46202
3431         * Makefile.in (install_sh, INSTALL_STRIP_PROGRAM): New variables.
3432         (AR_FOR_TARGET, RANLIB_FOR_TARGET, STRIP_FOR_TARGET): Fix
3433         shell quoting.
3434         (STRIP_FOR_TARGET): Look for in-tree strip under name strip-new.
3435         (install-strip): New target.
3436         (STRIPPROG): New variable, exported if STRIP is set.
3437         * doc/install.texi (Final install): Minor markup and code style
3438         fixes.  Document install-strip target.
3439
3440 2010-11-20  Paul Koning  <ni1d@arrl.net>
3441
3442         * config/pdp11/pdp11-protos.h (pdp11_initial_elimination_offset,
3443         pdp11_regno_reg_class): New functions.
3444         * config/pdp11/pdp11.md (define_constants): Add register numbers.
3445         * config/pdp11/pdp11.c (pdp11_regno_reg_class,
3446         pdp11_sp_frame_offset, pdp11_initial_elimination_offset): New
3447         functions.
3448         * config/pdp11/pdp11.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Add
3449         frame pointer and argument pointer pseudo-registers.
3450         (ARG_POINTER_REGNUM): Define.
3451         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add frame pointer and
3452         argument pointer.
3453         (FIRST_PARM_OFFSET): Update for argument pointer.
3454         (INITIAL_FRAME_POINTER_OFFSET): Delete.
3455         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): New macros.
3456         (REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_INDEX_P, REGISTER_NAMES): Add
3457         frame pointer and argument pointer.
3458
3459 2010-11-20  Jakub Jelinek  <jakub@redhat.com>
3460
3461         PR debug/46561
3462         * tree-parloops.c (try_create_redunction_list): Ignore debug stmts
3463         when looking for immediate uses.
3464
3465         PR tree-optimization/45830
3466         * stmt.c (expand_switch_using_bit_tests_p): New function.
3467         (expand_case): Use it.
3468         * tree.h (expand_switch_using_bit_tests_p): New prototype.
3469         * tree-switch-conversion.c (struct switch_conv_info): Add
3470         bit_test_uniq, bit_test_count and bit_test_bb fields.
3471         (check_range): Fix a comment.
3472         (check_process_case): Compute bit_test_uniq and bit_test_count.
3473         (create_temp_arrays): Use XCNEWVEC, merge 3 arrays into one
3474         allocation.
3475         (free_temp_arrays): Use XDELETEVEC, adjust for the 3 arrays merging.
3476         (constructor_contains_same_values_p): Use FOR_EACH_VEC_ELT.
3477         (array_value_type): New function.
3478         (build_one_array): Use it, if it returned different type,
3479         fold_convert all constructor fields and convert back to the
3480         wider type in the generated code.
3481         (process_switch): Initialize bit_test_uniq, bit_test_count and
3482         bit_test_bb fields.  Don't optimize if expand_switch_using_bit_tests_p
3483         returned true.
3484
3485 2010-11-19  Michael Matz  <matz@suse.de>
3486
3487         PR tree-optimization/46077
3488         * tree-chrec.c (eq_evolutions_p): Accept some expressions.
3489
3490 2010-11-19  Anatoly Sokolov  <aesok@post.ru>
3491
3492         * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
3493         * config/mn10300/mn10300.c (mn10300_asm_output_addr_const_extra): New
3494         function.
3495         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
3496
3497 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
3498
3499         * mode-switching.c (optimize_mode_switching): Use
3500         FOR_BB_INSNS instead of open-coded loop.
3501         * cfgrtl.c (redirect_branch_edge): Ditto.
3502
3503 2010-11-19  Joern Rennecke  <amylaar@spamcop.net>
3504
3505         PR target/46436
3506         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Split shift count
3507         to accomodate 32 bit HOST_WIDE_INT.
3508         (m68hc11_emit_logical): Remove unused variable insn.
3509         (m68hc11_check_z_replacement) <CLOBBER>: Set this_insn_uses_ix and
3510         this_insn_uses_iy before use.
3511
3512         PR target/46434
3513         * config/crx/crx.c (crx_expand_epilogue): Remove unused variable.
3514
3515 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
3516
3517         PR c/46547
3518         * c-tree.h (in_late_binary_op): Move to c-family/c-common.h.
3519         * c-typeck.c (in_late_binary_op): Move to c-family/c-common.c.
3520
3521 2010-11-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
3522
3523         * doc/extend.texi (Function attributes): Document PowerPC target
3524         attributes that are supported.
3525         (Pragmas): Document that PowerPC now supports target pragmas.
3526
3527         * doc/options.texi (TargetVariable): Document TargetVariable,
3528         HeaderInclude, and SourceInclude.
3529
3530         * doc/invoke.texi (-mfused-madd): Document that -mfused-madd is
3531         mapped to -ffp-contract=fast, and -mno-fused-madd is mapped to
3532         -ffp-contract=off.
3533
3534         * optc-gen.awk: Add support for TargetVariable, HeaderInclude, and
3535         SourceInclude directives.  Fix a cut+paste error with target save
3536         enum variables.  Sort enums in the structures after ints and
3537         before shorts.
3538         * opth-gen.awk: Ditto.
3539
3540         * configure.ac: Add support for HeaderInclude and SourceInclude option
3541         directives to add the appropriate files to the dependency lists.
3542         * configure: Regenerate.
3543         * Makefile.in (OPTIONS_H_EXTRA): New variable for HeaderInclude.
3544         (OPTIONS_C_EXTRA): New variable for SourceInclude.
3545         (OPTIONS_H): Add $(OPTIONS_H_EXTRA).
3546         (options.o): Add $(OPTIONS_C_EXTRA) dependency.
3547         (gcc-options.o): Ditto.
3548         * opt-include.awk: New awk script to handle HeaderInclude and
3549         TargetInclude.
3550
3551         * config/rs6000/aix.opt (-mxl-compat): Mark option as Save so it
3552         gets saved in the target options.
3553         * config/rs6000/linux64.opt (-mprofile-kernel): Ditto.
3554         * config/rs6000/sysv4.opt (-mbit-align): Ditto.
3555         (-mprototype): Ditto.
3556         (-mbit-word): ditto.
3557         (-mregnames): Ditto.
3558         (-msecure-plt): Ditto.
3559         (-mbss-plt): Ditto.
3560         * config/rs6000/rs6000.opt (-mpowerpc-gpopt): Ditto.
3561         (-mpowerpc-gfxopt): Ditto.
3562         (-mmfcrf): Ditto.
3563         (-mpopcntb): Ditto.
3564         (-mfprnd): Ditto.
3565         (-mcmpb): Ditto.
3566         (-mmmfpgpr): Ditto.
3567         (-maltivec): Ditto.
3568         (-mhard-dfp): Ditto.
3569         (-mmulhw): Ditto.
3570         (-mdlmzb): Ditto.
3571         (-mmultiple): Ditto.
3572         (-mstring): Ditto.
3573         (-mpopcntd): Ditto.
3574         (-mfriz): Ditto.
3575         (-mvsx): Ditto.
3576         (-mno-update): Ditto.
3577         (-mavoid-indexed-addresses): Ditto.
3578         (-mtls-markers): Ditto.
3579         (-msched-epilog): Ditto.
3580         (-msched-prolog): Ditto.
3581         (-maix-struct-return): Ditto.
3582         (-msvr4-struct-return): Ditto.
3583         (-mxl-compat): Ditto.
3584         (-mrecip-precision): Ditto.
3585         (-mfp-in-toc): Ditto.
3586         (-msum-in-toc): Ditto.
3587         (-mvrsave): Ditto.
3588         (-mblock-move-inline-limit=): Ditto.
3589         (-misel): Ditto.
3590         (-mpaired): Ditto.
3591         (-mlongcall): Ditto.
3592         (-mgen-cell-microcode): Ditto.
3593         (-mwarn-cell-microcode): Ditto.
3594         (-mwarn-altivec-long): Ditto.
3595         (-mprioritize-restricted-insns=): Ditto.
3596         (-msingle-float): Ditto.
3597         (-mdouble-float): Ditto.
3598         (-msimple-fpu): Ditto.
3599         (-mxilinx-fpu): Ditto.
3600         * config/rs6000/aix64.opt (-mpe): Ditto.
3601
3602         * config/rs6000/rs6000.opt (HeaderInclude): Include rs6000-opts.h.
3603         (rs6000_cpu): Move variable to be a target variable.  Rename
3604         cmodel to rs6000_current_cmodel because of macro conflict.  Merge
3605         -mdebug=<xxx> variables into a single int.
3606         (rs6000_always_hint): Ditto.
3607         (rs6000_sched_groups): Ditto.
3608         (rs6000_align_branch_targets): Ditto.
3609         (rs6000_sched_costly_dep): Ditto.
3610         (rs6000_sched_insert_nops): Ditto.
3611         (rs6000_long_double_type_size): Ditto.
3612         (rs6000_ieeequad): Ditto.
3613         (rs6000_altivec_abi): Ditto.
3614         (rs6000_spe): Ditto.
3615         (rs6000_spe_abi): Ditto.
3616         (rs6000_float_gprs): Ditto.
3617         (rs6000_darwin64_abi): Ditto.
3618         (can_override_loop_align): Ditto.
3619         (rs6000_sdata): Ditto.
3620         (rs6000_tls_size): Ditto.
3621         (rs6000_current_abi): Ditto.
3622         (rs6000_traceback): Ditto.
3623         (rs6000_alignment_flags): Ditto.
3624         (rs6000_current_cmodel): Ditto.
3625         (rs6000_recip_control): Ditto.
3626         (rs6000_cpu_index): Ditto.
3627         (rs6000_tune_index): Ditto.
3628         (rs6000_debug): Ditto.
3629         (rs6000_target_flags_explict): Ditto.
3630
3631         * config/rs6000/rs6000-protos.h (rs6000_pragma_target_parse): Add
3632         declaration.
3633
3634         * config/rs6000/linux64.h (rs6000_current_cmode): Rename from
3635         cmodel.  Change all uses.
3636
3637         * config/rs6000/rs6000.c (rs6000_always_hint): Move to
3638         rs6000.opt.  Combine -mdebug=<xxx> variables into a single int.
3639         Rename cmodel to rs6000_current_cmodel.
3640         (rs6000_sched_groups): Ditto.
3641         (rs6000_align_branch_targets): Ditto.
3642         (rs6000_sched_costly_dep): Ditto.
3643         (rs6000_sched_insert_nops): Ditto.
3644         (rs6000_long_double_type_size): Ditto.
3645         (rs6000_ieeequad): Ditto.
3646         (rs6000_altivec_abi): Ditto.
3647         (rs6000_spe): Ditto.
3648         (rs6000_spe_abi): Ditto.
3649         (rs6000_float_gprs): Ditto.
3650         (rs6000_darwin64_abi): Ditto.
3651         (can_override_loop_align): Ditto.
3652         (rs6000_sdata): Ditto.
3653         (rs6000_tls_size): Ditto.
3654         (rs6000_current_abi): Ditto.
3655         (rs6000_traceback): Ditto.
3656         (rs6000_alignment_flags): Ditto.
3657         (rs6000_current_cmodel): Ditto.
3658         (rs6000_recip_control): Ditto.
3659         (rs6000_cpu_index): Ditto.
3660         (rs6000_tune_index): Ditto.
3661         (rs6000_debug): Ditto.
3662         (rs6000_target_flags_explict): Ditto.
3663         (rs6000_sched_insert_nops_str): Make static.
3664         (rs6000_sched_costly_dep_str): Ditto.
3665         (rs6000_recip_name): Ditto.
3666         (rs6000_abi_name): Ditto.
3667         (rs6000_sdata_name): Ditto.
3668         (enum rs6000_traceback_name): Move to rs6000-opts.h.
3669         (rs6000_parse_tls_size_option): Delete.
3670         (rs6000_valid_attribute_p): New function for target attributes and
3671         pragmas.
3672         (rs6000_function_specific_save): Ditto.
3673         (rs6000_function_specific_restore): Ditto.
3674         (rs6000_function_specific_print): Ditto.
3675         (rs6000_can_inline_p): Ditto.
3676         (rs6000_set_current_function): Ditto.
3677         (rs6000_inner_target_options): Ditto.
3678         (rs6000_debug_target_options): Ditto.
3679         (rs6000_pragma_target_parse): Ditto.
3680         (TARGET_OPTION_VALID_ATTRIBUTE_P): Define target hooks for target
3681         attributes and pragmas.
3682         (TARGET_OPTION_SAVE): Ditto.
3683         (TARGET_OPTION_RESTORE): Ditto.
3684         (TARGET_OPTION_PRINT): Ditto.
3685         (TARGET_CAN_INLINE_P): Ditto.
3686         (TARGET_SET_CURRENT_FUNCTION): Ditto.
3687         (POWER_MASKS): Move to file level scope from the
3688         rs6000_option_override_internal function.
3689         (POWERPC_MASKS): Ditto.
3690         (ISA_*_MASKS): Ditto.
3691         (struct rs6000_ptt): Ditto.
3692         (processor_target_table): Ditto.
3693         (rs6000_cpu_name_lookup): Map cpu name to an index in
3694         processor_target_table.
3695         (rs6000_debug_reg_global): Print more information on processor
3696         options for -mdebug=reg.
3697         (rs6000_init_hard_regno_mode_ok): Add support for target
3698         attributes and pragmas.  Merge all -mdebug=<xxx> fields into one.
3699         Allow -mdebug=val1,val2.  Rename cmodel variable.
3700         (rs6000_option_override_internal): Ditto.
3701         (rs6000_option_override): Ditto.
3702         (rs6000_handle_option): Ditto.
3703         (rs6000_conditional_register_usage): Add debug trace message.
3704         (struct rs6000_opt_mask): New for target attribute/pragma support.
3705         (rs6000_opt_masks): Ditto.
3706         (struct rs6000_opt_var): Ditto.
3707         (rs6000_opt_vars): Ditto.
3708         (rs6000_previous_function): Ditto.
3709
3710         * config/rs6000/rs6000.h (top level): Include rs6000-opts.h if it
3711         wasn't already included.
3712         (enum rs6000_cmodel): Move to rs6000-opts.h or rs6000.opt.
3713         (enum processor_type): Ditto.
3714         (rs6000_cpu): Ditto.
3715         (enum fpu_type_t): Ditto.
3716         (fpu_type): Ditto.
3717         (enum rs6000_dependence_cost): Ditto.
3718         (enum rs6000_nop_insertion): Ditto.
3719         (enum group_termination): Ditto.
3720         (rs6000_long_double_type_size): Ditto.
3721         (rs6000_ieeequad): Ditto.
3722         (rs6000_altivec_abi): Ditto.
3723         (rs6000_spe_abi): Ditto.
3724         (rs6000_spe): Ditto.
3725         (rs6000_float_gprs): Ditto.
3726         (rs6000_alignment_flags): Ditto.
3727         (rs6000_sched_insert_nops): Ditto.
3728         (enum rs6000_vector): Ditto.
3729         (enum rs6000_abi): Ditto.
3730         (rs6000_current_opt): Ditto.
3731         (rs6000_debug_*): Delete.
3732         (MASK_DEBUG*): Combine -mdebug=xxxx into one int.
3733         (TARGET_DEBUG*): Ditto.
3734
3735         * config/rs6000/rs6000-opts.h: New header file to define the enums
3736         that are used in target variables that are now defined in rs6000.opt.
3737
3738         * config/rs6000/sysv4.h (enum rs6000_sdata_type): Move to
3739         rs6000-opts.h.
3740         (rs6000_sdata): Ditto.
3741         (rs6000_abi_name): Delete.
3742         (rs6000_sdata_name): Ditto.
3743         (rs6000_tls_size_string): Ditto.
3744
3745 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
3746
3747         * common.opt (debug_struct_ordinary, debug_struct_generic): New
3748         Variable entries.
3749         * dwarf2out.c (matches_main_base, dump_struct_debug, DUMP_GSTRUCT,
3750         should_emit_struct_debug): Move from opts.c.
3751         * flag-types.h (enum debug_struct_file): Move from opts.c.
3752         * flags.h (should_emit_struct_debug): Remove.
3753         (base_of_path): Declare.
3754         (set_struct_debug_option): Add gcc_options parameter.
3755         * optc-gen.awk, opth-gen.awk: Handle array variables.
3756         * opts.c (enum debug_struct_file, debug_struct_ordinary,
3757         debug_struct_generic): Remove.
3758         (set_struct_debug_option): Add gcc_options parameter.
3759         (base_of_path): Remove static.
3760         (main_input_basename, main_input_baselength, matches_main_base,
3761         dump_struct_debug, DUMP_GSTRUCT, should_emit_struct_debug):
3762         Remove.
3763         * toplev.c (main_input_basename, main_input_baselength): Define
3764         here.
3765         * toplev.h (main_input_basename, main_input_baselength): Declare
3766         here.
3767
3768 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
3769
3770         * common.opt (flag_instrument_functions_exclude_functions,
3771         flag_instrument_functions_exclude_files): New Variable definitions.
3772         * flags.h (flag_instrument_functions_exclude_p): Don't declare.
3773         * gimplify.c (char_p): Declare type and vectors.
3774         (flag_instrument_functions_exclude_p): Moved from opts.c.  Make static.
3775         * opts.c (flag_instrument_functions_exclude_functions,
3776         flag_instrument_functions_exclude_files): Remove.
3777         (add_comma_separated_to_vector): Take void **.
3778         (flag_instrument_functions_exclude_p): Move to gimplify.c.
3779         (common_handle_option): Use options structure for
3780         -finstrument-functions-exclude- options.
3781
3782 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
3783
3784         * doc/options.texi (Var): Document effects of Defer.
3785         (Defer): Document.
3786         * opt-functions.awk (var_type, var_set): Handle deferred options.
3787         * opts-common.c (set_option): Handle CLVC_DEFER.
3788         * common.opt (fcall-saved-, fcall-used-, fdump-, ffixed-,
3789         fplugin=, fplugin-arg-, fstack-limit, fstack-limit-register=,
3790         fstack-limit-symbol=): Mark as deferred.
3791         * opts.c: Don't include rtl.h, ggc.h, output.h, tree-pass.h or
3792         plugin.h.
3793         (print_filtered_help): Don't report state of CLVC_DEFER options.
3794         (common_handle_option): Move code for OPT_fcall_used_,
3795         OPT_fcall_saved_, OPT_fdump_, OPT_ffixed_, OPT_fplugin_,
3796         OPT_fplugin_arg_, OPT_fstack_limit, OPT_fstack_limit_register_ and
3797         OPT_fstack_limit_symbol_ to opts-global.c.
3798         (option_enabled, get_option_state): Handle CLVC_DEFER.
3799         * opts.h: Include vec.h.
3800         (enum cl_var_type): Add CLVC_DEFER.
3801         (cl_deferred_option): Define type and vectors.
3802         (handle_common_deferred_options): Declare.
3803         * opts-global.c: New.
3804         * toplev.c (toplev_main): Call handle_common_deferred_options
3805         * Makefile.in (OPTS_H): Include $(VEC_H).
3806         (OBJS-common): Include opts-global.o.
3807         (opts.o): Update dependencies.
3808         (opts-global.o): Add dependencies.
3809
3810 2010-11-19  Nicola Pero  <nicola.pero@meta-innovation.com>
3811
3812         * c-parser.c (c_parser_objc_protocol_definition): Pass attributes
3813         to objc_declare_protocols.
3814
3815 2010-11-19  Richard Guenther  <rguenther@suse.de>
3816
3817         PR lto/45789
3818         * lto-streamer-out.c (lto_output_ts_common_tree_pointers): For
3819         IDENTIFIERs do not stream TREE_TYPE.
3820         * lto-streamer-in.c (lto_input_ts_common_tree_pointers): Likewise.
3821
3822 2010-11-19  Christian Borntraeger  <borntraeger@de.ibm.com>
3823
3824         * config/s390/s390.c (s390_function_arg_integer): Handle NULLPTR_TYPE.
3825
3826 2010-11-19  Jakub Jelinek  <jakub@redhat.com>
3827
3828         PR target/45870
3829         * dwarf2out.c (const_ok_for_output_1): Don't complain about
3830         non-delegitimized TLS UNSPECs.
3831
3832 2010-11-18  Jack Howarth  <howarth@bromo.med.uc.edu>
3833             Ian Lance Taylor  <iant@google.com>
3834
3835         * config/darwin-c.c (darwin_additional_format_types): Export.
3836
3837 2010-11-18  Paul Koning  <ni1d@arrl.net>
3838
3839         * config/pdp11/pdp11.h (FIRST_PARM_OFFSET): Fix case of no frame
3840         pointer.
3841
3842 2010-11-18  Paul Koning  <ni1d@arrl.net>
3843
3844         * config/pdp11/pdp11.md (abshi2): Delete TARGET_ABSHI_BUILTIN.
3845         * config/pdp11/pdp11.c (TARGET_DEFAULT_TARGET_FLAGS): Ditto.
3846         * config/pdp11/pdp11.opt (-mabshi): Delete.
3847
3848 2010-11-19  Mingjie Xing  <mingjie.xing@gmail.com>
3849
3850         * resource.h (struct resources): Fix typo in the comment.
3851
3852 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
3853
3854         PR target/46546
3855         * config/i386/i386.c (ix86_reorg): Call compute_bb_for_insn.
3856
3857 2010-11-18  Richard Henderson  <rth@redhat.com>
3858
3859         PR middle-end/46515
3860         * function.c (maybe_copy_prologue_epilogue_insn): Rename from
3861         maybe_copy_epilogue_insn; handle prologue insns as well.
3862         * rtl.h, cfglayout.c: Update for rename.
3863         * recog.c (peep2_attempt): Copy prologue/epilogue data for
3864         RTX_FRAME_RELATED_P insns.
3865
3866 2010-11-18  Jakub Jelinek  <jakub@redhat.com>
3867
3868         PR middle-end/46534
3869         * builtins.c (fold_builtin_printf): Don't copy and modify string
3870         before build_string_literal, instead modify what
3871         build_string_literal returned.
3872
3873 2010-11-18  Nathan Froyd  <froydnj@codesourcery.com>
3874
3875         PR c/33193
3876         * c-typeck.c (build_unary_op): Call build_real_imag_expr for
3877         REALPART_EXPR and IMAGPART_EXPR.
3878
3879 2010-11-18  Richard Guenther  <rguenther@suse.de>
3880
3881         PR tree-optimization/46172
3882         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): New
3883         function.
3884         (slpeel_tree_peel_loop_to_edge): Call it.
3885
3886 2010-11-18  Jeff Law  <law@redhat.com>
3887
3888         PR middle-end-optimization/46297
3889         * postreload.c (reload_combine_note_store): Deal with embedded
3890         side effects in MEM expressions.
3891
3892 2010-11-18  Richard Guenther  <rguenther@suse.de>
3893
3894         PR lto/45089
3895         * dwarf2out.c (add_AT_die_ref): Work around LTO losing types
3896         when checking is not enabled.
3897
3898 2010-11-18  Richard Guenther  <rguenther@suse.de>
3899
3900         PR lto/46525
3901         * gimple.c (gimple_register_type): Update TYPE_MAIN_VARIANT of
3902         type leaders.
3903         (gimple_register_canonical_type): Also cache the canoncial type
3904         for non type leaders.
3905
3906 2010-11-18  Richard Guenther  <rguenther@suse.de>
3907
3908         * lto-wrapper.c (run_gcc): Fix -flto=N parsing.
3909
3910 2010-11-18  Alexander Monakov  <amonakov@ispras.ru>
3911
3912         PR middle-end/46518
3913         * sel-sched-ir.c (init_expr): Use the correct type for
3914         target_available.
3915         * sel-sched.c (fill_vec_av_set): Use explicitly signed char type.
3916
3917 2010-11-17  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
3918
3919         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Support -fpic
3920         as well as -mrelocatable at the same time.
3921
3922 2010-11-17  Quentin Neill  <quentin.neill.gnu@gmail.com>
3923
3924         PR target/46422
3925         * config/i386/bmiintrin.h (__lzcnt_u16, __lzcnt_u32, __lzcnt_u64):
3926         Call the clz builtin.
3927
3928 2010-11-17  Dinar Temirbulatov <dtemirbulatov@gmail.com>
3929             Steve Ellcey  <sje@cup.hp.com>
3930
3931         PR middle-end/31490
3932         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
3933         if section attribute used.
3934
3935 2010-11-17  Jan Hubicka  <jh@suse.cz>
3936
3937         * builtins.c (expand_builtin_mathfn_2, expand_builtin_mathfn): Do not
3938         expand errno setting variant when optimizing for size.
3939
3940 2010-11-17  Eric Botcazou  <ebotcazou@adacore.com>
3941
3942         * postreload.c (reload_combine): Call control_flow_insn_p only once.
3943         Reverse backward loop.  Fix formatting issues.
3944
3945 2010-11-17  Paolo Bonzini  <bonzini@gnu.org>
3946
3947         * c-parser.c (c_token_is_qualifier,
3948         c_parser_next_token_is_qualifier): New.
3949         (c_parser_declaration_or_fndef, c_parser_struct_declaration):
3950         Improve error message on specs->tagdef_seen_p.
3951         (c_parser_struct_or_union_specifier): Improve error recovery.
3952         (c_parser_declspecs): Move exit condition on C_ID_ID early.
3953         Reorganize exit condition for C_ID_TYPENAME/C_ID_CLASSNAME
3954         using c_parser_next_token_is_qualifier; extend it to cover
3955         a ctsk_tagdef typespec and !typespec_ok in general.
3956
3957 2010-11-17  Richard Guenther  <rguenther@suse.de>
3958
3959         * value-prof.c (gimple_divmod_fixed_value_transform): Update the stmt.
3960         (gimple_mod_pow2_value_transform): Likewise.
3961         (gimple_mod_subtract_transform): Likewise.
3962
3963 2010-11-17  Richard Guenther  <rguenther@suse.de>
3964
3965         PR lto/46504
3966         * gimple.c (gimple_register_canonical_type): Make sure to only
3967         make type leaders canonical types.
3968
3969 2010-11-17  Michael Matz  <matz@suse.de>
3970
3971         * timevar.def (TV_IPA_OPT, TV_EARLY_LOCAL, TV_OPTIMIZE,
3972         TV_POSTRELOAD, TV_REMOVE_UNUSED, TV_ADDRESS_TAKEN, TV_TODO,
3973         TV_VERIFY_LOOP_CLOSED, TV_VERIFY_RTL_SHARING,
3974         TV_REBUILD_FREQUENCIES, TV_REPAIR_LOOPS): New.
3975         * tree-into-ssa.c (rewrite_into_ssa): Don't push/pop timevar here ...
3976         (pass_build_ssa): ... but here.
3977         * cgraphbuild.c (pass_rebuild_cgraph): Use timevar.
3978         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Use timevar.
3979         * tree-emutls.c (pass_ipa_lower_emutls): Ditto.
3980         * df-core.c (pass_df_initialize_opt, pass_df_initialize_no_opt): Ditto.
3981         * predict.c (rebuild_frequencies): Ditto.
3982         * tree-vectorizer.c (pass_ipa_increase_alignment): Ditto.
3983         * emit-rtl.c (verify_rtl_sharing): Ditto.
3984         * tree-cfgcleanup.c (repair_loop_structures): Ditto.
3985         * tree-ssa-live.c (remove_unused_locals): Ditto.
3986         * cfglayout.c (pass_into_cfg_layout, pass_outof_cfg_layout): Ditto.
3987         * tree-ssa.c (pass_early_warn_uninitialized,
3988         execute_update_addresses_taken, pass_update_address_taken): Ditto.
3989         * tree-optimize.c (pass_all_optimizations, pass_early_local_passes,
3990         pass_cleanup_cfg_post_optimizing, tree_rest_of_compilation): Ditto.
3991         * passes.c (pass_postreload, execute_todo): Ditto.
3992         * tree-ssanames.c (pass_release_ssa_names): Ditto.
3993
3994 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
3995
3996         * doc/invoke.texi (-dy): Remove.
3997         * langhooks-def.h (lhd_do_nothing_i): Don't declare.
3998         (LANG_HOOKS_PARSE_FILE): Define to lhd_do_nothing.
3999         * langhooks.c (lhd_do_nothing_i): Remove.
4000         * langhooks.h (lang_hooks.parse_file): Take no arguments.
4001         * toplev.c (set_yydebug): Remove.
4002         (compile_file): Update call to lang_hooks.parse_file.
4003         (decode_d_option): Don't handle -dy.
4004
4005 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
4006
4007         PR rtl-optimization/46440
4008         * combine.c (update_cfg_for_uncondjump): When changing
4009         an indirect jump into unconditional jump, remove BARRIERs
4010         from bb's footer.
4011
4012 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
4013
4014         * opts.c (target_handle_option): Do not assert that loc ==
4015         UNKNOWN_LOCATION.
4016
4017 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
4018             Richard Guenther  <rguenther@suse.de>
4019
4020         PR middle-end/45838
4021         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
4022         call_may_clobber_ref_p_1): Return true for __sync_* and some
4023         OpenMP builtins that act as threading barriers.
4024
4025 2010-11-17  Richard Guenther  <rguenther@suse.de>
4026
4027         PR tree-optimization/46498
4028         * tree-ssa-dce.c (perform_tree_ssa_dce): Compute dominator info.
4029
4030 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
4031
4032         * config/xtensa/xtensa.c (function_arg_boundary): Really rename to...
4033         (xtensa_function_arg_boundary): ...this.
4034         * config/picochip/pichochip.c (picochip_function_arg_boundary): Fix
4035         thinko in declaration.
4036         (picochip_function_arg, picochip_arg_partial_bytes): Pass proper
4037         number of parameters to picochip_function_arg_boundary.
4038         (picochip_arg_advance): Likewise.
4039
4040 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
4041
4042         PR target/46512
4043         * config/pa/pa.c (pa_function_arg_boundary): Move TYPE_SIZE accesses
4044         under check for type.
4045
4046 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
4047
4048         * ifcvt.c (dead_or_predicable): Fix typo.
4049
4050 2010-11-16  Richard Henderson  <rth@redhat.com>
4051
4052         * config.gcc [s390*-*] (extra_options): Add fused-madd.opt.
4053         * config/s390/s390.opt (mfused-madd): Remove.
4054         * config/s390/s390.c (s390_rtx_costs): Handle FMA.
4055         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
4056         * config/s390/s390.md (fma<DSF>4): Rename from *fmadd<DSF>; use FMA.
4057         (fms<DSF>4): Rename from *fmsub<DSF>; use FMA.
4058
4059 2010-11-16  Richard Henderson  <rth@redhat.com>
4060
4061         * config.gcc [powerpc*, rs6000*] (extra_options): Add fused-madd.opt.
4062         * config/rs6000/rs6000.opt (mfused-madd): Remove.
4063         * config/rs6000/altivec.md (altivec_vmaddfp): Remove.
4064         (*altivec_vmaddfp_1): Remove.
4065         (*altivec_fmav4sf4): Rename from altivec_vmaddfp_2; use FMA.
4066         (altivec_mulv4sf3): Expand to FMA directly.
4067         (*altivec_vnmsubfp): Rename from altivec_vnmsubfp.
4068         (*altivec_vnmsubfp_1, *altivec_vnmsubfp_2): Remove.
4069         * config/rs6000/paired.md (paired_madds0): Use FMA.
4070         (paired_madds1): Likewise.
4071         (*paired_madd): Rename from paired_madd; use FMA.
4072         (*paired_msub, *paired_nmadd, *paired_nmsub): Similarly.
4073         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
4074         consider TARGET_FUSED_MADD wrt rs6000_recip_control.
4075         (bdesc_3arg): Update CODE_FOR_* for pattern renames.
4076         (rs6000_emit_madd): Use fma_optab.
4077         (rs6000_emit_msub): Use fms_optab.
4078         (rs6000_emit_nmsub): Expand the FMA pattern directly.
4079         * config/rs6000/rs6000.md (FMA_F): New mode iterator.
4080         (*fmasf4_fpr): Rename from fmasf4_fpr.
4081         (*nfmasf4_fpr): Rename from *fnmasf4_fpr.
4082         (*nfmssf4_fpr): Rename from *fnmssf4_fpr.
4083         (*fmaddsf4_powerpc, *fmaddsf4_power, *fmsubsf4_powerpc): Remove.
4084         (*fmsubsf4_power, *fnmaddsf4_powerpc_1, *fnmaddsf4_powerpc_2): Remove.
4085         (*fnmaddsf4_power_1, *fnmaddsf4_power_2, *fnmsubsf4_powerpc_1): Remove.
4086         (*fnmsubsf4_powerpc_2, *fnmsubsf4_power_1, *fnmsubsf4_power_2): Remove.
4087         (*fmadf4_fpr): Rename from fmadf4_fpr.
4088         (*nfmadf4_fpr): Rename from *fnmadf4_fpr.
4089         (*nfmsdf4_fpr): Rename from *fnmsdf4_fpr.
4090         (*fmadddf4_fpr, *fmsubdf4_fpr, *fnmadddf4_fpr_1): Remove.
4091         (*fnmadddf4_fpr_2, *fnmsubdf4_fpr_1, *fnmsubdf4_fpr_2): Remove.
4092         (fmasf4, fmadf4): Macroize into...
4093         (fma<FMA_F>4): ... here.
4094         (fms<FMA_F>4, fnma<FMA_F>4, fnms<FMA_F>4): New.
4095         (nfma<FMA_F>4, nfms<FMA_F>4): New.
4096         * config/rs6000/vector.md (mul<VEC_F>3): Do not depend on
4097         TARGET_FUSED_MADD.
4098         * config/rs6000/vsx.md (vsx_fmadd<VSX_B>4): Remove.
4099         (*vsx_fmadd<mode>4_1): Remove.
4100         (vsx_fmsub<mode>4, *vsx_fmsub<mode>4_1): Remove.
4101         (vsx_fnmadd<mode>4_1, vsx_fnmadd<mode>4_2): Remove.
4102         (vsx_fnmsub<mode>4_1, vsx_fnmsub<mode>4_2): Remove.
4103         (*vsx_fma<mode>4): Rename from vsx_fmadd<mode>4_2.
4104         (*vsx_fms<mode>4): Rename from vsx_fmsub<mode>4_2.
4105         (*vsx_nfma<mode>4): Rename from vsx_fnmadd<mode>4.
4106         (*vsx_nfms<mode>4): Rename from vsx_fnmsub<mode>4.
4107
4108 2010-11-16  Richard Henderson  <rth@redhat.com>
4109
4110         * config/pa/pa.md (fmadf4): Rename from unnamed; use FMA.
4111         (fmasf4, fnmadf4, fnmasf4): Likewise.
4112         (unnamed plus+mult insns and splitters): Delete.
4113
4114 2010-11-16  Richard Henderson  <rth@redhat.com>
4115
4116         * config/spu/spu.md (fma<VSF>4): Rename from fma_<VSF>.
4117         (fnma<VSF>4): Rename from fnms_<VSF>.
4118         (fms<VSF>4): Rename from fms_<VSF>.
4119         (fma<VDF>4): Rename from fma_<VDF>.
4120         (fms<VDF>4): Rename from fms_<VDF>.
4121         (nfma<VDF>4): Rename from fnma_<VDF>.
4122         (nfms<VDF>4): Rename from fnms_<VDF>.
4123         (fnma<VDF>4, fnms<VDF>4): New expanders.
4124         (floatunsdisf2): Update for the renames.
4125         (*div<VSF>3_fast, *div<VSF>3_adjusted): Likewise.
4126         * config/spu/spu-builtins.def: Update CODE_FOR_* for the renames.
4127
4128 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
4129
4130         PR rtl-optimization/46490
4131         * combine.c (expand_compound_operation): Fix thinko.
4132
4133 2010-11-16  Richard Henderson  <rth@redhat.com>
4134
4135         PR target/46470
4136         * recog.c (peep2_attempt): Convert frame-related info when possible.
4137         (peep2_fill_buffer): Allow frame-related insns into the buffer.
4138         (peephole2_optimize): Allow peep2_attempt to fail.
4139
4140 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
4141
4142         PR rtl-optimization/46315
4143         * rtl.h (remove_reg_equal_equiv_notes_for_regno): Declare.
4144         * rtlanal.c (remove_reg_equal_equiv_notes_for_regno): New function
4145         extracted from...
4146         * dce.c (delete_corresponding_reg_eq_notes): ...here.  Rename into...
4147         (remove_reg_equal_equiv_notes_for_defs): ...this.
4148         (delete_unmarked_insns): Adjust to above renaming.
4149         * ifcvt.c (dead_or_predicable): Remove REG_EQUAL and REG_EQUIV notes
4150         referring to registers set in the insns being moved, if any.
4151
4152         * df-core.c (df_ref_dump): New function extracted from...
4153         (df_refs_chain_dump): ...here.  Call it.
4154         (df_regs_chain_dump): Likewise.
4155         * df-problems.c (df_chain_dump): Print 'e' for uses in notes.
4156         * df-scan.c (df_scan_start_dump): Likewise.  Fix long line.
4157
4158 2010-11-16  Andreas Schwab  <schwab@linux-m68k.org>
4159
4160         PR rtl-optimization/46395
4161         * postreload.c (reload_combine): Invalidate register use
4162         information on all control flow insns.
4163
4164         * config/m68k/m68k.c (m68k_delegitimize_address): Also expect
4165         LABEL_REF in UNSPEC operand.
4166
4167 2010-11-16  Jan Hubicka  <jh@suse.cz>
4168
4169         * cgraph.h (+varpool_can_remove_if_no_refs): Move here from ...;
4170         when !flag_toplevel_reorder do not remove unless variable is
4171         COMDAT or ARTIFICIAL.
4172         * ipa.c (varpool_can_remove_if_no_refs): ... here.
4173         (cgraph_remove_unreachable_nodes): Only analyzed nodes needs to stay.
4174         * cgraphunit.c (cgraph_analyze_functions): Dump varpool, too.
4175         * varpool.c (decide_is_variable_needed): Do not handle visibility
4176         issues.
4177         (varpool_finalize_decl): Likewise.
4178         (varpool_remove_unreferenced_decls): Use varpool_mark_needed_node;
4179         update outdated comment on DECL_RTL_SET_P check.
4180
4181 2010-11-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4182
4183         * config/sol2.h (NM_FLAGS): Define.
4184         * doc/tm.texi.in (Macros for Initialization, NM_FLAGS): Document.
4185         * doc/tm.texi: Update.
4186
4187 2010-11-16  Nick Clifton  <nickc@redhat.com>
4188
4189         * config/v850/v850.md (maddsf4): Rename to fmasf4 and use fma rtx_code.
4190         (msubsf4): Rename to fmssf4, and use fma.
4191         (nmaddsf4): Rename to fnmasf4 and use fma.
4192         (nmsubsf4): Rename to fnmssf4 and use fma.
4193
4194 2010-11-16  Joern Rennecke  <amylaar@spamcop.net>
4195
4196         PR target/44762
4197         * config/score/score3.c (score3_return_in_memory): Constify arguments.
4198         (score3_in_small_data_p, score3_function_value): Likewise.
4199         (score3_trampoline_init): Use LCT_NORMAL.
4200         (score3_print_operand): Initialize code as UNKNOWN.
4201         * config/score/predicates.md (score_load_multiple_operation):
4202         Remove unused variable.
4203         (score_store_multiple_operation): Likewise.
4204         * config/score/score7.c (score7_return_in_memory): Constify arguments.
4205         (score7_in_small_data_p, score7_function_value): Likewise.
4206         (score7_trampoline_init): Use LCT_NORMAL.
4207         (score7_print_operand): Initialize code as UNKNOWN.
4208         * config/score/score3.h (score3_return_in_memory): Update prototype.
4209         (score3_in_small_data_p, score3_function_value): Likewise.
4210         * config/score/score-protos.h (score_function_value): Likewise.
4211         * config/score/score7.h (score7_return_in_memory): Update prototype.
4212         (score7_in_small_data_p, score7_function_value): Likewise.
4213         * config/score/score.c (TARGET_PROMOTE_PROTOTYPES): Constify.
4214         (score_return_in_memory, score_pass_by_reference): Constify arguments.
4215         (score_output_mi_thunk, score_function_prologue): Don't return a value.
4216         (score_function_epilogue, score_in_small_data_p): Likewise.
4217         (score_option_override, score_asm_trampoline_template): Likewise.
4218         (score_trampoline_init, score_print_operand): Likewise.
4219         (score_print_operand_address, score_prologue): Likewise.
4220         (score_epilogue, score_call, score_call_value): Likewise.
4221         (score_movsicc, score_movdi, score_zero_extract_andi): Likewise.
4222         (score_function_arg_advance): Likewise. Make static.
4223         (score_asm_file_end): Mark parameter value with ATTRIBUTE_UNUSED.
4224         (score_function_arg, score_legitimate_address_p): Make static.
4225         (score_function_value): Mark parameter func with ATTRIBUTE_UNUSED.
4226         * config/score/score.h (REGNO_REG_CLASS): Cast value to enum reg_class.
4227         * config/score/score-conv.h (UIMM_IN_RANGE, SIMM_IN_RANGE):
4228         Allow (W) == HOST_BITS_PER_WIDE_INT.
4229
4230         PR java/46386
4231         * config/pdp11/t-pdp11 (java/constants.o-warn): Remove.
4232         * config/t-pnt16-warn (java/constants.o-warn): Likewise.
4233
4234 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
4235
4236         * config/arc/arc.c: Delete pasto.
4237         * config/pa/pa.c (pa_function_arg_boundary): Add missing comparison.
4238
4239 2010-11-16  Anatoly Sokolov  <aesok@post.ru>
4240
4241         * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS,
4242         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
4243         * config/mn10300/mn10300.c (TARGET_PREFERRED_RELOAD_CLASS,
4244         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
4245         (mn10300_preferred_reload_class,
4246         mn10300_preferred_output_reload_class): New functions.
4247
4248 2010-11-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4249
4250         * gensupport.c (MNEMONIC_ATTR_NAME, MNEMONIC_HTAB_SIZE): New macros.
4251         (htab_eq_string, add_mnemonic_string, gen_mnemonic_setattr)
4252         (mnemonic_htab_callback, gen_mnemonic_attr): New functions.
4253         (init_rtx_reader_args_cb): Invoke gen_mnemonic_attr.
4254
4255 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
4256
4257         * builtins.c (std_gimplify_va_arg_expr): Use
4258         targetm.calls.function_arg_boundary.
4259         * function.c (assign_parms, locate_and_pad_parm): Likewise.
4260         * calls.c (struct arg_data): Update comment.
4261         * defaults.h (FUNCTION_ARG_BOUNDARY): Delete.
4262         * target.def (function_arg_boundary): Define.
4263         * targhooks.h (default_function_arg_boundary): Declare.
4264         * targhooks.c (default_function_arg_boundary): Define.
4265         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Use
4266         TARGET_FUNCTION_ARG_BOUNDARY.
4267         (FUNCTION_ARG_BOUNDARY): Delete.
4268         (TARGET_FUNCTION_ARG_BOUNDARY): New.
4269         * doc/tm.texi: Regenerate.
4270         * system.h (FUNCTION_ARG_BOUNDARY): Poison.
4271         * config/arc/arc.h (FUNCTION_ARG_BOUNDARY): Delete.
4272         * config/arc/arc.c (arc_function_arg_boundary): Define.
4273         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4274         * config/arm/arm.h (FUNCTION_ARG_BOUNDARY): Delete.
4275         * config/arm/arm-protos.h (arm_needs_doubleword_align): Delete.
4276         * config/arm/arm.c (arm_needs_doubleword_align): Make static.
4277         (arm_function_arg_boundary): Define.
4278         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4279         * config/frv/frv.h (FUNCTION_ARG_BOUNDARY): Delete.
4280         * config/frv/frv-protos.h (frv_function_arg_boundary): Delete.
4281         * config/frv/frv.c (frv_function_arg_boundary): Make static.
4282         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4283         * config/i386/i386.h (FUNCTION_ARG_BOUNDARY): Delete.
4284         * config/i386/i386-protos.h (ix86_function_arg_boundary): Delete.
4285         * config/i386/i386.c (ix86_function_arg_boundary): Make static.
4286         (ix86_compat_function_arg_boundary): Take and return unsigned int.
4287         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4288         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Delete.
4289         * config/ia64/ia64-protos.h (ia64_function_arg_boundary): Delete.
4290         * config/ia64/ia64.c (ia64_function_arg_boundary): Make static.
4291         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4292         * config/m32c/m32c.h (FUNCTION_ARG_BOUNDARY): Delete.
4293         * config/m32c/m32c.c (m32c_function_arg_boundary): Define.
4294         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4295         * config/m32r/m32r.h (FUNCTION_ARG_BOUNDARY): Delete.
4296         * config/mcore/mcore.h (FUNCTION_ARG_BOUNDARY): Delete.
4297         * config/mcore/mcore.c (mcore_function_arg_boundary): Define.
4298         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4299         * config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Delete.
4300         * config/mips/mips-protos.h (mips_function_arg_boundary): Delete.
4301         * config/mips/mips.c (mips_function_arg_boundary): Make static.
4302         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4303         * config/pa/pa.h (FUNCTION_ARG_BOUNDARY): Delete.
4304         * config/pa/pa.c (pa_function_arg_boundary): Define.
4305         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4306         * config/picochip/picochip.h (FUNCTION_ARG_BOUNDARY): Delete.
4307         * config/picochip/picochip-protos.h
4308         (picochip_get_function_arg_boundary): Delete.
4309         * config/picochip/picochip.c (picochip_get_function_arg_boundary):
4310         Rename to...
4311         (picochip_function_arg_boundary): ...this.  Make static.
4312         (picochip_function_arg, picochip_arg_partial_bytes): Adjust.
4313         (picochip_arg_advance): Adjust.
4314         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4315         * config/rs6000/rs6000.h (FUNCTION_ARG_BOUNDARY): Delete.
4316         * config/rs6000/rs6000-protos.h (function_arg_boundary): Delete.
4317         * config/rs6000/rs6000.c (function_arg_boundary): Rename to...
4318         (rs6000_function_arg_boundary): ...this.  Make static.
4319         (rs6000_parm_start, rs6000_gimplify_va_arg): Adjust.
4320         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4321         * config/rx/rx.h (FUNCTION_ARG_BOUNDARY): Delete.
4322         * config/rx/rx.c (rx_function_arg_boundary): Define.
4323         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4324         * config/sparc/sparc.h (FUNCTION_ARG_BOUNDARY): Delete.
4325         * config/sparc/sparc.c (sparc_function_arg_boundary): Define.
4326         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4327         * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Delete.
4328         * config/xtensa/xtensa-protos.h (function_arg_boundary): Delete.
4329         * config/xtensa/xtensa.c (function_arg_boundary): Rename to...
4330         (xtensa_function_arg_boundary): ...this.  Make static.
4331         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4332
4333 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
4334
4335         * expr.c (alignment_for_piecewise_move): New function.
4336         (widest_int_mode_for_size): New function.
4337         (move_by_pieces, move_by_pieces_ninsns): Call them.
4338         (can_store_by_pieces, store_by_pieces_1): Likewise.
4339
4340 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
4341
4342         * gcc.c (char_p): Define.  Define a VEC of it.
4343         (n_linker_options, n_assembler_options, n_preprocessor_options):
4344         Delete.
4345         (linker_options, assembler_options, preprocessor_options): Convert
4346         to a VEC.
4347         (add_preprocessor_option): Adjust.
4348         (add_assembler_option): Adjust.
4349         (add_linker_option): Adjust.
4350         (do_specs_vec): New function.
4351         (do_spec_1): Call it.  Adjust for new types.
4352
4353 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
4354
4355         * Makefile.in (bitmap.o, ebitmap.o, et-forest.o): Update dependencies.
4356         (sreal.o, statistics.o, stringpool.o): Likewise.
4357
4358 2010-11-16  Richard Guenther  <rguenther@suse.de>
4359
4360         PR tree-optimization/44545
4361         * tree-ssa-reassoc.c (linearize_expr_tree): Possibly throwing
4362         statements are not reassociatable.
4363         (reassociate_bb): Likewise.
4364
4365 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
4366
4367         * bitmap.c: Delete unnecessary includes.
4368         * ebitmap.c: Likewise.
4369         * et-forest.c: Likewise.
4370         * sreal.c: Likewise.
4371         * statistics.c: Likewise.
4372         * stringpool.c: Likewise.
4373         * double-int.c: Add comment for inclusion of tm.h.
4374
4375 2010-11-16  Richard Guenther  <rguenther@suse.de>
4376
4377         * tree-ssa-sccvn.c (visit_unary_op): Rename to ...
4378         (visit_nary_op): ... this.
4379         (visit_binary_op): Remove.
4380         (visit_use): Adjust and handle GIMPLE_TERNARY_RHS.
4381
4382 2010-11-16  Richard Guenther  <rguenther@suse.de>
4383
4384         PR middle-end/45172
4385         * tree-eh.c (cleanup_empty_eh_unsplit): Avoid creating duplicate edges.
4386
4387 2010-11-16  Nick Clifton  <nickc@redhat.com>
4388
4389         * config/rx/rx.c (rx_is_ms_bitfield_layout): Return false if the
4390         record is packed.
4391
4392 2010-11-15  Richard Henderson  <rth@redhat.com>
4393
4394         * fold-const.c (operand_equal_for_comparison_p): Handle FMA_EXPR,
4395         WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR, VEC_COND_EXPR and
4396         DOT_PROD_EXPR.
4397
4398 2010-11-15  Richard Henderson  <rth@redhat.com>
4399
4400         * config/mn10300/mn10300.md (fmasf4, fmssf4, fnmasf4, fnmssf4): Rename
4401         from fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4 respectively.  Use
4402         fma rtx_code.
4403
4404 2010-11-15  Richard Henderson  <rth@redhat.com>
4405
4406         * config/frv/frv.md (fmasf4, fmssf4): Rename from *muladdsf4
4407         and *mulsubsf4 respectively.  Use fma rtx_code.
4408
4409 2010-11-15  Joseph Myers  <joseph@codesourcery.com>
4410
4411         * gcc.c: Include "vec.h".
4412         (argbuf): Make into a VEC.
4413         (argbuf_length, argbuf_index): Remove.
4414         (alloc_args, clear_args, store_arg, execute, insert_wrapper,
4415         do_spec, do_self_spec, do_spec_1, eval_spec_function, main,
4416         compare_debug_dump_opt_spec_function: Use VEC interfaces on argbuf.
4417         * Makefile.in (GCC_OBJS): Add vec.o and ggc-none.o.
4418         (gcc.o): Depend on $(VEC_H).
4419
4420 2010-11-15  Richard Henderson  <rth@redhat.com>
4421
4422         * loop-unroll.c (analyze_insn_to_expand_var): Accept accumulation
4423         via FMA if unsafe math.
4424         (insert_var_expansion_initialization): Handle FMA.
4425         (combine_var_copies_in_loop_exit): Likewise.
4426
4427 2010-11-15  Richard Henderson  <rth@redhat.com>
4428
4429         * config.gcc [ia64-*] (extra_options): Add fused-madd.opt.
4430         * config/ia64/ia64.opt: Remove mfused-madd.
4431         * config/ia64/ia64.c (ia64_rtx_costs): Handle FP MULT, PLUS, FMA.
4432         * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_FUSED_MADD.
4433         * config/ia64/vms64.h (TARGET_DEFAULT): Likewise.
4434         * config/ia64/ia64.h (TARGET_DEFAULT): Likewise.
4435         * config/ia64/hpux.h (TARGET_DEFAULT): Likewise.
4436         * config/ia64/vect.md (addv2sf3, subv2sf3): Generate FMA.
4437         (*addv2sf3_1, *addv2sf3_2, *subv2sf3_1, *subv2sf3_2): Remove.
4438         (fmav2sf4): Rename from fpma; use FMA code.
4439         (fmsv2sf4): Rename from fpms; use FMA code.
4440         (fnmav2sf4): Rename from *fpnma; use FMA code.
4441         * config/ia64/ia64.md (MODE_SDF): New iterator.
4442         (suffix): New mode attribute.
4443         (*maddsf4, *msubsf4, *nmaddsf4): Remove.
4444         (fmssf4): Rename from *fmssf4.
4445         (fnmasf4): Rename from *nfmasf4.
4446         (*madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc): Remove.
4447         (*nmadddf4, *nmadddf4_truncsf): Remove.
4448         (fmsdf4): Rename from *fmsdf4.
4449         (fnmadf4): Rename from *nfmadf4.
4450         (*fmadf_trunc_sf, *fmsdf_trunc_sf, *fnmadf_trunc_sf): New.
4451         (*maddxf4, *maddxf4_truncsf, *maddxf4_truncdf): Remove.
4452         (*msubxf4, *msubxf4_truncsf, *msubxf4_truncdf): Remove.
4453         (*nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf): Remove.
4454         (fmsxf4): Rename from *fmsxf4.
4455         (fnmaxf4): Rename from *nfmaxf4.
4456         (*fmaxf_trunc_<MODE_SDF>, *fmsxf_trunc_<MODE_SDF>): New.
4457         (*fnmaxf_trunc_<MODE_SDF>): New.
4458
4459 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
4460
4461         PR tree-optimization/46461
4462         * tree-ssa-forwprop.c (simplify_builtin_call): Ensure ptr1 is
4463         a gimple val.
4464
4465 2010-11-15  Ian Lance Taylor  <iant@google.com>
4466
4467         * godump.c: New file.
4468         * common.opt (fdump-go-spec=): New option.
4469         * tree.h: Add comments for TYPE_SYMTAB_ADDRESS and friends.
4470         (TYPE_SYMTAB_IS_ADDRESS, TYPE_SYMTAB_IS_POINTER): Define.
4471         (TYPE_SYMTAB_IS_DIE): Define.
4472         (struct tree_type): Change GTY for symtab field to use
4473         TYPE_SYMTAB_IS_ADDRESS and friends and to use a debug_hooks field
4474         to pick the union field.
4475         * debug.h (struct gcc_debug_hooks): Add tree_type_symtab_field.
4476         (dump_go_spec_init): Declare.
4477         * toplev.c (process_options): Handle flag_dump_go_spec.
4478         * debug.c: Include "tree.h".
4479         (do_nothing_debug_hooks): Set tree_type_symtab_field.
4480         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
4481         * dbxout.c (dbx_debug_hooks): Likewise.
4482         (xcoff_debug_hooks): Likewise.
4483         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
4484         * sdbout.c (sdb_debug_hooks): Likewise.  Do not define if
4485         SDB_DEBUGGING_INFO is not defined.
4486         * doc/invoke.texi (Option Summary): Mention -fdump-go-spec.
4487         (Overall Options): Document -fdump-go-spec.
4488         * Makefile.in (OBJS-common): Add godump.o.
4489         (debug.o): Add dependency on $(TREE_H).
4490         (godump.o): New target.
4491         (GTFILES): Add $(srcdir)/godump.c.
4492
4493 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
4494
4495         PR debug/46095
4496         * config/i386/i386.c (pro_epilogue_adjust_stack): Instead of
4497         marking r11 set RTX_FRAME_RELATED_P if offset is too large for
4498         style < 0, add REG_FRAME_RELATED_EXPR.
4499
4500         PR debug/46387
4501         * rtl.h (vt_equate_reg_base_value): New prototype.
4502         * alias.c (vt_equate_reg_base_value): New function.
4503         * var-tracking.c (vt_init_cfa_base): Use it.
4504
4505 2010-11-15  Jan Hubicka  <jh@suse.cz>
4506             Diego Novillo  <dnovillo@google.com>
4507
4508         PR lto/41528
4509         * doc/lto.texi: Add.
4510         * doc/gccint.texi: Add reference to lto.texi.
4511         * doc/invoke.texi: Update user documentation for LTO.
4512         Move internal flags to lto.texi
4513
4514 2010-11-15  Nicola Pero  <nicola.pero@meta-innovation.com>
4515
4516         * c-typeck.c (build_unary_op): Use
4517         objc_build_incr_expr_for_property_ref to build the pre/post
4518         increment/decrement of an Objective-C property ref, and skip the
4519         lvalue_or_else check in that case.
4520
4521 2010-11-15  Martin Jambor  <mjambor@suse.cz>
4522
4523         PR tree-optimization/46349
4524         * tree-sra.c (contains_bitfld_comp_ref_p): New function.
4525         (contains_vce_or_bfcref_p): Likewise.
4526         (sra_modify_assign): Use them.
4527
4528 2010-11-15  Richard Guenther  <rguenther@suse.de>
4529
4530         PR tree-optimization/46467
4531         * tree-ssa-structalias.c (do_structure_copy): Properly treat
4532         variables without subvars.
4533
4534 2010-11-15  Hariharan Sandanagobalane  <hariharan@picochip.com>
4535
4536         * config/picochip/picochip.c (file header): Picochip name change.
4537         * config/picochip/picochip.md (file header): Likewise.
4538         * config/picochip/predicates.md (file header): Likewise.
4539         * config/picochip/dfa_space.md (file header): Likewise.
4540         * config/picochip/dfa_speed.md (file header): Likewise.
4541         * config/picochip/picochip.h(file header): Likewise.
4542         * config/picochip/constraints.md (file header): Likewise.
4543         * config/picochip/picochip-protos.h (file header): Likewise.
4544         * config/picochip/libgccExtras/setjmp.asm (file header): Likewise.
4545         * config/picochip/libgccExtras/divmodsi4.asm (file header): Likewise.
4546         * config/picochip/libgccExtras/ashlsi3.asm (file header): Likewise.
4547         * config/picochip/libgccExtras/longjmp.asm (file header): Likewise.
4548         * config/picochip/libgccExtras/ashlsi3.c (file header): Likewise.
4549         * config/picochip/libgccExtras/popcounthi2.asm (file header): Likewise.
4550         * config/picochip/libgccExtras/parityhi2.asm (file header): Likewise.
4551         * config/picochip/libgccExtras/udivmodhi4.asm (file header): Likewise.
4552         * config/picochip/libgccExtras/ashrsi3.asm (file header): Likewise.
4553         * config/picochip/libgccExtras/ashrsi3.c (file header): Likewise.
4554         * config/picochip/libgccExtras/ucmpsi2.asm (file header): Likewise.
4555         * config/picochip/libgccExtras/divmodhi4.asm (file header): Likewise.
4556         * config/picochip/libgccExtras/lshrsi3.asm (file header): Likewise.
4557         * config/picochip/libgccExtras/subdi3.asm (file header): Likewise.
4558
4559 2010-11-15  Richard Guenther  <rguenther@suse.de>
4560
4561         PR bootstrap/46474
4562         * tree-ssa-math-opts.c (convert_mult_to_fma): Disregard debug stmts.
4563
4564 2010-11-15  Nick Clifton  <nickc@redhat.com>
4565
4566         * config/stormy16/stormy16.c (direct_return): Do not generate a
4567         direct return for interrupt handlers.
4568
4569 2010-11-15  Joern Rennecke  <amylaar@spamcop.net>
4570
4571         * Makefile.in (tm.texi): Replace with rule for:
4572         ($(srcdir)/doc/tm.texi).
4573         (s-tm-texi): Depend on $(srcdir)/doc/../doc/tm.texi instead of on
4574         $(srcdir)/doc/tm.texi .
4575         (TEXI_GCCINT_FILES): Depend on $(srcdir)/doc/tm.texi instead of on
4576         tm.texi .
4577
4578         PR target/46427
4579         * config/m32r/m32r.c: Remove unused variables frame_size and insn.
4580
4581         PR bootstrap/45444
4582         * config/arm/arm.c (locate_neon_builtin_icode): Initialize key.
4583         (arm_output_asm_insn) Add ATTRIBUTE_PRINTF_4.
4584
4585         PR target/46432
4586         * config/v850/v850.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
4587
4588 2010-11-15  Richard Guenther  <rguenther@suse.de>
4589
4590         PR lto/44150
4591         * lto-opts.c (lto_write_options): Write -fexceptions even if
4592         not set by the user.
4593
4594 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
4595
4596         PR c/46462
4597         * c-decl.c (declspecs_add_type): Make variables with error types
4598         integers.
4599         * c-parser.c (c_parser_next_tokens_start_declaration): Two IDs
4600         do not start a declaration before an Objective-C foreach.
4601         (c_parser_declaration_or_fndef): Improve recovery after unknown
4602         type name.
4603         (c_parser_for_statement): Hoist entrance of "foreach context"
4604         before ifs, add corresponding reset where it was missing.  Do
4605         not set objc_could_be_foreach_context for C.
4606
4607 2010-11-14  Eric Botcazou  <ebotcazou@adacore.com>
4608
4609         PR tree-optimization/45722
4610         * tree-sra.c (build_ref_for_model): Always build a COMPONENT_REF if
4611         this is a reference to a component.
4612         * ipa-prop.c (ipa_get_member_ptr_load_param): Accept COMPONENT_REF.
4613         (ipa_note_param_call): Adjust comment.
4614
4615 2010-11-14  Richard Sandiford  <rdsandiford@googlemail.com>
4616
4617         * config/mips/mips.c (machine_function): Remove
4618         initialized_mips16_gp_pseudo_p.
4619         (mips16_gp_pseudo_reg): Use cfun->machine->mips16_gp_pseudo_rtx to
4620         detect whether a pseudo has already been created.  Unconditionally
4621         create a new one if not.
4622         (mips_pic_base_register): Only call mips16_gp_pseudo_reg when
4623         expanding to rtl.  Create a new pseudo otherwise, if allowed.
4624
4625 2010-11-13  Richard Earnshaw  <rearnsha@arm.com>
4626
4627         PR target/43440
4628         * tm.texi.in (OVERLAPPING_REGISTER_NAMES): Document new macro.
4629         * tm.texi: Regenerated.
4630         * output.h (decode_reg_name_and_count): Declare.
4631         * varasm.c (decode_reg_name_and_count): New function.
4632         (decode_reg_name): Reimplement using decode_reg_name_and_count.
4633         * reginfo.c (fix_register): Use decode_reg_name_and_count and
4634         iterate over all regs used.
4635         * stmt.c (expand_asm_operands): Likewise.
4636         * arm/aout.h (OVERLAPPING_REGISTER_NAMES): Define.
4637         (ADDITIONAL_REGISTER_NAMES): Remove aliases that overlap
4638         multiple machine registers.
4639
4640 2010-11-13  Eric Botcazou  <ebotcazou@adacore.com>
4641
4642         * stor-layout.c (place_union_field): Do not put location information
4643         on offset expressions.
4644         (place_field): Likewise.
4645         (finalize_record_size): Likewise on size expressions.
4646         (finalize_type_size): Likewise.
4647         (layout_type): Likewise.
4648
4649 2010-11-13  Alexandre Oliva  <aoliva@redhat.com>
4650
4651         PR debug/42889
4652         * df-scan.c (df_insn_rescan): Don't mark BBs upon debug insns.
4653         * df-core.c (df_set_bb_dirty_nonrl): Remove.
4654         * df.h (df_set_bb_dirty_nonlr): Likewise.
4655
4656 2010-11-13  Uros Bizjak  <ubizjak@gmail.com>
4657
4658         * config/mips/mips.md (call_internal): Pass curr_insn to
4659         mips_split_call.
4660         (call_internal_direct): Ditto.
4661         (call_value_internal): Ditto.
4662         (call_value_internal_direct): Ditto.
4663         (call_value_multiple_internal): Ditto.
4664         * config/mips/mips.c (mips_split_call): Do not copy
4665         CALL_INSN_FUNCTION_USAGE here.
4666
4667 2010-11-13  Mingming Sun  <mingm.sun@gmail.com>
4668
4669         * doc/invoke.texi (MIPS Options): Add loongson3a processor.
4670         * config/mips/mips.md (define_attr "cpu"): Add loongson_3a.
4671         (define_insn "prefetch"): Add TARGET_LOONGSON_3A.
4672         * config/mips/mips.h (TARGET_LOONGSON_3A): Define.
4673         (TUNE_LOONGSON_3A): Define.
4674         (TARGET_LOONGSON_VECTORS): Add TARGET_LOONGSON_3A.
4675         (MIPS_ISA_LEVEL_SPEC): Add loongson3a.
4676         * config/mips/mips.c (mips_cpu_info_table): Add loongson3a.
4677         (mips_issue_rate): Add PROCESSOR_LOONGSON_3A.
4678         (mips_rtx_cost_data): Add Loongson-3A.
4679
4680 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
4681
4682         * config/darwin.h (LINK_COMMAND_SPEC_A): Update for changes to lto
4683         switches.
4684
4685 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
4686
4687         * dwarf2out.c (macinfo_entry): New struct.
4688         (output_comp_unit): Emit the section start label here and flag that we
4689         will emit an info section.
4690         (dwarf2out_start_source_file): Save data in a macinfo entry rather than
4691         emitting directly.
4692         (dwarf2out_end_source_file): Likewise.
4693         (dwarf2out_define): Likewise.
4694         (dwarf2out_undef): Likewise.
4695         (output_macinfo): New.
4696         (dwarf2out_init): Do not emit debug section switches here, allocate a
4697         vec for macinfo, when required.
4698         (dwarf2out_finish): First switch to debug_abbrev_section here.
4699         debug_line_section,  debug_macinfo_section, Likewise.
4700         Check that the pubtypes table has at least one unpruned entry before
4701         trying to emit it.
4702
4703 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
4704
4705         PR c/20385
4706         * c-parser.c (c_parser_next_token_starts_declaration): Rename to...
4707         (c_parser_next_tokens_start_declaration): ... this.  Handle 2nd
4708         token lookahead.
4709         (c_parser_compound_statement_nostart, c_parser_label,
4710         c_parser_for_statement, c_parser_omp_for_loop): Adjust calls.
4711         (c_parser_declaration_or_fndef): Detect the case now matched by
4712         c_parser_next_tokens_start_declaration, give error and correct it.
4713
4714 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
4715
4716         * c-tree.h (enum c_typespec_kind): Add ctsk_none.
4717         (struct c_declspecs): Replace tagdef_seen_p and type_seen_p
4718         with typespec_kind.
4719         * c-decl.c (build_null_declspecs): Initialize typespec_kind.
4720         (shadow_tag_warned, check_compound_literal_type): Adjust
4721         uses of tag_defined_p.
4722         (declspecs_add_type): Set typespec_kind.
4723         * c-parser.c (c_parser_declaration_or_fndef,
4724         c_parser_declspecs, c_parser_struct_declaration,
4725         c_parser_parameter_declaration, c_parser_type_name,
4726         c_parser_objc_diagnose_bad_element_prefix): Adjust uses
4727         of type_seen_p.
4728         * c-typeck.c (c_cast_expr): Use typespec_kind instead of
4729         tag_defined_p, pass ctsk_firstref through.
4730
4731 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
4732
4733         * c-format.c (enum format_specifier_kind, kind_descriptions): New.
4734         (struct format_wanted_type): Replace field "name" with "kind", add
4735         "format_start" and "format_length".
4736         (check_format_info_main): Fill in new fields.  Fill in
4737         FORMAT_WANTED_TYPES even for missing arguments.  Move checks
4738         after the final NUL outside the while loop.  Do not include
4739         width and precision modifiers in the format_start/format_length
4740         of the main format.
4741         (check_format_types): Remove FORMAT_START and FORMAT_LENGTH
4742         arguments.  Compute WANTED_TYPE first so that format_type_warning
4743         can be called for missing arguments.  Adjust calls to
4744         format_type_warning.
4745         (format_type_warning): Fetch as much information as possible
4746         from format_wanted_type.  Adjust printing now that every
4747         warning has a "descr", as well as for missing argument warnings
4748         and to include % sign for format specifiers.
4749
4750 2010-11-12  Alexander Monakov  <amonakov@ispras.ru>
4751
4752         PR rtl-optimization/46204
4753         * sel-sched-ir.c (maybe_tidy_empty_bb): Remove second argument.
4754         Update all callers.  Do not recompute topological order.  Adjust
4755         fallthrough edges following a degenerate conditional jump.
4756
4757 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
4758
4759         * opts-common.c (control_warning_option): New.
4760         * opts.c (set_default_handlers): New.
4761         (decode_options): Use set_default_handlers and
4762         control_warning_option.
4763         (common_handle_option): Update call to enable_warning_as_error.
4764         (enable_warning_as_error): Take gcc_options parameters.  Use
4765         control_warning_option.
4766         * opts.h (set_default_handlers, control_warning_option): Declare.
4767
4768 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
4769
4770         * Makefile.in (OPTS_H): Define.
4771         (c-decl.o, c-family/c-common.o, c-family/c-opts.o,
4772         c-family/c-pch.o, c-family/c-pragma.o, gcc.o, gccspec.o,
4773         cppspec.o, options.o, gcc-options.o, lto-opts.o, opts.o,
4774         opts-common.o, toplev.o, passes.o, matrix-reorg.o,
4775         ipa-struct-reorg.o, PLUGIN_HEADERS): Use $(OPTS_H).
4776         * gcc.c (driver_handle_option): Take location_t parameter.
4777         (process_command, do_self_spec): Update calls to
4778         read_cmdline_option.
4779         * langhooks-def.h (lhd_handle_option): Take location_t parameter.
4780         * langhooks.c (lhd_handle_option): Take location_t parameter.
4781         * langhooks.h (handle_option): Take location_t parameter.
4782         * lto-opts.c (lto_reissue_options): Update call to set_option.
4783         * opts-common.c (handle_option): Make static.  Take location_t
4784         parameter and pass it to other functions.
4785         (handle_generated_option): Take location_t parameter and pass it
4786         to other functions.
4787         (read_cmdline_option): Take location_t parameter and pass it to
4788         other functions.  Use warning_at and error_at.
4789         (set_option): Take location_t parameter and pass it to other
4790         functions.
4791         * opts.c (common_handle_option): Take location_t parameter and
4792         pass it to other functions.
4793         (enable_warning_as_error): Make static.  Take location_t parameter
4794         and pass it to other functions.
4795         (lang_handle_option): Take location_t parameter and pass it to
4796         other functions.
4797         (target_handle_option): Take location_t parameter.
4798         (read_cmdline_options, maybe_default_option,
4799         maybe_default_options, default_options_optimization,
4800         decode_options): Take location_t parameter and pass it to other
4801         functions.
4802         * opts.h: Include input.h.
4803         (struct cl_option_handler_func, decode_options, set_option,
4804         handle_generated_option, read_cmdline_option): Take location_t
4805         parameters.
4806         (handle_option, enable_warning_as_error): Remove.
4807         * toplev.c (toplev_main): Update call to decode_options.
4808
4809 2010-11-12  Tobias Grosser  <grosser@fim.uni-passau.de>
4810
4811         * graphite-cloog-util.c (oppose_constraint,
4812         cloog_matrix_to_ppl_constraint,
4813         new_Constraint_System_from_Cloog_Matrix): Explicitly cast to int as
4814         CLooG isl uses unsigned integers.  This triggered a warning.
4815
4816 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
4817
4818         PR target/46438
4819         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use LCT_NORMAL.
4820         (xtensa_setup_frame_addresses, xtensa_trampoline_init): Likewise.
4821         (xtensa_function_arg_1): De-constify cum.
4822         (xtensa_expand_prologue): Use add_reg_note.
4823
4824         PR target/46435
4825         * config/cris/cris.c (saved_regs_mentioned): Delete.
4826         (cris_reload_address_legitimized): Cast itype to enum reload_type.
4827         Remove unused variable op0p.
4828         (cris_rtx_costs): Cast argument 2 to rtx_cost to enum rtx_code.
4829         (cris_emit_movem_store): Use add_reg_note.
4830
4831         PR bootstrap/46456
4832         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Split assert.
4833
4834 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
4835
4836         * function.c (expand_function_end): Set the locator of the prologue on
4837         the stack checking insns.
4838
4839 2010-11-12  Richard Henderson  <rth@redhat.com>
4840
4841         * config.gcc [xtensa] (extra_options): Add fused-madd.opt.
4842         * config/xtensa/xtensa.opt (mfused-madd): Remove.
4843         * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
4844         MASK_FUSED_MADD.
4845         * config/xtensa/xtensa.md (fmasf4): Rename from muladdsf3; use fma.
4846         (fnmasf4): Rename from mulsubsf3; use fma.
4847
4848 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
4849             Richard Henderson  <rth@redhat.com>
4850
4851         PR target/46428
4852         * config/moxie/moxie.c (moxie_expand_prologue): Remove unused variables.
4853         * config/moxie/moxie.h (HARD_REGNO_OK_FOR_BASE_P): Use unsigned
4854         comparison.
4855
4856 2010-11-12  Pat Haugen  <pthaugen@us.ibm.com>
4857
4858         * opts-common.c (decode_cmdline_option): Initialize separate_args.
4859
4860 2010-11-12  Jan Hubicka  <jh@suse.cz>
4861
4862         * doc/invoke.texi (early-inlining-insns): Update default.
4863         * params.def (early-inlining-insns): Default to 10.
4864
4865 2010-11-12  Olivier Hainque  <hainque@adacore.com>
4866
4867         * config/rs6000/aix.h: #undef TARGET_AIX_OS before #define.
4868
4869 2010-11-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4870
4871         * config/mips/iris6.h [!IRIX_USING_GNU_LD]
4872         (SUPPORTS_INIT_PRIORITY): Define.
4873
4874 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
4875
4876         PR target/46430
4877         * config/avr/avr-protos.h (avr_return_addr_rtx): Update prototype.
4878         * config/avr/driver-avr.c (avr_device_to_arch): Always return value.
4879         (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
4880         (avr_device_to_devicelib): Likewise.
4881         * config/avr/avr.md (zero_extendqihi2): Put variable declarations
4882         into block.
4883         (zero_extendqisi2, zero_extendhisi2, zero_extendqidi2): Likewise.
4884         (zero_extendhidi2, zero_extendsidi2): Likewise.
4885         * config/avr/avr.c (avr_num_arg_regs): Constify type.
4886         (avr_return_addr_rtx): De-constify tem.
4887         (avr_rotate_bytes): Move declarations to start of block.
4888         Don't use variable length array.  Put nested if/else into block.
4889
4890         PR rtl-optimization/46433
4891         * var-tracking.c: Include tm_p.h .
4892
4893         PR bootstrap/44756
4894         PR build/44767
4895         * doc/tm.texi.in (LOCAL_ALIGNMENT): State that the type, if any,
4896         should be unsigned.
4897         (STACK_SLOT_ALIGNMENT, LOCAL_DECL_ALIGNMENT, PUSH_ROUNDING): Likewise.
4898         * doc/tm.texi: Regenerate.
4899
4900         PR target/46412
4901         * config/bfin/bfin-protos.h (bfin_local_alignment): Update prototype.
4902         * config/bfin/bfin.c: Include sel-sched.h .
4903         (bfin_cpus): Use BFIN_CPU_UNKNOWN for last initializer element.
4904         (expand_interrupt_handler_prologue): Remove unused variable insn.
4905         (bfin_load_pic_reg): Likewise.
4906         (bfin_rtx_costs): Make code / outer_code variables of type
4907         enum rtx_code, copied from re-named parameters.
4908         (bfin_local_alignment): Change align argument and return type
4909         to unsigned.
4910         (bfin_adjust_cost): Remove unused variable insn_type.
4911         Declare variables at start of block.
4912         (struct loop_info): Rename to...
4913         (struct loop_info_d).
4914         (workaround_rts_anomaly): Change type of icode to int.
4915         (harmless_null_pointer_p): Cast REGNO (..) to int before comparison
4916         with int-typed variable.
4917         (note_np_check_stores): Likewise.
4918         (trapping_loads_p): Remove unused variable pat.
4919         (bfin_expand_binop_builtin): Use expand_normal.
4920         (bfin_expand_unop_builtin): Likewise.
4921         (bfin_expand_builtin): Likewise.  Set tmode before use.
4922
4923         PR middle-end/44769
4924         * final.c (split_double): Don't use BITS_PER_WORD directly in
4925         shift count.
4926
4927         PR target/46431
4928         * config/fr30/fr30.md (*movsf_constant_store): Remove duplicated
4929         assignment.
4930
4931         PR target/46450
4932         * config/stormy16/stormy16.c (xstormy16_expand_prologue):
4933         Use add_reg_note.
4934         (xstormy16_function_arg): Dereference cum.
4935         (xstormy16_expand_builtin): Use expand_normal.
4936         Change type of omode to enum machine_mode.
4937         (combine_bnp): Rename and to and_insn.
4938
4939         PR target/46437
4940         * config/mcore/mcore.c (layout_mcore_frame): Remove unused variable
4941         localreg.
4942
4943 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
4944
4945         PR debug/46375
4946         * emit-rtl.c (remove_insn): Do not mark BBs upon debug insns.
4947
4948 2010-11-11  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
4949
4950         PR lto/46376
4951         * lto-symtab.c (lto_symtab_resolve_replaceable_p): Use DECL_ONE_ONLY.
4952
4953 2010-11-11  Nathan Froyd  <froydnj@codesourcery.com>
4954
4955         PR c/44782
4956         * common.opt (fmax-errors=): New option.
4957         * opts.c (common_handle_option) [OPT_fmax_errors_]: Handle it.
4958         * diagnostic.h (struct diagnostic_context): Add max_errors field.
4959         * diagnostic.c (diagnostic_initialize): Initialize it.
4960         (diagnostic_action_after_output): Exit if more than max_errors
4961         have been output.
4962         * doc/invoke.texi (Warning Options): Add -fmax-errors.
4963         (-fmax-errors): Document.
4964
4965 2010-11-11  Richard Henderson  <rth@redhat.com>
4966
4967         * optabs.c (init_optabs): Init {fma,fms,fnma,fnms}_optab properly.
4968
4969 2010-11-11  Richard Henderson  <rth@redhat.com>
4970
4971         * config/fused-madd.opt: New file.
4972         * config.gcc [i386-*, x86_64-*] (extra_options): Use it.
4973         * config/i386/i386.c (ix86_extra_costs): Handle FMA.
4974         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
4975         * config/i386/i386.opt (mfused-madd): Remove.
4976         * config/i386/sse.md (split_fma): Remove.
4977         (split_fms, split_fnma, split_fnms): Remove.
4978
4979 2010-11-12  Jakub Jelinek  <jakub@redhat.com>
4980
4981         PR target/46088
4982         * config/i386/i386.md (*ashl<mode>3_cconly,
4983         *<shiftrt_insn><mode>3_cconly): Don't use ix86_binary_operator_ok,
4984         change nonimmediate_operand predicate to register_operand.
4985
4986 2010-11-11  Paolo Bonzini  <bonzini@gnu.org>
4987
4988         * Makefile.in (gengtype-lex.c): Include bconfig.h first.
4989
4990 2010-11-11  Jan Hubicka  <jh@suse.cz>
4991
4992         * opts.c (finish_options): Do not error on -flto-partition alone.
4993
4994         * doc/invoke.texi (-fwhopr): Merge into -flto section.
4995         (-flto-partition): Document none.
4996         * gcc.c (LINK_COMMAND_SPEC): Remove -fwhopr.
4997         * lto-wrapper.c: Update comment.
4998         (run_gcc): Update LTO option parsing.
4999         * opts.c (finish_options): add support -flto-partition=none
5000         (common_handle_option): Remove fwhopr.
5001         * common.opt: Turn fwhopr into flto.
5002         * collect2.c (main): Update option handling.
5003         * cgraphunit.c (cgraph_decide_is_function_needed): Remove flag_whopr.
5004         * ipa-split.c (execute_split_functions): Remove flag_whopr.
5005         * ipa.c (function_and_variable_visibility): Remove flag_whopr.
5006         * ipa-prop.c (ipa_compute_jump_functions): Remove flag_whopr.
5007         * varpool.c (decide_is_variable_needed): Remove flag_whopr.
5008
5009 2010-11-11  Jan Hubicka  <jh@suse.cz>
5010
5011         PR tree-optimize/40436
5012         * ipa-inline.c (likely_eliminated_by_inlining_p): Rename to ...
5013         (eliminated_by_inlining_prob): ... this one; return 50% probability
5014         for SRA.
5015         (estimate_function_body_sizes): Update use of
5016         eliminated_by_inlining_prob; estimate static function size
5017         for 2 instructions.
5018
5019 2010-11-11  Joern Rennecke  <amylaar@spamcop.net>
5020
5021         PR target/44749
5022         * config/mep/mep-protos.h (mep_legitimize_reload_address): Always
5023         declare.  Change type of argument four to type int.
5024         (mep_secondary_input_reload_class): Returns enum reg_class.
5025         (mep_secondary_output_reload_class): Likewise.
5026         (mep_function_value): Change types of arguments to cont_tree.
5027         * config/mep/mep.c (mep_legitimize_reload_address): Change type of
5028         argument four to type int.
5029         (mep_secondary_input_reload_class): Returns enum reg_class.
5030         (mep_secondary_output_reload_class): Likewise.
5031         (mep_function_value): Change types of arguments to cont_tree.
5032         * config/mep/mep.h (REGNO_REG_CLASS): Cast return value of
5033         mep_regno_reg_class to enum reg_class.
5034
5035 2010-11-11  Richard Henderson  <rth@redhat.com>
5036
5037         * tree-ssa-math-opts.c (convert_mult_to_fma): Do not verify
5038         that the target has the exact fma operation that we matched.
5039
5040 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
5041
5042         * reginfo.c (fix_register): Avoid inserting English word in
5043         diagnostic sentence.  Use %qs for quoting and %'.
5044
5045 2010-11-11  H.J. Lu  <hongjiu.lu@intel.com>
5046
5047         * config/i386/driver-i386.c (host_detect_local_cpu): Support
5048         Intel processor family 6, model 0x2c.
5049
5050 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
5051
5052         * opts.c (warning_as_error_callback,
5053         register_warning_as_error_callback): Remove.
5054         (enable_warning_as_error): Don't use warning_as_error_callback.
5055         * opts.h (register_warning_as_error_callback): Remove.
5056
5057 2010-11-11  Richard Henderson  <rth@redhat.com>
5058
5059         * tree-ssa-math-opts.c (convert_mult_to_fma): Handle a NEGATE_EXPR
5060         in between the MULT and the PLUS/MINUS.
5061
5062 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
5063
5064         PR middle-end/46388
5065         * expr.c (expand_assignment): If to_rtx is a VOIDmode MEM, use
5066         BLKmode mode for it.
5067         (expand_expr_real_1): Similarly for op0.
5068
5069 2010-11-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5070
5071         * doc/sourcebuild.texi (LTO Testing, dg-suppress-ld-options):
5072         Document optional target selector.
5073
5074 2010-11-11  Dave Korn  <dave.korn.cygwin@gmail.com>
5075
5076         * lto-streamer-out.c (write_symbol): Use int_size_in_bytes rather than
5077         assembling high and low parts of size if not using 32-bit HWINT; else
5078         use DECL_SIZE_UNITS, not DECL_SIZE.
5079
5080 2010-11-11  Martin Jambor  <mjambor@suse.cz>
5081
5082         PR tree-optimization/46383
5083         * ipa-prop.c (compute_complex_assign_jump_func): Ignore negative
5084         offsets.
5085         (compute_complex_ancestor_jump_func): Likewise.
5086         * tree.c (get_binfo_at_offset): Return NULL_TREE if offset is negative.
5087
5088 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
5089
5090         PR debug/46150
5091         * tree-ssa-loop-ivopts.c (htab_inv_expr_eq): Don't return
5092         true if expr1->hash != expr2->hash.
5093
5094 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
5095
5096         * cfgloop.c (verify_loop_structure): Use %' in diagnostics.  Start
5097         diagnostics with lowercase letters.
5098         * cgraphunit.c (verify_cgraph_node): Start diagnostics with
5099         lowercase letters.
5100         * collect2.c (maybe_run_lto_and_relink): Remove trailing '.' from
5101         diagnostic.
5102         * config/alpha/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
5103         * config/arm/arm.c (arm_get_pcs_model): Start diagnostics with
5104         lowercase letters.
5105         * config/arm/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
5106         Remove trailing ' ' from diagnostic.
5107         * config/avr/avr.c (print_operand_address): Start diagnostic with
5108         a lowercase letter and remove trailing '.'.
5109         * config/avr/avr.opt (mpmem-wrap-around): Fix typo in help text.
5110         * config/bfin/bfin.c (bfin_option_override): Start diagnostics
5111         with lowercase letters.  Use %' in diagnostics.  Remove trailing
5112         '.' from diagnostics.
5113         (bfin_handle_longcall_attribute): Use %' in diagnostic.
5114         * config/cris/cris.c (cris_split_movdx,
5115         cris_expand_pic_call_address): Start diagnostics with lowercase
5116         letters.
5117         (cris_asm_output_label_ref): Use %' in diagnostic.
5118         * config/cris/cris.h (ASM_SPEC): Start diagnostic with a lowercase
5119         letter.
5120         * config/crx/crx.h (FUNCTION_PROFILER): Start diagnostic with a
5121         lowercase letter.
5122         * config/darwin-c.c (version_as_macro): Start diagnostic with a
5123         lowercase letter.
5124         * config/darwin-driver.c (darwin_default_min_version): Use %' in
5125         diagnostic.
5126         * config/host-darwin.c (darwin_gt_pch_use_address): Use %' in
5127         diagnostic.
5128         * config/i386/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
5129         * config/i386/host-cygwin.c (cygwin_gt_pch_get_address): Use %' in
5130         diagnostics.
5131         * config/i386/i386.c (ix86_option_override_internal): Write
5132         diagnostic as a single sentence without trailing '.'.  Use %' in
5133         diagnostics.
5134         (ix86_function_sseregparm, classify_argument): Start diagnostics
5135         with lowercase letters.
5136         (ix86_expand_prologue): Use %' in diagnostic.
5137         * config/i386/i386.h (CC1_CPU_SPEC_1): Remove trailing '.' from
5138         diagnostic.
5139         * config/i386/nwld.h (LINK_SPEC): Start diagnostic with a
5140         lowercase letter.
5141         * config/i386/winnt.c (i386_pe_determine_dllimport_p): Use %' in
5142         diagnostic.
5143         * config/ia64/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
5144         * config/ia64/ia64.opt (msched-max-memory-insns-hard-limit): Avoid
5145         '`' in help text.
5146         * config/lm32/lm32.c (lm32_print_operand): Start diagnostic with a
5147         lowercase letter.
5148         * config/mep/mep.c (mep_validate_vliw): Start diagnostics with
5149         lowercase letters.
5150         * config/microblaze/microblaze.c (microblaze_handle_option):
5151         Remove trailing '.' from diagnostic.
5152         (print_operand): Start diagnostic with a lowercase letter.
5153         * config/pa/pa-hpux10.h (LINK_SPEC): Start diagnostics with
5154         lowercase letters.  Avoid '`' in diagnostics.
5155         * config/pa/pa-hpux11.h (LINK_SPEC): Start diagnostics with
5156         lowercase letters.  Avoid '`' in diagnostics.
5157         * config/pa/pa64-hpux.h (LINK_SPEC): Start diagnostics with
5158         lowercase letters.  Avoid '`' in diagnostics.
5159         * config/picochip/picochip.c (picochip_option_override,
5160         picochip_emit_save_register, picochip_function_arg,
5161         picochip_output_label, picochip_output_internal_label,
5162         picochip_asm_output_opcode, picochip_output_cbranch,
5163         picochip_output_compare, picochip_output_branch,
5164         picochip_get_vliw_alu_id): Remove trailing '.' and '\n' from
5165         diagnostics. Start diagnostics with lowercase letters.  Use %' in
5166         diagnostics.
5167         * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
5168         "SPE" capitalization.  Start diagnostic with a lowercase letter.
5169         (rs6000_handle_option): Start diagnostics with lowercase letters.
5170         (def_builtin): Remove trailing '.' from diagnostic.
5171         (rs6000_savres_routine_name): Start diagnostic with a lowercase
5172         letter.
5173         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Avoid '`' in
5174         diagnostic.
5175         * config/rx/rx.c (rx_handle_option): Start diagnostic with a
5176         lowercase letter.
5177         * config/s390/s390.c (s390_option_override) Start diagnostics with
5178         lowercase letters.  Use %' in diagnostic.
5179         * config/sh/sh.c (sh_output_mi_thunk): Start diagnostics with
5180         lowercase letters.
5181         * config/sh/symbian-base.c (sh_symbian_mark_dllimport): Use %' in
5182         diagnostic.
5183         * config/sh/symbian-c.c (sh_symbian_is_dllimported): Use %' in
5184         diagnostic.
5185         * config/sh/symbian-cxx.c (sh_symbian_is_dllimported): Use %' in
5186         diagnostic.
5187         * config/sparc/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
5188         * config/spu/spu.c (spu_option_override): Start diagnostics with
5189         lowercase letters.  Use %qs for quoting in diagnostics.
5190         (spu_check_builtin_parm): Remove trailing '.' from diagnostics.
5191         Use %wd instead of HOST_WIDE_INT_PRINT_DEC in diagnostic .
5192         * config/v850/v850.c (construct_save_jarl): Remove trailing '\n'
5193         from diagnostic.
5194         * convert.c (convert_to_integer, convert_to_vector): Use %' in
5195         diagnostics.
5196         * dbgcnt.c (dbg_cnt_process_opt): Start diagnostic with lowercase
5197         letter and use "cannot" spelling.
5198         * expmed.c (extract_fixed_bit_field): Start diagnostic with
5199         lowercase letter and format as a single sentence without '.'.
5200         * ggc-common.c (write_pch_globals, gt_pch_save, gt_pch_restore):
5201         Use %' in diagnostics.
5202         * ggc-page.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
5203         Use %' in diagnostics.
5204         * ggc-zone.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
5205         Use %' in diagnostics.
5206         * graph.c (clean_graph_dump_file): Use %' in diagnostic.
5207         * graphite-poly.c (graphite_read_scop_file): Start diagnostics
5208         with lowercase letters and remove tailing '.' and '\n'.
5209         * lto-cgraph.c (input_profile_summary): Start diagnostic with
5210         lowercase letter and remove trailing '.'.
5211         (input_cgraph): Start diagnostics with lowercase letters and
5212         remove trailing '\n'.
5213         * opts.c (finish_options, common_handle_option): Start diagnostics
5214         with lowercase letters and remove trailing '.'.  Fix typo in
5215         diagnostic.
5216         * passes.c (position_pass): Start diagnostic with lowercase letter.
5217         * plugin.c (add_new_plugin, parse_plugin_arg_opt,
5218         register_callback, try_init_one_plugin): Start diagnostics with
5219         lowercase letters.
5220         * reload1.c (spill_failure): Use %' in diagnostic.
5221         (gen_reload): Start diagnostic with a lowercase letter.
5222         * stor-layout.c (place_field): Start diagnostic with a lowercase
5223         letter.
5224         * toplev.c (open_auxiliary_file): Use %' in diagnostic.
5225         * tree-cfg.c (verify_expr, verify_types_in_gimple_reference,
5226         verify_gimple_call, verify_gimple_phi, verify_eh_throw_stmt_node):
5227         Start diagnostics with lowercase letters, remove trailing '.' and
5228         use %' in diagnostics.
5229         * tree-ssa.c (verify_def): Remove trailing '.' from diagnostic.
5230         (verify_ssa): Don't split diagnostic across two error calls.
5231         Spell out "number" and use %' in diagnostic.
5232         * value-prof.c (visit_hist, check_counter): Start diagnostics with
5233         lowercase letters.
5234
5235 2010-11-10  Uros Bizjak  <ubizjak@gmail.com>
5236
5237         PR middle-end/46419
5238         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Swap __hisi and __losi.
5239         (_mm_cvtpu16_ps): Ditto.
5240
5241 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
5242
5243         * common.opt (flag_excess_precision_cmdline, flag_generate_lto,
5244         warn_larger_than, larger_than_size, warn_frame_larger_than,
5245         frame_larger_than_size, flag_gen_aux_info, flag_shlib,
5246         default_visibility, flag_tls_default): New Variable declarations.
5247         (aux-info, auxbase, dumpbase, dumpdir, falign-functions=,
5248         falign-jumps=, falign-labels=, falign-loops=, o, v): Use Var.
5249         (v): Declare as Common and document here.
5250         * flags.h (default_visibility, flag_generate_lto,
5251         warn_larger_than, larger_than_size, warn_frame_larger_than,
5252         frame_larger_than_size, flag_gen_aux_info, flag_pedantic_errors,
5253         flag_shlib, flag_excess_precision_cmdline): Remove.
5254         (set_Wstrict_aliasing): Update prototype.
5255         * gcc.c (verbose_flag): Remove.
5256         (driver_handle_option): Add diagnostic_context parameter.  Don't
5257         handle OPT_v explicitly here.  Set verbose_flag to 1 rather than
5258         incrementing it.
5259         * opts-common.c (handle_option): Pass dc to handler.
5260         * opts.c (warn_larger_than, larger_than_size,
5261         warn_frame_larger_than, frame_larger_than_size,
5262         default_visibility): Remove.
5263         (common_handle_option): Add diagnostic_context parameter.
5264         (set_fast_math_flags, set_unsafe_math_optimizations_flags): Add
5265         gcc_options parameters.
5266         (lang_handle_option, target_handle_option, read_cmdline_options,
5267         decode_options): Add diagnostic_context parameters.
5268         (finish_options): Access option state through opts pointer where
5269         possible.
5270         (common_handle_option): Access option state through opts pointer
5271         where possible.  Do not set local static variable verbose.  Do not
5272         explicitly handle OPT_v, OPT_Wstrict_aliasing_,
5273         OPT_Wstrict_overflow_, OPT_Wunused, OPT_auxbase, OPT_dumpbase,
5274         OPT_dumpdir, OPT_falign_functions_, OPT_falign_jumps_,
5275         OPT_falign_labels_, OPT_falign_loops_, OPT_fira_verbose_, OPT_o or
5276         OPT_fwhopr_.  Do not explicitly set .opt file variables for
5277         OPT_aux_info or OPT_pedantic_errors.  Use dc for diagnostic context.
5278         (set_Wstrict_aliasing): Add gcc_options parameter.
5279         * opts.h (struct cl_option_handler_func): Add diagnostic_context
5280         parameter to handler.
5281         (decode_options): Add diagnostic_context parameter.
5282         * toplev.c (dump_base_name, dump_dir_name, aux_base_name,
5283         asm_file_name, flag_generate_lto, flag_gen_aux_info,
5284         aux_info_file_name, flag_shlib, flag_tls_default,
5285         flag_excess_precision_cmdline, flag_pedantic_errors): Remove.
5286         (toplev_main): Pass global_dc to decode_options.
5287         * toplev.h (dump_base_name, dump_dir_name, aux_base_name,
5288         aux_info_file_name, asm_file_name): Remove.
5289         * tree.h (flag_tls_default): Remove.
5290
5291 2010-11-10  Eric Botcazou  <ebotcazou@adacore.com>
5292
5293         PR target/45986
5294         * config/sparc/sparc.c (sparc_delegitimize_address): New function.
5295         (TARGET_DELEGITIMIZE_ADDRESS): Define to above.
5296
5297 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
5298
5299         * config.gcc (i[34567]86-*-*): Include tbmintrin.h.
5300         (x86_64-*-*): Likewise.
5301         * config/i386/cpuid.h: Define TBM bit.
5302         * config/i386/driver-i386.c (host_detect_local_cpu): Define
5303         and set has_tbm.
5304         * config/i386/i386-c.c (ix86_target_macros_internal): Check
5305         isa_flag for TBM.
5306         * config/i386/i386.c (OPTION_MASK_ISA_TBM_SET): New.
5307         (OPTION_MASK_ISA_TBM_UNSET): New.
5308         (ix86_handle_option): Handle -mtbm.
5309         (isa_opts): Add -mtbm.
5310         (enum pta_flags): Add PTA_TBM.
5311         (ix86_option_override_internal): Add TBM support.
5312         (ix86_valid_target_attribute_inner_p): Handle -mtbm.
5313         (IX86_BUILTIN_BEXTRI32): New for TBM intrinsic.
5314         (IX86_BUILTIN_BEXTRI64): Likewise.
5315         (bdesc_args): Add TBM intrinsics.
5316         (ix86_expand_builtin): Add TBM specific case.
5317         * config/i386/i386.h (TARGET_TBM): New for TBM.
5318         * config/i386/i386.md (UNSPEC_BEXTRI): New for TBM.
5319         (tbm_bextri_<mode>): Likewise.
5320         (*tbm_blcfill_<mode>): Likewise.
5321         (*tbm_blci_<mode>): Likewise.
5322         (*tbm_blcic_<mode>): Likewise.
5323         (*tbm_blcmsk_<mode>): Likewise.
5324         (*tbm_blcs_<mode>): Likewise.
5325         (*tbm_blsfill_<mode>): Likewise.
5326         (*tbm_blsic_<mode>): Likewise.
5327         (*tbm_t1mskc_<mode>): Likewise.
5328         (*tbm_tzmsk_<mode>): Likewise.
5329         * config/i386/i386.opt: Add -mtbm.
5330         * config/i386/tbmintrin.h (__bextri_u32): New.
5331         (__blcfill_u32): Likewise.
5332         (__blci_u32): Likewise.
5333         (__blcic_u32): Likewise.
5334         (__blcmsk_u32): Likewise.
5335         (__blcs_u32): Likewise.
5336         (__blsfill_u32): Likewise.
5337         (__blsic_u32): Likewise.
5338         (__t1mskc_u32): Likewise.
5339         (__tzmsk_u32): Likewise.
5340         (__bextri_u64): Likewise.
5341         (__blcfill_u64): Likewise.
5342         (__blci_u64): Likewise.
5343         (__blcic_u64): Likewise.
5344         (__blcmsk_u64): Likewise.
5345         (__blcs_u64): Likewise.
5346         (__blsfill_u64): Likewise.
5347         (__blsic_u64): Likewise.
5348         (__t1mskc_u64): Likewise.
5349         (__tzmsk_u64): Likewise.
5350         * config/i386/x86intrin.h: Add TBM check and tbmintrin.h.
5351         * doc/invoke.texi: Document -mtbm.
5352         * doc/extend.texi: Document TBM built-in functions.
5353
5354 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
5355
5356         * config.gcc (i[34567]86-*-*): Include bmiintrin.h.
5357         (x86_64-*-*): Likewise.
5358         * config/i386/cpuid.h: Define BMI bit.
5359         * config/i386/driver-i386.c (host_detect_local_cpu): Define
5360         and set has_bmi.
5361         * config/i386/i386-c.c (ix86_target_macros_internal): Check
5362         isa_flag for BMI.
5363         * config/i386/i386.c (OPTION_MASK_ISA_BMI_SET): New.
5364         (OPTION_MASK_ISA_BMI_UNSET): New.
5365         (ix86_handle_option): Handle -mbmi.
5366         (isa_opts): Add -mbmi.
5367         (enum pta_flags): Add PTA_BMI.
5368         (ix86_option_override_internal): Add BMI support.
5369         (ix86_valid_target_attribute_inner_p): Handle -mbmi.
5370         (IX86_BUILTIN_BEXTR32): New for BMI intrinsic.
5371         (IX86_BUILTIN_BEXTR64): Likewise.
5372         (IX86_BUILTIN_CTZS): Likewise.
5373         (bdesc_args): Add BMI intrinsics.
5374         (ix86_expand_args_builtin): Add BMI specific cases.
5375         * config/i386/i386.h (TARGET_BMI): New for BMI.
5376         (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
5377         (CLZ_DEFINED_VALUE_AT_ZERO): Likewise.
5378         * config/i386/i386.md (UNSPEC_BEXTR): New for BMI.
5379         (UNSPEC_TZCNT): Likewise.
5380         (ctz<mode>2): Add tzcnt, and handle 16 bit operands.
5381         (bmi_andn_<mode>): New for BMI.
5382         (bmi_bextr_<mode>): Likewise.
5383         (bmi_blsi_<mode>): Likewise.
5384         (bmi_blsmsk_<mode>): Likewise.
5385         (bmi_blsr_<mode>): Likewise.
5386         * config/i386/i386.opt: Add -mbmi.
5387         * config/i386/x86intrin.h: Add BMI check and bmiintrin.h.
5388         * config/i386/bmiintrin.h (__lzcnt_u16): New.
5389         (__tzcnt_u16): Likewise.
5390         (__andn_u32): Likewise.
5391         (__bextr_u32): Likewise.
5392         (__blsi_u32): Likewise.
5393         (__blsmsk_u32): Likewise.
5394         (__blsr_u32): Likewise.
5395         (__lzcnt_u32): Likewise.
5396         (__tzcnt_u32): Likewise.
5397         (__andn_u64): Likewise.
5398         (__bextr_u64): Likewise.
5399         (__blsi_u64): Likewise.
5400         (__blsmsk_u64): Likewise.
5401         (__blsr_u64): Likewise.
5402         (__lzcnt_u64): Likewise.
5403         (__tzcnt_u64): Likewise.
5404         * doc/invoke.texi: Document -mbmi and -mno-bmi.
5405         * doc/extend.texi: Document BMI built-in functions.
5406
5407 2010-11-10  Jan Hubicka  <jh@suse.cz>
5408
5409         PR tree-optimize/46228
5410         * doc/invoke.texi (comdat-sharing-probability): Document.
5411         * ipa-inline.c (cgraph_estimate_growth): Handle COMDATs
5412         * params.def (PARAM_COMDAT_SHARING_PROBABILITY): New param.
5413
5414 2010-11-10  Jan Hubicka  <jh@suse.cz>
5415
5416         PR tree-optimize/46228
5417         * cgraph.c (cgraph_propagate_frequency): Fix typo.
5418
5419 2010-11-10  H.J. Lu  <hongjiu.lu@intel.com>
5420
5421         PR tree-optimization/46414
5422         * tree-inline.c (estimate_move_cost): Check preferred vector
5423         mode for vector type.
5424
5425 2010-11-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5426
5427         * config/alpha/osf5.h (ASM_SPEC): Remove -nocpp.
5428
5429 2010-11-10  Sebastian Pop  <sebastian.pop@amd.com>
5430
5431         PR tree-optimization/45971
5432         * tree-if-conv.c (predicate_scalar_phi): Do not generate a COND_EXPR
5433         for phi nodes analyzable by scev.
5434
5435 2010-11-10  Richard Guenther  <rguenther@suse.de>
5436
5437         PR tree-optimization/44964
5438         * ipa-inline.c (cgraph_flatten): Check that SSA form matches.
5439
5440 2010-11-10  Martin Jambor  <mjambor@suse.cz>
5441
5442         PR tree-optimization/46351
5443         PR tree-optimization/46377
5444         * tree-sra.c (type_internals_preclude_sra_p): Disqualify types with
5445         aggregate bit-fields.
5446
5447 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
5448
5449         * doc/tm.texi.in (TARGET_OPTION_TRANSLATE_TABLE): Remove.
5450         * doc/tm.texi: Regenerate.
5451         * opts-common.c (tm.h): Don't include.
5452         (target_option_translations): Remove.
5453         (decode_cmdline_options_to_array): Don't handle translating options.
5454         * system.h (TARGET_OPTION_TRANSLATE_TABLE): Poison.
5455         * config/darwin-driver.c: Don't condition includes on
5456         CROSS_DIRECTORY_STRUCTURE.
5457         (darwin_default_min_version): Make static.
5458         (darwin_driver_init): New.  Call darwin_default_min_version if not
5459         CROSS_DIRECTORY_STRUCTURE.
5460         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
5461         (DRIVER_SELF_SPECS, DARWIN_CC1_SPEC): Define.
5462         (ASM_SPEC): Add %{static}.
5463         (darwin_default_min_version): Don't declare.
5464         (darwin_driver_init): Declare.
5465         (GCC_DRIVER_HOST_INITIALIZATION): Define to call
5466         darwin_driver_init, independent of CROSS_DIRECTORY_STRUCTURE.
5467         * config/darwin.opt (all_load, allowable_client,
5468         arch_errors_fatal, bind_at_load, bundle, bundle_loader,
5469         dead_strip, dependency-file, dylib_file, dynamic, dynamiclib,
5470         exported_symbols_list, filelist, findirect-virtual-calls,
5471         flat_namespace, force_cpusubtype_ALL, force_flat_namespace,
5472         framework, fterminated-vtables, gfull, gused, image_base, init,
5473         install_name, multi_module, multiply_defined,
5474         multiply_defined_unused, no_dead_strip_inits_and_terms,
5475         seg_addr_table, seg_addr_table_filename, segaddr,
5476         segs_read_only_addr, segs_read_write_addr, single_module,
5477         umbrella, unexported_symbols_list, weak_reference_mismatches,
5478         Zall_load, Zarch_errors_fatal, Zbind_at_load, Zbundle,
5479         Zdead_strip, Zdynamic, Zdynamiclib, Zflat_namespace,
5480         Zforce_cpusubtype_ALL, Zforce_flat_namespace, Zmulti_module,
5481         Zno_dead_strip_inits_and_terms, Zsingle_module): New.
5482         * config/i386/darwin.h (CC1_SPEC): Add DARWIN_CC1_SPEC.
5483         (ASM_SPEC): Add %{static}.
5484         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
5485         * config/mep/mep.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
5486         (DRIVER_SELF_SPECS): Handle options formerly in
5487         TARGET_OPTION_TRANSLATE_TABLE.
5488         * config/mep/mep.opt (mfar): New.
5489         * config/picochip/picochip.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
5490         (DRIVER_SELF_SPECS): Define.  Handle options formerly in
5491         TARGET_OPTION_TRANSLATE_TABLE.
5492         * config/rs6000/darwin.h (CC1_SPEC): Handle -faltivec and -fno-altivec.
5493         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
5494         * config/rs6000/darwin.opt (Waltivec-long-deprecated, faltivec,
5495         ffix-and-continue, findirect-data): New.
5496         * config/rx/rx.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
5497         * config/rx/rx.opt (nofpu): Make into alias of mnofpu.
5498         (mnofpu): Define mask and use Report here.
5499
5500 2010-11-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5501
5502         * config/s390/s390.c (s390_emit_prologue): Report the stack
5503         size if -fstack-usage is used.
5504
5505 2010-11-10  Richard Guenther  <rguenther@suse.de>
5506
5507         PR tree-optimization/46398
5508         * tree-ssa-sccvn.c (process_scc): Iterate for all PHIs.
5509
5510 2010-11-10  Joern Rennecke  <amylaar@spamcop.net>
5511
5512         PR target/44760
5513         * config/iq2000/iq2000.h (REGISTER_NAMES): Remove trailing semicolon.
5514         (REGNO_MODE_OK_FOR_BASE_P): Cast REGNO to int before passing it to
5515         GP_REG_OR_PSEUDO_STRICT_P.
5516         * config/iq2000/iq2000.md (andsi3+1): Add gcc_unreachable for
5517         unexpected alternative.
5518         (*movsf_internal): Likewise.
5519         (indirect_jump): Replace call to non-existant function with call to
5520         internal_error.
5521         (tablejump): Likewise.
5522         * config/iq2000/iq2000.c: Include df.h .
5523         (iq2000_function_arg_advance): Use CONST_CAST2.
5524         (compute_frame_size, iq2000_expand_prologue): Remove unused variables.
5525         (iq2000_can_eliminate): Call leaf_function_p instead of testing for
5526         a non-zero function address.
5527         (iq2000_initial_elimination_offset): Add gcc_unreachable for
5528         unexpected value of FROM.
5529         (symbolic_expression_p): Delete.
5530         (iq2000_function_value): Constify func.
5531         (expand_one_builtin): Use expand_normal.
5532         (iq2000_print_operand): Don't print VALUE if calculating it failed.
5533
5534         PR rtl-optimization/44764
5535         * addresses.h (ok_for_base_p_1): Mark regno with ATTRIBUTE_UNUSED.
5536
5537         PR target/46407
5538         * config/rx/rx.h (REGISTER_NAMES): Remove trailing semicolon.
5539         * config/rx/rx.c (rx_promote_function_mode): Mark punsignedp
5540         with ATTRIBUTE_UNUSED.
5541         (valid_psw_flag): Constify parameter which.
5542         (rx_memory_move_cost): Change type of parameter regclass to reg_class_t.
5543
5544         PR target/46415
5545         * config/mmix/mmix-protos.h (mmix_local_alignment): Update prototype.
5546         (mmix_dbx_register_number): Likewise.
5547         * config/mmix/mmix.c: Include df.h .
5548         (mmix_local_alignment): Change argument basic_align and return type
5549         to unsigned.
5550         (mmix_dbx_register_number): Change argument and return type to
5551         unsigned.
5552         (mmix_expand_prologue): Use add_reg_note.
5553
5554         PR target/46417
5555         * config/spu/spu.c (spu_expand_insv): Remove unused variables.
5556         (spu_split_store): Use aform.
5557         (spu_function_profiler): Mark parameter labelno with ATTRIBUTE_UNUSED.
5558
5559 2010-11-10  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
5560
5561         PR/46268
5562         * doc/gty.texi (GTY Options): Clarify that variable_size produces
5563         allocators taking size in bytes, compare with length option.  Add
5564         size calculation example.
5565         (Invoking the garbage collector): Ensure that sentences are
5566         followed by two spaces.  Describe that pointer fields must be
5567         initialized at ggc_collect call.
5568         (Troubleshooting): New section.
5569
5570 2010-11-09  Jan Hubicka  <jh@suse.cz>
5571
5572         PR tree-optimization/40436
5573         * ipa-inline.c (leaf_node_p): Implement using is_inexpensive_builtin.
5574         * tree-inline.c (estimate_num_insns): Inexpensive builtins are like
5575         normal instructions; be sure bultin is not implemented in this file;
5576         compute non-zero return cost.
5577         (init_inline_once): Reduce builtin_call_cost to 1; set return cost.
5578         * tree-inline.h (eni_weights_d): Add return cost.
5579
5580 2010-11-09  Joseph Myers  <joseph@codesourcery.com>
5581
5582         * c-parser.c (c_parser_struct_declaration): Handle declaration
5583         specifiers followed by CPP_CLOSE_BRACE.
5584
5585 2010-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
5586
5587         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Rewrite so
5588         split occurs before reload, and we allocate memory at the time of
5589         the split, not during expansion.  Add attributes.
5590         (floatsi<mode>2_lfiwax_mem): Ditto.
5591         (floatunssi<mode>2_lfiwzx): Ditto.
5592         (floatunssi<mode>2_lfiwzx_mem): Ditto.
5593         (floatsidf2): Ditto.
5594         (floatunssisf2): Ditto.
5595         (floatunssidf2): Ditto.
5596         (fix_trunc<mode>si2): Ditto.
5597         (fix_trunc<mode>si2_stfiwx): Ditto.
5598         (fix_trunc<mode>si2_internal): Ditto.
5599         (fix_trunc<mode>si2): Ditto.
5600         (fix_trunc<mode>di2): Ditto.
5601         (fixuns_trunc<mode>si2_stfiwx): Ditto.
5602         (floatsisf2): Ditto.
5603         (floatdidf2_mem): Ditto.
5604         (floatunsdidf2_mem): Ditto.
5605         (floatunsdidf2): Ditto.
5606         (floatdisf2_internal1): Ditto.
5607         (floatdisf2_mem): Ditto.
5608         (floatunsdisf2_mem): Ditto.
5609         (floatsi<mode>2_lfiwax_mem2): Delete.
5610         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
5611         (fix_trunc<mode>si2_mem): Ditto.
5612         (fixuns_trunc<mode>si2_mem): Ditto.
5613         (round32<mode>2_fprs): New combiner insn to combine (double)(int)
5614         type operations to reduce copying the values to multiple memory slots.
5615         (roundu32<mode>2_fprs): Ditto.
5616
5617         * config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Handle
5618         PRE_INC, PRE_DEC, PRE_MODIFY.
5619         (rs6000_expand_convert_si_to_sfdf): Delete, no longer used.
5620
5621         * config/rs6000/rs6000-protos.h (rs6000_expand_convert_si_to_sfdf):
5622         Delete prototype.
5623
5624 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
5625
5626         PR target/43808
5627         * cfgexpand.c (partition_stack_vars): Call
5628         update_alias_info_with_stack_vars unconditionally.
5629         (update_alias_info_with_stack_vars): Allow unused
5630         unreferenced vars when not optimizing.
5631
5632 2010-11-09  Sebastian Pop  <sebastian.pop@amd.com>
5633
5634         PR tree-optimization/46036
5635         * tree-if-conv.c (predicate_bbs): Call unshare_expr before
5636         add_to_dst_predicate_list.
5637
5638 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
5639
5640         PR debug/46171
5641         * df-problems.c (struct dead_debug_use, struct dead_debug): Move
5642         earlier.
5643         (df_set_unused_notes_for_mw, df_create_unused_note): Add DEBUG
5644         argument, call dead_debug_reset when adding REG_UNUSED note.
5645         (dead_debug_reset): New function.
5646         (df_note_bb_compute): Adjust df_set_unused_notes_for_mw and
5647         df_create_unused_note callers.
5648
5649 2010-11-09  Anatoly Sokolov  <aesok@post.ru>
5650
5651         * config/fr30/fr30.c: Include "df.h".
5652
5653 2010-11-09  Richard Guenther  <rguenther@suse.de>
5654
5655         PR tree-optimization/46355
5656         * tree-loop-distribution.c (tree_loop_distribution): Do not
5657         distribute loops without a single exit.
5658
5659 2010-11-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5660
5661         PR rtl-optimization/46237
5662         * ira-conflicts.c (ira_build_conflicts): Record conflicts for call
5663         saved hard regs if they might get partially clobbered.
5664
5665 2010-11-09  Paul Koning  <ni1d@arrl.net>
5666
5667         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Use add for decrement.
5668
5669 2010-11-09  Richard Guenther  <rguenther@suse.de>
5670
5671         PR tree-optimization/46177
5672         * tree-loop-distribution.c (prop_phis): Remove.
5673         (generate_builtin): Re-use the old loop exit edge to avoid
5674         needing to update PHI nodes.
5675
5676 2010-11-09  Joern Rennecke  <amylaar@spamcop.net>
5677
5678         * config/i386/i386.c (ix86_expand_split_stack_prologue): Change
5679         type of args_size to unsigned HOST_WIDE_INT.
5680
5681         PR target/44755
5682         * config.gcc (picochip-*): Add t-pnt16-warn to tmake_file.
5683         * config/t-pnt16-warn: New file.
5684         * config/picochip/picochip.c (picochip_emit_stack_allocate):
5685         Use add_reg_note.
5686         (picochip_emit_save_register): Likewise.
5687         (picochip_emit_restore_register): Remove variable insn.
5688         (picochip_legitimize_address): Don't use C++ style comments.
5689         (picochip_legitimize_reload_address): Likewise.
5690         (reorder_var_tracking_notes): Remove variable vliw_start.
5691         (picochip_reorg): Cast first arguemnt to emit_note_after to
5692         enum insn_note.
5693         (picochip_expand_builtin_2op): Use EXPAND_NORMAL.
5694         (picochip_expand_builtin_3op): Likewise.
5695         (picochip_expand_builtin_2opvoid): Likewise.
5696         (picochip_expand_array_get, picochip_expand_array_put): Likewise.
5697         (picochip_expand_array_testport): Likewise.
5698         (picochip_init_builtins): Remove unused variables.
5699         * config/picochip/picochip.h (ASM_FORMAT_PRIVATE_NAME): Cast LABELNO
5700         to unsigned long, and output it as such.
5701         (ASM_OUTPUT_SKIP): Use HOST_WIDE_INT_PRINT_UNSIGNED.
5702         * config/picochip/picochip.md (movhicc): Remove nonsense statement.
5703         (schedType): Cast result of picochip_schedule_type to
5704         enum attr_schedType.
5705
5706         PR target/44759
5707         * config/mn10300/mn10300.c (SIZE_FMOV_LIMIT): Promote all arms of
5708         conditional to type of S.
5709         (mn10300_function_arg): Remove unused variable align.
5710         (mn10300_arg_partial_bytes): Likewise.
5711         * config/mn10300/mn10300.md (attribute cpu): Cast value to
5712         enum attr_cpu.
5713
5714 2010-11-09  H.J. Lu  <hongjiu.lu@intel.com>
5715
5716         PR bootstrap/46392
5717         * gengtype-parse.c (type): Call get_input_file_name to get file name.
5718
5719 2010-11-09  Eric Botcazou  <ebotcazou@adacore.com>
5720
5721         * tree.h (contains_placeholder_p): Fix comment.
5722         (type_contains_placeholder_p): Adjust comment.
5723         * tree.c (contains_placeholder_p): Fix comment.
5724         (type_contains_placeholder_1): Do not recurse on pointed-to types and
5725         adjust comment.
5726         (type_contains_placeholder_p): Add comment.
5727
5728 2010-11-09  Paul Koning  <ni1d@arrl.net>
5729
5730         * config/pdp11/pdp11.c (pdp11_assemble_integer): Clean up fix for
5731         output of byte values.
5732
5733 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
5734
5735         PR middle-end/46360
5736         * tree-ssa-propagate.c (update_call_from_tree): Fix for use
5737         not in SSA mode.
5738
5739 2010-11-09  Richard Guenther  <rguenther@suse.de>
5740
5741         PR middle-end/46221
5742         * varasm.c (compute_visible_aliases): New function.
5743         (remove_unreachable_alias_pairs): Aliases make a target available
5744         even though we reclaimed the cgraph node.
5745         (finish_aliases_1): Likewise.
5746         * Makefile.in (varasm.o): Add pointer-set.h dependency.
5747
5748 2010-11-09  Nick Clifton  <nickc@redhat.com>
5749
5750         * config/mn10300/mn10300-modes.def: New file.
5751
5752 2010-11-09  Basile Starynkevitch  <basile@starynkevitch.net>
5753             Jeremie Salvucci  <jeremie.salvucci@free.fr>
5754
5755         * gengtype.c (get_output_file_name): Declaration moved to gengtype.h.
5756         (plugin_files, get_file_basename, get_file_realbasename)
5757         (get_file_langdir, error_at_line, gt_files, this_file)
5758         (system_h_file, read_input_list, create_field_all)
5759         (get_file_srcdir_relative_path, get_file_basename)
5760         (get_file_langdir, get_file_gtfilename)
5761         (get_output_file_with_visibility, get_output_file_name)
5762         (struct flist, put_mangled_filename, walk_type)
5763         (put_mangled_filename, finish_root_table, write_roots): Use
5764         input_file-s.
5765         (lang_dir_names, num_lang_dirs): Remove static.
5766         (get_lang_bitmap, set_lang_bitmap): Moved to gengtype.h.
5767         (main): Use input_file-s.
5768
5769         * gengtype.h: (struct input_file_st, input_file): New type.
5770         (struct fileloc): Use it.
5771         (gt_files, num_gt_files, this_file, system_h_file)
5772         (input_file_by_name, get_file_srcdir_relative_path): Use input_file.
5773         (get_input_file_name): New function.
5774         (get_lang_bitmap, set_lang_bitmap): Moved from gengtype.c and
5775         use input_file.
5776         (lang_dir_names, num_lang_dirs, get_output_file_with_visibility)
5777         (get_output_file_name): Ditto.
5778
5779         * gengtype-lex.l (yybegin): Use input_file.
5780
5781         * gengtype-parse.c (parse_error): Use input_file.
5782
5783 2010-11-08  Xinliang David Li  <davidxl@google.com>
5784
5785         PR tree-optimization/46316
5786         * tree-vrp.c (adjust_range_with_scev): Check double_int overflow.
5787         * double-int.h (double_int_mul_with_sign): New function.
5788         * double-int.c (double_int_mul_with_sign): New function.
5789
5790 2010-11-08  Paul Koning  <ni1d@arrl.net>
5791
5792         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Fix wrong code.
5793
5794 2010-11-08  Paul Koning  <ni1d@arrl.net>
5795
5796         * config/pdp11/pdp11.md (negsi2): Fix wrong code.
5797
5798 2010-11-08  Paul Koning  <ni1d@arrl.net>
5799
5800         * config/pdp11/pdp11.c (pdp11_assemble_integer): Mask byte values
5801         to 8 bits.
5802
5803 2010-11-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
5804
5805         PR target/46378
5806         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
5807         turn on ISA 2.04 rounding instructions for power5.
5808
5809         * config/rs6000/rs6000.md (friz): Friz is an ISA 2.04 instruciton,
5810         not ISA 2.02.
5811
5812         PR target/45585
5813         * config/rs6000/darwin.md (movdi_low): Allow DImode values to be
5814         in FPR registers.
5815         (movdi_low_st): Ditto.
5816
5817 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
5818             Richard Henderson  <rth@redhat.com>
5819
5820         PR target/44758
5821         * config/frv/frv.md (attribute cpu): Cast value to enum attr_cpu.
5822         (attribute acc_group): Cast value to enum attr_acc_group.
5823         (*movdi_nodouble+6): Use gen_int_mode.
5824         * config/frv/frv-protos.h (frv_trampoline_size): Declare no matter
5825         if RTX_CODE is defined or not.
5826         * config/frv/frv.c (enum frv_io_type): New enum, broken out of
5827         struct frv_io.
5828         (frv_handle_option): Mark parameter value with ATTRIBUTE_UNUSED.
5829         (frv_frame_access, frv_expand_prologue): Remove unused variables.
5830         (frv_expand_block_clear): Likewise.
5831         (frv_trampoline_init): Use LCT_NORMAL.
5832         (struct frv_packet_group): New struct, broken out of type of
5833         frv_packet.
5834         (frv_start_packet, frv_reorder_packet): Initialize group to GROUP_I,
5835         use cast in loop counter increment.
5836         (frv_extract_membar): Cast HOST_WIDE_INT to enum frv_io_type before
5837         assigning to io->type.
5838         (bdesc_set): Use rtx_code UNKNOWN in initializer.
5839         (bdesc_1arg, bdesc_2arg, bdesc_int_void2arg): Likewise.
5840         (bdesc_prefetches, bdesc_cut, bdesc_2argimm, bdesc_void2arg): Likewise.
5841         (bdesc_void3arg, bdesc_voidacc, bdesc_loads, bdesc_stores): Likewise.
5842         (frv_read_argument): Use expand_normal.
5843
5844         PR target/44757
5845         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Call
5846         lm32_legitimate_constant_p.
5847         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
5848         * config/lm32/lm32.c (gen_int_relational): Make new block for
5849         LE / LT / LEU / LTU case.  Declare variables at start of block.
5850         (lm32_block_move_inline): Use XALLOCAVEC.
5851
5852 2010-11-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5853
5854         * config/i386/i386.c (ix86_function_arg_boundary): Fix warning message.
5855
5856 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
5857
5858         * gengtype (get_output_file_for_structure): Ensure type is union
5859         or struct.
5860         (write_splay_tree_allocator_def): Use
5861         get_output_file_with_visibility.
5862
5863 2010-11-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5864
5865         * config/s390/s390.c (s390_handle_arch_option): Set type and flags
5866         to defined values in case of an error.
5867         (s390_option_override): Skip further processing if the -march
5868         parameter wasn't recognized.
5869
5870 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
5871
5872         * caller-save.c (reg_save_code): After HARD_REGNO_MODE_OK check fails,
5873         assert that REG is a hard register number before using it as an index.
5874
5875         PR bootstrap/46358
5876         * config/i386/i386.c (ix86_expand_split_stack_prologue):
5877         Avoid warnings when HOST_WIDE_INT is 32 bit.
5878
5879 2010-11-08  Eric Botcazou  <ebotcazou@adacore.com>
5880
5881         PR target/46208
5882         * config/sparc/sparc.c (TARGET_PROMOTE_PROTOTYPES): Delete.
5883         (sparc_promote_prototypes): Likewise.
5884         (sparc_promote_function_mode): Promote in 32-bit mode as well.
5885         (sparc_return_in_memory): Remove superfluous parentheses.
5886         (sparc_struct_value_rtx): Fix long lines.
5887         (sparc_function_value_1): Promote in 32-bit mode as well.
5888
5889 2010-11-08  Andrey Belevantsev  <abel@ispras.ru>
5890
5891         PR rtl-optimization/45352
5892         * sel-sched.c (find_best_expr): Do not set pneed_stall when
5893         the variable_issue hook is not implemented.
5894         (fill_insns): Remove dead variable stall_iterations.
5895         (init_seqno_1): Force EBB start for resetting sched cycles on any
5896         successor blocks of the rescheduled region.
5897         (sel_sched_region_1): Use bitmap_bit_p instead of bitmap_clear_bit.
5898         (reset_sched_cycles_in_current_ebb): Add debug printing.
5899         New variable issued_insns.  Advance state when we have issued
5900         issue_rate insns.
5901
5902 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
5903
5904         * gengtype (main): Get here's position using POS_HERE macro for
5905         do*typedef calls.
5906
5907 2010-11-07  Ian Lance Taylor  <iant@google.com>
5908
5909         PR target/46089
5910         * config/i386/i386.c (split_stack_fn_large): New static variable.
5911         (ix86_expand_split_stack_prologue): Handle large model.
5912
5913 2010-11-07  Andreas Schwab  <schwab@linux-m68k.org>
5914
5915         * config/m68k/m68k.c (m68k_delegitimize_address): Update to handle
5916         all possible addressing modes.
5917
5918 2010-11-07  Uros Bizjak  <ubizjak@gmail.com>
5919
5920         PR tree-optimization/46346
5921         * tree-ssa-forwprop.c (rhs_to_tree): Handle GIMPLE_TERNARY_RHS.
5922
5923 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
5924
5925         * config/mips/mips.c: Revert previous patch.
5926         * config/mips/mips.md: Likewise.
5927
5928 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
5929
5930         * config/mips/mips.c (mips_rtx_costs): Handle FMA.
5931         * config/mips/mips.md (*madd4<mode>, *madd3<mode>, *msub4<mode>)
5932         (*msub3<mode>, *nmadd4<mode>_fastmath, *nmadd3<mode>_fastmath)
5933         (*nmsub4<mode>_fastmath, *nmsub3<mode>_fastmath): Delete.
5934         (*nmadd4<mode>, *nmadd3<mode>. *nmsub4<mode>, *nmsub3<mode>): Redefine
5935         to use FMA.
5936         (fma<mode>4, *fma<mode>4_madd3, *fma<mode>4_madd4): New patterns.
5937         (fms<mode>4, *fms<mode>4_msub3, *fms<mode>4_msub4): Likewise.
5938         (fnms<mode>4, *fnms<mode>4_nmadd3, *fnms<mode>4_nmadd4): Likewise.
5939         (fnma<mode>4, *fnma<mode>4_nmsub3, *fnma<mode>4_nmsub4): Likewise.
5940
5941 2010-11-06  Simon Martin  <simartin@users.sourceforge.net>
5942
5943         PR c/43384
5944         * c-decl.c (lookup_label): Labels can only be referenced in a
5945         function's scope.
5946         (store_parm_decls_oldstyle): Skip erroneous parameters.
5947
5948 2010-11-06  Anatoly Sokolov  <aesok@post.ru>
5949
5950         * config/fr30/fr30.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
5951         LIBCALL_VALUE): Remove macros.
5952         * config/fr30/fr30.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
5953         TARGET_FUNCTION_VALUE_REGNO_P): Define.
5954         (fr30_function_value_regno_p, fr30_function_value,
5955         fr30_libcall_value): New functions.
5956
5957 2010-11-06  Joern Rennecke  <amylaar@spamcop.net>
5958
5959         PR middle-end/46314
5960         * target.def (generate_internal_label): New asm_out hook.
5961         * output.h (default_generate_internal_label): Declare.
5962         * varasm.c (default_generate_internal_label): Define.
5963
5964 2010-11-06  Iain Sandoe  <iains@gcc.gnu.org>
5965
5966         PR target/44981
5967         * doc/extend.tex (format): Document NSString extension.
5968         (format_arg): Likewise.
5969         (Darwin Format Checks): New section.
5970         * doc/tm.texi: Document string object hooks (generated).
5971         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Rename.
5972         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
5973         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
5974         * target.def (objc_construct_string_object): Rename, amend
5975         documentation.
5976         (string_object_ref_type_p): New hook.
5977         (check_string_object_format_arg): New hook.
5978         * c-parser.c (c_parser_attributes): Allow objective-c class names as
5979         attribute identifiers.
5980         * config/darwin-c.c (darwin_cfstring_ref_p): New.
5981         (darwin_check_cfstring_format_arg): New.
5982         (darwin_additional_format_types): New.
5983         * config/darwin-protos.h (darwin_cfstring_ref_p) New.
5984         (darwin_check_cfstring_format_arg): New.
5985         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Renamed.
5986         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
5987         (TARGET_N_FORMAT_TYPES): New.
5988         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
5989
5990 2010-11-06  Eric Botcazou  <ebotcazou@adacore.com>
5991             Pascal Obry  <obry@adacore.com>
5992
5993         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Redefine.  Use 33
5994         in 64-bit mode and 17 otherwise.
5995
5996 2010-11-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5997
5998         PR debug/45939
5999         * var-tracking.c (emit_note_insn_var_location): Make sure that
6000         call related var location notes come before the normal ones.
6001
6002 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
6003
6004         PR target/46326
6005         * config/i386/i386.c (ix86_delegitimize_address): Fix a typo
6006         in the last change.
6007
6008 2010-11-05  Ian Lance Taylor  <iant@google.com>
6009
6010         * explow.c (allocate_dynamic_stack_space): Check MALLOC_ABI_ALIGNMENT.
6011
6012 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
6013
6014         PR c/44772
6015         * c-decl.c (warn_cxx_compat_finish_struct): Don't call
6016         pointer_set_contains if DECL_NAME is NULL.
6017
6018 2010-11-05  Ian Lance Taylor  <iant@google.com>
6019
6020         PR target/46084
6021         * explow.c (allocate_dynamic_stack_space): If flag_split_stack,
6022         request enough additional space for alignment, and force alignment.
6023
6024 2010-11-05  Kai Tietz  <kai.tietz@onevision.com>
6025
6026         * config/i386/i386.c (legitimate_pic_address_disp_p):
6027         Handle UNSPEC_PCREL.
6028         (ix86_legitimate_address_p): Likewise.
6029         (legitimize_pic_address): Likewise.
6030         (output_pic_addr_const): Likewise.
6031         (ix86_delegitimize_address): Likewise.
6032         (ix86_find_base_term): Likewise.
6033         (memory_address_length): Likewise.
6034         (x86_output_mi_thunk): Handle special case x64
6035         for non local binding.
6036         * config/i386/i386.md (UNSPEC_PCREL): New.
6037         * config/i386/winnt.c (i386_pe_binds_local_p):
6038         Allow weak symbol for x64 windows with non-local binding.
6039
6040 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
6041
6042         PR target/45670
6043         * expr.c (expand_expr_real_1) <case MEM_REF>: Use EXPAND_SUM
6044         instead of EXPAND_NORMAL for base expansion.
6045
6046 2010-11-05  Uros Bizjak  <ubizjak@gmail.com>
6047
6048         * config.gcc: Support --with-fpmath=avx for x86.
6049         * config/i386/avxmath.h: New.
6050         * doc/install.texi (--with-fpmath=): Document --with-fpmath=avx.
6051
6052 2010-11-05  Ian Lance Taylor  <iant@google.com>
6053
6054         * tree.h (struct tree_type): Don't use descbits in GTY annotation.
6055         * gengtype.c (walk_type): Don't recognize descbits option.
6056
6057 2010-11-05  Joseph Myers  <joseph@codesourcery.com>
6058
6059         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG,
6060         WORD_SWITCH_TAKES_ARG): Remove.
6061         * doc/options.texi (Args): Document.
6062         * doc/tm.texi.in (WORD_SWITCH_TAKES_ARG): Remove.
6063         * doc/tm.texi: Regenerate.
6064         * opt-functions.awk (switch_flags): Handle Args.
6065         * opts-common.c: Update comment on tm.h include.
6066         (decode_cmdline_option): Handle options with multiple arguments.
6067         Don't check WORD_SWITCH_TAKES_ARG for unknown options.
6068         * opts.h (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK): Define.
6069         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
6070         CL_COMMON): Update values.
6071         * system.h (WORD_SWITCH_TAKES_ARG): Poison.
6072         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove.
6073         * config/darwin.opt (Zsegaddr, sectalign, sectcreate,
6074         sectobjectsymbols, sectorder, segcreate, segprot): New.
6075
6076 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
6077             Uros Bizjak  <ubizjak@gmail.com>
6078
6079         * config/i386/i386.c (ix86_expand_move): Set use_avx256_p if
6080         256bit AVX register is used.
6081         (ix86_expand_vector_move_misalign): Likewise.
6082         (ix86_expand_vector_move): Replace use_avx256_p with
6083         VALID_AVX256_REG_MODE.
6084
6085 2010-11-05  Joern Rennecke  <amylaar@spamcop.net>
6086
6087          PR target/44750
6088         * config/pdp11/t-pdp11 (dwarf2out.o, java/constants.o): Undo last
6089         change.  Set $@-warn.o to -Wno-error.
6090
6091         PR bootstrap/44756
6092         * expr.c (emit_push_insn): Cast value of PUSH_ROUNDING before
6093         comparing it to a signed value.
6094
6095         PR middle-end/44766
6096         * expr.c (can_store_by_pieces): Add ATTRIBUTE_UNUSED to cst.
6097         PR bootstrap/44770
6098         * haifa-sched.c (initiate_bb_reg_pressure_info): Add ATTRIBUTE_UNUSED
6099         to i.
6100
6101         PR target/44754
6102         * config/m32c/m32c.c (m32_function_arg): Rename declaration to...
6103         (m32c_function_arg).  Add comma between arguments two and three.
6104         (m32c_promote_prototypes): Remove declaration.
6105         (current_function_special_page_vector): Likewise.
6106         (m32c_regno_reg_class): Change return type to enum reg_class.
6107         (m32c_pushm_popm): Use add_reg_note.
6108         (m32c_push_rounding): Change return type to unsigned int.
6109         (m32c_legitimize_reload_address): Cast argument 11 to push_reload to
6110         enum reload_type.
6111         (m32c_insert_attributes): Constify variable name.
6112         (m32c_output_aligned_common): Add ATTRIBUTE_UNUSED to argument decl.
6113         (m32c_prepare_shift): Remove variable lref.
6114         (m32c_expand_movcc): Remove variable cmp.
6115         (m32c_expand_insv): Fix check of op0 rtx_code to use GET_CODE.
6116         (m32c_compare_redundant): Remove variable op2.
6117         * config/m32c/m32c-pragma.c ("c-family/c-common.h"): Include.
6118         (m32c_pragma_memregs): Assign the number to target_memregs.
6119         (m32c_pragma_address): Remove variable var_str.
6120         * config/m32c/m32c.h (REG_CLASS_FROM_CONSTRAINT): Case value to
6121         enum reg_class.
6122         (LIMIT_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise.
6123         * config/m32c/bitops.md (andsi3): Add default case to switch.
6124         (iorsi3, xorsi3): Likewise.
6125         * config/m32c/addsub.md (addsi3_1, subsi3_1): Likewise.
6126         * config/m32c/jump.md (call, call_value): Likewise.
6127         * config/m32c/m32c-protos.h (m32c_push_rounding): Update prototype.
6128         (m32c_regno_reg_class): Likewise.
6129         (current_function_special_page_vector): Declare.
6130
6131 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
6132
6133         * cfgexpand.c (expand_debug_expr): Handle MEM_REF with non-zero offset.
6134
6135         PR tree-optimization/46099
6136         * tree-parloops.c (take_address_of): Add GSI argument.  Return NULL
6137         if it is NULL and uid wasn't found in the hash table.  Just fold the
6138         result if it is NULL otherwise.  Insert other potentially needed
6139         stmts right before current stmt instead of on the entry edge.
6140         (struct elv_data): Add gsi and reset fields.
6141         (eliminate_local_variables_1): Adjust caller.  If take_address_of
6142         failed for debug stmt, set dta->reset and return.
6143         (eliminate_local_variables_stmt): Change STMT argument for GSI,
6144         pass GSI through to the callback, handle resetting of debug stmts.
6145         (eliminate_local_variables): Adjust caller.  Process debug stmts
6146         in second phase.
6147
6148         PR middle-end/43690
6149         * gimplify.c (gimplify_asm_expr): If a "m" input is a
6150         {pre,post}{in,de}crement, fail.
6151
6152         PR debug/46307
6153         * tree-ssa-operands.c (get_expr_operands): Handle FMA_EXPR.
6154         * tree-pretty-print.c (dump_generic_node): Likewise.
6155         (op_code_prio): Likewise.
6156         * cfgexpand.c (expand_debug_expr): Likewise.
6157
6158 2010-11-04  Paul Koning  <ni1d@arrl.net>
6159
6160         * doc/md.texi (Machine Constraints): Correct formatting in PDP-11
6161         constraints.
6162
6163 2010-11-04  Chao-ying Fu  <fu@mips.com>
6164
6165         * configure.ac: Test assembler support for DSP Rev1 mult.
6166         * configure: Regenerate.
6167         * config.in: Regenerate.
6168         * config/mips/mips.h (ISA_HAS_DSP_MULT): New define.
6169         * config/mips/mips.c (CODE_FOR_mips_mult): New define.
6170         (CODE_FOR_mips_multu): New define.
6171         (mips_builtins): Move madd, maddu, msub, msubu, mult, multu from
6172         dspr2_32 to dsp_32.
6173         (mips_mulsidi3_gen_fn): Test (TARGET_FIX_R4000 && !ISA_HAS_DSP).
6174         Delete returns when ISA_HAS_DSPR2 because the old patterns are deleted.
6175         * config/mips/mips-dsp.md (mips_madd<u>, mips_msub<u>):
6176         New define_expand patterns.
6177         * config/mips/constraints.md (ka): Update the constraint to test
6178         ISA_HAS_DSP_MULT instead of ISA_HAS_DSPR2.
6179         * config/mips/mips-dspr2.md (mips_madd<u>, mips_msub<u>, mips_mult,
6180         mips_multu): Delete.
6181         * config/mips/mips.md (<u>mulsidi3_32bit): Add comments.
6182         Change target constraint to "ka".
6183         Use (!TARGET_FIX_R4000 || ISA_HAS_DSP), instead of
6184         (!TARGET_FIX_R4000 && !ISA_HAS_DSPR2).
6185         Emit the accumulator destination when ISA_HAS_DSP_MULT.
6186         (<u>msubsidi4): Add comments.  Test ISA_HAS_DSP.
6187         Emit the accumulator destination when ISA_HAS_DSP_MULT.
6188         (<u>maddsidi4): Likewise.
6189         * doc/extend.texi (MIPS DSP Built-in Functions): Move madd, maddu,
6190         msub, msubu, mult, multu built-in functions from DSP r2 to DSP r1.
6191
6192 2010-11-04  Paul Koning  <ni1d@arrl.net>
6193
6194         * doc/md.texi (Machine Constraints): Add PDP-11 constraints.
6195
6196 2010-11-04  Paul Koning  <ni1d@arrl.net>
6197
6198         * doc/invoke.texi (PDP-11 Options): Delete -msplit, -mno-split.
6199
6200 2010-11-04  Nicola Pero  <nicola.pero@meta-innovation.com>
6201
6202         Fixed using the Objective-C 2.0 dot-syntax with class names.
6203         * c-parser.c (c_parser_next_token_starts_declspecs): In
6204         Objective-C, detect Objective-C 2.0 dot-syntax with a class name.
6205         (c_parser_next_token_starts_declaration): Same.
6206         (c_parser_postfix_expression): Parse the Objective-C 2.0
6207         dot-syntax with a class name.
6208
6209 2010-11-04  Pat Haugen  <pthaugen@us.ibm.com>
6210
6211         * final.c (compute_alignments): Compute/free loop info all the time.
6212         * config/rs6000/rs6000.h (LOOP_ALIGN): Define.
6213         * config/rs6000/rs6000-protos.h (rs6000_loop_align): Declare.
6214         * config/rs6000/t-rs6000 (rs6000.o): Add cfgloop.h.
6215         * config/rs6000/rs6000.c (cfgloop.h): Include.
6216         (can_override_loop_align): New.
6217         (rs6000_option_override_internal): Set it.
6218         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define target hook.
6219         (rs6000_loop_align): New function.
6220         (rs6000_loop_align_max_skip): Likewise.
6221
6222 2010-11-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6223
6224         PR driver/45703
6225         * collect2.c (main): Print --help output to stdout.  Do not
6226         exit right away, so ld --help is appended.  Add empty lines
6227         to separate output suitably.
6228
6229 2010-11-04  Jakub Jelinek  <jakub@redhat.com>
6230
6231         PR tree-optimization/46233
6232         * ipa-pure-const.c (local_pure_const): Do noreturn discovery
6233         after calling analyze_function, not before.
6234
6235         PR target/46234
6236         * config/rs6000/rs6000.c (rs6000_va_start): Use build_simple_mem_ref
6237         instead of build_va_arg_indirect_ref.
6238         * config/spu/spu.c (spu_va_start): Likewise.
6239         * config/s390/s390.c (s390_va_start): Likewise.
6240
6241 2010-11-03  Uros Bizjak  <ubizjak@gmail.com>
6242
6243         PR middle-end/46292
6244         * lower-subreg.c (simplify_subreg_concatn): For VOIDmode elements,
6245         if the innermode is not vector mode, determine the mode of a subreg
6246         by using mode_for_size of inner_size.
6247
6248 2010-11-04  Richard Guenther  <rguenther@suse.de>
6249
6250         PR rtl-optimization/46183
6251         * gcse.c (execute_rtl_cprop): Cleanup the CFG if something changed.
6252         (execute_rtl_pre): Likewise.
6253         (execute_rtl_hoist): Likewise.
6254
6255 2010-11-04  Richard Guenther  <rguenther@suse.de>
6256
6257         PR tree-optimization/46068
6258         * ipa-split.c (consider_split): Remove gcc_unreachable.
6259
6260 2010-11-04  Richard Guenther  <rguenther@suse.de>
6261
6262         * tree-nested.c (build_addr): Use build_fold_addr_expr.
6263
6264 2010-11-04  Richard Guenther  <rguenther@suse.de>
6265
6266         PR tree-optimization/45991
6267         * gimplify.c (force_gimple_operand_1): Use the provded test
6268         function in the initial test.
6269
6270 2010-11-04  Jeff Law  <law@redhat.com>
6271
6272         * ira.c (validate_equiv_mem): Remove code to avoid invalidation
6273         of readonly memory equivalances for const/pure calls.
6274
6275 2010-11-04  Richard Guenther  <rguenther@suse.de>
6276
6277         PR tree-optimization/45733
6278         * tree-vect-stmts.c (reverse_vec_elements): Honor the
6279         permute builtins function return type.
6280
6281 2010-11-04  Joern Rennecke  <amylaar@spamcop.net>
6282
6283         PR middle-end/44765
6284         * emit-rtl.c (gen_rtx_REG): Before using PIC_OFFSET_TABLE_REGNUM
6285         as an index, check it is not INVALID_REGNUM.
6286
6287         PR bootstrap/44756
6288         * ifcvt.c (noce_emit_cmove): Add ATTRIBUTE_UNUSED to target and
6289         unsignedp.
6290         * reload1.c (set_reload_reg): Add ATTRIBUTE_UNUSED to regno.
6291
6292         PR bootstrap/44756
6293         * function.c (thread_prologue_and_epilogue_insns): Add
6294         ATTRIBUTE_UNUSED to seq, epilogue_end and entry_edge.
6295
6296         PR bootstrap/44756
6297         * varasm.c (asm_output_bss): Add ATTRIBUTE_UNUSED to function.
6298
6299         PR target/44750
6300         * config/pdp11/pdp11.c: (pdp11_secondary_reload): Now static.
6301         (pdp11_preferred_reload_class): Rename class to rclass.
6302         (pdp11_preferred_output_reload_class): Likewise.
6303         * config/pdp11/t-pdp11 (dwarf2out.o): Add -Wno-error=type-limits to
6304         ALL_COMPILERFLAGS .
6305         (java/constants.o): Add -Wno-error to ALL_COMPILERFLAGS.
6306
6307         PR bootstrap/44756
6308         * genopinit.c (main) [FIXUNS_TRUNC_LIKE_FIX_TRUNC]: Cast
6309         iteration variables to enum machine_mode.
6310
6311         PR target/44751
6312         * config/h8300/h8300.c: Include df.h.
6313         (push, pop): Use add_reg_note.
6314         (compute_plussi_cc, compute_logical_op_cc): Return enum attr_c.
6315         (compute_a_shift_cc): Likewise.
6316         (expand_a_shift): Argument code has type enum rtx_code.
6317         (struct shift_insn): Member cc_valid has type enum attr_cc.
6318         (struct shift_info) <cc_inline, cc_special>: Likewise.
6319         enum attr_cc.
6320         * config/h8300/h8300-protos.h (compute_plussi_cc): Update prototype.
6321         (compute_a_shift_cc, compute_logical_op_cc, expand_a_shift): Likewise.
6322
6323 2010-11-04  Ira Rosen  <irar@il.ibm.com>
6324
6325         PR tree-optimization/46213
6326         * tree-vect-loop.c (vect_is_simple_reduction_1): Handle
6327         MINUS_EXPR only if the first operand is reduction operand.
6328
6329 2010-11-04  Richard Guenther  <rguenther@suse.de>
6330             Richard Henderson  <rth@redhat.com>
6331
6332         * tree.def (FMA_EXPR): New tree code.
6333         * expr.c (expand_expr_real_2): Add FMA_EXPR expansion code.
6334         * gimple.c (gimple_rhs_class_table): FMA_EXPR is a GIMPLE_TERNARY_RHS.
6335         * tree-cfg.c (verify_gimple_assign_ternary): Verify FMA_EXPR types.
6336         * tree-inline.c (estimate_operator_cost): Handle FMA_EXPR.
6337         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
6338         * tree-ssa-math-opts.c (convert_mult_to_fma): New function.
6339         (execute_optimize_widening_mul): Call it.  Reorganize to allow
6340         dead stmt removal.  Move TODO flags ...
6341         (pass_optimize_widening_mul): ... here.
6342         * flag-types.h (enum fp_contract_mode): New enum.
6343         * common.opt (flag_fp_contract_mode): New variable.
6344         (-ffp-contract): New option.
6345         * opts.c (common_handle_option): Handle it.
6346         * doc/invoke.texi (-ffp-contract): Document.
6347         * tree.h (fold_fma): Declare.
6348         * builtins.c (fold_fma): New function.
6349         (fold_builtin_fma): Likewise.
6350         (fold_builtin_3): Call it for fma.
6351         * fold-const.c (fold_ternary_loc): Fold FMA_EXPR.
6352         * optabs.c (optab_for_tree_code): Handle FMA_EXPR.
6353         * config/i386/sse.md (fms<mode>4, fnma<mode>, fnms<mode>4):
6354         New expanders.
6355         * doc/md.texi (fms<mode>4, fnma<mode>, fnms<mode>4): Document new
6356         named patterns.
6357         * genopinit.c (optabs): Initialize fms_optab, fnma_optab and fnms_optab.
6358         * optabs.h (enum optab_index): Add OTI_fms, OTI_fnma and OTI_fnms.
6359         (fms_optab, fnma_optab, fnms_optab): New defines.
6360         * gimplify.c (gimplify_expr): Handle binary truth expressions
6361         explicitly.  Handle FMA_EXPR.
6362         * tree-vect-stmts.c (vectorizable_operation): Handle ternary
6363         operations.
6364
6365 2010-11-04  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
6366             Richard Guenther  <rguenther@suse.de>
6367
6368         * passes.c (init_optimization_passes): Move veclower after SSA.
6369         * tree-vect-generic.c (uniform_vector_p): New function.
6370         (expand_vector_operations_1): Handle conversion.
6371         (pass_lower_vector): Update SSA form.
6372
6373 2010-11-04  Iain Sandoe  <iains@gcc.gnu.org>
6374
6375         * configure.ac: Filter -mdynamic-no-pic from CFLAGS when testing for
6376         plugin capabilities.
6377         * configure: Regenerate.
6378
6379 2010-11-03  Xinliang David Li  <davidxl@google.com>
6380
6381         PR target/46200
6382         * tree-ssa-loop-ivopts.c (get_computation_cost_at):
6383         Adjust cbase if the use stmt is after iv update.
6384
6385 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
6386
6387         * config.gcc (sh64*) <tm_file>: Add newlib-stdint.h for newlib targets.
6388
6389 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
6390
6391         * config/sh/sh.c (sh_expand_prologue): Remove unnecessary
6392         comment.  Pass true to the last argument of output_stack_adjust.
6393
6394 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
6395
6396         PR target/46295
6397         * config/i386/i386.c (ix86_expand_vector_move): Set use_avx256_p
6398         if 256bit AVX register is used.
6399
6400 2010-11-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
6401
6402         * config/rs6000/rs6000.c (rs6000_emit_minmax): Add support to use
6403         xsmindp/xsmaxdp on VSX for single precision min/max.
6404         * config/rs6000/vsx.md (vsx_smaxsf3): Ditto.
6405         (vsx_sminsf3): Ditto.
6406
6407 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
6408
6409         * combine.c (try_combine): Fix formatting issues, improve comments and
6410         fix a pasto.
6411
6412 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
6413
6414         * tree-tailcall.c (find_tail_calls): Convert the operands to the type
6415         of the result before building binary expressions.
6416
6417 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
6418
6419         PR rtl-optimization/45865
6420         * Makefile.in (df-problems.o): Revert revision 164552.
6421         * basic-block.h (enum bb_flags): Likewise.
6422         * cfgcleanup.c (block_was_dirty): Likewise.
6423         (try_forward_edges): Likewise.
6424         (try_crossjump_bb): Likewise.
6425         (try_head_merge_bb): Likewise.
6426         (try_optimize_cfg): Likewise.
6427         (cleanup_cfg): Likewise.
6428         * df-core.c (df_set_bb_dirty): Likewise.
6429         * df-problems.c: Likewise.
6430         (df_simulate_find_uses): Likewise.
6431         (MEMREF_NORMAL, MEMREF_VOLATILE): Likewise.
6432         (find_memory, find_memory_store): Likewise.
6433         (can_move_insns_across): Likewise.
6434         * df.h (can_move_insns_across): Likewise.
6435         * ifcvt.c (find_memory): Likewise.
6436         (dead_or_predicable): Likewise.
6437
6438 2010-11-03  Richard Guenther  <rguenther@suse.de>
6439
6440         PR middle-end/46288
6441         * predict.c (strip_predict_hints): Simply DCE builtin expect if
6442         the result is unused.
6443
6444 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
6445
6446         PR tree-optimization/46009
6447         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call
6448         cond_if_else_store_replacement if bb1 and bb2 have the same
6449         single successor.
6450         (cond_store_replacement): Use gimple_assign_single_p, don't
6451         check if rhs is SSA_NAME or invariant.  Call release_defs for
6452         assign.
6453         (cond_if_else_store_replacement): New function.
6454
6455 2010-11-03  Richard Guenther  <rguenther@suse.de>
6456
6457         * opts.c (finish_options): Properly check for all WHOPR
6458         flags before complaining about -flto-partition.
6459
6460 2010-11-04  Alan Modra  <amodra@gmail.com>
6461
6462         * config/rs6000/rs6000.c (rs6000_pic_labelno): Make static.
6463         (rs6000_emit_load_toc_table): Don't use rs6000_pic_labelno when
6464         TARGET_SECURE_PLT.
6465         * config/rs6000/sysv4.h (rs6000_pic_labelno): Don't declare.
6466         * config/rs6000/rs6000.md (load_toc_v4_PIC_3b): Use "b" constraint
6467         on input, "r" on output.
6468
6469 2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
6470
6471         Implemented -fobjc-std=objc1 flag.
6472         * doc/invoke.texi (Option Summary): Document -fobjc-std=objc1
6473         option.
6474         * doc/standards.texi (Standards): Updated the section on
6475         Objective-C; mention support for Objective-C 2.0 features and the
6476         new -fstd-objc=objc1 flag to disable them.
6477
6478 2010-11-03  Richard Guenther  <rguenther@suse.de>
6479
6480         PR middle-end/46241
6481         * dwarf2out.c (scope_die_for): Properly detect global scope.
6482
6483 2010-11-03  Richard Guenther  <rguenther@suse.de>
6484
6485         PR tree-optimization/46190
6486         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
6487         Properly compute peel iterations.
6488
6489 2010-11-03  Richard Guenther  <rguenther@suse.de>
6490
6491         PR tree-optimization/46286
6492         * tree-ssa-structalias.c (get_constraint_for_1): Avoid referencing
6493         re-allocated vector data.
6494
6495 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
6496
6497         PR target/46285
6498         * config/i386/i386.c (ix86_expand_call): Conditionally decorate
6499         calls with UNSPEC_CALL_NEEDS_VZEROUPPER unspec before reload
6500         is completed.
6501
6502 2010-11-03  Richard Guenther  <rguenther@suse.de>
6503
6504         PR tree-optimization/46217
6505         * tree-ssa.c (non_rewritable_mem_ref_base): Check if volatile
6506         flag matches.
6507         (execute_update_addresses_taken): Likewise.
6508
6509 2010-11-03  Joern Rennecke  <joern.rennecke@embecosm.com>
6510
6511         PR bootstrap/44335
6512         * targhooks.c (targhook_words_big_endian): New function.
6513         (targhook_float_words_big_endian): Likewise.
6514         * targhooks.h (targhook_words_big_endian): Declare.
6515         (targhook_float_words_big_endian): Likewise.
6516         * target.def (words_big_endian, float_words_big_endian): New hooks.
6517
6518 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
6519
6520         PR tree-optimization/46165
6521         * tree-ssa-pre.c (eliminate): Return TODO_cleanup_cfg if changing
6522         a normal call into noreturn call.
6523
6524 2010-11-03  Richard Guenther  <rguenther@suse.de>
6525
6526         PR middle-end/46251
6527         * builtins.c (expand_builtin_sincos): Properly build MEM_REFs,
6528         not INDIRECT_REFs.
6529
6530 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
6531
6532         PR tree-optimization/46107
6533         * cfgloopmanip.c (loop_version): Set irred_flag back into entry->flags
6534         if cfg_hook_duplicate_loop_to_header_edge failed.
6535
6536 2010-11-03  Ian Lance Taylor  <iant@google.com>
6537
6538         PR lto/46273
6539         * config.gcc: Don't set lto_binary_reader.
6540         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
6541         (Configuration): Mention --disable-lto.  Remove --with-libelf
6542         paragraph.
6543
6544 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
6545
6546         PR debug/46252
6547         * reload1.c (delete_dead_insn): Use prev_active_insn instead of
6548         prev_real_insn.
6549         * gcse.c (insert_insn_end_basic_block): Likewise.
6550
6551         PR rtl-optimization/46034
6552         PR rtl-optimization/46212
6553         PR rtl-optimization/46248
6554         * combine.c (try_combine): If added_sets_2 where i0dest_in_i0src
6555         and i0 feeds i1 and i1 feeds i2 or i0 feeds i2, make a copy of i1src
6556         before i0dest -> i0src substitution and pass 1 instead of 0 as last
6557         argument to subst on i2pat.
6558
6559 2010-11-02  Ian Lance Taylor  <iant@google.com>
6560
6561         * configure.ac: Use AC_SYS_LARGEFILE.
6562         * configure: Rebuild.
6563         * config.in: Rebuild.
6564
6565 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
6566
6567         * builtins.c (fold_builtin_signbit): Use build_zero_cst instead of
6568         fold_convert.
6569         * c-typeck.c (build_function_call_vec): Likewise.
6570         * cfgexpand.c (expand_debug_expr): Likewise.
6571         * cgraphunit.c (assemble_thunk): Likewise.
6572         * config/sparc/sparc.c (sparc_fold_builtin): Likewise.
6573         * fold-const.c (fold_unary_loc, fold_mult_zconjz): Likewise.
6574         (fold_binary_loc, fold_ternary_loc): Likewise.
6575         * gimple-fold.c (get_symbol_constant_value): Likewise.
6576         * gimple-low.c (lower_builtin_setjmp): Likewise.
6577         * gimple.c (gimple_cond_get_ops_from_tree): Likewise.
6578         * gimplify.c (gimplify_init_constructor): Likewise.
6579         * lambda.h (build_linear_expr): Likewise.
6580         * omp-low.c (omp_reduction_init): Likewise.
6581         * tree-inline.c (remap_ssa_name): Likewise.
6582         * tree-object-size.c (compute_object_sizes): Likewise.
6583         * tree-sra.c (init_subtree_with_zero): Likewise.
6584         (sra_ipa_modify_assign): Likewise.
6585         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Likewise.
6586         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Likewise.
6587         (eliminate_plus_minus_pair, eliminate_not_pairs): Likewise.
6588         (undistribute_ops_list): Likewise.
6589         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
6590         * tree-vect-stmts.c (vectorizable_call): Likewise.
6591         * tree.c (build_vector_from_ctor, build_one_cst): Likewise.
6592         (build_zero_cst): Handle more cases directly.  Update comment.
6593
6594 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
6595
6596         * config/i386/i386-protos.h (ix86_split_call_pop_vzeroupper): Removed.
6597         * config/i386/i386.c (ix86_split_call_pop_vzeroupper): Likewise.
6598
6599         * config/i386/i386.md (*call_pop_0_vzeroupper): Use parallel
6600         and call ix86_split_call_vzeroupper instead of
6601         ix86_split_call_pop_vzeroupper.
6602         (*call_pop_1_vzeroupper): Likewise.
6603         (*sibcall_pop_1_vzeroupper): Likewise.
6604         (*call_value_pop_0_vzeroupper): Likewise.
6605         (*call_value_pop_1_vzeroupper): Likewise.
6606         (*sibcall_value_pop_1_vzeroupper): Likewise.
6607
6608 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
6609
6610         * config/i386/i386.md (*sibcall_1_rex64_vzeroupper): Fix a typo.
6611
6612 2010-11-02  Eric Botcazou  <ebotcazou@adacore.com>
6613
6614         * basic-block.h (insert_insn_end_bb_new): Delete.
6615         * cfgrtl.c (insert_insn_end_bb_new): Likewise.
6616
6617 2010-11-02  Uros Bizjak  <ubizjak@gmail.com>
6618             H.J. Lu  <hongjiu.lu@intel.com>
6619
6620         * config/i386/i386-protos.h (ix86_split_call_vzeroupper): New.
6621         (ix86_split_call_pop_vzeroupper): Likewise.
6622
6623         * config/i386/i386.c (move_or_delete_vzeroupper_2): Rewrite the loop.
6624         (ix86_expand_call): Conditionally decorate calls with
6625         UNSPEC_CALL_NEEDS_VZEROUPPER unspec.
6626         (ix86_split_call_vzeroupper): New.
6627         (ix86_split_call_pop_vzeroupper): Likewise.
6628
6629         * config/i386/i386.md (UNSPEC_CALL_NEEDS_VZEROUPPER): New.
6630         (*call_pop_0_vzeroupper): New insn_and_split pattern.
6631         (*call_pop_1_vzeroupper): Likewise.
6632         (*sibcall_pop_1_vzeroupper): Likewise.
6633         (*call_0_vzeroupper): Likewise.
6634         (*call_1_vzeroupper): Likewise.
6635         (*sibcall_1_vzeroupper): Likewise.
6636         (*call_1_rex64_vzeroupper): Likewise.
6637         (*call_1_rex64_ms_sysv_vzeroupper): Likewise.
6638         (*call_1_rex64_large_vzeroupper): Likewise.
6639         (*sibcall_1_rex64_vzeroupper): Likewise.
6640         (*call_value_pop_0_vzeroupper): Likewise.
6641         (*call_value_pop_1_vzeroupper): Likewise.
6642         (*sibcall_value_pop_1_vzeroupper): Likewise.
6643         (*call_value_0_vzeroupper): Likewise.
6644         (*call_value_0_rex64_vzeroupper): Likewise.
6645         (*call_value_0_rex64_ms_sysv_vzeroupper): Likewise.
6646         (*call_value_1_vzeroupper): Likewise.
6647         (*sibcall_value_1_vzeroupper): Likewise.
6648         (*call_value_1_rex64_vzeroupper): Likewise.
6649         (*call_value_1_rex64_ms_sysv_vzeroupper): Likewise.
6650         (*call_value_1_rex64_large_vzeroupper): Likewise.
6651         (*sibcall_value_1_rex64_vzeroupper): Likewise.
6652
6653 2010-11-02  Ian Lance Taylor  <iant@google.com>
6654
6655         PR lto/46273
6656         * config.gcc: Revert last patch: set lto_binary_reader.
6657
6658 2010-11-02  Richard Guenther  <rguenther@suse.de>
6659
6660         PR tree-optimization/46149
6661         * tree-ssa-structalias.c (get_constraint_fop_1): Properly handle
6662         non-indirect MEM_REF variants.
6663
6664 2010-11-02  Richard Guenther  <rguenther@suse.de>
6665
6666         PR tree-optimization/46216
6667         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
6668         Check if we can propagate from a POINTER_PLUS_EXPR before doing so.
6669
6670 2010-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6671
6672         * configure.ac (*-*-irix6*): Disable set_have_as_tls.
6673         (*-*-osf*): Likewise.
6674         * configure: Regenerate.
6675
6676 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
6677
6678         * config/i386/driver-i386.c (host_detect_local_cpu): Updated
6679         for Intel Core 2 and Core i7.
6680
6681 2010-11-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
6682
6683         Model decoder of Core 2/i7 for multipass scheduling.
6684
6685         * config/i386/i386-protos.h (struct ix86_first_cycle_multipass_data_):
6686         New type to hold target-specific data for multipass scheduling.
6687         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
6688         * config/i386/i386.c (ia32_multipass_dfa_lookahead): Update for
6689         Core 2/i7.
6690         (core2i7_secondary_decoder_max_insn_size,)
6691         (core2i7_secondary_ifetch_block_size, core2i7_ifetch_block_max_insns):
6692         New static variables.
6693         ([const_]ix86_first_cycle_multipass_data_t): New typedefs.
6694         ([_]ix86_first_cycle_multipass_data): New static variable.
6695         (core2i7_first_cycle_multipass_init, core2i7_dfa_poast_advance_cycle):
6696         Implement targetm.sched hooks.
6697         (core2i7_first_cycle_multipass_filter_ready_try): New static subroutine
6698         of ...
6699         (core2i7_first_cycle_multipass_{begin, issue, backtrack, end, fini}):
6700         Implement new targetm.sched hooks.
6701         (ix86_sched_init_global, TARGET_SCHED_INIT_GLOBAL): Define
6702         targetm.sched hook to install multipass scheduling hooks on demand.
6703
6704         * doc/tm.texi.in: Document new targetm.sched hooks.
6705         * doc/tm.texi: Regenerate.
6706
6707         * haifa-sched.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
6708         (first_cycle_multipass_data_t): New typedef.
6709         (struct choice_entry: target_data): New field.
6710         (max_issue): Add first_cycle_insn_p parameter.  Call new target hooks
6711         to allow target model restrictions not represented in DFA.
6712         (choose_ready, schedule_block): Update.
6713         (sched_extend_ready_list, sched_finish_ready_list): Call new target
6714         hooks to initialize target-specific data for multipass scheduling.
6715         * sched-int.h (max_issue): Update declaration.
6716         * sel-sched.c (choose_best_insn): Update.
6717         * target.def (first_cycle_multipass_{begin, issue, backtrack},)
6718         (first_cycle_multipass_{init, fini}): Define and document new
6719         targetm.sched hooks.
6720
6721 2010-11-02  Richard Guenther  <rguenther@suse.de>
6722
6723         PR tree-optimization/46184
6724         * tree-vect-loop.c (vectorizable_reduction): Try to obtain the
6725         input vector type from the reduction operand as well.
6726
6727 2010-11-02  Richard Guenther  <rguenther@suse.de>
6728
6729         PR tree-optimization/46177
6730         * tree-loop-distribution.c (prop_phis): Use
6731         mark_virtual_phi_result_for_renaming.
6732
6733 2010-11-02  Martin Jambor  <mjambor@suse.cz>
6734
6735         PR middle-end/46120
6736         * tree.c (get_binfo_at_offset): Bail out on artificial
6737         fields.  Identify primary bases according to their offsets.
6738
6739 2010-11-02  Martin Jambor  <mjambor@suse.cz>
6740
6741         PR tree-optimization/45875
6742         * gimple-fold.c (get_first_base_binfo_with_virtuals): Removed.
6743         (gimple_get_relevant_ref_binfo): Detect primary bases according to
6744         their field offset.
6745
6746 2010-11-02  Ian Lance Taylor  <iant@google.com>
6747
6748         * doc/install.texi (Configuration): Note in two places that Java
6749         is not enabled by default.
6750
6751 2010-11-02  Ian Lance Taylor  <iant@google.com>
6752
6753         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
6754         (Configuration): Mention --disable-lto.  Remove --with-libelf
6755         paragraph.
6756
6757 2010-11-02  Ian Lance Taylor  <iant@google.com>
6758
6759         * configure.ac: Remove elf_getshdrstrndx test.  Don't substitute
6760         LTO_BINARY_READER or LTO_USE_LIBELF.  Remove LIBELFLIBS and
6761         LIBELFINC.  Remove HAVE_libelf.
6762         * config.gcc: Don't set lto_binary_reader.
6763         * Makefile.in (LIBELFLIBS, LIBELFINC): Remove variables.
6764         (LTO_BINARY_READER, LTO_USE_LIBELF): Remove variables.
6765         (LIBS): Remove $(LIBELFLIBS).
6766         (INCLUDES): Remove $(LIBELFINC).
6767         * configure: Rebuild.
6768         * config.in: Rebuild.
6769
6770 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
6771
6772         * config/microblaze/microblaze-protos.h (function_arg): Delete.
6773         (function_arg_advance): Delete.
6774         * config/microblaze/microblaze.h (FUNCTION_ARG_ADVANCE): Delete.
6775         (FUNCTION_ARG): Delete.
6776         * config/microblaze/microblaze.c (function_arg_advance): Rename to...
6777         (microblaze_function_arg_advance): ...this.  Make static.  Take a
6778         const_tree and a bool.
6779         (function-arg): Rename to...
6780         (microblaze_function_arg): ...this.  Make static.  Take a const_tree
6781         and a bool.
6782         (microblaze_expand_prologue): Call targetm.calls.function_arg and
6783         targetm.calls.function_arg_advance.
6784         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6785
6786 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
6787
6788         Merge from FSF "apple/trunk" branch.
6789
6790         * config/rs6000/darwin.opt (mdynamic-no-pic): move from here ...
6791         * config/darwin.opt: .. to here.
6792         (matt-stubs): New option.
6793         * config/i386/darwin.opt: Delete.
6794         * config/i386/i386.h (MACHOPIC_ATT_STUB): New.
6795         (MACHO_DYNAMIC_NO_PIC_P): New.
6796         (MACHOPIC_INDIRECT): New.
6797         (MACHOPIC_PURE): New.
6798         * config/i386/darwin.h (DARWIN_X86) Define to 1.
6799         (MACHOPIC_ATT_STUB): New.
6800         (CC1_SPEC): Do not remove mdynamic-no-pic.
6801         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
6802         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
6803         (FUNCTION_PROFILER): Correct over-length line.
6804         (SUBTARGET_OVERRIDE_OPTIONS): New.
6805         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
6806         * config/i386/i386.c (config/i386/i386.c): Darwin has no PLT.
6807         (legitimate_constant_p): Handle mdynamic-no-pic.
6808         (ix86_legitimate_address_p): Likewise.
6809         (ix86_legitimize_address): Likewise.
6810         (ix86_expand_move): Likewise.
6811         (machopic_output_stub): Update for ATT-style stubs and
6812         mdynamic-no-pic.
6813         * config/darwin-protos.h (machopic_symbol_defined_p): New.
6814         * config/rs6000/darwin.h (DARWIN_PPC): Define to 1.
6815         TARGET_DYNAMIC_NO_PIC: Remove.
6816         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
6817         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
6818         * config/rs6000/rs6000.c (darwin_rs6000_override_options):
6819         Remove handling of mdynamic-no-pic.
6820         * config/darwin.c (HAVE_lo_sum, gen_macho_high, gen_macho_low):
6821         Define if required.
6822         (machopic_symbol_defined_p): Do not try to use current_function_decl
6823         when generating _get_pc thunks within stubs.
6824         (machopic_indirect_data_reference): Rework for direct conditionals
6825         rather than #ifdefs, add x86 mdynamic-no-pic
6826         (machopic_legitimize_pic_address): Update to use HAVE_lo_sum with a
6827         defined value.
6828         (darwin_override_options): Handle mdynamic-no-pic here.
6829         * config/darwin-sections.def (machopic_lazy_symbol_ptr2_section): New.
6830         (machopic_lazy_symbol_ptr3_section): New.
6831         (machopic_picsymbol_stub2_section): New.
6832         (machopic_picsymbol_stub3_section): New.
6833         * config/darwin.h (DARWIN_X86, DARWIN_PPC): Define to 0.
6834         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
6835         (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
6836         Moved common definition from x86 and rs6000.
6837         (MACHO_DYNAMIC_NO_PIC_P): Override value.
6838         (MACHOPIC_INDIRECT): Likewise.
6839         (MACHOPIC_PURE): Likewise.
6840         * config.gcc (x86-darwin-*): Remove darwin.opt.
6841
6842 2010-11-02  Jakub Jelinek  <jakub@redhat.com>
6843
6844         PR debug/46255
6845         * tree-cfg.c (gimple_flow_call_edges_add): Use gsi_last_nondebug_bb
6846         instead of gsi_last_bb.
6847
6848 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
6849             Maxim Kuvyrkov  <maxim@codesourcery.com>
6850
6851         * config/i386/i386.c (cpu_names): Add "corei7".
6852         * config/i386/i386.h (enum target_cpu_default): Add entry for Core i7.
6853
6854 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
6855             Maxim Kuvyrkov  <maxim@codesourcery.com>
6856
6857         Tune alignment for Intel Core i7
6858
6859         * config/i386.h (TARGET_COREI7{_32,_64,}): New macros.
6860         (enum processor_type): Update comment.  Add entries for Core i7.
6861         * config/i386-c.c (ix86_target_macros_internal): Update.
6862         * config/i386.c (m_COREI7{_32,_64}): New macros.
6863         (m_GENERIC32, m_GENERIC64): Use generic tuning for Core i7.
6864         (processor_target_table): Tune alignment for Core i7.
6865         (ix86_option_override_internal): Use PROCESSOR_COREI7_*.
6866
6867         * doc/invoke.texi: Document "corei7" option value.
6868
6869 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
6870             Maxim Kuvyrkov  <maxim@codesourcery.com>
6871             H.J. Lu  <hjl.tools@gmail.com>
6872
6873         Basic support for Intel Core i7
6874
6875         * i386.c (ix86_option_override_internal): Add entry for corei7, use
6876         generic tuning.  Use generic32 when compiling for 32-bit ABI.
6877
6878 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
6879
6880         * config/darwin.c (darwin_asm_named_section): Check for __DWARF
6881         sections and call darwin_asm_dwarf_section() to handle them.
6882         (darwin_asm_dwarf_section): New.
6883         (darwin_file_start): Remove code emitting dwarf section symbols.
6884
6885 2010-11-02  Chung-Lin Tang  <cltang@codesourcery.com>
6886
6887         * Makefile.in (LIBGCC2_CFLAGS): Add -fno-stack-protector, to
6888         explicitly disable stack protection when building libgcc.
6889         (CRTSTUFF_CFLAGS): Same, for crtbegin/end.
6890
6891 2010-11-01  Jason Merrill  <jason@redhat.com>
6892
6893         * fold-const.c (fold_indirect_ref_1): Handle folding
6894         POINTER_PLUS_EXPR to ARRAY_REF.
6895
6896 2010-11-01  Kaz Kojima  <kkojima@gcc.gnu.org>
6897
6898         * config/sh/sh.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
6899         (sh_delegitimize_address): New function.
6900
6901 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
6902
6903         * config/alpha/alpha.h (WORD_SWITCH_TAKES_ARG): Remove.
6904         * config/cris/cris.h (WORD_SWITCH_TAKES_ARG): Remove.
6905         (CC1_SPEC): Don't handle -target.
6906         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove single-argument
6907         options.
6908         * config/darwin.opt (Zallowable_client, Zbundle_loader,
6909         Zdylib_file, Zexported_symbols_list, Zfn_seg_addr_table_filename,
6910         Zimage_base, Zinit, Zinstall_name, Zmultiply_defined,
6911         Zmultiplydefinedunused, Zseg_addr_table, Zsegs_read_only_addr,
6912         Zsegs_read_write_addr, Zumbrella, Zunexported_symbols_list,
6913         Zweak_reference_mismatches, client_name, compatibility_version,
6914         current_version, dylinker_install_name, pagezero_size,
6915         read_only_relocs, seg1addr, segs_read_only_addr,
6916         segs_read_write_addr, sub_library, sub_umbrella): New.
6917         * config/freebsd-spec.h (BSD_WORD_SWITCH_TAKES_ARG): Remove.
6918         * config/freebsd.h (WORD_SWITCH_TAKES_ARG): Remove.
6919         * config/freebsd.opt: New.
6920         * config/interix.h (WORD_SWITCH_TAKES_ARG): Remove.
6921         * config/mips/iris6.h (WORD_SWITCH_TAKES_ARG): Remove.
6922         * config/rpath.opt: New.
6923         * config.gcc (*-*-freebsd*): Use rpath.opt and freebsd.opt.
6924         (alpha*-dec-osf5.1*, i[34567]86-*-interix3*, mips-sgi-irix6.5*):
6925         Use rpath.opt.
6926
6927 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
6928
6929         * common.opt (R, T, Tbss, Tdata, Ttext, h, z): New.
6930         * defaults.h (DEFAULT_SWITCH_TAKES_ARG, SWITCH_TAKES_ARG): Remove.
6931         (DEFAULT_WORD_SWITCH_TAKES_ARG): Define to 0.
6932         * doc/tm.texi.in (SWITCH_TAKES_ARG): Remove.
6933         (WORD_SWITCH_TAKES_ARG): Don't refer to SWITCH_TAKES_ARG.
6934         Document that options in .opt files do not need to be included.
6935         * doc/tm.texi: Regenerate.
6936         * gcc.c (LINK_COMMAND_SPEC): Don't include %{x}.
6937         * opts-common.c: Update comment on tm.h include.
6938         (decode_cmdline_option): Don't use SWITCH_TAKES_ARG.
6939         * system.h (SWITCH_TAKES_ARG): Poison.
6940         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Remove.
6941         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove options included
6942         in darwin.opt.
6943         (LINK_COMMAND_SPEC_A): Don't include %{x}.
6944         * config/fr30/fr30.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
6945         * config/freebsd-spec.h (FBSD_SWITCH_TAKES_ARG): Remove.
6946         * config/freebsd.h (SWITCH_TAKES_ARG): Remove.
6947         * config/frv/frv.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
6948         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Don't include %{x}.
6949         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Remove.
6950         * config/interix.h (WORD_SWITCH_TAKES_ARG): Don't handle -T options.
6951         * config/lm32/lm32.h (SWITCH_TAKES_ARG): Remove.
6952         * config/m32r/m32r.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
6953         * config/microblaze/microblaze.h (SWITCH_TAKES_ARG): Remove.
6954         * config/mips/mips.h (SWITCH_TAKES_ARG): Remove.
6955         * config/mips/netbsd.h (SWITCH_TAKES_ARG): Remove.
6956         * config/mips/vxworks.h (SWITCH_TAKES_ARG): Remove.
6957         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove.
6958         * config/netbsd-elf.h (SWITCH_TAKES_ARG): Remove.
6959         * config/openbsd.h (SWITCH_TAKES_ARG): Remove.
6960         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Remove.
6961         * config/score/score.h (SWITCH_TAKES_ARG): Remove.
6962         * config/sol2.h (SWITCH_TAKES_ARG): Remove.
6963         * config/sparc/sp-elf.h (SWITCH_TAKES_ARG): Remove.
6964         * config/sparc/sp64-elf.h (SWITCH_TAKES_ARG): Remove.
6965         * config/sparc/sparc.h (ASM_SPEC): Don't include %{R}.
6966         * config/svr4.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
6967
6968 2010-11-01  Paul Koning  <ni1d@arrl.net>
6969
6970         * config/pdp11/pdp11.md: Use iterators.
6971         (addqi3, subqi3, iorsi3, xorsi3): Delete.
6972
6973 2010-11-01  Steve Ellcey  <sje@cup.hp.com>
6974
6975         * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): Move under ifdef
6976         GCC_INSN_FLAGS_H.
6977         * libgcov.c (__gcov_indirect_call_profiler): Set
6978         VTABLE_USES_DESCRIPTORS if TARGET_VTABLE_USES_DESCRIPTORS is
6979         defined and use in place of TARGET_VTABLE_USES_DESCRIPTORS.
6980
6981 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
6982
6983         PR tree-optimization/46259
6984
6985         Revert:
6986         2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
6987         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
6988         build_vector_from_val.
6989
6990 2010-11-01  DJ Delorie  <dj@redhat.com>
6991
6992         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add define for RX610
6993         as well as an assertion.
6994
6995 2010-11-01  Paul Koning  <ni1d@arrl.net>
6996
6997         * config/pdp11/pdp11.c (pdp11_return_in_memory): Return vector and
6998         complex modes in memory.
6999
7000 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
7001
7002         * tree.c (build_vector_from_val): Use useless_type_conversion_p.
7003
7004 2010-11-01  Jakub Jelinek  <jakub@redhat.com>
7005
7006         PR target/45250
7007         * var-tracking.c (cfa_base_rtx): Move definition earlier in the file.
7008         (cfa_base_offset): New variable.
7009         (compute_cfa_pointer): Use cfa_base_rtx and cfa_base_offset.
7010         (adjust_mems): Don't do any sp or hfp replacements if cfa_base_rtx
7011         is NULL.
7012         (vt_init_cfa_base): Initialize cfa_base_offset.
7013
7014 2010-11-01  Alan Modra  <amodra@gmail.com>
7015
7016         PR target/46030
7017         * config/rs6000/rs6000.c (struct rs6000_stack): Add reload_completed
7018         and savres_strategy.
7019         (stack_info): New file scope var.
7020         (rs6000_init_machine_status): Init stack_info.
7021         (SAVRES_INLINE_FPRS, SAVRES_INLINE_GPRS,
7022         SAVRES_NOINLINE_GPRS_SAVES_LR, SAVRES_NOINLINE_FPRS_SAVES_LR,
7023         SAVRES_NOINLINE_FPRS_DOESNT_RESTORE_LR): Replace with..
7024         (SAVE_INLINE_FPRS, SAVE_INLINE_GPRS, REST_INLINE_FPRS, REST_INLINE_GPRS,
7025         SAVE_NOINLINE_GPRS_SAVES_LR, SAVE_NOINLINE_FPRS_SAVES_LR
7026         REST_NOINLINE_FPRS_DOESNT_RESTORE_LR): ..this.  Update all refs.
7027         (rs6000_savres_strategy): Rewrite.
7028         (rs6000_stack_info): Use "stack_info" in place of local "info".
7029         Return cached stack info when reload_completed unless ENABLE_CHECKING
7030         in which case confirm newly calculated stack info matches old info.
7031         Delay calculation of lr_save_p, set it for out of line gp save/restore
7032         as well as fp.  Call rs6000_savres_strategy from here..
7033         (rs6000_emit_prologue, rs6000_emit_epilogue): ..rather than here.
7034         (rs6000_output_function_prologue): Use info->savres_strategy to
7035         determine whether fp save/restore externs need to be emitted.
7036
7037 2010-10-31  Jason Merrill  <jason@redhat.com>
7038
7039         * tree.h (EXPR_LOC_OR_HERE): New macro.
7040         * builtins.c (c_strlen): Use it.
7041         * c-decl.c (build_enumerator): Likewise.
7042         * gimplify.c (internal_get_tmp_var): Likewise.
7043         (shortcut_cond_expr): Likewise.
7044         (gimplify_one_sizepos): Likewise.
7045
7046 2010-10-31  Richard Henderson  <rth@redhat.com>
7047
7048         * config/i386/cygming.h (TARGET_SEH): New.
7049         (MAX_STACK_ALIGNMENT): New.  Disable alignment for SEH.
7050         (TARGET_ASM_UNWIND_EMIT, TARGET_ASM_UNWIND_EMIT_BEFORE_INSN,
7051         TARGET_ASM_FUNCTION_END_PROLOGUE, SUBTARGET_ASM_UNWIND_INIT): New.
7052         (TARGET_OS_CPP_BUILTINS): Define __SEH__ as needed.
7053         (ASM_DECLARE_FUNCTION_NAME): Use i386_pe_start_function.
7054         (ASM_DECLARE_FUNCTION_SIZE): New.
7055         * config/i386/i386-protos.h: Update.
7056         * config/i386/i386.c (ix86_option_override_internal): Enable
7057         flag_unwind_tables with flag_asynchronous_unwind_tables immediately;
7058         restrict -mpreferred-stack-boundary for SEH; enable flag_fentry.
7059         (ix86_asm_output_function_label): Use SUBTARGET_ASM_UNWIND_INIT.
7060         (ix86_compute_frame_layout): For SEH, disable
7061         use_fast_prologue_epilogue, move frame pointer to the end of
7062         the frame.  Initialize hfp_save_offset.
7063         (ix86_expand_prologue): Honor hfp_save_offset.  Emit blockage
7064         at end of prologue for SEH.
7065         (ix86_expand_epilogue): For SEH, use pops, emit a nop if needed,
7066         emit blockage at beginning of epilogue.
7067         (ix86_expand_binary_operator): After reload, emit LEA if needed.
7068         (ix86_output_call_insn): New.
7069         * config/i386/i386.h (TARGET_SEH): New.
7070         (struct machine_function): Add member seh.
7071         * config/i386/i386.md (all call patterns): Use ix86_output_call_insn.
7072         * config/i386/winnt.c (struct seh_frame_state): New.
7073         (i386_pe_seh_init, i386_pe_seh_end_prologue, i386_pe_seh_fini,
7074         seh_emit_push, seh_emit_save, seh_emit_stackalloc, seh_cfa_adjust_cfa,
7075         seh_cfa_offset, seh_frame_related_expr, i386_pe_seh_unwind_emit,
7076         i386_pe_start_function, i386_pe_end_function): New.
7077
7078         * dwarf2out.c (dwarf2out_frame_debug_expr): Accept CFA as well
7079         as CFA_STORE in rules 12 and 13.
7080
7081 2010-10-31  Uros Bizjak  <ubizjak@gmail.com>
7082
7083         PR tree-optimization/46142
7084         * tree-vect-stmts.c (vectorizable_call): Enlarge dt array to
7085         accommodate third function argument.
7086
7087 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
7088
7089         * tree-ssa-loop-im.c (rewrite_reciprocal): Use build_one_cst.
7090
7091 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
7092
7093         * fold-const.c (build_zero_vector): Use build_vector_from_val.
7094         * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
7095         (get_initial_def_for_reduction): Likewise.
7096         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
7097         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Likewise.
7098         * tree.c (build_one_cst): Likewise.
7099         (build_vector_from_val): Use types_compatible_p for assert.
7100
7101 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
7102
7103         * emit-rtl.c (mark_used_flags): New function.
7104         (set_used_flags, reset_used_flags): Call it.
7105
7106 2010-10-30  Uros Bizjak  <ubizjak@gmail.com>
7107
7108         PR middle-end/44569
7109         * lower-suberg.c (simplify_subreg_concatn): For VOIDmode elements,
7110         determine the mode of a subreg by GET_MODE_INNER of CONCATN RTX.
7111
7112 2010-10-30  H.J. Lu  <hongjiu.lu@intel.com>
7113
7114         PR target/46195
7115         * config/i386/i386.c (contains_aligned_value_p): Renamed to ...
7116         (ix86_compat_aligned_value_p): This.
7117         (ix86_old_function_arg_boundary): Renamed to ...
7118         (ix86_compat_function_arg_boundary): This.  Updated.
7119         (ix86_contains_aligned_value_p): New.
7120         (ix86_function_arg_boundary): Align long double parameters on
7121         stack to 4byte in 32bit.
7122
7123 2010-10-30  Nicola Pero  <nicola.pero@meta-innovation.com>
7124
7125         Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
7126         * c-parser.c (c_parser_objc_at_property_declaration): Removed
7127         parsing of RID_COPIES and RID_IVAR.  Updated call to
7128         objc_add_property_declaration.
7129         * c-typecheck.c (build_component_ref): Call
7130         objc_maybe_build_component_ref instead of objc_build_setter_call.
7131         Use objc_is_property_ref to improve Objective-C checks.
7132         (cp_build_modify_expr): Call objc_maybe_build_modify_expr instead
7133         of objc_build_getter_call.
7134
7135 2010-10-29  Paul Koning  <ni1d@arrl.net>
7136
7137         * doc/tm.texi.in (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
7138         REGNO_MODE_OK_FOR_REG_BASE, REGNO_MODE_CODE_OK_FOR_BASE_P,
7139         REGNO_OK_FOR_INDEX_P): Delete non-strict variant.
7140         (REG_OK_STRICT): Move description.
7141
7142 2010-10-29  Paul Koning  <ni1d@arrl.net>
7143
7144         * config/pdp11/pdp11.md (*and<mode>): Rename to *bic<mode>.
7145
7146 2010-10-29  Paul Koning  <ni1d@arrl.net>
7147
7148         * config/pdp11/pdp11.md (divhi3, modhi3, divmodhi3): Fix ICE.
7149
7150 2010-10-29  Paul Koning  <ni1d@arrl.net>
7151
7152         PR/41822
7153         * config/pdp11/pdp11.md (andhi3, andqi3): Fix wrong code error.
7154
7155 2010-10-29  Richard Henderson  <rth@redhat.com>
7156
7157         PR rtl-opt/46226
7158         * stmt.c (expand_asm_operands): Call do_pending_stack_adjust
7159         for asm goto.
7160
7161 2010-10-29  Paul Koning  <ni1d@arrl.net>
7162
7163         * config/pdp11/pdp11.c (output_move_quad): Fix ICE for CPU
7164         register to register move.
7165
7166 2010-10-29  Paul Koning  <ni1d@arrl.net>
7167
7168         * config/pdp11/pdp11.c (print_operand_address): Correct handling
7169         of integer constant addresses, delete vax-only logic.
7170
7171 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
7172
7173         * config/picochip/picochip.c (picochip_is_short_branch): Simplify
7174         a conditional expression.
7175
7176 2010-10-29  Paul Koning  <ni1d@arrl.net>
7177
7178         * config/pdp11/pdp11.c (pdp11_trampoline_init): Correct
7179         instruction encoding.
7180
7181 2010-10-29  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
7182             Andrew Pinski  <pinskia@gmail.com>
7183
7184         * tree.h (build_vector_from_val): Declare.
7185         * tree.c (build_vector_from_val): New function.
7186         * c-typeck.c (build_binary_op): Handle vector shifting.
7187         * doc/extend.texi: Description of the vector shifting operation.
7188
7189 2010-10-29  Paul Koning  <pkoning@equallogic.com>
7190
7191         * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class,
7192         pdp11_secondary_memory_needed): Declare.
7193         * config/pdp11/predicates.md (float_operand): New predicate.
7194         * config/pdp11/pdp11.md (RETVAL_REGNUM): New constant.
7195         (cbranchdf4, movdf): Change predicate.
7196         (movsf): Handle FPU register case.
7197         (truncdfsf2, extendsfdf2): Add FPU register case.
7198         * config/pdp11/pdp11.c (TARGET_SECONDARY_RELOAD,
7199         TARGET_REGISTER_MOVE_COST, TARGET_PREFERRED_RELOAD_CLASS,
7200         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
7201         (pdp11_register_move_cost): Update cost matrix.
7202         (pdp11_cannot_change_mode_class, pdp11_preferred_reload_class,
7203         pdp11_preferred_output_reload_class, pdp11_secondary_reload,
7204         pdp11_secondary_memory_needed): New function.
7205         (pdp11_return_in_memory): Add other float types.
7206         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Add other float types.
7207         (SECONDARY_MEMORY_NEEDED, CANNOT_CHANGE_MODE_CLASS): Define.
7208         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS,
7209         REGISTER_MOVE_COST): Delete.
7210         (BASE_RETURN_VALUE_REG): Add other float types.
7211
7212 2010-10-29  Nick Clifton  <nickc@redhat.com>
7213
7214         * doc/invoke.texi: Document -mam34 and -mtune options.
7215         * config/mn10300/mn10300.c (mn10300_tune_string): New variable.
7216         (mn10300_tune_cpu): New variable.
7217         (mn10300_handle_option): Handle -mam34 and -mtune options.
7218         (mn10300_option_override): Convert tune string into tune cpu variable.
7219         (mn10300_legitimate_constant_p): Delete unused local variable.
7220         (is_load_insn): New function.
7221         (is_store_insn): New function.
7222         (mn10300_adjust_schedule_cost): New function.
7223         (TARGET_SCHED_ADJUST_COST): Define.
7224         * config/mn10300/mn10300.opt (mam34): New option.
7225         (mtune): New option.
7226         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add AM34 support.
7227         (enum processor_type): Add AM34.
7228         (TARGET_AM34): Define.
7229         * config/mn10300/mn10300.md (attr cpu): Add am34.
7230         Add pipeline description.
7231         (movqi, movhi, movsi, movsf, movdf, movdi): Fix predicates.
7232         Remove unneeded alternatives.  Add timing attribute.
7233         (pop_pic_reg, am33_addsi3, mn10300_addsi3, am33_subsi3,
7234         mn10300_subsi3, mulsidi3, umulsidi3, am33_mulsi3,
7235         mn10300_mulsi3, udivmodsi4_am33, divmodsi4, am33_andsi3,
7236         mn10300_andsi3, am33_iorsi3, mn10300_iorsi3, am33_xorsi3,
7237         mn10300_xorsi3, byte_clear, byte_set, bit_clear1, bit_clear2,
7238         bit_set, am33_iorqi3, mn10300_iorqi3, test_byte_bitfield,
7239         bit_test, subreg_bit_test, cmpsi, am33_cmpsf, am33_subsi3,
7240         float_conditional_branch, jump, indirect_jump, tablejump,
7241         call_internal, call_value_internal, zero_extendqisi2_am33,
7242         zero_extendqisi2_mn10300, zero_extendhisi2_am33,
7243         zero_extendhisi2_mn10300, extendqisi2_am33, extendqisi2_mn10300,
7244         extendhisi2_am33, extendhisi2_mn10300, am33_ashlsi3,
7245         mn10300_ashlsi3, am33_lshrsi3, mn10300_lshrsi3, am33_ashrisi3,
7246         mn10300_ashrsi3, abssf2_am33_2, negsf2_am33_2, rsqrtsf2,
7247         addsf3_internal, subsf3_internal, mulsf3_internal, divsf3,
7248         fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4, return_internal,
7249         return_internal_regs, store_movm, return, call_next_insn):
7250         Add timing attribute.
7251         (am33_subsi3): Add missing clobber of CC_REG.
7252         (am33_andsi3, mn10300_andsi3): Fix compile time warnings.
7253         (udivmodsi4, udivmodsi4_insn, divmodsi4, test_byte_bitfield,
7254         subreg_bit_test, zero_extendqisi2, zero_extendhisi2,
7255         extendqisi2): Fix predicates.
7256         (call_internal, call_internal_value): Separate alternatives.
7257         * config/mn10300/t-mn10300: Add AM34 multilib.
7258
7259 2010-10-29  Paolo Bonzini  <bonzini@gnu.org>
7260
7261         * config/sh/sh.c (sh_promote_function_mode): Use
7262         default_promote_function_mode if !sh_promote_prototypes.
7263
7264 2010-10-28  Paolo Bonzini  <bonzini@gnu.org>
7265
7266         * recog.c (split_all_insns): Remove dead code.
7267
7268 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7269
7270         * score.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7271
7272 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7273
7274         * config/cris/cris.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
7275         (FUNCTION_ARG_ADVANCE): Delete.
7276         * config/cris/cris.c (cris_function_arg_1, cris_function_arg): New
7277         functions.
7278         (cris_function_incoming_arg, cris_function_arg_advance): New functions.
7279         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
7280         (TARGET_FUNCTION_ARG_ADVANCE): Define.
7281
7282 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7283
7284         * config/lm32/lm32-protos.h (lm32_function_arg): Delete.
7285         * config/lm32/lm32.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7286         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
7287         Take a const_tree and a bool.
7288         (mcore_function_arg_advance): New function.
7289         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7290
7291 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7292
7293         * config/mcore/mcore-protos.h (mcore_function_arg): Delete.
7294         * config/mcore/mcore.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7295         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
7296         Take a const_tree and a bool.
7297         (mcore_function_arg_advance): New function.
7298         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7299
7300 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7301
7302         * config/h8300/h8300-protos.h (function_arg): Delete.
7303         * config/h8300/h8300.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7304         * config/h8300/h8300.c (function_arg): Rename to...
7305         (h8300_function_arg): ...this.  Make static.  Take a const_tree and
7306         a bool.
7307         (h8300_function_arg_advance): New function.
7308         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7309
7310 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7311
7312         * config/arc/arc.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move code
7313         to...
7314         * config/arc/arc.c (arc_function_arg): ...here and...
7315         (arc_function_arg_advance): ...here.  New functions.
7316         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7317
7318 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7319
7320         * config/crx/crx-protos.h (crx_function_arg): Delete.
7321         (crx_function_arg_advance): Delete.
7322         * config/crx/crx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7323         * config/crx/crx.c (crx_function_arg): Make static.  Take a
7324         const_tree and a bool.
7325         (crx_function_arg_advance): Make static.  Take a const_tree and a bool.
7326         (enough_regs_for_param): Take a const_tree.
7327         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7328
7329 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7330
7331         * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg): Delete.
7332         (m68hc11_function_arg_advance): Delete.
7333         * config/m68hc11/m68hc11.h (FUNCTION_ARG): Delete.
7334         (FUNCTION_ARG_ADVANCE): Delete.
7335         * config/m68hc11/m68hc11.c (m68hc11_function_arg): Make static.
7336         Take a const_tree and a bool.
7337         (m68hc11_function_arg_advance): Likewise.
7338         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7339
7340 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7341
7342         * config/stormy16/stormy16-protos.h (xstormy16_function_arg): Delete.
7343         (xstormy16_function_arg_advance): Delete.
7344         * config/stormy16/stormy16.h (FUNCTION_ARG): Delete.
7345         (FUNCTION_ARG_ADVANCE): Delete.
7346         * config/stormy16/stormy16.c (xstormy16_function_arg): Make static.
7347         Take a const_tree and a bool.
7348         (xstormy16_function_arg_advance): Likewise.  Return void, updating
7349         the CUM parameter instead.
7350         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7351
7352 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7353
7354         * config/moxie/moxie-protos.h (moxie_function_arg): Delete.
7355         * config/moxie/moxie.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7356         (MOXIE_FUNCTION_ARG_SIZE): Move to...
7357         * config/moxie/moxie.c (MOXIE_FUNCTION_ARG_SIZE): ...here.
7358         (moxie_function_arg): Make static.  Take a const_tree and a bool.
7359         (moxie_function_arg_advance): New function.
7360         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7361
7362 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7363
7364         * config/mn10300/mn10300-protos.h (function_arg): Delete.
7365         * config/mn10300/mn10300.h (FUNCTION_ARG): Delete.
7366         (FUNCTION_ARG_ADVANCE): Delete.
7367         * config/mn10300/mn10300.c (function_arg): Rename to...
7368         (mn10300_function_arg): ...this.  Make static.  Take a const_tree
7369         and a bool.
7370         (mn10300_function_arg_advance): New function.
7371         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7372
7373 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7374
7375         * config/iq2000/iq2000-protos.h (function_arg): Delete.
7376         (function_arg_advance): Delete.
7377         * config/iq2000/iq2000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7378         * config/iq2000/iq2000.c (function_arg): Rename to...
7379         (iq2000_function_arg): ...this.  Make static.  Take a const_tree and
7380         a bool.
7381         (function_arg_advance): Rename to...
7382         (iq2000_function_arg_advance): ...this.  Make static.  Take a
7383         const_tree and a bool.
7384         (iq2000_expand_prologue): Call iq2000_function_arg_advance and
7385         iq2000_function_arg.
7386         (iq2000_pass_by_reference): Call iq2000_function_arg).
7387         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7388
7389 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7390
7391         * config/fr30/fr30-protos.h (fr30_num_arg_regs): Delete.
7392         * config/fr30/fr30.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7393         * config/fr30/fr30.c (fr30_num_arg_regs): Make static.  Take a
7394         const_tree.
7395         (fr30_function_arg): New function.
7396         (fr30_function_arg_advance): New function.
7397         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7398
7399 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7400
7401         * config/frv/frv-protos.h (frv_function_arg): Delete.
7402         (frv_function_arg_advance): Delete.
7403         * config/frv/frv.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7404         * config/frv/frv.c (frv_function_arg): Rename to...
7405         (frv_function_arg_1): Make static.  Take const_tree and bool arguments.
7406         (frv_function_arg, frv_function_incoming_arg): New functions.
7407         (frv_function_arg_advance): Make static.  Take a const_tree and a bool.
7408         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
7409         (TARGET_FUNCTION_ARG_ADVANCE): Define.
7410
7411 2010-10-28  Uros Bizjak  <ubizjak@gmail.com>
7412
7413         PR target/46153
7414         * config/i386/sse.md (sse_movhlps_exp): Use destination
7415         returned from ix86_fixup_binary_operands to expand insn.
7416         (sse_movlhps_exp): Ditto.
7417         (sse_loadhps_exp): Ditto.
7418         (sse_loadlps_exp): Ditto.
7419         (sse2_loadhpd_exp): Ditto.
7420         (sse2_loadlpd_exp): Ditto.
7421
7422 2010-10-28  Andrew Stubbs  <ams@codesourcery.com>
7423
7424         * config/arm/arm.c (const_ok_for_arm): Support 0xXY00XY00 pattern
7425         constants in thumb2.
7426
7427 2010-10-28  Eric Botcazou  <ebotcazou@adacore.com>
7428
7429         * combine.c (set_nonzero_bits_and_sign_copies): Use unsigned
7430         arithmetics in masking operations.
7431         (contains_muldiv): Likewise.
7432         (try_combine): Likewise.
7433         (find_split_point): Likewise.
7434         (combine_simplify_rtx): Likewise.
7435         (simplify_if_then_else): Likewise.
7436         (simplify_set): Likewise.
7437         (expand_compound_operation): Likewise.
7438         (expand_field_assignment): Likewise.
7439         (make_extraction): Likewise.
7440         (extract_left_shift): Likewise.
7441         (make_compound_operation): Likewise.
7442         (force_to_mode): Likewise.
7443         (make_field_assignment): Likewise.
7444         (reg_nonzero_bits_for_combine): Likewise.
7445         (simplify_shift_const_1): Likewise.
7446         (simplify_comparison): Likewise.
7447
7448 2010-10-27  Nathan Froyd  <froydnj@codesourcery.com>
7449
7450         * config/ia64/ia64-protos.h (ia64_function_arg): Delete.
7451         (ia64_function_arg_advance): Delete.
7452         * config/ia64/ia64.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
7453         (FUNCTION_ARG_ADVANCE): Delete.
7454         * config/ia64/ia64.c (ia64_function_arg): Rename to...
7455         (ia64_function_arg_1): ...this.  Make static.  Take const_tree and
7456         bool arguments.
7457         (ia64_function_arg, ia64_function_incoming_arg): New functions.
7458         (ia64_function_arg_advance): Make static.  Take a const_tree and
7459         a bool.
7460         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
7461         (TARGET_FUNCTION_ARG_ADVANCE): Define.
7462
7463 2010-10-27  Steve Ellcey  <sje@cup.hp.com>
7464
7465         * doc/tm.texi.in (TARGET_GET_RAW_RESULT_MODE): New.
7466         (TARGET_GET_RAW_ARG_MODE): New.
7467         * doc/tm.texi: Regenerate.
7468         * target.def (get_raw_result_mode): New.
7469         (get_raw_arg_mode): New.
7470         * targhooks.c (default_get_reg_raw_mode): New.
7471         * targhooks.h (default_get_reg_raw_mode): New.
7472         * builtins.c (apply_args_size): Use targetm.calls.get_raw_arg_mode.
7473         (apply_result_size): Ditto.
7474         * config/ia64/ia64.c (ia64_get_reg_raw_mode): New.
7475         (TARGET_GET_RAW_RESULT_MODE): Define.
7476         (TARGET_GET_RAW_ARG_MODE): Ditto.
7477
7478 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
7479
7480         * config/sparc/sol2-unwind.h (sparc64_fallback_frame_state): Adjust
7481         for newer Solaris 10 release.
7482         (sparc_fallback_frame_state): Likewise.
7483
7484 2010-10-27  Jason Merrill  <jason@redhat.com>
7485
7486         * gimplify.c (gimplify_decl_expr): Handle anonymous artificial
7487         variables sooner.
7488
7489 2010-10-27  Jie Zhang  <jie@codesourcery.com>
7490             Maxim Kuvyrkov  <maxim@codesourcery.com>
7491
7492         * haifa-sched.c (ISSUE_POINTS): Remove.
7493         (max_issue): Don't issue more than issue_rate instructions.
7494
7495 2010-10-27  Ian Lance Taylor  <iant@google.com>
7496
7497         PR target/46197
7498         * config/i386/i386.md (UNSPECV_SPLIT_STACK_RETURN): New.
7499         (split_stack_return): Replace UNSPEC_STACK_CHECK with
7500         UNSPECV_SPLIT_STACK_RETURN.
7501
7502 2010-10-27  H.J. Lu  <hongjiu.lu@intel.com>
7503
7504         * config/i386/i386-protos.h (init_cumulative_args): Add an int.
7505
7506         * config/i386/i386.c (block_info): New.
7507         (BLOCK_INFO): Likewise.
7508         (call_avx256_state): Likewise.
7509         (check_avx256_stores): Likewise.
7510         (move_or_delete_vzeroupper_2): Likewise.
7511         (move_or_delete_vzeroupper_1): Likewise.
7512         (move_or_delete_vzeroupper): Likewise.
7513         (use_avx256_p): Likewise.
7514         (function_pass_avx256_p): Likewise.
7515         (flag_opts): Add -mvzeroupper.
7516         (ix86_option_override_internal): Turn on MASK_VZEROUPPER by
7517         default for TARGET_AVX.  Turn off MASK_VZEROUPPER if TARGET_AVX
7518         is disabled.
7519         (ix86_function_ok_for_sibcall): Disable sibcall if we need to
7520         generate vzeroupper.
7521         (init_cumulative_args): Add an int to indicate caller.  Set
7522         use_avx256_p, callee_return_avx256_p and caller_use_avx256_p
7523         based on return type.
7524         (ix86_function_arg): Set use_avx256_p, callee_pass_avx256_p and
7525         caller_pass_avx256_p based on argument type.
7526         (ix86_expand_epilogue): Emit vzeroupper if 256bit AVX register
7527         is used, but not returned by caller.
7528         (ix86_expand_call): Emit vzeroupper if 256bit AVX register is used.
7529         (ix86_local_alignment): Set use_avx256_p if 256bit AVX register
7530         is used.
7531         (ix86_minimum_alignment): Likewise.
7532         (ix86_expand_special_args_builtin): Set target to
7533         GEN_INT (vzeroupper_intrinsic) for CODE_FOR_avx_vzeroupper.
7534         (ix86_reorg): Run the vzeroupper optimization if needed.
7535
7536         * config/i386/i386.h (ix86_args): Add caller.
7537         (INIT_CUMULATIVE_ARGS): Updated.
7538         (machine_function): Add use_vzeroupper_p, use_avx256_p,
7539         caller_pass_avx256_p, caller_return_avx256_p,
7540         callee_pass_avx256_p and callee_return_avx256_p.
7541
7542         * config/i386/i386.opt (-mvzeroupper): New.
7543
7544         * config/i386/predicates.md (vzeroupper_operation): Removed.
7545
7546         * config/i386/sse.md (avx_vzeroupper): Removed.
7547         (*avx_vzeroupper): Removed.
7548         (avx_vzeroupper): New.
7549
7550         * doc/invoke.texi: Document -mvzeroupper.
7551
7552 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
7553
7554         * config/i386/t-mingw32 (SHLIB_LC): Add -lmingwthrd.
7555         * config/i386/t-mingw-w32 (SHLIB_LC): Likewise.
7556         * config/i386/t-mingw-w64 (SHLIB_LC): Likewise.
7557
7558 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
7559             Olivier Hainque  <hainque@adacore.com>
7560
7561         * config/i386/w32-unwind.h (i386_w32_fallback_frame_state): Fix regnum
7562         of EBP.  Do not restore reg #9.  Remove +1 adjustment to EIP and set
7563         fs->signal_frame instead.
7564
7565 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
7566
7567         * c-parser.c (cp_parser_objc_at_property_declaration): Removed
7568         parsing of RID_COPIES and RID_IVAR.
7569
7570 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
7571
7572         * c-parser.c (c_parser_objc_at_property_declaration): Recognize
7573         RID_ASSIGN, RID_COPY, RID_RETAIN, RID_READWRITE and RID_NONATOMIC.
7574         Do not use objc_set_property_attr, but use local variables
7575         instead.  Detect repeated usage of setter, getter and ivar
7576         attributes.  Improved error processing when a setter name does not
7577         end in ':'.  Do not check for CPP_CLOSE_PAREN after we determined
7578         that the token is a keyword.  Updated call to
7579         objc_add_property_declaration.
7580
7581 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
7582
7583         * c-parser.c (c_parser_objc_at_property): Renamed to
7584         c_parser_objc_at_property_declaration.  Updated calls to
7585         objc_add_property_variable, now objc_add_property_declaration.
7586         Code rewritten to be much more robust in recovering from syntax
7587         errors.  Added comments.
7588         (c_parser_objc_property_attrlist): Removed.
7589         (c_parser_external_declaration): Updated calls to
7590         c_parser_objc_at_property, now
7591         c_parser_objc_at_property_declaration.
7592         (c_parser_objc_methodprotolist): Same change.
7593
7594 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
7595
7596         * config/i386/i386.md (split_stack_return): Put back unspec_volatile.
7597
7598 2010-10-26  Jan Hubicka  <jh@suse.cz>
7599
7600         * ipa.c (process_references): Enqueue all referenced nodes;
7601         mark as reachable only non-external nodes.
7602         (cgraph_remove_unreachable_nodes): All referenced nodes should
7603         be enqueued; remove bogues node->needed check.
7604
7605 2010-10-26  Jan Hubicka  <jh@suse.cz>
7606
7607         * cgraphbuild.c (build_cgraph_edges): Use ipa-reference
7608         to represent OMP.
7609
7610 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
7611
7612         * config/i386/i386.md (split_stack_return): Replace
7613         unspec_volatile with unspec.
7614
7615 2010-10-26  Jonathan Wakely  <jwakely.gcc@gmail.com>
7616
7617         * doc/install.texi: Fix typo in --with-sysroot description.
7618
7619 2010-10-26  Jan Hubicka  <jh@suse.cz>
7620
7621         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
7622         Use info provided by linker plugin.
7623
7624 2010-10-26  Jason Merrill  <jason@redhat.com>
7625
7626         * varasm.c (constructor_static_from_elts_p): Don't require a
7627         CONSTRUCTOR to have elements to be suitable for static
7628         initialization.  Allow ARRAY_TYPE as well.
7629
7630 2010-10-26  Jan Hubicka  <jh@suse.cz>
7631
7632         PR middle-end/45736
7633         * cgraph.c (cgraph_set_readonly_flag): Rename to...
7634         (cgraph_set_const_flags) ... this one; get also looping argument;
7635         clear constructor/destructor flags.
7636         (cgraph_set_pure_flag): Likewise.
7637         (cgraph_set_looping_const_or_pure_flag): Remove.
7638         (cgraph_can_remove_if_no_direct_calls_and_refs): Do not try
7639         to optimize away static ctors/dtors; it does not work on inline clones;
7640         external functions can always be rmeoved.
7641         (cgraph_will_be_removed_from_program_if_no_direct_calls): Assert on
7642         inline clones; in LTO external functions always can go.
7643         (cgraph_used_from_object_file_p): Handle EXTERNAL functions correctly.
7644         (cgraph_mark_address_taken_node): Assert that we are not taking
7645         address of inline clone.
7646         (cgraph_can_remove_if_no_direct_calls_p): We always eventually remove
7647         external functions.
7648         * ipa-cp.c (ipcp_cloning_candidate_p): Do not clone functions with
7649         address taken.
7650         (ipcp_initialize_node_lattices): Only local functions can be
7651         handled without cloning.
7652         * cgraph.h (cgraph_set_readonly_flag,
7653         cgraph_set_looping_const_or_pure_flag): Remove.
7654         (cgraph_set_const_flag): Declare.
7655         (cgraph_set_pure_flag): Update.
7656         * ipa-pure-const (propagate_pure_const, local_pure_const): Update
7657         flags setting code.
7658         * ipa.c (cgraph_remove_unreachable_nodes): Fix formating; do not
7659         look at inline clones; fix handling of external definitions.
7660         (cgraph_postorder): Do not look at inline clones in the first pass.
7661         (function_and_variable_visibility): Drop constructors/destructor
7662         flags at pure and const functions.
7663         * tree-profile.c (tree_profiling): Update.
7664         * ipa-inline.c (cgraph_clone_inlined_nodes): Always clone functions with
7665         address taken; external functions do not account to whole program size.
7666         (cgraph_decide_inlining): Likewise; do not try to inline
7667         functions already inlined.
7668
7669 2010-10-26  Jie Zhang  <jie@codesourcery.com>
7670
7671         * doc/invoke.texi: Improve documentation of
7672         -fstrict-volatile-bitfields.
7673
7674 2010-10-26  Ira Rosen  <irar@il.ibm.com>
7675
7676         PR tree-optimization/46167
7677         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check that there
7678         is basic block for the statement.
7679
7680 2010-10-26  Paul Koning  <ni1d@arrl.net>
7681
7682         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Update to
7683         current definition of struct_real_format.
7684
7685 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
7686
7687         PR target/44948
7688         * config/i386/i386.c (ix86_old_function_arg_boundary): New.
7689         (ix86_function_arg_boundary): Always align parameters on stack
7690         in 64bit and align parameters with alignment >= 16byte on stack
7691         in 32bit.  Warn alignment change.
7692
7693 2010-10-26  Ian Lance Taylor  <iant@google.com>
7694
7695         PR middle-end/45687
7696         * ipa-prop.c (ipa_modify_call_arguments): Correct type of MEM_REF
7697         offset.
7698
7699 2010-10-25  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
7700
7701         Implement opaque-enum-specifiesr for C++0x
7702         * tree.h (ENUM_IS_OPAQUE): New.
7703         * dwarf2out.c (gen_enumeration_type_die): Use ENUM_IS_OPAQUE.
7704
7705 2010-10-26  Jie Zhang  <jie@codesourcery.com>
7706
7707         * stor-layout.c (layout_decl): Use the field's type to
7708         determine the mode and keep DECL_BIT_FIELD for a volatile bit-field.
7709         * config/arm/arm.c (arm_override_options): Default to
7710         -fstrict-volatile-bitfields.
7711
7712 2010-10-25  Paul Koning  <ni1d@arrl.net>
7713
7714         * config/pdp11/pdp11.md: Add define_constants for register
7715         numbers, branch offset limits.
7716         * config/pdp11/pdp11.c: Use named constants instead of numbers.
7717         * config/pdp11.pdp11.h: Ditto.
7718
7719 2010-10-25  Eric Botcazou  <ebotcazou@adacore.com>
7720
7721         * configure.ac: Use $cpu_type instead of $target to define the nop.
7722         * configure: Regenerate.
7723
7724 2010-10-25  Jie Zhang  <jie@codesourcery.com>
7725
7726         * combine.c (try_combine): If insns need to be kept around, check that
7727         they can be copied in the merged instruction.
7728
7729 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
7730
7731         * reg-stack.c (convert_regs_1): Return boolean value, true if the CFG
7732         has been modified.
7733         (convert_regs_2): Likewise.  Adjust calls to convert_regs_1.
7734         (convert_regs): Adjust calls to convert_regs_2.  Clean up the CFG if
7735         it has been modified.
7736
7737 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
7738
7739         * config/sparc/sparc.c (sparc_type_code) <NULLPTR_TYPE>: New case.
7740
7741 2010-10-24  Paul Koning  <ni1d@arrl.net>
7742
7743         * config/pdp11/pdp11.md: Change length attribute to be in bytes.
7744         * config/pdp11/pdp11.c (output_jump): Ditto.
7745
7746 2010-10-24  Ian Lance Taylor  <iant@google.com>
7747
7748         * config/i386/i386.c (ix86_va_start): Remove extraneous blank line.
7749
7750 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
7751
7752         * cfglayout.c (fixup_reorder_chain): When ensuring that there is at
7753         least one insn with a locus corresponding to an edge's goto_locus,
7754         disregard non-fallthru edges to the exit block and merge the blocks
7755         created for the same goto_locus.
7756
7757 2010-10-23  Joseph Myers  <joseph@codesourcery.com>
7758
7759         * gcc.c (n_switches_alloc_debug_check): New.
7760         (set_option_handlers): New.
7761         (process_command): Use set_option_handlers.
7762         (do_self_spec): Pass spec-generated options through option handlers.
7763         (main): Also save and restore n_switches_alloc when swapping
7764         switch arrays.
7765
7766 2010-10-23  Richard Henderson  <rth@redhat.com>
7767
7768         PR target/46144
7769         * config/i386/sse.md (*avx_absneg<AVXMODEF2P>2): New.
7770         (*sse_absneg<SSEMODEF2P>2): Rename from *absneg<VEC_FLOAT_MODE>2.
7771         Honor matching operands when splitting to XOR.
7772
7773 2010-10-23  Ian Lance Taylor  <iant@google.com>
7774
7775         * tree-vrp.c (extract_range_from_binary_expr): If
7776         flag_non_call_exceptions don't eliminate division by zero.
7777         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
7778
7779 2010-10-23  Nathan Froyd  <froydnj@codesourcery.com>
7780
7781         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
7782         __BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__, __ORDER_BIG_ENDIAN__, and
7783         __ORDER_PDP_ENDIAN__.
7784         * libgcc2.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7785         (struct DWstruct): Define based on __BYTE_ORDER__.
7786         * config/fixed-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7787         (struct INTstruct): Define based on __BYTE_ORDER__.
7788         * config/dfp-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7789         (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Test __BYTE_ORDER__.
7790         * system.h (LIBGCC2_WORDS_BIG_ENDIAN): Poison identifier.
7791         * config/arc/arc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7792         * config/arm/arm.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7793         * config/ia64/ia64.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7794         * config/iq2000/iq2000.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7795         * config/lm32/lm32.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7796         * config/m32r/m32r.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7797         * config/mcore/mcore.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7798         * config/mep/mep.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7799         * config/mips/mips.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7800         * config/rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7801         * config/rx/rx.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7802         * config/score/score.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7803         * config/sh/sh.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7804         * config/sparc/sparc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7805         * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7806         * doc/tm.texi.in (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
7807         * doc/tm.texi: Regenerate.
7808         * doc/cpp.texi (__BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__): Document.
7809         (__ORDER_BIG_ENDIAN__, __ORDER_PDP_ENDIAN__): Likewise.
7810
7811 2010-10-23  Jie Zhang  <jie@codesourcery.com>
7812
7813         PR rtl-optimization/37360
7814         * config/mips/mips.c (cached_can_issue_more): New local variable.
7815         (mips_sched_reorder_1): New.
7816         (mips_sched_reorder): Use mips_sched_reorder_1.
7817         (mips_sched_reorder2): New.
7818         (mips_variable_issue): Set cached_can_issue_more.
7819         (TARGET_SCHED_REORDER2): Define to mips_sched_reorder2
7820         instead of mips_sched_reorder.
7821
7822         Revert:
7823         2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
7824         PR rtl-optimization/37360
7825         * haifa-sched.c (max_issue): Do not assert that we never issue more
7826         insns than issue_rate.  Add comment.
7827
7828 2010-10-22  Eric Botcazou  <ebotcazou@adacore.com>
7829
7830         * gimplify.c (gimplify_variable_sized_compare): Preserve the source
7831         location info of the expression.
7832
7833 2010-10-22  DJ Delorie  <dj@redhat.com>
7834
7835         * doc/extend.texi (Named Address Spaces): Document the M32C named
7836         address space.
7837
7838         * config/m32c/m32c-pragma.c (m32c_register_pragmas): Register the
7839         __far address space.
7840         * config/m32c/m32c.h (ADDR_SPACE_FAR): New.  Add support for
7841         "__far" address space for R8C and M16C processor variants.
7842         * config/m32c/m32c.c (m32c_addr_space_legitimate_address_p): New.
7843         (far_addr_space_p): New.
7844         (encode_pattern_1): Add sign and zero extend support.
7845         (m32c_hard_regno_nregs_1): Large pointers in A16 mode are SImode.
7846         (m32c_extra_constraint_p2): Add SF constraint.
7847         (m32c_legitimate_address_p): Support __far addresses.
7848         (m32c_addr_space_pointer_mode): New.
7849         (m32c_addr_space_address_mode): New.
7850         (m32c_addr_space_legitimate_address_p): New.
7851         (m32c_addr_space_legitimize_address): New.
7852         (m32c_addr_space_subset_p): New.
7853         (m32c_addr_space_convert): New.
7854         (conversions): Add __far operand patterns.
7855         (m32c_prepare_move): Force constants into registers for __far moves.
7856         (m32c_split_move): __far moves are always split.
7857         * config/m32c/addsub.md (addsi3_1): Support SImode symbols.
7858         * config/m32c/mov.md (mov<mode>_far_op1): New.
7859         (mov<mode>_far_op2): New.
7860         (movqi_op): Add __far (SF) support.
7861         (movhi_op): Likewise.
7862         (movsi_splittable): Split A1A0 also.
7863
7864 2010-10-22  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
7865             Andrew Pinski  <pinskia@gmail.com>
7866
7867         * c-typeck.c (build_array_ref): Handle subscripting of vectors.
7868         * doc/extend.texi: New paragraph
7869
7870 2010-10-22  Paul Koning  <ni1d@arrl.net>
7871
7872         * config.pdp11/pdp11.h (DBX_DEBUGGING_INFO): Define.
7873
7874 2010-10-22  DJ Delorie  <dj@redhat.com>
7875
7876         * config/m32c/m32c-lib1.S (m32c_jsri16): Make reentrant.
7877
7878 2010-10-22  Paul Koning  <ni1d@arrl.net>
7879
7880         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Define.
7881
7882 2010-10-22  Richard Henderson  <rth@redhat.com>
7883
7884         * config/i386/i386.c (ix86_builtin_vectorized_function): Add
7885         cases for __builtin_fma and __builtin_fmaf.
7886
7887 2010-10-22  Richard Henderson  <rth@redhat.com>
7888
7889         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Produce
7890         NEG+USE for vectors as well.
7891         * config/i386/i386.md (*absneg<VEC_FLOAT_MODE>2): New pattern
7892         and splitter.
7893
7894 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
7895
7896         * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION,
7897         SWITCH_CURTAILS_COMPILATION): Remove.
7898         * doc/tm.texi.in (SWITCH_CURTAILS_COMPILATION): Remove documentation.
7899         * doc/tm.texi: Regenerate.
7900         * system.h (SWITCH_CURTAILS_COMPILATION): Poison.
7901
7902 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
7903
7904         * config/i386/bdver1.md: New file.
7905         * config/i386/i386.md (include "bdver1.md"): Invoke the
7906         pipeline description for bdver1.
7907         (x86_sahf_1): Add "bdver1_decode" attribute.
7908         (*cmpfp_i_mixed): Likewise.
7909         (*cmpfp_i_sse): Likewise.
7910         (*cmpfp_i_i387): Likewise.
7911         (*cmpfp_iu_mixed): Likewise.
7912         (*cmpfp_iu_sse): Likewise.
7913         (*cmpfp_iu_387): Likewise.
7914         (*swap<mode>,*swap<mode>_1): Likewise.
7915         (fixuns_trunc<mode>hi2): Likewise.
7916         (fix_trunc<mode>si_sse): Likewise.
7917         (x86_fnstcw_1): Likewise.
7918         (x86_fldcw_1): Likewise.
7919         (*floatsi<mode>2_vector_mixed_with_temp): Likewise.
7920         (*floatsi<mode>2_vector_mixed): Likewise.
7921         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Likewise.
7922         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
7923         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
7924         (*floatsi<mode>2_vector_sse_with_temp): Likewise.
7925         (*floatsi<mode>2_vector_sse): Likewise.
7926         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Likewise.
7927         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
7928         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
7929         (*mul<mode>3_1): Likewise.
7930         (*mulsi3_1_zext): Likewise.
7931         (*mulhi3_1): Likewise.
7932         (*mulqi3_1): Likewise.
7933         (*<u>mul<mode><dwi>3_1): Likewise.
7934         (*<u>mulqihi3_1): Likewise.
7935         (*<s>muldi3_highpart_1): Likewise.
7936         (*<s>mulsi3_highpart_1): Likewise.
7937         (*<s>mulsi3_highpart_zext): Likewise.
7938         (x86_64_shld): Likewise.
7939         (x86_shld): Likewise.
7940         (x86_64_shrd): Likewise.
7941         (x86_shrd): Likewise.
7942         (sqrtxf2): Likewise.
7943         (sqrt_extend<mode>xf2_i387): Likewise.
7944         (*sqrt<mode>2_sse): Likewise.
7945         * config/i386/sse.md (sse_cvtsi2ss): Add "bdver1_decode" attribute.
7946         (sse_cvtsi2ssq): Likewise.
7947         (sse_cvtss2si): Likewise.
7948         (sse_cvtss2si_2): Likewise.
7949         (sse_cvtss2siq): Likewise.
7950         (sse_cvtss2siq_2): Likewise.
7951         (sse_cvttss2si): Likewise.
7952         (sse_cvttss2siq): Likewise.
7953         (sse2_cvtpi2pd): Likewise.
7954         (sse2_cvttpd2pi): Likewise.
7955         (sse2_cvtsi2sd): Likewise.
7956         (sse2_cvtsi2sdq): Likewise.
7957         (sse2_cvtsd2si): Likewise.
7958         (sse2_cvtsd2si_2): Likewise.
7959         (sse2_cvtsd2siq): Likewise.
7960         (sse2_cvtsd2siq_2): Likewise.
7961         (sse2_cvttsd2si): Likewise.
7962         (sse2_cvttsd2siq): Likewise.
7963         (*sse2_cvtpd2dq): Likewise.
7964         (*sse2_cvttpd2dq): Likewise.
7965         (sse2_cvtsd2ss): Likewise.
7966         (sse2_cvtss2sd): Likewise.
7967         (*sse2_cvtpd2ps): Likewise.
7968         (sse2_cvtps2pd): Likewise.
7969
7970 2010-10-22  Richard Guenther  <rguenther@suse.de>
7971
7972         PR middle-end/46137
7973         * gimple-fold.c (gimplify_and_update_call_from_tree): Properly
7974         remove the virtual operands if they are not needed.
7975
7976 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
7977
7978         * config/i386/i386.c (processor_costs bdver1_cost): Update
7979         insn costs and architectural parameters for bdver1.
7980
7981 2010-10-22  Richard Guenther  <rguenther@suse.de>
7982
7983         * gimple.h (gimple_register_canonical_type): Declare.
7984         * gimple.c (gimple_canonical_types): New global hashtable.
7985         (struct gimple_type_leader_entry_s): New type.
7986         (gimple_type_leader): New global cache.
7987         (gimple_lookup_type_leader): New function.
7988         (gtc_visit): Query the proper cache.
7989         (gimple_types_compatible_p): Likewise.
7990         (gimple_register_type): Use the new cache instead of TYPE_CANONICAL.
7991         (gimple_canonical_type_eq): New function.
7992         (gimple_register_canonical_type): Likewise.
7993         (print_gimple_types_stats): Adjust for gimple_canonical_types.
7994         (free_gimple_type_tables): Likewise.  Free gimple_type_leader.
7995         * tree-ssa.c (useless_type_conversion_p): Do not dispatch to
7996         gimple_types_compatible_p for LTO.
7997
7998 2010-10-22  Uros Bizjak  <ubizjak@gmail.com>
7999
8000         PR target/46098
8001         * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
8002         Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
8003         (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
8004         (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
8005         (<sse>_movu<ssemodesuffix>): New expander.
8006         (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
8007         (avx_movdqu<avxmodesuffix>): New expander.
8008         (*sse2_movdqu): Rename from sse2_movdqu.
8009         (sse2_movdqu): New expander.
8010
8011 2010-10-22  Richard Guenther  <rguenther@suse.de>
8012
8013         PR tree-optimization/45720
8014         * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
8015         Handle negative step.
8016         (vect_enhance_data_refs_alignment): Likewise.
8017         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Likewise.
8018         (vect_create_cond_for_align_checks): Likewise.
8019         (vect_create_cond_for_alias_checks): Likewise.
8020
8021 2010-10-22  Ira Rosen  <irar@il.ibm.com>
8022
8023         PR tree-optimization/46126
8024         * tree-vect-stmts.c (vect_analyze_stmt): Pass NODE to
8025         vectorizable_shift in case of basic block vectorization.
8026
8027 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
8028
8029         * target.h (enum opt_levels, struct default_options): New.
8030         * target.def (handle_ofast): Remove hook.
8031         (target_option.optimization): Change to
8032         target_option.optimization_table.
8033         * doc/tm.texi.in (TARGET_OPTION_OPTIMIZATION): Change to
8034         TARGET_OPTION_OPTIMIZATION_TABLE.
8035         (CAN_DEBUG_WITHOUT_FP): Remove.
8036         * doc/tm.texi: Regenerate.
8037         * opts.c (maybe_default_option, maybe_default_options,
8038         default_options_table): New.
8039         (default_options_optimization): Take extra parameters.  Don't
8040         assert that global_options and global_options_set are in use.  Use
8041         maybe_default_options.
8042         (decode_options): Pass extra parameters to
8043         default_options_optimization.
8044         * common.opt (falign-loops): Use value 0 with Var.
8045         (frerun-cse-after-loop, ftree-ter): Remove Init.
8046         * system.h (CAN_DEBUG_WITHOUT_FP, TARGET_HANDLE_OFAST,
8047         TARGET_OPTION_OPTIMIZATION): Remove.
8048         * targhooks.c (empty_optimization_table): New.
8049         * targhooks.h (empty_optimization_table): Declare.
8050         * toplev.c (process_options): Don't set flag_rerun_cse_after_loop.
8051         * config/alpha/alpha.c (alpha_option_optimization_table,
8052         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8053         * config/alpha/alpha.h (CAN_DEBUG_WITHOUT_FP): Remove.
8054         * config/arm/arm.c (arm_option_optimization: Change to
8055         arm_option_optimization_table.
8056         (TARGET_OPTION_OPTIMIZATION): Change to
8057         TARGET_OPTION_OPTIMIZATION_TABLE.
8058         * config/arm/arm.h (CAN_DEBUG_WITHOUT_FP): Remove.
8059         * config/avr/avr.c (avr_option_optimization_table,
8060         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8061         * config/avr/avr.h (CAN_DEBUG_WITHOUT_FP): Remove.
8062         * config/cris/cris.c (cris_option_optimization): Change to
8063         cris_option_optimization_table.
8064         (TARGET_OPTION_OPTIMIZATION): Change to
8065         TARGET_OPTION_OPTIMIZATION_TABLE.
8066         * config/crx/crx.c (crx_option_optimization): Change to
8067         crx_option_optimization_table.
8068         (TARGET_OPTION_OPTIMIZATION): Change to
8069         TARGET_OPTION_OPTIMIZATION_TABLE.
8070         * config/crx/crx.h (CAN_DEBUG_WITHOUT_FP): Remove.
8071         * config/fr30/fr30.c (fr30_option_optimization_table,
8072         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8073         * config/fr30/fr30.h (CAN_DEBUG_WITHOUT_FP): Remove.
8074         * config/frv/frv.c (frv_option_optimization_table,
8075         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8076         * config/frv/frv.h (CAN_DEBUG_WITHOUT_FP): Remove.
8077         * config/h8300/h8300.c (h8300_option_optimization): Change to
8078         h8300_option_optimization_table.
8079         (TARGET_OPTION_OPTIMIZATION): Change to
8080         TARGET_OPTION_OPTIMIZATION_TABLE.
8081         * config/h8300/h8300.h (CAN_DEBUG_WITHOUT_FP): Remove.
8082         * config/i386/i386.c (ix86_option_optimization): Change to
8083         ix86_option_optimization_table.
8084         (TARGET_OPTION_OPTIMIZATION): Change to
8085         TARGET_OPTION_OPTIMIZATION_TABLE.
8086         * config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
8087         as initializer.
8088         * config/ia64/ia64.c (ia64_option_optimization): Change to
8089         ia64_option_optimization_table.
8090         (TARGET_OPTION_OPTIMIZATION): Change to
8091         TARGET_OPTION_OPTIMIZATION_TABLE.
8092         * config/ia64/ia64.h (CAN_DEBUG_WITHOUT_FP): Remove.
8093         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define as
8094         initializer.
8095         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
8096         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8097         * config/iq2000/iq2000.h (CAN_DEBUG_WITHOUT_FP): Remove.
8098         * config/lm32/lm32.c (lm32_option_optimization_table,
8099         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8100         * config/lm32/lm32.h (CAN_DEBUG_WITHOUT_FP): Remove.
8101         * config/m32r/m32r.c (m32r_option_optimization): Change to
8102         m32r_option_optimization_table.
8103         (TARGET_OPTION_OPTIMIZATION): Change to
8104         TARGET_OPTION_OPTIMIZATION_TABLE.
8105         * config/m32r/m32r.h (SUBTARGET_OPTIMIZATION_OPTIONS,
8106         CAN_DEBUG_WITHOUT_FP): Remove.
8107         * config/mcore/mcore.c (mcore_option_optimization): Change to
8108         mcore_option_optimization_table.
8109         (TARGET_OPTION_OPTIMIZATION): Change to
8110         TARGET_OPTION_OPTIMIZATION_TABLE.
8111         * config/mep/mep.c (mep_option_optimization): Change to
8112         mep_option_optimization_table.
8113         (TARGET_OPTION_OPTIMIZATION): Change to
8114         TARGET_OPTION_OPTIMIZATION_TABLE.
8115         * config/mep/mep.h (CAN_DEBUG_WITHOUT_FP): Remove.
8116         * config/microblaze/microblaze.c
8117         (microblaze_option_optimization_table,
8118         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8119         * config/microblaze/microblaze.h (CAN_DEBUG_WITHOUT_FP): Remove.
8120         * config/mips/mips.c (mips_option_optimization_table,
8121         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8122         * config/mips/mips.h (CAN_DEBUG_WITHOUT_FP): Remove.
8123         * config/mmix/mmix.c (mmix_option_optimization): Change to
8124         mmix_option_optimization_table.
8125         (TARGET_OPTION_OPTIMIZATION): Change to
8126         TARGET_OPTION_OPTIMIZATION_TABLE.
8127         * config/mmix/mmix.h (CAN_DEBUG_WITHOUT_FP): Remove.
8128         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
8129         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8130         * config/mn10300/mn10300.h (CAN_DEBUG_WITHOUT_FP): Remove.
8131         * config/pa/pa.c (pa_option_optimization_table,
8132         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8133         * config/pa/pa.h (CAN_DEBUG_WITHOUT_FP): Remove.
8134         * config/pdp11/pdp11.c (pdp11_option_optimization): Change to
8135         pdp11_option_optimization_table.
8136         (TARGET_OPTION_OPTIMIZATION): Change to
8137         TARGET_OPTION_OPTIMIZATION_TABLE.
8138         * config/picochip/picochip.c (picochip_option_optimization_table,
8139         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8140         * config/picochip/picochip.h (CAN_DEBUG_WITHOUT_FP): Remove.
8141         * config/rs6000/rs6000.c (rs6000_option_optimization_table,
8142         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8143         * config/rs6000/rs6000.h (CAN_DEBUG_WITHOUT_FP): Remove.
8144         * config/rx/rx.c (rx_option_optimization_table,
8145         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8146         * config/rx/rx.h (CAN_DEBUG_WITHOUT_FP): Remove.
8147         * config/s390/s390.c (s390_option_optimization): Change to
8148         s390_option_optimization_table.
8149         (s390_option_override): Update comment.
8150         (TARGET_OPTION_OPTIMIZATION): Change to
8151         TARGET_OPTION_OPTIMIZATION_TABLE.
8152         * config/s390/s390.h (CAN_DEBUG_WITHOUT_FP): Remove.
8153         * config/score/score.c (score_option_optimization_table,
8154         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8155         * config/score/score.h (CAN_DEBUG_WITHOUT_FP): Remove.
8156         * config/sh/sh.c (sh_option_optimization): Change to
8157         sh_option_optimization_table.
8158         (TARGET_OPTION_OPTIMIZATION): Change to
8159         TARGET_OPTION_OPTIMIZATION_TABLE.
8160         (sh_option_override): Set MASK_SAVE_ALL_TARGET_REGS here.
8161         (sh_option_override, expand_block_move, multcosts, find_barrier,
8162         barrier_align): Use optimize_size instead of TARGET_SMALLCODE.
8163         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Remove.
8164         (LOOP_ALIGN, TRAMPOLINE_ALIGNMENT, MOVE_BY_PIECES_P,
8165         STORE_BY_PIECES_P, SH_DYNAMIC_SHIFT_COST): Use optimize_size
8166         instead of TARGET_SMALLCODE.
8167         * config/sh/sh.opt (mspace): Make into an alias for -Os.
8168         * config/sparc/sparc.c (sparc_option_optimization_table,
8169         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8170         * config/sparc/sparc.h (CAN_DEBUG_WITHOUT_FP): Remove.
8171         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
8172         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8173         * config/stormy16/stormy16.h (CAN_DEBUG_WITHOUT_FP): Remove.
8174         * config/v850/v850.c (v850_option_optimization): Change to
8175         v850_option_optimization_table.
8176         (TARGET_OPTION_OPTIMIZATION): Change to
8177         TARGET_OPTION_OPTIMIZATION_TABLE.
8178         * config/v850/v850.h (CAN_DEBUG_WITHOUT_FP): Remove.
8179         * config/xtensa/xtensa.c (xtensa_option_optimization): Change to
8180         xtensa_option_optimization_table.
8181         (TARGET_OPTION_OPTIMIZATION): Change to
8182         TARGET_OPTION_OPTIMIZATION_TABLE.
8183         * config/xtensa/xtensa.h (CAN_DEBUG_WITHOUT_FP): Remove.
8184
8185 2010-10-21  Iain Sandoe  <iains@gcc.gnu.org>
8186
8187         Based on the CFString implementation in FSF apple/trunk branch.
8188
8189         * target.def (objc_construct_string): New Hook.
8190         * doc/tm.texi (objc_construct_string): Document.
8191         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING): New.
8192         * config/t-darwin: Amend build rules for darwin.o.
8193         * config/darwin.opt: Add cfstrings flags.
8194         * config/darwin-c.c: Define __CONSTANT_CFSTRINGS__.
8195         (darwin_objc_construct_string): New.
8196         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Define.
8197         * config/i386/i386.c (ix86_init_builtins): Add SUBTARGET_INIT_BUILTINS.
8198         * config/darwin-protos.h (darwin_init_cfstring_builtins): New prototype.
8199         (darwin_fold_builtin): Likewise.
8200         (darwin_build_constant_cfstring): Likewise.
8201         (darwin_objc_construct_string): Likewise.
8202         (darwin_cfstring_p): Likewise.
8203         (darwin_enter_string_into_cfstring_table): Likewise.
8204         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS) Update for CFString.
8205         * config/darwin.c (darwin_running_cxx): New var.
8206         (machopic_select_section): Return cfstring_constant_object_section.
8207         (darwin_override_options): Set darwin_running_cxx.
8208         (add_builtin_field_decl): New.
8209         (darwin_init_cfstring_builtins): New.
8210         (darwin_build_constant_cfstring): New.
8211         (darwin_fold_builtin): New.
8212         (cfstring_hash): New.
8213         (cfstring_eq): New.
8214         (darwin_enter_string_into_cfstring_table): New.
8215         * config/darwin-sections.def (cfstring_constant_object_section): New.
8216         * config/darwin.h (TARGET_FOLD_BUILTIN): Define.
8217         (TARGET_OBJC_CONSTRUCT_STRING): Define.
8218
8219 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
8220
8221         * config/alpha/alpha.c (alpha_build_builtin_va_list): Use
8222         TYPE_STUB_DECL instead of TREE_CHAIN.
8223         * config/i386/i386.c (ix86_build_builtin_va_list_abi): Likewise.
8224         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Likewise.
8225         * config/s390/s390.c (s390_build_builtin_va_list): Likewise.
8226         * config/sh/sh.c (sh_build_builtin_va_list): Likewise.
8227         * config/spu/spu.c (spu_build_builtin_va_list): Likewise.
8228         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list):
8229         Likewise.
8230         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Likewise.
8231
8232 2010-10-22  Jie Zhang  <jie@codesourcery.com>
8233
8234         * expr.c (emit_group_load_1): Update calls to extract_bit_field.
8235         (copy_blkmode_from_reg): Likewise.
8236         (read_complex_part): Likewise.
8237         (expand_expr_real_1): Calculate packedp and pass it to
8238         extract_bit_field.
8239         * expr.h (extract_bit_field): Update declaration.
8240         * calls.c (store_unaligned_arguments_into_pseudos): Update call
8241         to extract_bit_field.
8242         * expmed.c (extract_fixed_bit_field): Update calls to
8243         extract_fixed_bit_field.
8244         (store_split_bit_field): Likewise.
8245         (extract_bit_field_1): Add new argument packedp.
8246         (extract_bit_field): Add new argument packedp.
8247         (extract_fixed_bit_field): Add new argument packedp and let
8248         packed attribute override volatile.
8249         * stmt.c (expand_return): Update call to extract_bit_field.
8250
8251 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
8252
8253         * config/spu/spu.c (spu_function_arg): Dereference CUM parameter.
8254
8255 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
8256
8257         * ddg.c (add_cross_iteration_register_deps): Call gcc_assert instead
8258         of gcc_checking_assert.
8259         * sel-sched.c (code_motion_process_successors): Likewise.
8260
8261 2010-10-21  Eric Botcazou  <ebotcazou@adacore.com>
8262
8263         * cfgcleanup.c (try_forward_edges): Do not throw away previous steps
8264         when stopping because of a different locus on edge or insn.
8265         (try_optimize_cfg): Add comment.
8266         * cfgrtl.c (rtl_merge_blocks): Tweak log message.  If the destination
8267         block is a forwarder block, propagate locus on the edge.
8268         (cfg_layout_merge_blocks): Likewise.
8269
8270 2010-10-21  Uros Bizjak  <ubizjak@gmail.com>
8271
8272         PR target/45946
8273         * config/i386/i386.md (*pushti2): New insn pattern.
8274         (pushti2 splitter): New insn splitter.
8275         (*push<mode>2): Macroize insn pattern from *push{di,ti}2 using
8276         DWI mode iterator.
8277
8278 2010-10-21  Paul Koning  <ni1d@arrl.net>
8279
8280         * config/pdp11/pdp11-protos.md (arith_operand,
8281         const_immediate_operand, expand_shift_operand,
8282         immediate15_operand): Delete
8283         * config/pdp11/pdp11.c: Ditto.
8284         * config/pdp11/pdp11.h (REG_CLASS_FROM_LETTER,
8285         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
8286         EXTRA_CONSTRAINT): Delete.
8287         * config/pdp11/pdp11.md (various): Use standard constraints
8288         instead of removed ones.
8289         * config/pdp11/constraints.md: New file.
8290         * config/pdp11/predicates.md: New file.
8291
8292 2010-10-21  Bingfeng Mei  <bmei@broadcom.com>
8293
8294         PR c/45834
8295         * alias.c (true_dependence_1): Remove obsolete check for QImode.
8296         (may_alias_p): Ditto.
8297
8298 2010-10-21  Martin Jambor  <mjambor@suse.cz>
8299
8300         PR tree-optimization/45875
8301         * tree.c (get_binfo_at_offset): Remove initial zero offset test.
8302
8303 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
8304
8305         * tree-into-ssa.c (rewrite_update_enter_block): Remove unused
8306         variables.
8307         (create_new_def_for): Likewise.
8308
8309 2010-10-21  Nick Clifton  <nickc@redhat.com>
8310
8311         * config/mn10300/mn10300.c: Fold code to 80-character width.
8312         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
8313         MEM, CONST_INT and CONST_DOUBLE.
8314         (targetm): Move initialization to end of file.
8315         (print_operand): Rename to mn10300_print_operand.
8316         (print_operand_address): Rename to mn10300_print_operand_address.
8317         (can_use_return_insn): Rename to mn10300_can_use_return_insn.
8318         (expand_prologue): Rename to mn10300_expand_prologue.
8319         (expand_epilogue): Rename to mn10300_expand_epilogue.
8320         (initial_offset): Rename to mn10300_initial_offset.
8321         (function_arg): Rename to mn10300_function_arg.
8322         (mask_ok_for_mem_btst): Rename to mn10300_mask_ok_for_mem_btst.
8323         (symbolic_operand): Rename to mn10300_symbolic_operand.
8324         (legitimize_pic_address): Rename to mn10300_legitimize_pic_address.
8325         (legitimate_pic_operand_p): Rename to mn10300_legitimate_pic_operand_p.
8326         * config/mn10300/mn10300-protos.h: Update prototypes.
8327         * config/mn10300/mn10300.h: Fold code to 80-character width.
8328         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
8329         MEM, CONST_INT and CONST_DOUBLE.
8330         (CPP_SPEC): Move to...
8331         (TARGET_CPU_CPP_BUILTINS): ... here.
8332         * config/mn10300/mn10300.md: Fold code to 80-character width.
8333         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
8334         MEM, CONST_INT and CONST_DOUBLE.
8335
8336 2010-10-21  Ira Rosen  <irar@il.ibm.com>
8337
8338         PR tree-optimization/46049
8339         PR tree-optimization/46052
8340         * tree-vectorizer.h (enum stmt_vec_info_type): Add new value for shift.
8341         (vect_get_slp_defs): Add arguments.
8342         * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass scalar
8343         operands to vect_get_slp_defs.
8344         (vectorizable_reduction): Fix comment, pass scalar operands to
8345         vect_get_slp_defs.
8346         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use operand's
8347         type to determine number of units in the created vector.
8348         (vect_get_vec_defs): Pass scalar operands to vect_get_slp_defs.
8349         (vectorizable_conversion): Fix comment.
8350         (vectorizable_shift): New function.
8351         (vectorizable_operation): Move code that handles shifts to
8352         vectorizable_shift.
8353         (vectorizable_type_demotion): Fix comment, pass scalar operands to
8354         vect_get_slp_defs.
8355         (vectorizable_type_promotion, vectorizable_store): Likewise.
8356         (vectorizable_condition): Fix comment.
8357         (vect_analyze_stmt): Call vectorizable_shift.
8358         (vect_transform_stmt): Likewise.
8359         * tree-vect-slp.c (vect_get_constant_vectors): Add new argument.
8360         Use it as the operand to create vectors for, except reduction
8361         initial definition and store.  Use operands type.
8362         (vect_get_slp_defs): Add new arguments.  Pass them to
8363          vect_get_constant_vectors.
8364
8365 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
8366
8367         * basic-block.h (single_succ_edge): Use gcc_checking_assert.
8368         (single_pred_edge, ei_container, ei_next, ei_prev): Likewise.
8369         * cfghooks.c (fixup_reorder_chain): Likewise.
8370         * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
8371         * cgraph.c (cgraph_add_thunk): Likewise.
8372         (cgraph_create_edge_1): Likewise.
8373         (cgraph_create_virtual_clone): Likewise.
8374         * ddg.c (add_cross_iteration_register_deps): Likewise.
8375         * dwarf2out.c (modified_type_die): Likewise.
8376         * emit-rtl.c (set_mem_alias_set): Likewise.
8377         * ggc-zone.c (zone_allocate_marks): Likewise.
8378         * gimple-iterator.c (gsi_move_to_bb_end): Likewise.
8379         * gimple.c (iterative_hash_gimple_type): Likewise.
8380         * graphite-scop-detection.c (create_single_entry_edge): Likewise.
8381         (create_single_exit_edge): Likewise.
8382         * haifa-sched.c (choose_ready): Likewise.
8383         * lto-streamer-in.c (input_gimple_stmt): Likewise.
8384         * passes.c (execute_todo): Likewise.
8385         * sched-ebb.c (begin_schedule_ready): Likewise.
8386         * sel-sched.c (code_motion_process_successors): Likewise.
8387         * tree-call-cdce.c (gen_conditions_for_pow): Likewise.
8388         * tree-cfg-cleanup.c (tree_forwarder_block_p): Likewise.
8389         * tree-flow-inline.h (link_imm_use, move_use_after_head): Likewise.
8390         (phi_arg_index_from_use, phi_ssa_name_p): Likewise.
8391         * tree-into-ssa.c (insert_updated_phi_nodes_for): Likewise.
8392         * tree-ssa-coalesce.c (ssa_conflicts_test_p): Likewise.
8393         (ssa_conflicts_add): Likewise.
8394         * tree-ssa-copy.c (replace_exp): Likewise.
8395         * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
8396         * tree-ssa-forwprop.c (simple_gimple_switch): Likewise.
8397         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
8398         * tree-ssa-pre.c (bitmap_value_insert_into_set): Likewise.
8399         (compute_antic): Likewise.
8400         * tree-ssa-ter.c (add_to_partition_kill_list): Likewise.
8401         (add_dependence): Likewise.
8402         (process_replaceable, kill_expr, find_replaceable_exprs): Likewise.
8403         * tree-vrp.c (supports_overflow_infinity): Likewise.
8404         (make_overflow_infinity, negative_overflow_infinity): Likewise.
8405         (avoid_overflow_infinity, register_new_assert_for): Likewise.
8406         (process_assert_insertions_for): Likewise.
8407         * var-tracking.c (dv_is_value_p, dv_as_decl, dv_from_decl): Likewise.
8408         (dv_from_value, variable_union, find_loc_in_1pdv): Likewise.
8409         (intersect_loc_chains, variable_merge_over_cur): Likewise.
8410
8411 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
8412
8413         * cfgloop.c (flow_loops_find): Call bb_has_abnormal_pred.
8414         * reload1.c (has_nonexceptional_receiver): Likewise.
8415         * tree-into-ssa.c (rewrite_update_enter_block): Likewise.
8416         (create_new_def_for): Likewise.
8417         * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
8418         (merge_phi_nodes): Likewise.
8419         (has_abnormal_incoming_edge_p): Delete.
8420
8421 2010-10-21  H.J. Lu  <hongjiu.lu@intel.com>
8422
8423         * config/i386/sse.md (ssescalarmodesuffix): Add V8SI and V4DI.
8424
8425 2010-10-21  Richard Guenther  <rguenther@suse.de>
8426             Michael Matz  <matz@suse.de>
8427
8428         PR tree-optimization/45764
8429         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
8430         Adjust initial misalignment for negative DR_STEP.
8431         (vect_find_same_alignment_drs): Two DRs with different DR_STEP
8432         do not have the same alignment over the whole iteration domain.
8433
8434 2010-10-21  Richard Guenther  <rguenther@suse.de>
8435
8436         PR tree-optimization/46111
8437         * tree-parloops.c (take_address_of): Re-organize for MEM_REF.
8438
8439 2010-10-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8440
8441         * config/s390/s390.md (*xordi3_cc): Mark xgrk as z196 only.
8442
8443 2010-10-21  Tristan Gingold  <gingold@adacore.com>
8444
8445         * config/vms/vms-crtl.h (CRTL_NAMES): Add new translations.
8446         * config/vms/vms-crtl-64.h (CRTL_NAMES): Ditto.
8447
8448 2010-10-21  Tristan Gingold  <gingold@adacore.com>
8449
8450         * config/alpha/vms-unwind.h (alpha_vms_fallback_frame_state): Set
8451         signal_frame.
8452         * config/alpha/alpha.c (alpha_function_arg): Adjust call.
8453
8454 2010-10-21  Tristan Gingold  <gingold@adacore.com>
8455
8456         * config/ia64/vms64.h (TARGET_DEFAULT): Add MASK_FUSED_MADD.
8457         * config/ia64/vms.h (TARGET_DEFAULT): Ditto.
8458
8459 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
8460
8461         * basic-block.h (find_fallthru_edge): Define.
8462         * cfgcleanup.c (merge_blocks_move): Use it.
8463         (try_crossjump_bb): Likewise.
8464         * cfglayout.c (fixup_reorder_chains): Likewise.
8465         (fixup_fallthru_exit_predecessor): Likewise.
8466         * cfgrtl.c (rtl_split_edge): Likewise.
8467         (rtl_verify_flow_info): Likewise.
8468         * function.c (thread_prologue_and_epilogue_insns): Likewise.
8469         * gimple-pretty-print.c (dump_implicit_edges): Likewise.
8470         * ifcvt.c (block_fallthru): Likewise.
8471         * reload1.c (fixup_abnormal_edges): Likewise.
8472         * sched-ebb.c (being_schedule_ready): Likewise.
8473         (schedule_ebb): Likwise.
8474         * sched-rgn.c (find_single_block_region): Likewise.
8475         * sel-sched-ir.c (bb_ends_ebb_p): Likewise.
8476         * tree-complex.c (expand_complex_move): Likewise.
8477         * sched-int.h (find_fallthru_edge): Rename to...
8478         (find_fallthru_edge_from): ...this.
8479         * haifa-sched.c (find_fallthru_edge): Rename to...
8480         (find_fallthru_edge_from): ...this.  Use new find_fallthru_edge.
8481         (init_before_recovery): Call find_fallthru_edge_from.
8482         * sel-sched-ir.c (merge_fences): Likewise.
8483         * sel-sched.c (in_fallthru_bb_p): Likewise.
8484         (move_cond_jump): Likewise.
8485
8486 2010-10-20  Paul Koning  <ni1d@arrl.net>
8487
8488         * config/pdp11/pdp11.md (various): Fix conditions on a number of
8489         insn to check for target 11/40 or higher.
8490
8491 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
8492
8493         * parser.c (c_parser_objc_method_type): Mark inline.  Return a
8494         bool instead of a tree.
8495         (c_parser_objc_method_decl): Added bool argument.  Updated call to
8496         objc_build_method_signature.
8497         (c_parser_objc_method_definition): Do not call
8498         objc_set_method_type.  Updated calls to c_parser_objc_method_type,
8499         c_parser_objc_method_decl and objc_start_method_definition.
8500         (c_parser_objc_methodproto): Do not call objc_set_method_type.
8501         Updated calls to c_parser_objc_method_type,
8502         c_parser_objc_method_decl and objc_add_method_declaration.
8503
8504 2010-10-20  Jakub Jelinek  <jakub@redhat.com>
8505
8506         PR tree-optimization/45919
8507         * tree-ssa-ccp.c (fold_nonarray_ctor_reference): Handle flexible
8508         array members.
8509
8510         PR tree-optimization/46066
8511         * tree-parloops.c (create_parallel_loop): Use gsi_last_nondebug_bb
8512         instead of gsi_last_bb.
8513
8514 2010-10-20  DJ Delorie  <dj@redhat.com>
8515
8516         * config/m32c/m32c.c (m32c_option_override): Always disable
8517         function-cse in 16-bit mode.  Indirect calls are always worse than
8518         direct calls as there is no 16-bit indirect call opcode.
8519         (m32c_override_options_after_change): New, likewise.
8520
8521 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
8522
8523         * ifcvt.c (noce_emit_cmove): If both of the values are SUBREGs, try
8524         emitting the conditional move in the inner mode of the SUBREG.
8525
8526 2010-10-20  Anatoly Sokolov  <aesok@post.ru>
8527
8528         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Remove macros.
8529         * config/ia64/ia64-protos.h (ia64_preferred_reload_class): Remove.
8530         * config/ia64/ia64.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
8531         (ia64_preferred_reload_class): Make static.  Change rclass argument
8532         and result types from enum reg_class to reg_class_t.
8533
8534 2010-10-20  Pat Haugen  <pthaugen@us.ibm.com>
8535
8536         * tree-ssa-ter.c (find_replaceable_in_bb): Allow replacement over
8537         call for single operand expression.
8538
8539 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
8540
8541         * tree-optimize.c (execute_fixup_cfg): Purge dead abnormal call edges
8542         if there is a call statement to pure or const function in the block.
8543
8544 2010-10-20  Paul Koning  <pkoning@equallogic.com>
8545
8546         Fix several build errors for pdp11 target.
8547         * config/pdp11/pdp11.md (*cmpdf): Fix tstd operands.
8548         (cbranchdf4): Conditional on TARGET_FPU.
8549         (movdf): Ditto; correct alternatives check.
8550         (movmemhi): Fix predicate and constraint.
8551         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Handle 64 bit mode.
8552
8553 2010-10-20  Richard Guenther  <rguenther@suse.de>
8554
8555         PR lto/45667
8556         * lto-streamer-out.c (output_gimple_stmt): Fix typo.
8557         * tree-cfg.c (verify_gimple_call): Properly get the call fndecl.
8558         (verify_gimple_assign_single): Disable ADDR_EXPR type check
8559         when in LTO.
8560
8561 2010-10-20  Vladimir Makarov  <vmakarov@redhat.com>
8562
8563         PR fortran/42169
8564         * ira-emit.c (store_can_be_removed_p): Return false instead of
8565         gcc_unreachable.
8566
8567 2010-10-20  Dmitry Melnik  <dm@ispras.ru>
8568
8569         * fold-const.c (fold_binary_loc): New transformation.
8570
8571 2010-10-20  H.J. Lu  <hongjiu.lu@intel.com>
8572
8573         PR target/46085
8574         * config/i386/sse.md (reduc_splus_v8sf): Updated.
8575         (reduc_splus_v4df): Likewise.
8576
8577 2010-10-20  Richard Guenther  <rguenther@suse.de>
8578
8579         PR tree-optimization/45860
8580         * tree-ssa-phiopt.c (cond_store_replacement): Do not do
8581         conditional store replacement for non-register type stores.
8582
8583 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
8584
8585         * stor-layout.c (skip_simple_constant_arithmetic): New function.
8586         (self_referential_size): Use it instead of skip_simple_arithmetic.
8587
8588 2010-10-20  Olivier Hainque  <hainque@adacore.com>
8589
8590         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p):
8591         If the current function calls eh_return, claim live all registers
8592         that we need to check for liveness otherwise.
8593
8594 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
8595
8596         * c-decl.c (c_write_global_declarations): Call
8597         objc_write_global_declarations when compiling Objective-C.
8598         * c-lang.c (finish_file): Removed.
8599
8600 2010-10-19  DJ Delorie  <dj@redhat.com>
8601
8602         * doc/tm.texi.in (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): New.
8603         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Change to hook.
8604         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
8605         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
8606         * doc/tm.texi: Regenerate.
8607         * targhooks.h (default_label_align_after_barrier_max_skip,
8608         default_loop_align_max_skip, default_label_align_max_skip,
8609         default_jump_align_max_skip): Declare.
8610         * target.def (label_align_after_barrier_max_skip): New.
8611         (loop_align_max_skip): New.
8612         (label_align_max_skip): New.
8613         (jump_align_max_skip): New.
8614         * system.h (poison): Add those macros to the list.
8615         * final.c (LABEL_ALIGN_MAX_SKIP): Remove.
8616         (LOOP_ALIGN_MAX_SKIP): Remove.
8617         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Remove.
8618         (JUMP_ALIGN_MAX_SKIP): Remove.
8619         (default_label_align_after_barrier_max_skip): New.
8620         (default_loop_align_max_skip): New.
8621         (default_label_align_max_skip): New.
8622         (default_jump_align_max_skip): New.
8623         (compute_alignments): Use the new hooks.
8624         (shorten_branches): Likewise.
8625
8626 2010-10-19  Richard Henderson  <rth@redhat.com>
8627
8628         * config/i386/i386.c (bdesc_multi_arg): Use fma4i_fmadd_<mode>.
8629         * config/i386/sse.md (fma<mode>4): Enable for FMA & SSE_MATH.
8630         (fma4i_fmadd_<mode>): New.
8631         (*split_fma, *split_fms, *split_fnma, *split_fnms): Rename from
8632         fma4_fm*_<mode> and adjust to be pre-reload splitters to the
8633         standard fma patterns.
8634         (fmaddsub_<mode>): Rename from fma4i_fmaddsub_<mode> and
8635         enable for FMA.
8636         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
8637         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
8638         (*fma_fmaddsub_<mode>, *fma_fmsubadd_<mode>): New.
8639
8640 2010-10-19  Paul Koning  <pkoning@equallogic.com>
8641
8642         * lower-subreg.c (resolve_shift_zext): Delete conditional code for
8643         WORDS_BIG_ENDIAN != BYTES_BIG_ENDIAN.
8644
8645 2010-10-19  Richard Henderson  <rth@redhat.com>
8646
8647         * config/ia64/ia64.md (fmasf4, *fmssf4, *nfmasf4): New.
8648         (fmadf4, *fmsdf4, *nfmadf4): New.
8649         (fmaxf4, *fmsxf4, *nfmaxf4): New.
8650
8651 2010-10-19  Michael Eager  <eager@eagercon.com>
8652
8653         * config/microblaze/microblaze.c (TARGET_EXCEPT_UNWIND_INFO):
8654         Use sjlj unwind info for exceptions.
8655
8656 2010-10-19  Francois-Xavier Coudert<fxcoudert@gcc.gnu.org>
8657
8658         PR fortran/43414
8659         * dwarf2out.c (add_calling_convention_attribute): Flag main
8660         Fortran subroutine with DW_AT_main_subprogram.
8661
8662 2010-10-19  Nick Clifton  <nickc@redhat.com>
8663
8664         * config/rx/rx.c (rx_function_value): Small integer types are
8665         promoted to SImode.
8666         (rx_promote_function_mode): New function.
8667         (TARGET_PROMOTE_FUNCTION_MODE): Define.
8668
8669 2010-10-19  Nick Clifton  <nickc@redhat.com>
8670
8671         * config/mep/mep.c (mep_print_operand): Use
8672         targetm.strip_name_encoding.
8673         (mep_output_aligned_common): Likewise.
8674
8675 2010-10-19  Basile Starynkevitch  <basile@starynkevitch.net>
8676
8677         * gengtype.c (new_structure): Remove ad-hoc "location_s" processing.
8678
8679 2010-10-18  Richard Henderson  <rth@redhat.com>
8680
8681         * simplify-rtx.c (simplify_ternary_operation) [FMA]: Simplify
8682         (fma (neg a) (neg b) c) and (fma a (neg b) c).
8683
8684 2010-10-18  Richard Henderson  <rth@redhat.com>
8685
8686         * config/i386/i386.c (IX86_BUILTIN_VFMSUBSS, IX86_BUILTIN_VFMSUBSD,
8687         IX86_BUILTIN_VFMSUBPS, IX86_BUILTIN_VFMSUBPD,
8688         IX86_BUILTIN_VFMSUBADDPS, IX86_BUILTIN_VFMSUBADDPD,
8689         IX86_BUILTIN_VFNMADDSS, IX86_BUILTIN_VFNMADDSD,
8690         IX86_BUILTIN_VFNMADDPS, IX86_BUILTIN_VFNMADDPD,
8691         IX86_BUILTIN_VFNMSUBSS, IX86_BUILTIN_VFNMSUBSD,
8692         IX86_BUILTIN_VFNMSUBPS, IX86_BUILTIN_VFNMSUBPD,
8693         IX86_BUILTIN_VFMSUBADDPS256, IX86_BUILTIN_VFMSUBADDPD256,
8694         IX86_BUILTIN_VFNMADDPS256, IX86_BUILTIN_VFNMADDPD256,
8695         IX86_BUILTIN_VFNMSUBPS256, IX86_BUILTIN_VFNMSUBPD256): Remove.
8696         (bdesc_multi_arg): Remove the corresponding builtins.
8697         * config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Remove.
8698         (UNSPEC_FMA4_FMSUBADD): Remove.
8699         (UNSPEC_FMADDSUB): Rename from UNSPEC_FMA4_FMADDSUB.
8700         * config/i386/sse.md (FMA4MODEF4): Remove.
8701         (FMAMODE): Add.
8702         (fma<mode>4): New expander.
8703         (*fma4i_fmadd_<mode>): Macroize from fma4i_fmadd<mode>4 patterns,
8704         and use FMA rtx code instead of UNSPEC_FMA4_INTRINSIC.
8705         (*fma4i_fmsub_<mode>): Similarly.
8706         (*fma4i_fnmadd_<mode>): Similarly.
8707         (*fma4i_fnmsub_<mode>): Similarly.
8708         (fma4i_vmfmadd_<mode>): Scalar patterns zero-extend, not merge
8709         with the first operand.
8710         (fma4i_fmaddsub_<mode>): Represent with UNSPEC_FMADDSUB instead
8711         of explicit arithmetic.  Macroize with AVXMODEF2P.
8712         (*fma4i_fmsubadd_<mode>): Represent with UNSPEC_FMADDSUB + NEG.
8713         (xop_frcz<mode>2): Macroize with FMAMODE.
8714         (xop_vmfrcz<mode>2): Scalar patterns zero-extend, not merge with
8715         the first operand.
8716         * config/i386/fma4intrin.h (_mm_msub_ps): Use vfmadd intrinsic with
8717         extra negations.
8718         (_mm_msub_pd, _mm_msub_ss, _mm_msub_sd): Likewise.
8719         (_mm_nmacc_ps, _mm_nmacc_pd, _mm_nmacc_ss, _mm_nmacc_sd): Likewise.
8720         (_mm_nmsub_ps, _mm_nmsub_pd, _mm_nmsub_ss, _mm_nmsub_sd): Likewise.
8721         (_mm256_msub_ps, _mm256_msub_pd): Likewise.
8722         (_mm256_nmacc_ps, _mm256_nmacc_pd): Likewise.
8723         (_mm256_nmsub_ps, _mm256_nmsub_pd): Likewise.
8724         (_mm_msubadd_ps): Use vfmaddsub intrinsic with extra negation.
8725         (_mm_msubadd_pd, _mm256_msubadd_ps, _mm256_msubadd_pd): Likewise.
8726
8727 2010-10-18  Bernd Schmidt  <bernds@codesourcery.com>
8728
8729         PR rtl-optimization/45966
8730         * combine.c (try_combine): If added_sets_2, deal with the case
8731         where i0 feeds i1 and i1 feeds i2.
8732
8733 2010-10-18  Jan Hubicka  <jh@suse.cz>
8734
8735         * ipa.c (cgraph_externally_visible_p): Handle externally visible and
8736         preserve flags before trying to guess on visibility.
8737         (varpool_externally_visible_p): New function.
8738         (function_and_variable_visibility): Use it.
8739
8740 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
8741
8742         Implemented parsing @synthesize and @dynamic for Objective-C.
8743         * c-parser.c (c_parser_external_declaration): Recognize
8744         RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
8745         (c_parser_objc_at_synthesize_declaration): New.
8746         (c_parser_objc_at_dynamic_declaration): New.
8747
8748 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
8749
8750         * c-parser.c (c_parser_objc_class_declaration): After finding an
8751         error, parse the whole declaration then reset parser->error.
8752
8753 2010-10-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
8754
8755         PR target/46041
8756         * tree.h (mode_has_fma): Delete, move to c-cppbuiltins.c.
8757         * builtins.c (mode_has_fma): Ditto.
8758
8759 2010-10-18  Steve Ellcey  <sje@cup.hp.com>
8760
8761         PR target/36898
8762         PR middle-end/43760
8763         * config/ia64/ia64.c (rws_access_regno): Remove predicate check.
8764
8765 2010-10-18  Joseph Myers  <joseph@codesourcery.com>
8766
8767         * config/i386/i386.c (ix86_option_override_internal): Define and
8768         use USE_X86_64_FRAME_POINTER for 64-bit flag_omit_frame_pointer
8769         default.
8770         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
8771         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Define.
8772
8773 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
8774
8775         Merge from 'apple/trunk' branch on FSF servers.
8776         * c-parser.c (c_parser_objc_type_name): Adapted to new parser the
8777         following Objective-C change:
8778
8779         2005-10-10  Fariborz Jahanian  <fjahanian@apple.com>
8780
8781         Radar 4301047
8782         * c-parse.in (objc_quals): Build objc qualifier list same way
8783         as gcc-3.3
8784
8785 2010-10-18  Jan Hubicka  <jh@suse.cz>
8786
8787         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p,
8788         function_and_variable_visibility): Revert accidental commit.
8789
8790 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
8791
8792         Merge from 'apple/trunk' branch on FSF servers.
8793         * c-parser.c (c_parser_typeof_specifier): Adapted to new parser
8794         the following Objective-C change:
8795
8796         2005-10-07  Fariborz Jahanian  <fjahanian@apple.com>
8797
8798         Radar 4204796
8799         * c-parse.in (typespec_nonreserved_nonattr): Remove volatile from
8800         'volatilized' type used in a typeof operator.
8801
8802 2010-10-18  Eric Botcazou  <ebotcazou@adacore.com>
8803
8804         * tree-flow.h (gimple_purge_all_dead_abnormal_call_edges): Declare.
8805         * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): Move around and
8806         rewrite modelled on gimple_purge_dead_eh_edges.
8807         (gimple_purge_all_dead_abnormal_call_edges): New function.
8808         * tree-inline.c (expand_call_inline): Call gimple_purge_dead_eh_edges
8809         directly instead of through gimple_purge_dead_abnormal_call_edges.
8810         * tree-ssa-pre.c (need_ab_cleanup): New static variable.
8811         (eliminate): Set bit in need_ab_cleanup for the basic block if we have
8812         removed AB side-effects from one of its statements.
8813         (init_pre): Initialize need_ab_cleanup.
8814         (fini_pre): Purge dead abnormal call edges and clean up the CFG if bits
8815         are set in need_ab_cleanup.  Free need_ab_cleanup afterward.
8816
8817 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
8818
8819         PR c/46015
8820         * c-parser.c (c_parser_statement_after_labels): Call mark_exp_read
8821         on computed goto argument.
8822
8823 2010-10-18  Richard Guenther  <rguenther@suse.de>
8824
8825         PR tree-optimization/45967
8826         * tree-ssa-structalias.c (type_could_have_pointers): Remove.
8827         (could_have_pointers): Likewise.
8828         (handle_rhs_call, handle_const_call, handle_pure_call,
8829         find_func_aliases, intra_create_variable_infos): Remove calls to them.
8830         (struct fieldoff): Add must_have_pointers field.
8831         (type_must_have_pointers): New function.
8832         (field_must_have_pointers): Likewise.
8833         (push_fields_onto_fieldstack): Remove must_have_pointers_p argument.
8834         Adjust field merging.
8835         (create_function_info_for): May-have-pointers of varinfo is
8836         almost always true.
8837         (create_variable_info_for_1): Likewise.
8838
8839 2010-10-18  Tejas Belagod  <tejas.belagod@arm.com>
8840
8841         * config/arm/neon.md (neon_move_hi_quad_<mode>): Fix the order
8842         of operands to vec_concat.
8843
8844 2010-10-18  Richard Guenther  <rguenther@suse.de>
8845
8846         PR lto/44950
8847         * tree.c (free_lang_data_in_decl): As we clear TYPE_METHODS
8848         also clear references to entries of it.
8849
8850 2010-10-18  Andi Kleen  <ak@linux.intel.com>
8851
8852         PR other/43448
8853         * gccbug.in: Remove.
8854         * Makefile.in (GCCBUG_INSTALL_NAME, gccbug): Remove
8855         (doc, distclean, install-common): Remove reference to gccbug.
8856         * configure: Regenerate.
8857         * configure.ac (all_outputs): Remove gccbug.
8858         * doc/configfiles.texi: Remove references to gccbug.
8859         * doc/sourcebuild.texi: Dito.
8860
8861 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
8862
8863         PR middle-end/46019
8864         * fold-const.c (fold_binary_loc): If integer_pow2p has
8865         TREE_INT_CST_LOW zero, look at TREE_INT_CST_HIGH.
8866
8867 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
8868             Jeremie Salvucci  <jeremie.salvucci@free.fr>
8869
8870         * gengtype.c (verbosity_level): Add variable.
8871         (set_gc_used): Count variables for verbosity.
8872         (close_output_files): Backing up files, counting written ones
8873         verbosily.
8874         (write_types): Count emitted functions for verbosity. Added
8875         debug messages.
8876         (write_enum_defn): Count structures for verbosity. Added debug
8877         messages.
8878         (gengtype_long_options): Add "verbose" & "backupdir".
8879         (print_usage): Ditto.
8880         (main): Verbose display of parsed files.
8881
8882         * gengtype.h (verbosity_level): Add declaration.
8883
8884 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
8885
8886         * gengtype.c (parse_program_options): Add allocation of
8887         plugin_files, and correct test on nb_plugin_files.
8888
8889 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
8890
8891         Merge from 'apple/trunk' branch on FSF servers.
8892
8893         2006-03-27 Fariborz Jahanian  <fjahanian@apple.com>
8894
8895         Radar 4133425
8896         * c-decl.c (undeclared_variable): Issue diagnostic on
8897         private 'ivar' access.
8898
8899 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
8900
8901         PR target/46051
8902         * config/i386/sse.md (vec_interleave_highv4df): Fix third RTX of
8903         generated sequence to match *avx_vperm2f128<mode>_nozero.
8904         (vec_interleave_lowv4df): Ditto.
8905         (vec_interleave_highv8sf): Ditto.
8906         (vec_interleave_lowv8sf): Ditto.
8907
8908 2010-10-17  Kai Tietz  <kai.tietz@onevision.com>
8909
8910         * libgcov.c (create_file_directory): Enable it for win32 case.
8911         (gcov_exit): De-couple GCOV_PREFIX and GCOV_PREFIX_STRIP.
8912         * doc/gcov.texi (GCOV_PREFIX): Adjusted.
8913         (GCOV_PREFIX_SKIP): Likewise.
8914
8915 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
8916
8917         * doc/objc.texi (GNU Objective-C runtime API): New section.
8918         (Modern GNU Objective-C runtime API): New section.
8919         (Traditional GNU Objective-C runtime API): New section.
8920         (Executing code before main): Mention that this section is
8921         specific to the GNU Objective-C runtime.
8922         (Garbage Collection): Same.
8923
8924 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
8925
8926         * c-parser.c (c_parser_for_statement): Move initialization of
8927         cond and incr before if.
8928
8929 2010-10-17  Anatoly Sokolov  <aesok@post.ru>
8930
8931         * target.def (preferred_output_reload_class): New hook.
8932         * doc/tm.texi.in (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Document.
8933         * doc/tm.texi: Regenerate.
8934         * targhooks.c (default_preferred_output_reload_class): New function.
8935         * targhooks.h (default_preferred_output_reload_class): Declare.
8936         * reload.c (find_dummy_reload): Change rclass argument type from
8937         enum reg_class to reg_class_t. Change this_alternative array type
8938         from enum reg_class to reg_class_t.
8939         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
8940         (push_reload): Change preferred_class variable type to reg_class_t.
8941         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
8942         * recog.c (reg_fits_class_p): Change result type to bool. Change cl
8943         argument type from enum reg_class to reg_class_t. Use
8944         HARD_REGISTER_NUM_P predicate.
8945         * recog.h (reg_fits_class_p): Update prototype.
8946
8947         * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
8948         * config/i386/i386-protos.h (ix86_preferred_output_reload_class):
8949         Remove.
8950         * config/i386/i386.c (ix86_preferred_output_reload_class): Make
8951         static. Change regclass argument and result types from enum reg_class
8952         to reg_class_t.
8953         (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
8954
8955 2010-10-17  Iain Sandoe  <iains@gcc.gnu.org>
8956
8957         * c-parser.c (c_parser_objc_class_instance_variables): Update to use
8958         visibility enum, and handle @package.
8959
8960 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
8961
8962         * doc/objc.texi (What you can and what you cannot do in +load):
8963         Document that sending messages to constant string objects in +load
8964         is not guaranteed to work.
8965
8966 2010-10-16  Jan Hubicka  <jh@suse.cz>
8967
8968         PR middle-end/44206
8969         * ipa.c (cgraph_remove_unreachable_nodes): Cleanup; check
8970         existence of refrences before removing the function.
8971
8972 2010-10-16  Jan Hubicka  <jh@suse.cz>
8973
8974         * cgraph.c (dump_cgraph_node): Dump same_comdat_group,
8975         only_called_at_startup and only_called_at_exit.
8976         (cgraph_propagate_frequency): Compute only_called_at_startup and
8977         only_called_at_exit.
8978         * cgraph.h (struct cgraph_node): New fileds only_called_at_startup and
8979         only_called_at_exit.
8980         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream the new
8981         flags.
8982         * predict.c (compute_function_frequency): Initialize the new flags.
8983
8984 2010-10-16  Eric Botcazou  <ebotcazou@adacore.com>
8985
8986         * gimplify.c (gimplify_type_sizes) <ARRAY_TYPE>: If the type is to be
8987         ignored for debug info purposes, do not clear the DECL_IGNORED_P flag
8988         on the bounds of its domain.
8989         * tree.h (DECL_IGNORED_P): Document effect on TYPE_DECL specifically.
8990
8991 2010-10-16  Anatoly Sokolov  <aesok@post.ru>
8992
8993         * config/avr/avr.h (PREFERRED_RELOAD_CLASS): Remove.
8994         * config/avr/avr-protos.h (preferred_reload_class): Remove.
8995         * config/avr/avr.c (preferred_reload_class): Remove.
8996         * config/pa/pa.h (PREFERRED_RELOAD_CLASS): Remove.
8997         * config/pa/pa.c (emit_move_sequence): Update comment
8998         * config/arc/arc.h (PREFERRED_RELOAD_CLASS): Remove.
8999         * config/crx/crx.h (PREFERRED_RELOAD_CLASS): Remove.
9000         * config/fr30/fr30.h (PREFERRED_RELOAD_CLASS): Remove.
9001         * config/frv/frv.h (PREFERRED_RELOAD_CLASS): Remove.
9002         * config/h8300/h8300.h (PREFERRED_RELOAD_CLASS): Remove.
9003         * config/lm32/lm32.h (PREFERRED_RELOAD_CLASS): Remove.
9004         * config/m32r/m32r.h (PREFERRED_RELOAD_CLASS): Remove.
9005         * config/moxie/moxie.h (PREFERRED_RELOAD_CLASS): Remove.
9006         * config/picochip/picochip.h (PREFERRED_RELOAD_CLASS): Remove.
9007         * config/rx/rx.h (PREFERRED_RELOAD_CLASS): Remove.
9008         * config/spu/spu.h (PREFERRED_RELOAD_CLASS): Remove.
9009         * config/v850/v850.h (PREFERRED_RELOAD_CLASS): Remove.
9010         * config/vax/vax.h (PREFERRED_RELOAD_CLASS): Remove.
9011
9012 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
9013
9014         * opts.c (set_fast_math_flags,
9015         set_unsafe_math_optimizations_flags): Make static.
9016         * toplev.h (set_fast_math_flags,
9017         set_unsafe_math_optimizations_flags): Remove prototypes.
9018
9019 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
9020
9021         * config/arm/arm.c (arm_option_optimization): Set
9022         flag_section_anchors to 1 not 2.
9023         * config/i386/i386.c (ix86_option_override_internal): Check
9024         global_options_set.x_flag_zee and
9025         global_options_set.x_flag_omit_frame_pointer.
9026         (ix86_option_optimization): Don't set flag_omit_frame_pointer and
9027         flag_zee to 2.
9028         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Check
9029         global_options_set.x_flag_omit_frame_pointer.
9030         * config/rs6000/rs6000.c (rs6000_option_init_struct): Set
9031         opts->x_flag_section_anchors to 1 not 2.
9032         * config/sh/sh.c (sh_option_optimization): Don't set
9033         flag_schedule_insns to 2.
9034         (sh_option_override): Check
9035         global_options_set.x_flag_schedule_insns.
9036         * opts.c (finish_options): Check opts_set->x_flag_section_anchors.
9037
9038 2010-10-16  Kai Tietz  <kai.tietz@onevision.com>
9039
9040         * configure.ac: Make sure inhibit_libc remains false for mingw targets
9041         as cross.
9042         * configure: Regenerated.
9043
9044 2010-10-15  Xinliang David Li  <davidxl@google.com>
9045
9046         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths): New
9047         function.
9048         (use_pred_not_overlap_with_undef_path_pred): Outline phi arg pruning
9049         into a recursive function.
9050
9051 2010-10-15  Uros Bizjak  <ubizjak@gmail.com>
9052
9053         * config/i386/i386.md (*movdfcc_1_rex64): Correct mode attribute.
9054         (*movdfcc_1): ditto.
9055
9056 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
9057
9058         * target.def (target_option.init_struct): New hook.
9059         * doc/tm.texi.in (TARGET_OPTION_INIT_STRUCT): New @hook.
9060         * doc/tm.texi: Regenerate.
9061         * hooks.c (hook_void_gcc_optionsp): New.
9062         * hooks.h (hook_void_gcc_optionsp): Declare.
9063         * langhooks-def.h (lhd_init_options_struct): Remove.
9064         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define to hook_void_gcc_optionsp.
9065         * langhooks.c (lhd_init_options_struct): Remove.
9066         * opts.c (init_options_struct): Also call
9067         targetm.target_option.init_struct.
9068         * config/i386/i386.c (ix86_option_init_struct,
9069         TARGET_OPTION_INIT_STRUCT): New.
9070         (ix86_option_optimization): Move some settings to
9071         ix86_option_init_struct.
9072         * config/pdp11/pdp11.c (pdp11_option_init_struct,
9073         TARGET_OPTION_INIT_STRUCT): New.
9074         (pdp11_option_optimization): Move some settings to
9075         pdp11_option_init_struct.
9076         * config/rs6000/rs6000.c (rs6000_option_optimization): Replace by
9077         rs6000_option_init_struct.  Use options structure pointer.
9078         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
9079         * config/s390/s390.c (s390_option_init_struct,
9080         TARGET_OPTION_INIT_STRUCT): New.
9081         (s390_option_optimization): Don't set
9082         flag_asynchronous_unwind_tables here.
9083         * config/sh/sh.c (sh_option_init_struct,
9084         TARGET_OPTION_INIT_STRUCT): New.
9085         (sh_option_optimization): Don't set flag_finite_math_only here.
9086         * config/spu/spu.c (spu_option_optimization): Replace by
9087         spu_option_optimization.  Use options structure pointer.
9088         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
9089
9090 2010-10-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
9091
9092         * doc/md.texi (Standard Names): Add fma@var{m}4 documentation.
9093
9094         * doc/rtl.texi (RTX_TERNARY): Document FMA is ternary.  Add
9095         SIGN_EXTRACT and ZERO_EXTRACT which were missing.
9096         (Standard names): Document fma.
9097
9098         * doc/cpp.texi (Common Predefined Macros): Document __FP_FAST_FMA,
9099         __FP_FAST_FMAF, __FP_FAST_FMAL.
9100
9101         * builitns.c (expand_builtin_mathfn_ternary): New function for
9102         expanding ternary math functions, like fma.
9103         (expand_builtin): Call it for the fma builtins.
9104
9105         * simplify-rtx.c (simplify_ternary_operation): Don't simplify FMA
9106         ops at present.
9107
9108         * tree-vect-stmts.c (vectorizable_call): Allow 3 argument
9109         vectorizable functions to support vectorizing fma.
9110
9111         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
9112         Handle fma builtins.
9113
9114         * config/rs6000/vsx.md (UNSPEC_VSX_MADD): Delete.
9115         (UNSPEC_VSX_MSUB): Ditto.
9116         (UNSPEC_VSX_NMADD): Ditto.
9117         (UNSPEC_VSX_NMSUB): Ditto.
9118         (vsx_fmadd<mode>4*): Rewrite to use FMA rtl in some cases instead
9119         of UNSPEC. Renumber combiner patterns.
9120         (vsx_fmsub<mode>4*): Ditto.
9121         (vsx_fnmadd<mode>4*): Ditto.
9122         (vsx_fnmsub<mode>4*): Ditto.
9123
9124         * config/rs6000/altivec.md (UNSPEC_VNMSUBFP): Delete.
9125         (altivec_vmaddfp): Rewrite to use FMA rtl if no fused
9126         multiply/add.  Rename combiner pattern, and add TARGET_FUSED_MADD test.
9127         (altivec_vmaddfp_1): Ditto.
9128         (altivec_vmaddfp_2): Ditto.
9129         (atlivec_mulv4sf3): Ditto.
9130         (altivec_vnmsubfp): Ditto.
9131         (altivec_vnmsubfp_1): Ditto.
9132         (altivec_vnmsubfp_2): Ditto.
9133         (altivec_vnmsubfp_3): Delete.
9134
9135         * config/rs6000/rs6000.md (fmasf4): New insns for fma builtin support.
9136         (fmasf4_fpr): Ditto.
9137         (fmssf4_fpr): Ditto.
9138         (fnmasf4_fpr): Ditto.
9139         (fnmssf4_fpr): Ditto.
9140         (fmadf4): Ditto.
9141         (fmadf4_fpr): Ditto.
9142         (fmsdf4_fpr): Ditto.
9143         (fnmadf4_fpr): Ditto.
9144         (fnmsdf4_fpr): Ditto.
9145
9146         * optabs.h (OTI_fma): Add fma optab.
9147         (fma_optab): Ditto.
9148
9149         * genopinit.c (optabs): Set fma optab.
9150
9151         * rtl.def (FMA): Add FMA rtl.
9152
9153         * tree.h (mode_has_fma): New function to return if MODE supports a
9154         fast multiply and add instruction.
9155         * builtins.c (mode_has_fma): Ditto.
9156
9157 2010-10-15  Jan Hubicka  <jh@suse.cz>
9158
9159         * lto-streamer-out.c (write_symbol): Use pointer set of seen
9160         objects instead of bitmap.
9161         (produce_symtab): Likewise; output defined symbols first.
9162
9163 2010-10-15  Jie Zhang  <jie@codesourcery.com>
9164
9165         * doc/invoke.texi: Add -fstrict-volatile-bitfields to
9166         Option Summary and Index.
9167
9168 2010-10-15  Richard Guenther  <rguenther@suse.de>
9169
9170         * tree.c (free_lang_data_in_decl): Clear DECL_INITIAL
9171         for automatic variables again.
9172
9173 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
9174
9175         * doc/extend.texi (Variable Length): Don't refer to VLAs not
9176         conforming to C99.
9177
9178 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
9179
9180         * config/rx/rx.c (rx_option_optimization): Change to
9181         rx_override_options_after_change.  Don't change
9182         flag_lto_compression_level.  Don't check for changes to whether
9183         FPU instructions can be used.  Check and set only
9184         flag_finite_math_only, not other fast-math flags.
9185         (rx_option_override): Call rx_override_options_after_change.
9186         (TARGET_OPTION_OPTIMIZATION): Remove.
9187         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
9188
9189 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
9190
9191         * config/rs6000/rs6000.c (rs6000_option_optimization): Don't
9192         disable section anchors for lang_hooks.name[4] != 'O'.
9193
9194 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
9195
9196         * config/frv/frv.c (frv_option_optimization,
9197         TARGET_OPTION_OPTIMIZATION): Remove.
9198         * config/frv/frv.h (RCSP_SOFTWARE_PIPELINING): Remove.
9199
9200 2010-10-15  Michael Matz  <matz@suse.de>
9201
9202         * cgraphunit.c (clone_of_p): Define unconditionally.
9203
9204 2010-10-15  Richard Guenther  <rguenther@suse.de>
9205
9206         PR lto/45957
9207         * tree.c (free_lang_data_in_decl): Do not clear DECL_INITIAL of vars.
9208
9209 2010-10-15  Chung-Lin Tang  <cltang@codesourcery.com>
9210
9211         * ifcvt.c (find_active_insn_before): New function.
9212         (find_active_insn_after): New function.
9213         (cond_exec_process_if_block): Use new functions to replace
9214         prev_active_insn() and next_active_insn().
9215
9216 2010-10-14  Yao Qi  <yao@codesourcery.com>
9217
9218         PR target/45447
9219         * config/arm/arm.c (arm_build_builtin_va_list): Assign
9220         va_list_name to TYPE_STUB_DECL (va_list_type).
9221
9222 2010-10-14  Jan Hubicka  <jh@suse.cz>
9223
9224         PR middle-end/45621
9225         * cgraph.c (cgraph_update_edges_for_call_stmt_node): When new call is
9226         redirected to clone, be happy.
9227         * cgraph.h (cgraph node): Enable former_clone_of unconditinally.
9228         * cgraphunit.c (verify_cgraph_node, cgraph_materialize_clone): Handle
9229         former_clone_of unconditionally.
9230
9231 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
9232
9233         Merge from FSF apple 'trunk' branch.
9234         2006 Fariborz Jahanian  <fjahanian@apple.com>
9235
9236         Radars 4436866, 4505126, 4506903, 4517826
9237         * c-parser.c (c_parser, objc_property_attr_context) New flag.
9238         (c_lex_one_token): Handle property attributes.
9239         (c_parser_external_declaration): Handle @property.
9240         (c_parser_declaration_or_fndef): Warn on invalid attributes before
9241         @alias, @class, @end and @property objc keywords.
9242         (c_parser_objc_methodprotolist): Handle @property.
9243         (c_parser_objc_property_attrlist): New.
9244         (c_parser_objc_at_property): New.
9245         * c-typeck.c (build_component_ref): Handle CLASS.property syntax.
9246         (build_modify_expr): Likewise.
9247
9248 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
9249
9250         PR tree-optimization/46008
9251         * tree-if-conv.c (predicate_bbs): Try to canonicalize c2 if possible.
9252
9253 2010-10-14  Richard Guenther  <rguenther@suse.de>
9254
9255         PR tree-optimization/44913
9256         * tree-data-ref.c (disjoint_objects_p): Remove.
9257         (dr_may_alias_p): Simplify.  Only hand the base object to
9258         the alias-oracle.
9259         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
9260         some more trees, bail out instead of asserting.
9261         (ptr_derefs_may_alias_p): Likewise.  Export.
9262         (refs_may_alias_p_1): Handle STRING_CSTs.
9263         * tree-ssa-alias.h (ptr_derefs_may_alias_p): Declare.
9264
9265 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
9266
9267         PR c/45969
9268         * c-typeck.c (build_binary_op): Don't try to compute a semantic
9269         type with excess precision for boolean operations.
9270
9271 2010-10-14  Jeremie Salvucci  <jeremie.salvucci@free.fr>
9272             Basile Starynkevitch  <basile@starynkevitch.net>
9273
9274         * gengtype.c:  Include getopt.h and version.h.
9275
9276         (lang_bitmap, struct outf, outf_p)
9277         (get_output_file_with_visibility, oprintf): Definitions moved to
9278         gengtype.h
9279         (output_files, header_file, srcdir, srcdir_len, this_file)
9280         (do_dump): No more static variables.
9281         (do_debug): New.
9282         (dbgprint_count_type_at): Added new function.
9283         (gengtype_long_options): New.
9284         (print_usage, print_version, parse_program_options): New.
9285         (main): Call parse_program_options, and removed old option
9286         handling code.  Added some debug output.
9287
9288         * gengtype.h:  Updated copyright year.
9289         (lang_bitmap, struct outf, outf_p, header_file, oprintf)
9290         (get_output_file_with_visibility, srcdir, srcdir_len, do_dump):
9291         Moved from gengtype.c to here.
9292         (do_debug, read_state_filename, write_state_filename): New variables.
9293         (DBGPRINTF, DBGPRINT_COUNT_TYPE): New macros.
9294
9295         * Makefile.in:
9296         (REVISION): Always defined.
9297         (version.o): Removed ifdef REVISION_c.
9298         (s-gtype): Pass arguments to build/gengtype program.
9299         (build/version.o): Added building rule.
9300         (build/gengtype$(build_exeext)): Added build/version.o.
9301
9302 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
9303
9304         Partial merge of 'ObjC GC' from FSF apple 'trunk' branch.
9305         * config/darwin-c.c (darwin_cpp_builtins): Define __weak and
9306         __strong macros.
9307
9308 2010-10-14  Eric Botcazou  <ebotcazou@adacore.com>
9309
9310         * sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke
9311         may_trap_or_fault_p instead of may_trap_p predicate.
9312         * tree.c (substitute_in_expr): Propagate the TREE_THIS_NOTRAP flag.
9313         (substitute_placeholder_in_expr): Likewise.
9314         * tree-inline.c (remap_gimple_op_r): Propagate the TREE_THIS_NOTRAP
9315         flag on MEM_REF nodes.
9316         (copy_tree_body_r): Propagate the TREE_READONLY and TREE_THIS_NOTRAP
9317         flags on INDIRECT_REF nodes.
9318
9319 2010-10-14  Nathan Froyd  <froydnj@codesourcery.com>
9320
9321         * config.gcc (arm*-*-linux-*eabi) <tm_file>: Add bpabi.h from libgcc.
9322         (arm*-*-uclinux*eabi) <tm_file>: Likewise.
9323         (arm*-*-eabi*) <tm_file>: Likewise.
9324         (frv-*-elf) <tm_file>: Add frv-abi.h from libgcc.
9325         (frv-*-*linux*) <tm_file>: Likewise.
9326         * config/arm/bpabi.h: Delete DECLARE_LIBRARY_RENAMES stanzas
9327         and associated helper macros.
9328         * config/frv/frv-abi.h: Delete.
9329
9330 2010-10-14  Richard Guenther  <rguenther@suse.de>
9331
9332         PR lto/44561
9333         * tree.def (NULLPTR_TYPE): New tree code.
9334         * dbxout.c (dbxout_type): Handle NULLPTR_TYPE.
9335         * dwarf2out.c (is_base_type): Likewise.
9336         (gen_type_die_with_usage): Likewise.
9337         * sdbout.c (plain_type_1): Likewise.
9338         * tree.c (build_int_cst_wide): Likewise.
9339         * gimple.c (gimple_types_compatible_p_1): NULLPTR_TYPE types are equal.
9340
9341 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
9342
9343         * params.c (params_finished): New.
9344         (add_params): Assert !params_finished.
9345         (finish_params): New.
9346         (set_param_value_internal): Take params and params_set
9347         parameters.  Assert params_finished.
9348         (set_param_value, maybe_set_param_value): Take params and
9349         params_set parameters.  Update calls to set_param_value_internal.
9350         (set_default_param_value): Assert !params_finished.  Don't use
9351         set_param_value_internal.
9352         (default_param_value, init_param_values): New.
9353         * params.h (struct param_info): Change value to default_value.
9354         Remove set.
9355         (set_param_value, maybe_set_param_value): Add params and
9356         params_set parameters.
9357         (PARAM_VALUE): Get parameters from global_options.
9358         (PARAM_SET_P): Remove.
9359         (finish_params, default_param_value, init_param_values): New.
9360         * common.opt (param_values): New Variable.
9361         * config/arm/arm.c (arm_option_override): Pass extra arguments to
9362         maybe_set_param_value.
9363         * config/i386/i386.c (ix86_option_override_internal): Pass extra
9364         arguments to maybe_set_param_value.
9365         * config/picochip/picochip.c (picochip_option_override): Pass
9366         extra arguments to maybe_set_param_value.
9367         * config/rs6000/rs6000.c (rs6000_option_override_internal): Pass
9368         extra arguments to maybe_set_param_value.
9369         * config/s390/s390.c (s390_option_override): Use
9370         maybe_set_param_value instead of set_param_value.  Pass extra
9371         arguments to maybe_set_param_value.
9372         * config/sparc/sparc.c (sparc_option_override): Pass extra
9373         arguments to maybe_set_param_value.
9374         * config/spu/spu.c (spu_option_override): Pass extra arguments to
9375         maybe_set_param_value.
9376         * opts.c (handle_param): Take opts and opts_set parameters.
9377         Update call to set_param_value.
9378         (initial_min_crossjump_insns, initial_max_fields_for_field_sensitive,
9379         initial_loop_invariant_max_bbs_in_loop): Remove.
9380         (init_options_once): Don't set them.
9381         (init_options_struct): Initialize parameters structures.
9382         (default_options_optimization): Use default_param_value when
9383         restoring defaults.  Update calls to maybe_set_param_value.
9384         (finish_options): Update calls to maybe_set_param_value.
9385         (common_handle_option): Update calls to handle_param and
9386         set_param_value.
9387         * toplev.c (DEFPARAM): Update definition for changes to param_info.
9388         (general_init): Call finish_params.
9389
9390 2010-10-14  Nick Clifton  <nickc@redhat.com>
9391
9392         * config/mn10300/mn10300.h (CONSTANT_ALIGNMENT): Define.
9393         (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.
9394         (FIRST_PSEUDO_REGISTER): Increase by one.
9395         (FIXED_REGISTERS, CALL_USED_REGISTERS): Update with CC_REG.
9396         (HARD_REGNO_MODE_OK): Call mn10300_hard_regno_mode_ok.
9397         (MODES_TIEABLE): Call mn10300_modes_tieable.
9398         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add CC_REGS.
9399         (LEGITIMATE_CONSTANT_P): Call mn10300_legitimate_constant_p.
9400         (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, NOTICE_UPDATE_CC)
9401         (SELECT_CC_MODE, REVERSIBLE_CC_MODE): Delete.
9402         (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Add CC register.
9403         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
9404         (mn10300_cc_status_mdep): Delete.
9405         (CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Delete.
9406         * config/mn10300/mn10300 (mn10300_option_override): Stop disabling
9407         the combine-stack-adjust pass.
9408         (print_operand): Use the mode of the comparison operation to
9409         select the comparison suffix.
9410         (notice_update_cc): Delete.
9411         (mn10300_secondary_reload_class): Remove test for stack pointer
9412         based arithmetic.
9413         (output_tst): Rename to mn10300_output_cmp.
9414         (impossible_plus_operand): Move into predicates.md.
9415         (mn10300_legitimize_address): Make static.
9416         (mn10300_legitimate_address_p): Make static.  Only allow SI sized
9417         constant pic operands.
9418         (mn10300_legitimate_constant_p): New function.
9419         (mn10300_case_values_threshold): Make static.
9420         (mn10300_hard_regno_mode_ok): New function.
9421         (mn10300_modes_tieable): New function.
9422         (mn10300_select_cc_mode): New function.
9423         * config/mn10300/predicates.md (impossible_plus_operand): Define.
9424         * config/mn10300/mn10300-protos.h: Tidy.
9425         (mn10300_legitimate_constant_p, mn10300_modes_tieable)
9426         (mn10300_hard_regno_mode_ok, mn10300_select_cc_mode): Prototype.
9427         * config/mn10300/mn10300.md (cc attribute): Delete.  Replace
9428         with clobbers or sets of CC_REG.
9429         (CC_REG): Define.
9430         (mov*): Remove use of CLR instruction.
9431         (cbranch_si4_<code>): New pattern/split.
9432         (integer_conditional_branch): New pattern.
9433         (cbranch_sf4_<code>): New pattern/split.
9434         (float_conditional_branch): New pattern.
9435         (casesi): Use addsi3 pattern instead of movsi pattern to add and
9436         move a value at the same time.
9437         (cc0 peepholes): Remove.
9438
9439 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
9440
9441         * sel-sched-ir.c (init_global_and_expr_for_insn): Set CANT_MOVE
9442         on RTX_FRAME_RELATED_P insns and the insn to which
9443         NOTE_INSN_EPILOGUE_BEG is attached.
9444         * sched-vis.c (print_value): Allow NULL value.
9445
9446 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
9447
9448         PR rtl-optimization/45570
9449         * sel-sched-ir.c (cfg_preds_1): When walking out of the region,
9450         assert that we are pipelining outer loops.  Allow returning
9451         zero predecessors.
9452
9453 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
9454
9455         * sel-sched-ir.c (maybe_tidy_empty_bb): Simplify comment.
9456         (tidy_control_flow): Tidy vertical space.
9457         (sel_remove_bb): New variable idx.  Use it to remember the basic
9458         block index before deleting the block.
9459         (sel_remove_empty_bb): Remove dead code, simplify and insert to ...
9460         (sel_merge_blocks): ... here.
9461         * sel-sched-ir.h (sel_remove_empty_bb): Remove prototype.
9462
9463 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
9464
9465         * cse.c (is_dead_reg): Change into inline function that is not
9466         called through for_each_rtx.
9467         (set_live_p): Adjust caller.
9468         (insn_live_p): Don't reset DEBUG_INSNs here.
9469         (struct dead_debug_insn_data): New data.
9470         (count_stores, is_dead_debug_insn, replace_dead_reg): New functions.
9471         (delete_trivially_dead_insns): If there is just one setter for the
9472         dead reg that is referenced by some DEBUG_INSNs, create a DEBUG_EXPR
9473         and add DEBUG_INSN for it right before the removed setter and
9474         use the DEBUG_EXPR instead of the dead pseudo.
9475
9476 2010-10-14  Zdenek Dvorak  <rakdver@kam.uniff.cz>
9477
9478         * et-forest.c (et_nca): Return NULL immediately when
9479         the dominance forest has disjoint components.
9480
9481 2010-10-13  Vladimir Makarov  <vmakarov@redhat.com>
9482
9483         * ira.c (setup_class_hard_regs): Fix typo in indexing
9484         ira_non_ordered_class_hard_regs and ira_class_hard_reg_index.
9485
9486 2010-10-14  Tijs Wiebe Lefering  <twlevo@gmail.com>
9487
9488         * graph.c (inbb): New variable.
9489         (start_bb): Set inbb to 1 if output is inside of a building block.
9490         (end_bb): Check if output is inside of a building block.
9491
9492 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
9493
9494         PR rtl-optimization/45912
9495         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Test the
9496         regno of registers instead of their index to compute the alignment.
9497
9498 2010-10-13  H.J. Lu  <hongjiu.lu@intel.com>
9499
9500         * config/i386/i386.c (ix86_build_const_vector): Check vector
9501         mode instead of scalar mode.
9502         (ix86_build_signbit_mask): Likewise.
9503         (ix86_expand_fp_absneg_operator): Updated.
9504         (ix86_expand_copysign): Likewise.
9505         (ix86_expand_int_vcond): Likewise.
9506         (ix86_emit_swdivsf): Likewise.
9507         (ix86_sse_copysign_to_positive): Likewise.
9508         (ix86_expand_sse_fabs): Likewise.
9509         * config/i386/i386.md (fixuns_trunc<mode>si2): Likewise.
9510         * config/i386/sse.md (copysign<mode>3): Likewise.
9511         (sse2_cvtudq2ps): Likewise.
9512         (vec_unpacku_float_hi_v4si): Likewise.
9513         (vec_unpacku_float_lo_v4si): Likewise.
9514
9515         * config/i386/i386.c (ix86_builtins): Add
9516         IX86_BUILTIN_CPYSGNPS256 and IX86_BUILTIN_CPYSGNPD256.
9517         (bdesc_args): Likewise.
9518         (ix86_builtin_vectorized_function): Support
9519         IX86_BUILTIN_CPYSGNPS256, IX86_BUILTIN_CPYSGNPD256,
9520         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS_NR256,
9521         and IX86_BUILTIN_CVTPS2DQ256.
9522         (ix86_builtin_reciprocal): Support IX86_BUILTIN_SQRTPS_NR256.
9523
9524         * config/i386/sse.md (STORENT_MODE): New.
9525         (VEC_FLOAT_MODE): Likewise.
9526         (VEC_EXTRACT_MODE): Likewise.
9527         (*avx_cvtdq2pd256_2): Likewise.
9528         (vec_pack_trunc_v4df): Likewise.
9529         (vec_interleave_highv8sf): Likewise.
9530         (vec_interleave_lowv8sf): Likewise.
9531         (storent<mode>): Macroized.
9532         (<code><mode>2: absneg): Likewise.
9533         (copysign<mode>3): Likewise.
9534         (vec_extract<mode>): Likewise.
9535
9536         PR target/44180
9537         * config/i386/i386.c (expand_vec_perm_even_odd_1): Rewritten
9538         for V8SFmode.
9539
9540 2010-10-13  Richard Guenther  <rguenther@suse.de>
9541             H.J. Lu  <hongjiu.lu@intel.com>
9542
9543         * config/i386/sse.md (reduc_splus_v8sf): Add.
9544         (reduc_splus_v4df): Likewise.
9545         (vec_unpacks_hi_v8sf): Likewise.
9546         (vec_unpacks_lo_v8sf): Likewise.
9547         (*avx_cvtps2pd256_2): Likewise.
9548         (vec_unpacks_float_hi_v8si): Likewise.
9549         (vec_unpacks_float_lo_v8si): Likewise.
9550         (vec_interleave_highv4df): Likewise.
9551         (vec_interleave_lowv4df): Likewise.
9552
9553 2010-10-13  Richard Guenther  <rguenther@suse.de>
9554
9555         PR objc/45878
9556         * gimple-fold.c (gimple_fold_obj_type_ref): Leave OBJ_TYPE_REFs
9557         alone if there are no virtual methods.
9558
9559 2010-10-13  Richard Henderson  <rth@redhat.com>
9560
9561         * expr.c (build_personality_function): Take parameter LANG instead
9562         of parameter NAME.  Build the name based on the lang prefix and the
9563         unwind method in use.
9564         * tree.c (lhd_gcc_personality): Update call to
9565         build_personality_function.
9566
9567 2010-10-13  Richard Guenther  <rguenther@suse.de>
9568
9569         PR objc/45878
9570         * tree-ssa-ccpc (ccp_fold_stmt): Use gimple_fold_obj_type_ref.
9571
9572 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
9573
9574         * cse.c (cse_insn): Fix thinko in the canonicalization of USE insns.
9575         Canonicalize input operands of ASM_OPERANDS insns.
9576
9577 2010-10-13  Richard Guenther  <rguenther@suse.de>
9578
9579         PR tree-optimization/45788
9580         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Delay
9581         EH update until fixup-cfg.
9582
9583 2010-10-13  Julian Brown  <julian@codesourcery.com>
9584
9585         * config/arm/arm.h (REG_CLASS_CONTENTS): Remove soft frame pointer
9586         from CORE_REGS and GENERAL_REGS classes.
9587         * config/arm/arm.md (*thumb1_movsi_insn): Ignore all parts of
9588         final constraint for register preferencing.
9589
9590 2010-10-13  Richard Guenther  <rguenther@suse.de>
9591
9592         PR tree-optimization/45970
9593         * tree-ssa-alias.h (stmt_kills_ref_p): Declare.
9594         * tree-ssa-alias.c (stmt_kills_ref_p_1): New function.
9595         (stmt_kills_ref_p): Likewise.
9596         * tree-ssa-dse.c (dse_optimize_stmt): Use it.
9597
9598 2010-10-13  Richard Guenther  <rguenther@suse.de>
9599
9600         PR tree-optimization/45982
9601         * tree-ssa-structalias.c (make_constraints_to): New function.
9602         (make_constraint_to): Implement in terms of make_constraints_to.
9603         (find_func_aliases): Properly make return values of pure/const
9604         functions escape if they assign to sth that is not a pointer.
9605
9606 2010-10-13  Richard Guenther  <rguenther@suse.de>
9607
9608         PR middle-end/45874
9609         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
9610         Fixup the CFG when EH was fixed up.
9611
9612 2010-10-13  Ira Rosen  <irar@il.ibm.com>
9613
9614         * tree-vect-slp.c (vect_get_constant_vectors): Fix comment.
9615         Use operand's type for POINTER_PLUS_EXPR.
9616
9617 2010-10-13  Alexandre Oliva  <aoliva@redhat.com>
9618
9619         * c-parser.c (c_parser_for_statement): Initialize incr.
9620
9621 2010-10-12  Xinliang David Li  <davidxl@google.com>
9622
9623         PR tree-optimization/45972
9624         * tree-ssa-uninit.c (compute_uninit_opnds_pos): Skip phis
9625         with too many arguments.
9626
9627 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
9628
9629         PR fortran/45636
9630         * tree-ssa-forwprop.c: Include expr.h.
9631         (constant_pointer_difference, simplify_builtin_call): New functions.
9632         (tree_ssa_forward_propagate_single_use_vars): Call
9633         simplify_builtin_call on builtin calls.
9634
9635 2010-10-12  Eric Botcazou  <ebotcazou@adacore.com>
9636
9637         * config/sparc/sparc.md (*adddi3_insn_sp32): Rename.
9638         (*adddi3_extend_sp32): Likewise.
9639         (*subdi3_insn_sp32): Likewise.
9640         (*subdi3_extend_sp32): Likewise.
9641         (*negdi2_sp32): Use negative test for consistency.
9642
9643 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
9644
9645         * libgcc2.h: Use __SIZEOF_DOUBLE__ instead of LIBGCC2_DOUBLE_TYPE_SIZE.
9646         (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
9647         * config/fixed-bit.h: Likewise.
9648         * config/rx/rx.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
9649         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
9650         * system.h (LIBGCC2_DOUBLE_TYPE_SIZE): Poison.
9651         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE): Use DOUBLE_TYPE_SIZE.
9652         (DF_SIZE): Likewise.
9653         * doc/tm.texi: Regenerate.
9654
9655 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
9656
9657         * config/rs6000/predicates.md (scc_rev_comparison_operator): New.
9658         * config/rs6000/rs6000.md (*isel_reversed_signed_<mode>): New.
9659         (*isel_reversed_unsigned_<mode>): New.
9660         * config/rs6000/rs6000.c (output_isel): Accept GE/GEU/LE/LEU/NE
9661         as valid comparisons and adjust operands and output appropriately.
9662         (rs6000_rtx_costs) <CONST_INT>: Accept NE as a cost-0 outer_code.
9663
9664 2010-10-12  Chung-Lin Tang  <cltang@codesourcery.com>
9665
9666         * config/arm/arm.h (ARM_EXPAND_ALIGNMENT): Rename from
9667         DATA_ALIGNMENT and add COND parameter. Update comments above.
9668         (DATA_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !optimize_size.
9669         (LOCAL_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !flag_conserve_stack.
9670
9671 2010-10-12  H.J. Lu  <hongjiu.lu@intel.com>
9672
9673         PR bootstrap/45958
9674         * exec-tool.in: Support '-plugin' as the second option to the linker.
9675
9676 2010-10-12  Richard Henderson  <rth@redhat.com>
9677
9678         PR middle-end/45962
9679         * cfgexpand.c (add_stack_var): Ensure every variable has 1 byte.
9680         (expand_stack_vars): Assert large base allocated when used.
9681
9682 2010-10-12  Richard Guenther  <rguenther@suse.de>
9683
9684         * tree-ssa-structalias.c (get_constraint_for_1): Constants
9685         only point to nonlocal, not anything.
9686
9687 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
9688
9689         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Use sjlj
9690         unwind info for exceptions.
9691
9692 2010-10-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9693
9694         PR testsuite/45851
9695         * doc/sourcebuild.texi (LTO Testing, dg-extra-ld-options):
9696         Document optional target selector.
9697
9698 2010-10-12  Joseph Myers  <joseph@codesourcery.com>
9699
9700         * flag-types.h: New.
9701         * Makefile.in (TH_H): Include $(OPTIONS_H) instead of $(FLAGS_H).
9702         (FLAGS_H): Include flag-types.h.  Include $(OPTIONS_H) instead of
9703         options.h.
9704         (OPTIONS_H): Define.
9705         (c-family/c-opts.o, lto-opts.o, opts.o): Use $(OPTIONS_H) instead
9706         of options.h.
9707         * configure.ac (tm_include_list): Include options.h not flags.h.
9708         * configure: Regenerate.
9709         * flags.h: Include flag-types.h.  Include options.h at top of file
9710         again.
9711         (enum debug_info_type, enum debug_info_level, enum
9712         debug_info_usage, enum symbol_visibility, struct visibility_flags,
9713         enum ira_algorithm, enum ira_region, enum excess_precision, enum
9714         graph_dump_types, enum stack_check_type,
9715         enum warn_strict_overflow_code): Move to flag-types.h
9716         * opth-gen.awk: Include flag-types.h in options.h.
9717
9718 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
9719
9720         * expr.c (store_expr): Share code for STRING_CST and
9721         MEM_REF of &STRING_CST cases.  Don't require BLKmode, instead
9722         check if target is a MEM.
9723
9724         * rtl.h: Include hashtab.h.
9725         (iterative_hash_rtx): New prototype.
9726         * rtl.c (iterative_hash_rtx): New function.
9727         * dwarf2out.c (dw_loc_list_node): Add hash and emitted fields.
9728         (output_loc_list): Return immediately if emitted is set, set it.
9729         (hash_loc_operands, hash_locs, hash_loc_list,
9730         compare_loc_operands, compare_locs, loc_list_hash, loc_list_eq,
9731         optimize_location_lists_1, optimize_location_lists): New function.
9732         (dwarf2out_finish): Call optimize_location_lists.
9733         * Makefile.in (RTL_BASE_H): Depend on $(HASHTAB_H).
9734
9735 2010-10-12  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9736
9737         PR testsuite/45974
9738         Revert:
9739         * Makefile.in ($(lang_checks_parallel))
9740         ($(lang_checks_parallelized)): Use single quotes for
9741         $(RUNTESTFLAGS), to allow passing quoted content.
9742
9743 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9744
9745         * config/pa/linux-atomic.c (__sync_val_compare_and_swap_4): Return
9746         actual_oldval.  Use __builtin_expect.
9747         (SUBWORD_VAL_CAS): Likewise.
9748
9749 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
9750
9751         * recog.c (nonmemory_operand): Call immediate_operand for
9752         CONSTANT_P operands.
9753
9754 2010-10-11  Uros Bizjak  <ubizjak@gmail.com>
9755
9756         * config/i386/i386.md (movmem<mode>): Macroize expander from
9757         movmem{si,di} using SWI48 mode iterator.
9758         (*strmovsi_1): Macroize insn pattern from *strmovsi_1 and
9759         *strmovsi_rex_1 using P mode iterator.
9760         (*strmovhi_1): Ditto from *strmovhi_1 and *strmovhi_rex_1.
9761         (*strmovqi_1): Ditto from *strmovqi_1 and *strmovqi_rex_1.
9762         (*rep_movsi): Ditto from *rep_movsi and *rep_movsi_rex64.
9763         (*rep_movqi): Ditto from *rep_movqi and *rep_movqi_rex64.
9764         (setmem<mode>): Macroize expander from setmem{si,di} using
9765         SWI48 mode iterator.
9766         (*strsetsi_1): Macroize insn pattern from *strsetsi_1 and
9767         *strsetsi_rex_1 using P mode iterator.
9768         (*strsethi_1): Ditto from *strsethi_1 and *strsethi_rex_1.
9769         (*strsetqi_1): Ditto from *strsetqi_1 and *strsetqi_rex_1.
9770         (*rep_stossi): Ditto from *rep_stossi and *rep_stossi_rex64.
9771         (*rep_stosqi): Ditto from *rep_stosqi and *rep_stosqi_rex64.
9772         (*cmpstrnqi_nz_1): Ditto from *cmpstrnqi_nz_1 and *cmpstrnqi_nz_rex_1.
9773         (*cmpstrnqi_1): Ditto from *cmpstrnqi_1 and *cmpstrnqi_rex_1.
9774         (strlen<mode>): Macroize expander from strlen{si,di} using SWI48x
9775         mode iterator.
9776         (*strlenqi_1): Macroize insn pattern from *strlenqi_1 and
9777         *strlenqi_rex_1 using P mode iterator.
9778
9779 2010-10-11  Bernd Schmidt  <bernds@codesourcery.com>
9780
9781         PR bootstrap/45445
9782         * ira-lives.c (mark_pseudo_reg_live, mark_pseudo_reg_dead): New
9783         static functions.
9784         (mark_ref_live, mark_ref_dead): Use them.
9785         (make_pseudo_conflict): New arg ORIG_DREG.  All callers changed.
9786         Save the original reg, and use the new functions.
9787         (check_and_make_def_use_conflict): New arg ORIG_DREG.  All callers
9788         changed.
9789         (check_and_make_def_conflict): Save the original reg.
9790
9791 2010-10-11  Martin Jambor  <mjambor@suse.cz>
9792
9793         PR middle-end/45699
9794         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Choose among
9795         thunks.
9796
9797 2010-10-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9798
9799         * Makefile.in ($(lang_checks_parallel))
9800         ($(lang_checks_parallelized)): Use single quotes for
9801         $(RUNTESTFLAGS), to allow passing quoted content.
9802
9803         PR bootstrap/35855
9804         * opt-functions.awk (BEGIN): New section.
9805         (lower, upper, digit, alnum): New variables.
9806         (static_var, opt_sanitized_name): Use alnum instead of character
9807         classes, for non-C locale.
9808         * optc-gen.awk: Likewise.
9809         * opth-gen.awk: Likewise.
9810
9811 2010-10-11  Anatoly Sokolov  <aesok@post.ru>
9812
9813         * target.def (preferred_reload_class): New hook.
9814         * doc/tm.texi.in (TARGET_PREFERRED_RELOAD_CLASS): Document.
9815         * doc/tm.texi: Regenerate.
9816         * targhooks.c (default_preferred_reload_class): New function.
9817         * targhooks.h (default_preferred_reload_class): Declare.
9818         * reload.c (find_dummy_reload): Change preferred_class variable type
9819         from enum reg_class to reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS
9820         target hook.
9821         (find_reloads): Change goal_alternative array type from int to
9822         reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS target hook.
9823         (push_reload, find_reloads_address_part): Use
9824         TARGET_PREFERRED_RELOAD_CLASS target hook.
9825         * reload1.c (emit_input_reload_insns): Ditto.
9826         * ira-costs.c (copy_cost): Use TARGET_PREFERRED_RELOAD_CLASS target
9827         hook. Change rclass argument and secondary_class variable types from
9828         'enum reg_class' to reg_class_t.
9829
9830         * config/i386/i386.h (PREFERRED_RELOAD_CLASS): Remove.
9831         * config/i386/i386-protos (ix86_preferred_reload_class): Remove.
9832         * config/i386/i386.c (ix86_preferred_reload_class): Make static.
9833         Change regclass argument and result types from enum reg_class to
9834         reg_class_t.
9835         (TARGET_PREFERRED_RELOAD_CLASS): Define.
9836
9837 2010-10-11  Eric Botcazou  <ebotcazou@adacore.com>
9838
9839         * simplify-rtx.c (simplify_unary_operation_1): Use unsigned arithmetics
9840         in masking operations.
9841         (simplify_const_unary_operation): Likewise.
9842         (simplify_binary_operation_1): Likewise.
9843         (simplify_const_binary_operation): Likewise.
9844         (simplify_const_relational_operation): Likewise.
9845         (simplify_ternary_operation): Likewise.
9846         (simplify_immed_subreg): Likewise.
9847
9848 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9849
9850         PR middle-end/45862
9851         * doc/tm.texi.in (SUPPORTS_WEAK): Update.
9852         (TARGET_SUPPORTS_WEAK): New.
9853         * doc/tm.texi: Regenerate.
9854         * defaults.h (SUPPORTS_WEAK): Update comment.
9855         (TARGET_SUPPORTS_WEAK): New.
9856         * dwarf2asm.c (USE_LINKONCE_INDIRECT): Update define.
9857         * varasm.c (assemble_external): Use TARGET_SUPPORTS_WEAK instead of
9858         SUPPORTS_WEAK.
9859         (merge_weak, declare_weak, do_assemble_alias, supports_one_only,
9860         make_decl_one_only): Likewise.
9861         * config/pa/som.h (SUPPORTS_WEAK): Rename defines to
9862         TARGET_SUPPORTS_WEAK.
9863         (SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Use TARGET_SUPPORTS_WEAK
9864         instead of SUPPORTS_WEAK.
9865
9866 2010-10-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9867
9868         * config/sparc/gmon-sol2.c: Don't include coretypes.h, tm.h.
9869
9870 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
9871
9872         * vec.h (VEC_qsort): Define.
9873         * dbxout.c (output_used_types): Use it.
9874         * df-scan.c (df_sort_and_compress_refs): Likewise.
9875         (df_sort_and_compress_mws): Likewise.
9876         * genautomata.c (uniq_sort_alt_states): Likewise.
9877         (evaluate_equiv_classes): Likewise.
9878         (output_trans_table): Likewise.
9879         (output_state): Likewise.
9880         * gimplify.c (compare_case_labels): Likewise.
9881         * graphite-sese-to-poly.c (graphite_sort_dominated_info): Likewise.
9882         * ipa.c (build_cdtor_fns): Likewise.
9883         * lto.c (lto_wpa_write_files): Likewise.
9884         * sel-sched.c (fill_vec_av_set): Likewise.
9885         * tree-predcom.c (determine_roots_comp): Likewise.
9886         * tree-sra.c (sort_and_spliace_var_accesses): Likewise.
9887         (splice_param_accesses): Likewise.
9888         * tree-ssa-live.c (dump_enumerated_decls): Likewise.
9889         * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
9890         (reassociate_bb): Likewise.
9891         * tree-ssa-sccvn.c (sort_scc): Likewise.
9892         * tree-ssa-structalias.c (sort_fieldstack): Likewise.
9893
9894 2010-10-11  Ian Lance Taylor  <iant@google.com>
9895
9896         * tree.h (TREE_THIS_NOTRAP): Use TREE_CHECK5.
9897         * emit-rtl.c (set_mem_attributes_minus_bitpos): Only check
9898         TREE_THIS_NOTRAP when appropriate.
9899         (get_spill_slot_decl): Don't set TREE_THIS_NOTRAP on the new VAR_DECL.
9900         * gimplify.c (gimplify_expr): Copy NOTRAP from INDIRECT_REF to
9901         newly created MEM_REF.
9902
9903 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
9904
9905         Nathan Froyds patch to hooks FUNCTION_ARG etc.
9906         * config/picochip/picochip-protos.h (picochip_function_arg): Delete.
9907         (picochip_incoming_function_arg): Delete.
9908         (picochip_arg_advance): Delete.
9909         * config/picochip/picochip.h (FUNCTION_ARG): Delete.
9910         (FUNCTION_INCOMING_ARG): Delete.
9911         (FUNCTION_ARG_ADVANCE): Delete.
9912         * config/picochip/picochip.c (picochip_function_arg): Take a
9913         const_tree and a bool.
9914         (picochip_incoming_function_arg): Likewise.
9915         (picochip_arg_advance): Likewise.
9916         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
9917         (TARGET_FUNCTION_ARG_ADVANCE): Define.
9918
9919 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9920
9921         PR middle-end/45955
9922         * ipa.c (build_cdtor): Delete endless loop.
9923
9924 2010-10-07  Andi Kleen  <ak@linux.intel.com>
9925
9926         * Makefile.in (MOSTLYCLEANFILES): Remove cc1*dummy, add
9927         checksum-options.
9928         (checksum-options): Add.
9929         (cc1-dummy): Remove.
9930         (cc1-checksum): Change to run checksum over object files
9931         and options only.
9932         * dummy-checksum.c: Remove.
9933         * genchecksum.c: Update copyright.
9934         (usage): Allow multiple arguments.
9935         (BLOCKSIZE): Add.
9936         (dosum): Change for incremental checksum. Remove C output.
9937         (main): Iterate over all argument files. Add C output.
9938
9939 2010-10-11  Joseph Myers  <joseph@codesourcery.com>
9940
9941         * params.c (set_param_value_internal): New.
9942         (set_param_value): Use set_param_value_internal.
9943         (maybe_set_param_value, set_default_param_value): New.
9944         * params.h (PARAM_VALUE, PARAM_SET_P): Make into rvalues.
9945         (maybe_set_param_value, set_default_param_value): Declare.
9946         * config/arm/arm.c (arm_option_override): Use maybe_set_param_value.
9947         * config/i386/i386.c (ix86_option_override_internal): Use
9948         maybe_set_param_value.
9949         * config/ia64/ia64.c (ia64_option_default_params,
9950         TARGET_OPTION_DEFAULT_PARAMS): New.
9951         (ia64_option_optimization): Move some code to
9952         ia64_option_default_params.
9953         * config/picochip/picochip.c (picochip_option_override): Use
9954         maybe_set_param_value.
9955         * config/rs6000/rs6000.c (rs6000_option_default_params,
9956         TARGET_OPTION_DEFAULT_PARAMS): New.
9957         (rs6000_option_override_internal): Use maybe_set_param_value.
9958         (rs6000_option_optimization): Move some code to
9959         rs6000_option_default_params.
9960         * config/s390/s390.c (s390_option_override): Use maybe_set_param_value.
9961         * config/sh/sh.c (sh_option_default_params,
9962         TARGET_OPTION_DEFAULT_PARAMS): New.
9963         (sh_option_optimization): Move some code to sh_option_default_params.
9964         * config/sparc/sparc.c (sparc_option_override): Use
9965         maybe_set_param_value.
9966         * config/spu/spu.c (spu_option_default_params,
9967         TARGET_OPTION_DEFAULT_PARAMS): New.
9968         (spu_option_optimization): Move some code to spu_option_default_params.
9969         (spu_option_override): Use maybe_set_param_value.
9970         * doc/tm.texi.in (TARGET_OPTION_DEFAULT_PARAMS): New @hook.
9971         * doc/tm.texi: Regenerate.
9972         * ggc-common.c (init_ggc_heuristics): Use set_default_param_value.
9973         * opts.c (init_options_once): Use PARAM_VALUE not direct access to
9974         compiler_params.
9975         (default_options_optimization): Use maybe_set_param_value.
9976         (finish_options): Use maybe_set_param_value.
9977         * target.def (target_option.default_params): New hook.
9978         * toplev.c (general_init): Call targetm.target_option.default_params.
9979
9980 2010-10-11  Ira Rosen  <irar@il.ibm.com>
9981
9982         PR tree-optimization/45902
9983         * tree-vect-slp.c (vect_get_constant_vectors): Use statement's
9984         vector type for constants, unless it's a pointer.
9985
9986 2010-10-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9987
9988         * config/s390/s390.md (*mov<mode>cc): lgoc -> locg and stgoc -> stocg.
9989
9990 2010-10-11  Jakub Jelinek  <jakub@redhat.com>
9991
9992         PR target/45870
9993         * config/i386/i386.c (ix86_delegitimize_tls_address): New function.
9994         (ix86_delegitimize_address): Use it.
9995
9996 2010-10-10  Eric Botcazou  <ebotcazou@adacore.com>
9997
9998         * opt-functions.awk (opt_sanitized_name): Remove gdwarf+ handling.
9999
10000 2010-10-10  Uros Bizjak  <ubizjak@gmail.com>
10001
10002         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Pass pointer
10003         to cum struct in the call to function_arg_advance.
10004         (alpha_function_arg_advance): Mark named as unused.
10005
10006 2010-10-10  Richard Sandiford  <rdsandiford@googlemail.com>
10007
10008         * config/mips/mips.c (mips_handle_option): Make "value" with
10009         ATTRIBUTE_UNUSED.
10010
10011 2010-10-09  Richard Henderson  <rth@redhat.com>
10012
10013         PR rtl-opt/33721
10014         * explow.c (allocate_dynamic_stack_space): Add REQUIRED_ALIGN parm,
10015         remove TARGET parm, convert KNOWN_ALIGN parm to SIZE_ALIGN.  Honor
10016         required_align, tidy the code a bit.  Emit split_stack code in the
10017         right place.  Mark the return value with the alignment properly.
10018         * expr.h (allocate_dynamic_stack_space): Update decl.
10019         * builtins.c (expand_builtin_apply): Update call to
10020         allocate_dynamic_stack_space.
10021         (expand_builtin_alloca): Likewise.  Remove TARGET parameter.
10022         * calls.c (initialize_argument_information): Update call to
10023         allocate_dynamic_stack_space.
10024         (expand_call): Likewise.
10025
10026         * cfgexpand.c (get_decl_align_unit): Don't limit alignment.
10027         Don't update_stack_alignment here.
10028         (alloc_stack_frame_space): Make ALIGN unsigned.
10029         (stack_var_cmp): Sort by alignment too.
10030         (partition_stack_vars): Don't merge large and small alignment vars.
10031         (expand_one_stack_var_at): Add BASE and BASE_ALIGN parameters.
10032         Take care when BASE is not virtual_stack_vars_rtx.
10033         (expand_stack_vars): Allocate dynamic stack space for large
10034         alignment variables.
10035         (expand_one_stack_var): Update all to expand_one_stack_var_at.
10036         (defer_stack_allocation): True for large alignment vars.
10037         (update_stack_alignment): Merge into ...
10038         (expand_one_var): ... here.
10039         (gimple_expand_cfg): Place code from expand_stack_vars.
10040
10041 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10042
10043         * config/pdp11/pdp11.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10044         * config/pdp11/pdp11.c (pdp11_function_arg): New function.
10045         (pdp11_function_arg_advance): New function.
10046         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10047
10048 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10049
10050         * libgcc2.h: Use __SIZEOF_LONG_LONG__ instead of LONG_LONG_TYPE_SIZE.
10051         * libgcc2.c: Likewise.
10052
10053 2010-10-09  Richard Guenther  <rguenther@suse.de>
10054
10055         PR lto/45956
10056         * lto-streamer-in.c (lto_register_var_decl_in_symtab):
10057         Properly check if a decl is an automatic var.
10058
10059 2010-10-09  Richard Guenther  <rguenther@suse.de>
10060
10061         PR lto/45947
10062         * tree.c (free_lang_data_in_cgraph): Properly walk the varpool.
10063
10064 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10065
10066         * config/mmix/mmix-protos.h (mmix_function_arg): Delete.
10067         * config/mmix/mmix.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10068         * config/mmix/mmix.c (mmix_function_arg): Rename to...
10069         (mmix_function_arg_1): ...this.  Make static.  Take a const_tree and
10070         bool arguments.
10071         (mmix_function_arg): New function.
10072         (mmix_function_incoming_arg): New function.
10073         (mmix_function_arg_advance): New function.
10074         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
10075         (TARGET_FUNCTION_ARG_ADVANCE): Define.
10076
10077 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10078
10079         * config/vax/vax.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10080         * config/vax/vax.c (vax_function_arg): New function.
10081         (vax_function_arg_advance): New function.
10082         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10083
10084 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10085
10086         * config/pa/pa-protos.h (function_arg): Delete.
10087         * config/pa/pa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10088         * config/pa/pa.c (function_arg): Rename to...
10089         (pa_function_arg): ...this.  Make static.  Take a const_tree and
10090         a bool.
10091         (pa_function_arg_advance): New function.
10092         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10093
10094 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10095
10096         * config/m68k/m68k.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10097         * config/m68k/m68k.c (m68k_function_arg): New function.
10098         (m68k_function_arg_advance): New function.
10099         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10100
10101 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10102
10103         * config/avr/avr-protos.h (function_arg): Delete.
10104         (function_arg_advance): Delete.
10105         * config/avr/avr.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10106         * config/avr/avr.c (function_arg): Rename to...
10107         (avr_function_arg): ...this.  Make static.  Take a const_tree and
10108         a bool.
10109         (function_arg_advance): Rename to...
10110         (avr_function_arg_advance): ...this.  Make static.  Take a
10111         const_tree and a bool.
10112         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10113
10114 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10115
10116         * config/alpha/alpha-protos.h (function_arg): Delete.
10117         * config/alpha/alpha.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10118         * config/alpha/vms.h (FUNCTION_ARG_ADVANCE): Delete.
10119         * config/alpha/alpha.c (function_arg): Rename to...
10120         (alpha_function_arg): ...this.  Make static.  Take a const_tree and
10121         a bool.  Delete TARGET_ABI_UNICOSMK code.
10122         (alpha_function_arg_advance): New function.
10123         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10124
10125 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10126
10127         * config/mep/mep-protos.h (mep_function_arg): Delete.
10128         (mep_function_arg_advance): Delete.
10129         * config/mep/mep.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10130         * config/mep/mep.c (mep_function_arg): Make static.  Take a
10131         const_tree and a bool.
10132         (mep_function_arg_advance): Likewise.
10133         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10134
10135 2010-10-09  Richard Guenther  <rguenther@suse.de>
10136
10137         PR tree-optimization/45945
10138         * tree-ssa.c (execute_update_addresses_taken): Fixup LHS scanning.
10139
10140 2010-10-09  Eric Botcazou  <ebotcazou@adacore.com>
10141
10142         PR tree-optimization/45612
10143         * ipa-split.c (test_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.
10144         Test LABEL_DECLs as well.  Fix formatting issues.
10145         (verify_non_ssa_vars): Return false for a GIMPLE_LABEL statement
10146         whose label is present in NON_SSA_VARS.
10147         (mark_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.  Handle LABEL_DECLs
10148         as well.  Fix formatting issues.
10149         (visit_bb): Fix typos and formatting issue.
10150
10151 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10152
10153         PR tree-optimization/45950
10154         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): Consult length
10155         before initializing vno->op.
10156
10157 2010-10-09  Ralf Corsépius  <ralf.corsepius@rtems.org>
10158
10159         * config.gcc (bfin*-rtems*): Add newlib-stdint.h.
10160         * config.gcc (lm32*-rtems*): Add newlib-stdint.h.
10161
10162 2010-10-08  H.J. Lu  <hongjiu.lu@intel.com>
10163
10164         PR target/45913
10165         * config/i386/i386.c (ix86_binary_operator_ok): Support
10166         "andhi/andsi/anddi" as a zero-extending move.
10167
10168 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10169
10170         * builtins.c (fold_call_stmt): Don't copy gimple call arguments
10171         into a temporary array.
10172
10173 2010-10-08  Jakub Jelinek  <jakub@redhat.com>
10174
10175         PR tree-optimization/45903
10176         * simplify-rtx.c (simplify_subreg): Optimize lowpart SUBREG
10177         of {A,L}SHIFTRT of MEM.
10178
10179 2010-10-08  Richard Guenther  <rguenther@suse.de>
10180
10181         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
10182         Re-construct BLOCK_VARS.
10183         (lto_input_ts_block_tree_pointers): Do not stream BLOCK_VARS.
10184         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
10185         * tree.c (free_lang_data_in_block): Remove.
10186         (free_lang_data_in_decl): Do not touch DECL_CONTEXT of non-PARM_DECLs.
10187         Do not touch the BLOCK tree.
10188         * expr.c (expand_expr_real_1): Allow externals.
10189
10190 2010-10-08  Richard Guenther  <rguenther@suse.de>
10191
10192         * lto-streamer-out.c (lto_output_ts_block_tree_pointers):
10193         Do not output BLOCK_SUBBLOCKS.
10194         * lto-streamer-in.c (lto_input_ts_block_tree_pointers):
10195         Reserve exact space needed for BLOCK_NONLOCALIZED_VARS.
10196         Re-construct BLOCK_SUBBLOCKS of parent block.
10197         (lto_input_ts_binfo_tree_pointers): Reserve exact space needed
10198         for BINFO_BASE_ACCESSES.
10199
10200 2010-10-08  Joseph Myers  <joseph@codesourcery.com>
10201
10202         * Makefile.in (TM_H): Include $(FLAGS_H) instead of options.h.
10203         (TREE_H): Include $(FLAGS_H) instead of options.h.
10204         (opts-common.o): Depend on $(FLAGS_H) instead of options.h.
10205         * c-objc-common.h (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
10206         * common.opt (flag_complex_method, flag_evaluation_order,
10207         flag_ira_algorithm, flag_ira_region, flag_warn_unused_result): New
10208         Variable declarations.
10209         * configure.ac (tm_include_list): Include flags.h instead of options.h.
10210         * configure: Regenerate.
10211         * flags.h: Condition out contents for target libraries.  Include
10212         options.h at end of file.
10213         (flag_complex_method, flag_ira_algorithm, flag_ira_region,
10214         flag_evaluation_order, flag_warn_unused_result): Remove.
10215         * gcc.c (main): Intialize global_options with global_options_init.
10216         * langhooks-def.h (lhd_init_options_struct): Declare.
10217         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
10218         (LANG_HOOKS_INITIALIZER): Include LANG_HOOKS_INIT_OPTIONS_STRUCT.
10219         * langhooks.c (lhd_init_options_struct): New.
10220         * langhooks.h (struct lang_hooks): Add init_options_struct.
10221         Update comment on init_options.
10222         * optc-gen.awk: Generate initializer for global_options_init, not
10223         global_options.
10224         * opth-gen.awk: Condition out structure declarations for target
10225         libraries.  Declare global_options_init.
10226         * opts-common.c: Include flags.h instead of options.h.
10227         * opts.c (flag_warn_unused_result): Remove.
10228         (read_cmdline_options): Take gcc_options parameters.  Pass them to
10229         read_cmdline_option.
10230         (initial_lang_mask, initial_min_crossjump_insns,
10231         initial_max_fields_for_field_sensitive,
10232         initial_loop_invariant_max_bbs_in_loop): Define at file scope.
10233         (init_options_once): New.  Split out of decode_options.
10234         (init_options_struct): New.  Split out of decode_options.
10235         (decode_cmdline_options_to_array_default_mask): New.
10236         (default_options_optimization): New.  Split out of decode_options.
10237         (decode_options): Move most code to other functions.  Update call
10238         to read_cmdline_options.
10239         (finish_options): New.  Split out of decode_options.
10240         * opts.h (decode_options): Add gcc_options parameters.
10241         (init_options_once, init_options_struct,
10242         decode_cmdline_options_to_array_default_mask): New.
10243         * toplev.c (flag_complex_method, flag_ira_algorithm,
10244         flag_ira_region, flag_evaluation_order): Remove.
10245         (general_init): Use global_options_init for initial flag values
10246         for global_dc.
10247         (toplev_main): Call init_options_once, init_options_struct,
10248         lang_hooks.init_options_struct,
10249         decode_cmdline_options_to_array_default_mask and
10250         lang_hooks.init_option before decode_options.  Update arguments to
10251         decode_options.
10252         * tree.h: Include flags.h instead of options.h.
10253
10254 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10255
10256         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
10257
10258 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10259
10260         * config/sparc/sparc-protos.h (function_arg_advance, function-arg):
10261         Delete.
10262         * config/sparc/sparc.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
10263         (FUNCTION_INCOMING_ARG): Delete.
10264         * config/sparc/sparc.c (scan_record_type): Const-ify tree argument.
10265         (function_arg_slotno): Likewise.  Take bool arguments.
10266         (sparc_arg_partial_bytes): Update call to it.
10267         (function_arg): Rename to...
10268         (sparc_function_arg_1): ...this.  Take bool arguments.
10269         (sparc_function_arg, sparc_function_incoming_arg): New functions.
10270         (function_arg_advance): Rename to...
10271         (sparc_function_arg_advance): ...this.  Take bool argument.
10272         (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG): Define.
10273         (TARGET_FUNCTION_INCOMING_ARG): Define.
10274
10275 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10276
10277         * config/bfin/bfin-protos.h (function_arg, function_arg_advance):
10278         Delete.
10279         * config/bfin/bfin.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10280         * config/bfin/bfin.c (function_arg_advance): Rename to...
10281         (bfin_function_arg_advance): ...this.  Make static.  Take const_tree
10282         and bool arguments.
10283         (function_arg): Rename to...
10284         (bfin_function_arg): ...this.  Make static.  Take const_tree and bool
10285         arguments.
10286         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10287
10288 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10289
10290         * config/score/score-protos.h (score_function_arg): Delete.
10291         (score_function_arg_advance): Delete.
10292         * config/score/score3.h (score3_function_arg_advance): Take a
10293         const_tree and a bool.
10294         (score3_function_arg): Likewise.
10295         * config/score/score7.h (score7_function_arg_advance): Likewise.
10296         (score7_function_arg): Likewise.
10297         * config/score/score3.c (score3_classify_arg): Likewise.
10298         (score3_function_arg_advance, score3_function_arg): Likewise.
10299         * config/score/score7.c (score7_classify_arg): Likewise.
10300         (score7_function_arg_advance, score7_function_arg): Likewise.
10301         * config/score/score.c (score_function_arg_advance): Likewise.
10302         (score_function_arg): Likewise.  De-const-ify `cum' argument.
10303         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10304
10305 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10306
10307         * config/s390/s390-protos.h (s390_function_arg_advance): Delete.
10308         (s390_function_arg): Delete.
10309         * config/s390/s390.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10310         * config/s390/s390.c (s390_function_arg_float): Take a const_tree.
10311         (s390_function_arg_integer): Likewise.
10312         (s390_function_arg_advance): Make static.  Take a const_tree and
10313         a bool.
10314         (s390_function_arg): Likewise.
10315         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10316
10317 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10318
10319         * config/spu/spu-protos.h (spu_function_arg): Delete.
10320         * config/spu/spu.h (FUNCTION_ARG): Delete.
10321         (FUNCTION_ARG_ADVANCE): Move code to ...
10322         * config/spu/spu.c (spu_function_arg_advance): New function.
10323         (spu_function_arg): Make static.  Take a const_tree and a bool.
10324         (spu_setup_incoming_varargs): Call spu_function_arg_advance.
10325         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10326
10327 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10328
10329         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
10330
10331 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10332
10333         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): New function.
10334         (init_vn_nary_op_from_op): New function.
10335         (init_vn_nary_op_from_stmt): New function.
10336         (vn_nary_op_lookup_1): New function.
10337         (sizeof_vn_nary_op): New function.
10338         (alloc_vn_nary_op_noinit): New function.
10339         (alloc_vn_nary_op): New function.
10340         (vn_nary_op_insert_into): New function.
10341         (vn_nary_op_lookup_pieces): Rewrite to use new helper functions.
10342         (vn_nary_op_lookup): Likewise.
10343         (vn_nary_op_lookup_stmt): Likewise.
10344         (vn_nary_op_insert_pieces): Likewise.
10345         (vn_nary_op_insert): Likewise.
10346         (vn_nary_op_insert_stmt): Likewise.
10347         (copy_nary): Likewise.
10348         (set_value_id_for_result): New function.
10349         (set_hashtable_value_ids): Call it.
10350
10351 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10352
10353         * config/fr30/fr30.c (TARGET_EXCEPT_UNWIND_INFO): Define.
10354         * config/fr30/fr30.md (leave_func): Rewrite without post_inc.
10355
10356 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10357
10358         * config/mcore/mcore.h (INCOMING_RETURN_ADDR_RTX): Define.
10359         * config/mcore/mcore.c (TARGET_EXCEPT_UNWIND_INFO): Define.
10360
10361 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
10362
10363         PR debug/45656
10364         * cse.c (cse_extended_basic_block): Preserve cc0 info across
10365         debug isnsn.  Skip them when searching for cc0 setter.
10366         (set_live_p): Skip debug insns when searching for cc0 user.
10367
10368 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
10369
10370         PR debug/45673
10371         PR debug/45604
10372         PR debug/45419
10373         PR debug/45408
10374         * tree-pretty-print.c (dump_generic_node): Explicitly dump the
10375         type of MEM_REFs to INTEGER_CSTs.
10376
10377 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
10378
10379         * config/m68hc11/m68hc11.c (m68hc11_print_operand): Call
10380         m68hc11_print_operand_address.
10381
10382 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
10383
10384         * builtins.c (rewrite_call_expr): Move code to...
10385         (rewrite_call_expr_valist): ...here.  Call build_call_expr_loc_array.
10386         (rewrite_call_expr_array): New function.
10387         (fold_builtin_sprintf_chk_1): New function.
10388         (fold_builtin_sprintf_chk): Call it.
10389         (gimple_fold_builtin_sprintf_chk): Likewise.
10390         (fold_builtin_snprintf_chk_1): New function.
10391         (fold_builtin_snprintf_chk): Call it.
10392         (gimple_fold_builtin_snprintf_chk): Likewise.
10393         (gimple_rewrite_call_expr): Delete.
10394
10395 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
10396
10397         * config.host: Update copyright year.
10398
10399 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
10400
10401         * config.host (host_lto_plugin_soname): New shell variable.
10402         * configure.ac (LTOPLUGINSONAME): Add an AC_DEFINE for the above.
10403         * config.in: Regenerate.
10404         * configure: Regenerate.
10405         * gcc.c (main): Use LTOPLUGINSONAME instead of hard-coding name of
10406         LTO plugin shared library.
10407
10408 2010-10-07  Richard Henderson  <rth@redhat.com>
10409
10410         * target.h (enum unwind_info_type): Move ...
10411         * coretypes.h: ... here.
10412
10413 2010-10-07  Nicola Pero  <nicola.pero@meta-innovation.com>
10414
10415         * doc/objc.texi (Fast enumeration protocol): Mention that
10416         'unsigned int' can also be used instead of 'unsigned long' in
10417         countByEnumeratingWithState:objects:count:.
10418
10419 2010-10-07  Martin Jambor  <mjambor@suse.cz>
10420
10421         * tree-sra.c (struct access): New field grp_assignment_write.
10422         (dump_access): Dump grp_assignment_write.
10423         (build_accesses_from_assign): Set grp_assignment_write.
10424         (sort_and_splice_var_accesses): Aggregate grp_assignment_write.
10425         (mark_read_status): Renamed to mark_rw_status, individual values
10426         renamed too.
10427         (analyze_access_subtree): Changed type of mark_write to
10428         mark_read_status.  Fixed propagating of mark_read and
10429         mark_write.  Changed benefit estimate.  Updated comment.
10430
10431 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
10432
10433         PR Tree-Vect/45847
10434         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Add NULL
10435         check for vectype_out returned by get_vectype_for_scalar_type().
10436
10437 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
10438
10439         PR target/45805
10440         * config/arm/neon.md (neon_unpack<US>_<mode>): Add 'w' to
10441         constraint, add register specifier in instruction template.
10442         (neon_vec_pack_trunc_<mode>): Likewise.
10443         (neon_vec_<US>mult_<mode>): Add register specifier to
10444         instruction template.
10445
10446 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
10447
10448         * config.gcc (c_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add
10449         cygwin2.o.
10450         (cxx_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Likewise.
10451         (extra_gcc_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add cygwin1.o.
10452         * config/i386/t-cygwin (cygwin1.o): Delete build rule.
10453         (cygwin2.o): Likewise.
10454         * config/i386/cygwin1.c: Delete file.
10455         * config/i386/cygwin2.c: Likewise.
10456         * config/i386/cygwin.h (CPP_SPEC): Remove all %{mno-cygwin} specs and
10457         make all {%!mno-cygwin} ones unconditional.
10458         (STARTFILE_SPEC): Likewise.
10459         (REAL_LIBGCC_SPEC): Likewise.
10460         (LIB_SPEC): Likewise.
10461         (CXX_WRAP_SPEC): Likewise.
10462         (LINK_SPEC): Likewise.
10463         (CYGWIN_MINGW_SUBDIR): Delete now-unused macro definition.
10464         (CYGWIN_MINGW_SUBDIR_LEN): Likewise.
10465         (cygwin_gplusplus_include_dir): Delete now-unused array.
10466         (GPLUSPLUS_INCLUDE_DIR): Don't redefine to point to it.
10467         (cygwin_gplusplus_tool_include_dir): Delete now-unused array.
10468         (GPLUSPLUS_TOOL_INCLUDE_DIR): Don't redefine to point to it.
10469         (cygwin_gplusplus_backward_include_dir): Delete now-unused array.
10470         (GPLUSPLUS_BACKWARD_INCLUDE_DIR): Don't redefine to point to it.
10471         (cygwin_local_include_dir): Delete now-unused array.
10472         (LOCAL_INCLUDE_DIR): Don't redefine to point to it.
10473         (cygwin_cross_include_dir): Delete now-unused array.
10474         (CROSS_INCLUDE_DIR): Don't redefine to point to it.
10475         (cygwin_tool_include_dir): Delete now-unused array.
10476         (TOOL_INCLUDE_DIR): Don't redefine to point to it.
10477         (cygwin_standard_include_dir): Delete now-unused array.
10478         (STANDARD_INCLUDE_DIR): Don't redefine to point to it.
10479         (GEN_CVT_ARRAY): Delete now-unused macro definition.
10480         (cvt_to_mingw): Delete now-unused array.
10481         (mingw_scan): Remove prototype of deleted function.
10482         (GCC_DRIVER_HOST_INITIALIZATION): Don't define now-unused target macro.
10483         * config/i386/cygming.opt (mcygwin): Delete target-specific option.
10484         * doc/invoke.texi (-mcygwin): Don't document removed option.
10485         (-mno-cygwin): Likewise.
10486
10487 2010-10-07  Richard Guenther  <rguenther@suse.de>
10488
10489         * machmode.h (mode_for_vector): Declare.
10490         * stor-layout.c (mode_for_vector): New function, split out from ...
10491         (layout_type): ... here.
10492         * tree-vectorizer.h (current_vector_size): Declare.
10493         * tree-vect-stmts.c (perm_mask_for_reverse): Check if the
10494         mask vector type is available.
10495         (get_vectype_for_scalar_type): Rename to ...
10496         (get_vectype_for_scalar_type_and_size): ... this.  Get a vector
10497         size argument.
10498         (get_vectype_for_scalar_type): New wrapper around
10499         get_vectype_for_scalar_type_and_size using current_vector_size.
10500         (get_same_sized_vectype): Use get_vectype_for_scalar_type_and_size.
10501         * tree-vect-loop.c (vect_analyze_loop_2): Split out core part
10502         of vect_analyze_loop here.
10503         (vect_analyze_loop): Loop over vector sizes calling vect_analyze_loop_3.
10504         * tree-vect-slp.c (vect_slp_analyze_bb): Set current_vector_size
10505         to autodetect.
10506         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Fix
10507         V8SF to V8SI conversion builtin.
10508
10509 2010-10-07  Richard Guenther  <rguenther@suse.de>
10510
10511         * target.def (autovectorize_vector_sizes): New target hook.
10512         * targhooks.c (default_autovectorize_vector_sizes): New function.
10513         * targhooks.h (default_autovectorize_vector_sizes): Declare.
10514         * doc/tm.texi.in (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES):
10515         Document.
10516         * doc/tm.texi: Update.
10517         * config/i386/i386.c (ix86_autovectorize_vector_sizes): New function.
10518         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
10519
10520 2010-10-07  Richard Guenther  <rguenther@suse.de>
10521
10522         * target.def (units_per_simd_word): Rename to ...
10523         (preferred_simd_mode): ... this.  Return mode instead of size.
10524         * targhooks.c (default_units_per_simd_word): Rename to ...
10525         (default_preferred_simd_mode): ... this.  Return word_mode.
10526         * targhooks.h (default_preferred_simd_mode): Declare.
10527         * config/arm/arm.c (arm_units_per_simd_word): Rename to ...
10528         (arm_preferred_simd_mode): ... this.  Re-implement.
10529         * config/i386/i386.c (ix86_units_per_simd_word): Rename to ...
10530         (ix86_preferred_simd_mode): ... this.  Re-implement.
10531         * config/sparc/sparc.c (sparc_units_per_simd_word): Rename to ...
10532         (sparc_preferred_simd_mode): ... this.  Re-implement.
10533         * config/mips/mips.c (mips_units_per_simd_word): Rename to ...
10534         (mips_preferred_simd_mode): ... this.  Re-implement.
10535         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Rename to ...
10536         (rs6000_preferred_simd_mode): ... this.  Re-implement.
10537         * tree-vect-stmts.c (get_vectype_for_scalar_type): Adjust.
10538         * doc/tm.texi.in (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Remove.
10539         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Document.
10540         * doc/tm.texi: Update.
10541
10542 2010-10-07  Richard Guenther  <rguenther@suse.de>
10543
10544         PR middle-end/45869
10545         * tree-cfg.c (verify_gimple_assign_binary): Allow vector shifts
10546         of pointers.
10547
10548 2010-10-07  Alan Modra  <amodra@gmail.com>
10549
10550         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use gen_int_mode
10551         rather than sign extension by hand.
10552
10553 2010-10-07  Jan Hubicka  <jh@suse.cz>
10554
10555         PR middle-end/45926
10556         * ipa.c (cgraph_remove_unreachable_nodes): Revert my previous patch.
10557
10558 2010-10-07  Richard Guenther  <rguenther@suse.de>
10559
10560         PR bootstrap/45914
10561         * configure.ac: Fix typo.
10562         * configure: Regenerated.
10563
10564 2010-10-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
10565
10566         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Don't use
10567         define_builtin_std where it's unnecessary.
10568         * config/i386/nto.h (TARGET_OS_CPP_BUILTINS): Likewise.
10569
10570 2010-10-06  Anatoly Sokolov  <aesok@post.ru>
10571
10572         * doc/tm.texi.in (CLASS_LIKELY_SPILLED_P): Remove documentation.
10573         * doc/tm.texi.in: Regenerate.
10574         * system.h (CLASS_LIKELY_SPILLED_P): Poison.
10575         * targhooks.c (default_class_likely_spilled_p): Don't use the
10576         CLASS_LIKELY_SPILLED_P macro.
10577
10578         * config/arm/arm.md: Update comment.
10579
10580 2010-10-06  Jan Hubicka  <jh@suse.cz>
10581
10582         * ipa.c (cgraph_remove_unreachable_nodes): External references can
10583         always be removed.
10584         (cgraph_externally_visible_p): We can not bring local comdats that
10585         are known to linker; fix handling of internal visibility.
10586         (function_and_variable_visibility): Likewise.
10587
10588 2010-10-06  Eric Botcazou  <ebotcazou@adacore.com>
10589
10590         PR rtl-optimization/45394
10591         * combine.c (cleanup_auto_inc_dec): Remove AFTER parameter and adjust.
10592         (struct rtx_subst_pair): Remove AFTER field.
10593         (propagate_for_debug_subst): Adjust call to cleanup_auto_inc_dec.
10594         (propagate_for_debug): Remove MOVE parameter and adjust.
10595         (try_combine): In the special case where I2 is a PARALLEL, combine only
10596         destinations of SETs and set I2SRC to the I2 source.
10597         Adjust calls to propagate_for_debug throughout.
10598         * reload1.c (eliminate_regs_1) <ASM_OPERANDS>: Do not abort for debug
10599         insns.
10600
10601 2010-10-06  Olivier Hainque  <hainque@adacore.com>
10602
10603         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Rewrite
10604         switch on insn codes as sequence of ifs.
10605
10606 2010-10-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
10607
10608         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Define it to
10609         be UI_NONE for picochip.
10610         (picochip_option_override): Do not disable exception flags.
10611         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
10612         Declare.
10613
10614 2010-10-06  Richard Guenther  <rguenther@suse.de>
10615
10616         * Makefile.in (regmove.o): Depend on $(TARGET_H).
10617
10618 2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
10619
10620         Implemented fast enumeration for Objective-C.
10621         * c-parser.c (objc_could_be_foreach_context): New.
10622         (c_lex_one_token): Recognize RID_IN keyword in a potential
10623         Objective-C foreach context.
10624         (c_parser_declaration_or_fndef): Added parameter.  Accept
10625         Objective-C RID_IN keyword as terminating a declaration; in that
10626         case, return the declaration in the new parameter.
10627         (c_parser_extenral_declaration): Updated calls to
10628         c_parser_declaration_or_fndef.
10629         (c_parser_declaration_or_fndef): Same change.
10630         (c_parser_compound_statement_nostart): Same change.
10631         (c_parser_label): Same change.
10632         (c_parser_objc_methodprotolist): Same change.
10633         (c_parser_omp_for_loop): Same change.
10634         (c_parser_for_statement): Detect and parse Objective-C foreach
10635         statements.
10636         (c_parser_omp_for_loop): Updated call to check_for_loop_decls().
10637         * c-decl.c (check_for_loop_decls): Added parameter to allow ObjC
10638         fast enumeration parsing code to turn off the c99 error but still
10639         perform checks on the loop declarations.
10640         * c-tree.h (check_for_loop_decls): Updated declaration.
10641         * doc/objc.texi: Document fast enumeration.
10642
10643 2010-10-06  Nick Clifton  <nickc@redhat.com>
10644
10645         * config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Increment by one.
10646         (MDR_REGNUM): Define.
10647         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add MDR as a fixed register.
10648         (REG_CLASS_CONTENTS): Add MDR to ALL_REGS.
10649         (INCOMING_RETURN_ADDR_RTX): Define in terms of MDR.
10650         (REGISTER_NAMES): Add MDR.
10651         (DWARF2_DEBUGGING_INFO): Define to 1.
10652         * config/mn10300/mn10300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
10653         (F): New function.  Sets RTX_FRAME_RELATED_P.
10654         (mn10300_gen_multiple_store): Use F.
10655         (expand_prologue): Use F.  Use gen_movsf() to push floating
10656         point registers.
10657         (expand_epilogue): Use gen_movsf() to pop floating point registers.
10658         (mn10300_option_override): Disable combine stack adjust pass.
10659
10660 2010-10-06  Thomas Schwinge  <thomas@schwinge.name>
10661
10662         PR target/45901
10663         * config/alpha/gnu.h (TARGET_OS_CPP_BUILTINS): Refer to
10664         LINUX_TARGET_OS_CPP_BUILTINS instead of HURD_TARGET_OS_CPP_BUILTINS.
10665
10666 2010-10-06  Jakub Jelinek  <jakub@redhat.com>
10667
10668         * builtins.def (BUILT_IN_CALLOC, BUILT_IN_REALLOC,
10669         BUILT_IN_ISALNUM, BUILT_IN_ISALPHA, BUILT_IN_ISASCII,
10670         BUILT_IN_ISBLANK, BUILT_IN_ISCNTRL, BUILT_IN_ISDIGIT,
10671         BUILT_IN_ISGRAPH, BUILT_IN_ISLOWER, BUILT_IN_ISPRINT,
10672         BUILT_IN_ISPUNCT, BUILT_IN_ISSPACE, BUILT_IN_ISUPPER,
10673         BUILT_IN_ISXDIGIT, BUILT_IN_TOASCII, BUILT_IN_TOLOWER,
10674         BUILT_IN_TOUPPER): Mark as leaf.
10675
10676         PR middle-end/45838
10677         * omp-builtins.def (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
10678         BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
10679         BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
10680         BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
10681         BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_TASK,
10682         BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Use
10683         Revert back to ATTR_NOTHROW_LIST instead of ATTR_NOTHROW_LEAF_LIST.
10684
10685 2010-10-05  Anatoly Sokolov  <aesok@post.ru>
10686
10687         * config/m68hc11/m68hc11.h (CLASS_LIKELY_SPILLED_P): Remove.
10688         * config/m68hc11/m68hc11.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
10689         (m68hc11_class_likely_spilled_p): New function.
10690
10691 2010-10-05  Nicola Pero  <nicola.pero@meta-innovation.com>
10692
10693         * c-parser.c (c_parser_objc_method_definition): Updated comment.
10694
10695 2010-10-05  Jan Hubicka  <jh@suse.cz>
10696
10697         * doc/invoke.texi (-flto-partition, lto-partitions, lto-minpartition):
10698         Document.
10699         * opts.c (decode_options): Handle lto partitions.
10700         * common.opt (flto-partition=1to1, flto-partition=balanced): New.
10701         * params.def (PARAM_LTO_PARTITIONS, MIN_PARTITION_SIZE): New.
10702
10703 2010-10-05  Jan Hubicka  <jh@suse.cz>
10704
10705         * cgraphunit.c (assemble_function): Output thunks and aliases before
10706         the function itself.
10707
10708 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
10709
10710         * config/picochip/picochip.c (picochip_option_override): Disable
10711         exception flags for picochip.
10712
10713 2010-10-05  Joseph Myers  <joseph@codesourcery.com>
10714
10715         * opts-common.c (handle_option, handle_generated_option,
10716         read_cmdline_option, set_option): Add diagnostic_context
10717         parameter.  Update calls among these functions.
10718         (set_option): Don't use global_dc.
10719         * opts.c (read_cmdline_options): Pass global_dc to read_cmdline_option.
10720         (decode_options): Pass global_dc to enable_warning_as_error.
10721         (common_handle_option): Pass global_dc to enable_warning_as_error.
10722         (enable_warning_as_error): Add diagnostic_context parameter.
10723         Document parameters.  Don't use global_dc.  Pass
10724         diagnostic_context parameter to handle_generated_option.
10725         * opts.h (set_option, handle_option, handle_generated_option,
10726         read_cmdline_option, enable_warning_as_error): Add
10727         diagnostic_context parameter.
10728         * Makefile.in (lto-opts.o): Update dependencies.
10729         * coretypes.h (struct diagnostic_context, diagnostic_context):
10730         Declare here.
10731         * diagnostic.h (diagnostic_context): Don't declare typedef here.
10732         * gcc.c (process_command): Pass global_dc to read_cmdline_option.
10733         * langhooks-def.h (struct diagnostic_context): Don't declare here.
10734         (lhd_print_error_function, lhd_initialize_diagnostics): Declare
10735         using diagnostic_context typedef.
10736         * langhooks.c (lhd_initialize_diagnostics): Declare using
10737         diagnostic_context typedef.
10738         * langhooks.h (struct diagnostic_context): Don't declare here.
10739         (initialize_diagnostics, print_error_function): Declare using
10740         diagnostic_context typedef.
10741         * lto-opts.c: Include diagnostic.h.
10742         (lto_reissue_options): Pass global_dc to set_option.  Pass
10743         DK_UNSPECIFIED not 0.
10744         * plugin.c (plugins_internal_error_function): Declare using
10745         diagnostic_context typedef.
10746         * plugin.h (struct diagnostic_context): Don't declare here.
10747         (plugins_internal_error_function): Declare using
10748         diagnostic_context typedef.
10749
10750 2010-10-05  Olivier Hainque  <hainque@adacore.com>
10751             Nicolas Roche  <roche@adacore.com>
10752
10753         * config/vxworksae.h: Add missing VXWORKS_OS_CPP_BUILTINS.
10754         * config/rs6000/vxworks.h: Remove redundant CPP builtin definitions.
10755
10756 2010-10-05  Ira Rosen  <irar@il.ibm.com>
10757
10758         PR tree-optimization/45752
10759         * tree-vect-slp.c (vect_get_mask_element): Remove static
10760         variables, make them function arguments.
10761         (vect_transform_slp_perm_load): Pass new arguments to
10762         vect_get_mask_element.
10763
10764 2010-10-05  Richard Guenther  <rguenther@suse.de>
10765
10766         * value-prof.c (gimple_divmod_fixed_value): Work on SSA form.
10767         (gimple_mod_pow2): Likewise.
10768         (gimple_mod_subtract): Likewise.
10769         (gimple_ic): Likewise.
10770         (gimple_stringop_fixed_value): Likewise.
10771         * tree-profile.c (tree_init_edge_profiler): Mark profile
10772         functions nothrow and leaf.
10773         (add_abnormal_goto_call_edges): Remove.
10774         (tree_gen_edge_profiler): Work on SSA form.
10775         (tree_gen_ic_profiler): Likewise.  Simplify.
10776         (do_tree_profiling): Update SSA form.
10777         (pass_tree_profile): Remove.
10778         (do_tree_profiling): Likewise.
10779         (gate_tree_profile_ipa): New function.
10780         (pass_ipa_tree_profile): New.
10781         (tree_profiling): Re-write as IPA pass.  Properly drop const/pure
10782         state of instrumented functions.
10783         * passes.c (init_optimization_passes): Remove early non-SSA
10784         inlining.  Move profiling after early optimizations.
10785         * ipa-inline.c (cgraph_gate_ipa_early_inlining): Remove.
10786         (pass_ipa_early_inline): Likewise.
10787         * tree-pass.h (pass_ipa_early_inline): Remove.
10788         (pass_tree_profile): Likewise.
10789         (pass_ipa_tree_profile): Declare.
10790
10791 2010-10-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10792             Christian Borntraeger  <Christian.Borntraeger@de.ibm.com>
10793
10794         * config/s390/s390.c (z196_cost): New.
10795         (s390_handle_arch_option): Add -march=z196.
10796         (s390_option_override): Use the new cost function and use the z10
10797         defaults also for z196.
10798         (legitimate_reload_constant_p): Adjust comment.
10799         (legitimate_reload_fp_constant_p): New function.
10800         (s390_preferred_reload_class): Distingiush between FP and Int constants.
10801         (preferred_la_operand_p): Avoid la with index on z196.
10802         (s390_adjust_priority): Trigger also for z196.
10803         (s390_issue_rate): Issue rate for z196 is 3.
10804         (s390_z10_fix_long_loop_prediction): Rename to ...
10805         (s390_fix_long_loop_prediction): ... this.
10806         (s390_reorg): Apply the z10 adjustments also for z196.
10807         (s390_loop_unroll_adjust): Do this also for z196.
10808         * config/s390/s390.h (enum processor_type): Add PROCESSOR_2817_Z196.
10809         (enum processor_flags): Add PF_Z196.
10810         (TARGET_AVOID_CMP_AND_BRANCH): New macro.
10811         (TARGET_CPU_Z196, TARGET_Z196): New macros.
10812         * config.gcc: Enable z196 for --with-arch.
10813         * config/s390/2817.md: New file.
10814         * config/s390/2084.md: New type for multiply and add.
10815         * config/s390/2097.md: Likewise.
10816         * config/s390/s390.md (UNSPEC_POPCNT, UNSPEC_COPYSIGN)
10817         (UNSPECV_ATOMIC_OP): New constants.
10818         (fmadddf, fmaddsf): New values for type attribute.
10819         (z196prop): New insn attribute.
10820         (cpu, cpu_facility): Add z196.
10821         (ATOMIC_Z196): New code iterator.
10822         (noxa): New code attribute.
10823         (gk): New mode attribute.
10824         (*mov<mode>_64, *mov<mode>_31, *mov<mode>_64dfp, mov<mode>):
10825         Support load zero for fp constants.
10826         (fixuns_truncdddi2, fixuns_trunctddi2)
10827         (fixuns_trunc<BFP:mode><GPR:mode>2): Use the standard rtx pattern
10828         for z196.
10829         (fixuns_trunc<mode>si2, mov<mode>cc, popcountdi2, popcountsi2)
10830         (popcounthi2, popcountqi2): New expander.
10831         (*fixuns_trunc<FP:mode><GPR:mode>2_z196, floatsi<mode>2)
10832         (floatuns<GPR:mode><FP:mode>2, *mov<mode>cc, sync_<atomic><mode>)
10833         (sync_old_<atomic><mode>, *popcount<mode>, copysign<mode>3): New
10834         insn definition.
10835         (add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry1_cconly)
10836         (*add<mode>3_carry2_cc, *add<mode>3_carry2_cconly, *add<mode>3_cc)
10837         (*add<mode>3_cconly, *add<mode>3_cconly2, *add<mode>3_imm_cc)
10838         (*sub<mode>3, *sub<mode>3_borrow_cc, *sub<mode>3_borrow_cconly)
10839         (*sub<mode>3_cc, *sub<mode>3_cc2, *sub<mode>3_cconly)
10840         (*sub<mode>3_cconly2, *anddi3_cc, *anddi3_cconly, *anddi3, *andsi3_cc)
10841         (*andsi3_cconly, *andsi3_zarch, *andsi3_esa, *andhi3_zarch
10842         (*andqi3_zarch, *iordi3_cc, *iordi3_cconly, *iordi3, *iorsi3_cc)
10843         (*iorsi3_cconly, *iorsi3_zarch, *iorhi3_zarch, *iorqi3_zarch)
10844         (*xordi3_cc, *xordi3_cconly, *xordi3, *xorsi3_cc, *xorsi3_cconly)
10845         (*xorsi3, *xorhi3, *xorqi3, *<shift><mode>3, *<shift><mode>3_and)
10846         (*ashr<mode>3_cc, *ashr<mode>3_cconly, *ashr<mode>3)
10847         (*ashr<mode>3_cc_and, *ashr<mode>3_cconly_and, *ashr<mode>3_and):
10848         Support new z196 instructions.
10849
10850 2010-10-05  Richard Guenther  <rguenther@suse.de>
10851
10852         PR middle-end/45877
10853         * gimple-fold.c (gimplify_and_update_call_from_tree): Handle
10854         case where gimplification optimizes away the stmt.
10855
10856 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
10857
10858         PR debug/45849
10859         * var-tracking.c (strip_pointer_flags): New function.
10860         (emit_note_insn_var_location): If rtx_equal_p check failed,
10861         retry on locations simplified with simplify_replace_fn_rtx
10862         and strip_pointer_flags as its callback.
10863
10864 2010-10-04  Jan Hubicka  <jh@suse.cz>
10865
10866         * gimple-fold.c (static_object_in_other_unit_p): Rename to...
10867         (can_refer_decl_in_current_unit_p): ... this one; reverse return
10868         value; handle comdats too.
10869         (canonicalize_constructor_val): Use it; handle function_decls
10870         correctly.
10871         (gimple_fold_obj_type_ref_known_binfo): Likewise.
10872         * gimple.c (get_base_address): Accept all kinds of decls.
10873
10874 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
10875
10876         * flags.h (g_switch_value, g_switch_set): Remove.
10877         * opts.c (g_switch_value, g_switch_set): Remove.
10878         * config/g.opt (G): Add Var(g_switch_value).
10879         * config/alpha/alpha.c (alpha_handle_option): Don't handle -G here.
10880         (alpha_option_override): Check global_options_set.x_g_switch_value
10881         instead of g_switch_set.
10882         (alpha_in_small_data_p): Remove cast in comparison with
10883         g_switch_value.
10884         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
10885         g_switch_value to unsigned HOST_WIDE_INT.
10886         * config/frv/frv.c (frv_const_unspec_p): Remove cast in comparison
10887         with g_switch_value.
10888         (frv_handle_option): Don't handle -G here.
10889         (frv_option_override): Check global_options_set.x_g_switch_value
10890         instead of g_switch_set.  Don't modify g_switch_set.
10891         (frv_in_small_data_p): Remove cast in comparison with g_switch_value.
10892         * config/frv/frv.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Cast
10893         g_switch_value to unsigned HOST_WIDE_INT.
10894         * config/ia64/ia64.c (ia64_handle_option): Don't handle -G here.
10895         (ia64_option_override): Check global_options_set.x_g_switch_value
10896         instead of g_switch_set.
10897         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION):
10898         Remove.
10899         (lm32_in_small_data_p): Remove cast in comparison with
10900         g_switch_value.
10901         * config/lm32/lm32.h (ASM_OUTPUT_ALIGNED_LOCAL,
10902         ASM_OUTPUT_ALIGNED_COMMON): Cast g_switch_value to unsigned
10903         HOST_WIDE_INT.
10904         * config/m32r/m32r.c (m32r_handle_option): Don't handle -G here.
10905         (m32r_init): Check global_options_set.x_g_switch_value instead of
10906         g_switch_set.
10907         (m32r_in_small_data_p): Remove cast in comparison with
10908         g_switch_value.
10909         (m32r_file_start): Format g_switch_value with %d.
10910         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_COMMON,
10911         ASM_OUTPUT_ALIGNED_BSS): Cast g_switch_value to unsigned HOST_WIDE_INT.
10912         * config/microblaze/microblaze.c (microblaze_handle_option): Don't
10913         handle -G here.
10914         (microblaze_option_override): Check
10915         global_options_set.x_g_switch_value instead of g_switch_set.
10916         * config/mips/mips.c (mips_handle_option): Don't handle -G here.
10917         (mips_option_override): Check global_options_set.x_g_switch_value
10918         instead of g_switch_set.
10919         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle -G here.
10920         (rs6000_file_start): Format g_switch_value with %d.
10921         (small_data_operand, rs6000_elf_in_small_data_p): Remove casts in
10922         comparisons with g_switch_value.
10923         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Check
10924         global_options_set.x_g_switch_value instead of g_switch_set.
10925         * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
10926         global_options_set.x_g_switch_value instead of g_switch_set.
10927         * config/score/score.c (score_handle_option): Don't handle -G here.
10928         * config/score/score3.c (score3_option_override): Check
10929         global_options_set.x_g_switch_value instead of g_switch_set.
10930         * config/score/score7.c (score7_option_override): Check
10931         global_options_set.x_g_switch_value instead of g_switch_set.
10932
10933 2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
10934
10935         * common.opt (fira-coalesce): Remove.
10936
10937         * doc/invoke.texi (flag_ira_coalesce): Remove.
10938
10939         * ira-color.c (allocno_coalesced_p): Move before
10940         copy_freq_compare_func.
10941         processed_coalesced_allocno_bitmap): Ditto.
10942         (update_conflict_hard_regno_costs): Don't use
10943         ALLOCNO_FIRST_COALESCED_ALLOCNO.
10944         (allocno_cost_compare_func, print_coalesced_allocno): Remove.
10945         (assign_hard_reg): Assume no coalesced allocnos.
10946         (get_coalesced_allocnos_attributes): Remove.
10947         (bucket_allocno_compare_func): Assume no coalesced allocnos.
10948         (push_allocno_to_stack): Ditto.
10949         (remove_allocno_from_bucket_and_push): Use
10950         ira_print_expanded_allocno instead of print_coalesced_allocno.
10951         (push_allocnos_to_stack): Assume uncoalesced allocnos.
10952         (all_conflicting_hard_regs_coalesced): Ditto.  Rename to
10953         all_conflicting_hard_regs.
10954         (setup_allocno_available_regs_num): Assume uncoalesced allocnos.
10955         (setup_allocno_left_conflicts_size): Ditto.
10956         (put_allocno_into_bucket): Ditto.
10957         (copy_freq_compare_func): Remove.
10958         (copy_freq_compare_func, merge_allocnos): Move before
10959         coalesced_pseudo_reg_freq_compare.
10960         coalesced_allocno_conflict_p): Ditto.
10961         (coalesced_allocno_conflict_p, coalesce_allocnos): Ditto.  Remove
10962         parameter.  Assume it true.
10963         (color_allocnos): Assume uncoalesced allocnos.  Use
10964         ira_print_expanded_allocno instead of print_coalesced_allocno.
10965         (ira_sort_regnos_for_alter_reg): Call coalesce_allocnos without
10966         parameter.
10967
10968         * ira.c: Remove comment about coalescing.
10969
10970 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
10971
10972         * config/mips/mips.h (target_flags_explicit): Declare for
10973         GENERATOR_FILE.
10974
10975 2010-10-04  Andi Kleen  <ak@linux.intel.com>
10976
10977         * Makefile.in (xgcc, cpp, cc1, collect2, lto-wrapper, gcov,
10978         gcov-dump, cc1-dummy, genprog, build/gcov-iov): Add + to build rule.
10979
10980 2010-10-04  Matthias Klose  <doko@ubuntu.com>
10981
10982         * config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
10983         multilib osdirname if it exists.
10984         * config/s390/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
10985
10986 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
10987
10988         PR middle-end/45876
10989         * fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Use
10990         arg0's type or its unsigned counterpart as utype.  Convert
10991         arg1 to utype unconditionally.
10992
10993 2010-10-04  Julian Brown  <julian@codesourcery.com>
10994
10995         * expr.c (expand_assignment): Add assertion to prevent emitting
10996         null rtx for movmisalign pattern.
10997         (expand_expr_real_1): Likewise.
10998         * config/arm/arm.c (arm_builtin_support_vector_misalignment): New.
10999         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): New. Use above.
11000         (arm_vector_alignment_reachable): New.
11001         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): New. Use above.
11002         (neon_vector_mem_operand): Disallow PRE_DEC for misaligned loads.
11003         (arm_print_operand): Include alignment qualifier in %A.
11004         * config/arm/neon.md (UNSPEC_MISALIGNED_ACCESS): New constant.
11005         (movmisalign<mode>): New expander.
11006         (movmisalign<mode>_neon_store, movmisalign<mode>_neon_load): New
11007         insn patterns.
11008
11009 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
11010
11011         * optc-gen.awk: Define global_options_set.  Don't define
11012         target_flags_explicit.
11013         * opth-gen.awk: Declare global_options_set.  Define
11014         target_flags_explicit as macro.
11015         * opts-common.c (handle_option): Take opts_set and generated_p
11016         parameters.
11017         (handle_generated_option, read_cmdline_option, set_option): Take
11018         opts_set parameter.
11019         (set_option): Use opts_set instead of hardcoding target_flags and
11020         target_flags_explicit.
11021         * opts.c (sel_sched_switch_set, profile_arc_flag_set,
11022         flag_profile_values_set, flag_unroll_loops_set, flag_tracer_set,
11023         flag_value_profile_transformations_set, flag_peel_loops_set,
11024         flag_branch_probabilities_set, flag_inline_functions_set,
11025         flag_ipa_cp_set, flag_ipa_cp_clone_set,
11026         flag_predictive_commoning_set, flag_unswitch_loops_set,
11027         flag_gcse_after_reload_set): Remove.
11028         (common_handle_option, lang_handle_option, target_handle_option):
11029         Take opts_set parameter.  Assert that it is &global_options_set.
11030         (common_handle_option): Don't set _set variables.  Check opts_set
11031         instead of such variables.
11032         (enable_warning_as_error): Pass &global_options_set to
11033         handle_generated_option.
11034         * opts.h (cl_option_handler_func.handler, set_option,
11035         handle_option, handle_generated_option, read_cmdline_option): Add
11036         opts_set parameters.
11037         (handle_option): Add generated_p parameter.
11038         * config/i386/i386.c (ix86_function_specific_save,
11039         ix86_function_specific_restore): Updat for renaming of
11040         target_flags_explicit field.
11041         * config/i386/i386.opt (target_flags_explicit): Rename to
11042         ix86_target_flags_explicit.
11043         * config/ia64/ia64.c (ia64_override_options_after_change): Check
11044         global_options_set.x_flag_selective_scheduling and
11045         global_options_set.x_flag_selective_scheduling2, not
11046         sel_sched_switch_set.
11047         * flags.h (sel_sched_switch_set,
11048         flag_speculative_prefetching_set): Remove.
11049         * gcc.c (driver_handle_option): Take opts_set parameter.  Assert
11050         that it is &global_options_set.
11051         (process_command): Pass &global_options_set to read_cmdline_option.
11052         * lto-opts.c (lto_reissue_options): Pass &global_options_set to
11053         set_option.
11054         * toplev.c (target_flags_explicit): Remove.
11055
11056 2010-10-04  Jan Hubicka  <jh@suse.cz>
11057
11058         PR middle-end/45871
11059         * tree-ssa-ccp.c (get_base_constructor): Take HOST_WIDE_INT offset;
11060         use get_ref_base_and_offset to handle references.
11061         (fold_const_aggregate_ref): Update.
11062
11063 2010-10-04  Martin Jambor  <mjambor@suse.cz>
11064
11065         PR tree-optimization/45572
11066         * ipa-prop.c (ipa_make_edge_direct_to_target): Call
11067         ipa_check_create_node_params.
11068         * ipa-inline.c (add_new_edges_to_heap): Do not insert inlined edges.
11069
11070 2010-10-04  Yao Qi  <yao@codesourcery.com>
11071
11072         * doc/passes.texi: Clean up.
11073
11074 2010-10-03  Ian Lance Taylor  <iant@google.com>
11075
11076         * c-typeck.c (lookup_field): If -fplan9-extensions, permit
11077         referring to a field using a typedef name.
11078         (find_anonymous_field_with_type): New static function.
11079         (convert_to_anonymous_field): New static function.
11080         (convert_for_assignment): If -fplan9-extensions, permit converting
11081         pointer to struct to pointer to anonymous field.
11082         * c-decl.c (grokfield): If -fplan9-extensions, permit anonymous fields.
11083         (is_duplicate_field): New static function.
11084         (detect_field_duplicates_hash): If -fplan9-extensions, check for
11085         typedef names duplicating field names.
11086         (detect_field_duplicates): Likewise.
11087         * doc/invoke.texi (Option Summary): Mention -fplan9-extensions.
11088         (C Dialect Options): Document -fplan9-extensions.
11089         * doc/extend.texi (Unnamed Fields): Document -fplan9-extensions.
11090
11091 2010-10-03  H.J. Lu  <hongjiu.lu@intel.com>
11092
11093         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Revert
11094         revision 164914.
11095         (vect_create_data_ref_ptr): Likewise.
11096         * tree-vect-stmts.c (vectorizable_store): Likewise.
11097         (perm_mask_for_reverse): Likewise.
11098         (reverse_vec_elements): Likewise.
11099         (vectorizable_load): Likewise.
11100
11101 2010-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
11102
11103         * cppbuiltin.c: New file.
11104         * cppbuiltin.h: New file.
11105         * Makefile.in: Take into account cppbuiltin.{h,c}.
11106
11107 2010-10-03  Andi Kleen  <ak@linux.intel.com>
11108
11109         * lto-cgraph.c (input_cgraph): Check for missing sections.
11110
11111 2010-10-03  Uros Bizjak  <ubizjak@gmail.com>
11112
11113         * config/i386/i386.md (*ashl<mode>3_mask): Change operand 2 predicate
11114         to nonimmediate_operand.  Force operand 2 to register when allowed.
11115         (*<shiftrt_insn><mode>3_mask): Ditto.
11116         (*<rotate_insn><mode>3_mask): Ditto.
11117
11118 2010-10-02  H.J. Lu  <hongjiu.lu@intel.com>
11119
11120         PR tree-optimization/45720
11121         PR tree-optimization/45764
11122         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
11123         Don't accept backwards consecutive accesses.
11124         (vect_create_data_ref_ptr): Disallow negative steps.
11125
11126         * tree-vect-stmts.c (vectorizable_store): Allow negative steps.
11127         (perm_mask_for_reverse): Removed.
11128         (reverse_vec_elements): Likewise.
11129         (vectorizable_load): Don't handle negative steps.
11130
11131 2010-10-02  Jan Hubicka  <jh@suse.cz>
11132
11133         * tree-ssa-ccp.c (ccp_fold_stmt): Fold away OBJ_TYPE_REF when
11134         call destination is known.
11135
11136 2010-10-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11137
11138         PR target/45820
11139         * config/pa/pa.c (pa_secondary_reload): Handle symbolic operands
11140         earlier.
11141
11142 2010-10-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11143
11144         * doc/install.texi (Configuration): Document build_configargs,
11145         host_configargs, target_configargs.
11146
11147 2010-10-01  Uros Bizjak  <ubizjak@gmail.com>
11148
11149         * config/i386/i386.md (*ashl<mode>3_mask): New insn_and_split pattern.
11150         (*<shiftrt_insn><mode>3_mask): Ditto.
11151         (*<rotate_insn><mode>3_mask): Ditto.
11152
11153 2010-10-01  Steve Ellcey  <sje@cup.hp.com>
11154
11155         PR tree-optimization/44716
11156         * config/ia64/hpux.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
11157         (HOT_TEXT_SECTION_NAME): Define.
11158
11159 2010-10-01  Nick Clifton  <nickc@redhat.com>
11160
11161         * common.opt: Add -fcombine-stack-adjustments.
11162         * opts.c (decode_options): Enable -fcombine-stack-adjustments at -O1.
11163         * combine-stack-adj.c (gate_handle_stack_adjustments): Check
11164         flag_combine_stack_adjustments.
11165         * doc/invoke.texi: Document the new option.
11166
11167 2010-10-01  Richard Guenther  <rguenther@suse.de>
11168
11169         PR tree-optimization/45854
11170         * tree-eh.c (cleanup_empty_eh): Avoid degenerate case.
11171
11172 2010-10-01  Anthony Green  <green@moxielogic.com>
11173
11174         * config.gcc: Fix moxie-*-rtems* configuration.
11175
11176 2010-10-01  Richard Guenther  <rguenther@suse.de>
11177
11178         * dwarf2out.c (gen_namespace_die): Use DECL_FILE_SCOPE_P.
11179         (gen_decl_die): Likewise.
11180
11181 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11182
11183         * config/spu/spu.c (spu_init_builtins): No longer add END_BUILTINS
11184         to the function code for SPU MD builtins.
11185         (spu_expand_builtin): Update.
11186         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Update.
11187
11188 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11189
11190         * config/spu/spu.c (TARGET_EXCEPT_UNWIND_INFO): Set to
11191         sjlj_except_unwind_info.
11192
11193 2010-10-01  Tristan Gingold  <gingold@adacore.com>
11194
11195         * configure.ac: Define the nop insn for avr*-*-*
11196         * configure: Regenerate.
11197
11198 2010-10-01  Alan Modra  <amodra@gmail.com>
11199
11200         PR target/45807
11201         * config/rs6000/rs6000.c (rs6000_emit_prologue): Properly sign
11202         extend toc_restore_insn.
11203
11204 2010-09-30  Richard Guenther  <rguenther@suse.de>
11205
11206         PR tree-optimization/43959
11207         * function.c (gimplify_parameters): Use create_tmp_reg instead of
11208         create_tmp_var.
11209
11210 2010-09-30  Kaz Kojima  <kkojima@gcc.gnu.org>
11211
11212         * config/sh/sh.c (sh_expand_prologue): Set
11213         current_function_static_stack_size.
11214
11215 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11216
11217         * configure.ac: Check for Solaris 8 ld with .hidden support.
11218         * configure: Regenerate.
11219
11220 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11221
11222         PR middle-end/45758
11223         * graphite.c (graphite_initialize): Call scev_reset.
11224
11225 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11226
11227         * sese.h (scev_analyzable_p): Return false for real or floating
11228         point.  Only handle INTEGRAL_TYPE_P and POINTER_TYPE_P.
11229
11230 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11231
11232         * graphite-clast-to-gimple.c (compute_bounds_for_level): Free le
11233         and ps.
11234         * graphite-poly.c (pbb_number_of_iterations_at_time): Free le and
11235         domain.
11236         * graphite-sese-to-poly.c (add_upper_bounds_from_estimated_nit):
11237         Do not allocate ub_expr, it is passed in initialized.
11238
11239 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
11240
11241         * graphite-clast-to-gimple.c (init_cloog_input_file): New.
11242         (build_cloog_prog): Dump CLooG input file when
11243         flag_graphite_dump_cloog is set.  This is disabled on trunk.
11244         * graphite-cloog-compat.h (cloog_program_dump_cloog): New.
11245
11246 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11247
11248         * graphite-clast-to-gimple.c (graphite_verify): Remove call to
11249         verify_dominators for CDI_POST_DOMINATORS.
11250         * sese.h: Remove comment about CDI_POST_DOMINATORS.
11251         (recompute_all_dominators): Remove call to free_dominance_info
11252         for CDI_POST_DOMINATORS.  Remove call to calculate_dominance_info
11253         for CDI_POST_DOMINATORS.
11254
11255 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11256
11257         * graphite-poly.c (pbb_number_of_iterations_at_time): Only iterate
11258         over pbb_dim_iter_domain.
11259
11260 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11261
11262         * graphite-flattening.c: Fix comments.
11263
11264 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11265
11266         * Makefile.in (OBJS-common): Add graphite-flattening.o.
11267         (graphite-flattening.o): New rule.
11268         * common.opt (floop-flatten): New flag.
11269         * doc/invoke.texi (-floop-flatten): Documented.
11270         * graphite-flattening.c: New.
11271         * graphite-poly.c (apply_poly_transforms): Call flatten_all_loops.
11272         * graphite-poly.h (flatten_all_loops): Declared.
11273         (lst_remove_loop_and_inline_stmts_in_loop_father): New.
11274         * tree-ssa-loop.c (gate_graphite_transforms): When flag_loop_flatten
11275         is set, also set flag_graphite.
11276
11277 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11278
11279         * graphite-poly.c (cloog_checksum): New.
11280         * graphite-poly.h (cloog_checksum): Declared.
11281
11282 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11283
11284         * graphite-poly.c (pbb_number_of_iterations): Removed.
11285         (pbb_number_of_iterations_at_time): Correctly compute the number
11286         of iterations in the transformed loop.
11287         * graphite-poly.h (pbb_number_of_iterations): Removed.
11288
11289 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11290
11291         * graphite-poly.h (lst_update_scattering_seq): Removed.
11292         (lst_update_scattering): Correctly handle outermost loop dewey
11293         renumbering.
11294
11295 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11296
11297         * graphite-blocking.c (pbb_strip_mine_profitable_p): Renamed
11298         lst_strip_mine_profitable_p.  Call lst_niter_for_loop.
11299         * graphite-poly.h (lst_niter_for_loop): New.
11300
11301 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11302
11303         * graphite-poly.c (apply_poly_transforms): Do not abort when the
11304         transform read from disk is not legal.  Call fatal_error instead.
11305
11306 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11307
11308         * graphite-poly.c (print_pbb_body): Add missing closing parenthesis.
11309         (print_scop_header): Removed.  Inlined in the only call place...
11310         (print_scop): ... here.
11311
11312 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11313
11314         * graphite-poly.h (lst_dewey_number): Use FOR_EACH_VEC_ELT.
11315
11316 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11317
11318         * graphite-poly.c (graphite_read_scop_file): Fix uninitialize warning.
11319
11320 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11321
11322         * graphite-dependences.c (dot_deps): Avoid set but not used warning.
11323         (dot_deps_stmt): Same.
11324         * graphite-poly.c (dot_lst): Same.
11325
11326 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11327
11328         * graphite-blocking.c (scop_do_strip_mine): Do not call
11329         graphite_legal_transform.
11330         (scop_do_block): Same.
11331
11332 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
11333
11334         * graphite-scop-detection.c (graphite_can_represent_loop): Correct the
11335         description.
11336
11337 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11338
11339         * tree-scalar-evolution.c (instantiate_array_ref): New.
11340         (instantiate_scev_r): Also handle ARRAY_REFs.
11341
11342 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11343
11344         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
11345         Do not check for VAR_DECL, PARM_DECL, FUNCTION_DECL, LABEL_DECL,
11346         RESULT_DECL, and FIELD_DECL.  Return false for an
11347         SSA_NAME_IS_DEFAULT_DEF.
11348         (compute_scalar_evolution_in_loop): Do not further analyze the
11349         scalar evolution when no_evolution_in_loop_p returns true.
11350
11351 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11352
11353         * tree-chrec.h (evolution_function_is_affine_p): Do not check
11354         whether CHREC_LEFT is invariant.  A function is affine when
11355         CHREC_RIGHT is invariant.
11356
11357 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11358
11359         * graphite-sese-to-poly.c (reduction_phi_p): Remove check for
11360         is_gimple_reg.
11361         (rewrite_degenerate_phi): Same.
11362         (rewrite_reductions_out_of_ssa): Add check for is_gimple_reg.
11363
11364 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
11365
11366         * graphite-scop-detection.c (graphite_can_represent_scev,
11367         graphite_can_represent_expr, stmt_has_simple_data_refs_p,
11368         graphite_can_represent_loop): Remove outermost_loop.
11369
11370 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11371
11372         PR middle-end/45229
11373         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Do not
11374         handle GIMPLE_CALLs with no LHS.
11375
11376 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
11377
11378         * graphite-poly.c (init_graphite_out_file): New.
11379         (init_graphite_in_file): New.
11380         (apply_poly_transforms): Updated to enable reading and writing of
11381         multiple scop files.
11382
11383 2010-09-30  Tobias Grosser  <grosser@fim.uni-passau.de>
11384
11385         * graphite-scop-detection.c (graphite_can_represent_scev): Remove
11386         redundant checks.
11387
11388 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11389
11390         * graphite-clast-to-gimple.c (precision_for_value): Adjust
11391         computation of precision by 1.
11392
11393 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
11394
11395         * graphite-cloog-util.c (openscop_read_cloog_matrix): New.
11396         (openscop_read_polyhedron_matrix): New.
11397         * graphite-cloog-util.h (openscop_read_polyhedron_matrix): Declared.
11398         (openscop_read_N_int): Same.
11399         * graphite-poly.c (openscop_read_N_int): New.
11400         (openscop_read_one_int): New.
11401         (openscop_read_N_string): New.
11402         (openscop_read_one_string): New.
11403         (openscop_read_powerset_matrix): New.
11404         (graphite_read_transforms): Remove.
11405         (graphite_read_scatt): New.
11406         (graphite_read_scop_file): New.
11407         (apply_poly_transforms): Updated to call graphite_read_scop_file.
11408
11409 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
11410
11411         * graphite-poly.c: Change include order.
11412
11413 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
11414
11415         * graphite-cloog-compat.h (cloog_matrix_ncolumns): New.
11416         (cloog_matrix_nrows): New.
11417
11418 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
11419
11420         * graphite-cloog-util.c (openscop_print_cloog_matrix): Remove spaces
11421         from matrix lines.
11422         * graphite-poly.c (openscop_print_scattering_function_1): Same.
11423         (print_scattering_function_1): Same.
11424         (openscop_print_pbb_domain): Same.
11425         (openscop_print_scop_context): Same.
11426         (print_scop_context): Same.
11427
11428 2010-09-30  Riyadh Baghdad  <baghdadi.mr@gmail.com>
11429
11430         * graphite-poly.c (openscop_print_pdr_polyhedron): Fix indentation.
11431         (openscop_print_pdr_polyhedron): Print pph.
11432
11433 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11434
11435         * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in
11436         priority signed types.
11437
11438 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11439
11440         * graphite-clast-to-gimple.c (max_signed_precision_type): Remove
11441         the call to lang_hooks.types.type_for_size.  Call
11442         build_nonstandard_integer_type.
11443
11444 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
11445
11446         * graphite-cloog-util.c (openscop_print_cloog_matrix): New.
11447         (openscop_print_polyhedron_matrix): New.
11448         * graphite-cloog-util.h (openscop_print_polyhedron_matrix): Declared.
11449         * graphite-poly.c (openscop_print_pdr_polyhedron): Same.
11450         (openscop_print_pdr_powerset): New.
11451         (openscop_print_powerset_matrix): New.
11452         (openscop_print_scattering_function_1): New.
11453         (print_scattering_function): Add support for scattering names and
11454         OpenScop format.
11455         (graphite_write_transforms): Remove.
11456         (print_pdr_access_layout): Updated to support OpenScop format.
11457         (print_pdr): Same.
11458         (openscop_print_pbb_domain): New.
11459         (print_pbb_body): Added a parameter to allow indicating that pbb_body
11460         is not provided.
11461         (print_pbb): Updated to call the new print_pbb_body.
11462         (openscop_print_scop_context): New.
11463         (print_scop_header): New.
11464         (print_scop): Updated to call print_scop_header.
11465         * graphite-poly.h: Document OpenScop format.
11466
11467 2010-09-30  Anatoly Sokolov  <aesok@post.ru>
11468
11469         * config/cris/m32c.c (cris_memory_move_cost): New.
11470         (cris_register_move_cost): Make static. Change arguments type from
11471         enum reg_class to reg_class_t.
11472         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
11473         * config/cris/cris.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
11474         * config/cris/cris-protos.h (cris_register_move_cost): Remove.
11475
11476 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
11477
11478         PR target/45843
11479         * config/i386/i386.c (ix86_gimplify_va_arg): Use
11480         INTVAL (XEXP (slot, 1)) as prev_size.
11481
11482 2010-09-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
11483
11484         PR target/45837
11485         * config/rs6000/aix.h (TARGET_AIX_OS): Define to be 1.
11486         * config/rs6000/rs6000.h (TARGET_AIX_OS): Define to be 0 if not
11487         defined.
11488         * config/rs6000/option-defaults.h (toplevel): Change #if
11489         TARGET_AIX to TARGET_AIX_OS to allow compiler to build after
11490         global option changes.
11491
11492 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
11493
11494         * dwarf2out.c (mem_loc_descriptor): Handle IF_THEN_ELSE.
11495
11496         PR tree-optimization/31261
11497         * fold-const.c (fold_binary): Optimize ((A & N) + B) & M
11498         for constants M and N, M == (1LL << cst) - 1 && (N & M) == M.
11499
11500 2010-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11501
11502         PR bootstrap/45796
11503         * Makefile.in (build/gen%$(build_exeext)): Move rule after all
11504         special-casing for generators and turn into ...
11505         ((genprog:%=build/gen%$(build_exeext))): ... this static pattern
11506         rule, for better error messages in case of toplevel dependency errors.
11507         (genprog): Add hooks, rename to ...
11508         (genprogerr): ... this, and let genprog also contain check,
11509         checksum, condmd.
11510         ((genprog:%=build/gen%$(build_exeext))): Rename to ...
11511         ((genprogerr:%=build/gen%$(build_exeext))): ... this.
11512         (build/genhooks$(build_exeext)): Remove now-unneeded dependency.
11513
11514 2010-09-30  Jonathan Wakely  <jwakely.gcc@gmail.com>
11515             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11516
11517         * doc/install.texi: Suggest using LD_LIBRARY_PATH to find libs
11518         for GMP, MPFR and MPC.
11519
11520 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11521
11522         * config/sparc/sparc.opt (mimpure-text): Move ...
11523         * config/sol2.opt: ... here.  Correct description.
11524         * config.gcc (*-*-solaris2*): Add sol2.opt to extra_options.
11525         * doc/invoke.texi (Option Summary, SPARC Options): Move
11526         -mimpure-text, -mno-impure-text, -threads, -pthreads, -pthread ...
11527         (Option Summary, Solaris 2 Options): ... here.
11528         (Submodel Options, Solaris 2 Options): New menu entry.
11529         (SPARC Options): Move -mimpure-text, -threads, -pthreads, -pthread ...
11530         (Solaris 2 Options): ... here.
11531
11532 2010-09-30  Michael Eager  <eager@eagercon.com>
11533
11534         * extend.texi (interrupt_handler): Add MicroBlaze to list.
11535         (save_volatiles): Describe option for MicroBlaze.
11536         * invoke.texi: Add MicroBlaze Options.
11537         * contrib.texi: Add acknowledgment.
11538         * md.texi: Add MicroBlaze d and z constraints.
11539         * install.texi: Add microblaze-*-elf.
11540         * configure.ac: Add microblaze-*-* to target list.
11541         * configure: Regenerate.
11542         * config.gcc: Add microblaze*-*-*, microblaze*-linux*.
11543         * config/microblaze/microblaze-protos.h: New.
11544         * config/microblaze/crti.s: New.
11545         * config/microblaze/predicates.md: New.
11546         * config/microblaze/linux.h: New.
11547         * config/microblaze/microblaze.md: New.
11548         * config/microblaze/constraints.md: New.
11549         * config/microblaze/crtn.s: New.
11550         * config/microblaze/microblaze.opt: New.
11551         * config/microblaze/microblaze-c.c: New.
11552         * config/microblaze/t-microblaze: New.
11553         * config/microblaze/microblaze.c: New.
11554         * config/microblaze/microblaze.h: New.
11555
11556 2010-09-30  Iain Sandoe  <iains@gcc.gnu.org>
11557
11558         * c-parser.c (c_parser_objc_methodprotolist): Amend preceding comment,
11559         parse @optional/@required and set the flags as appropriate.
11560
11561 2010-09-30  Nathan Froyd  <froydnj@codesourcery.com>
11562
11563         * config/iq2000/t-iq2000 (TARGET_LIBGCC2_CFLAGS): Delete.
11564
11565 2010-09-30  Joseph Myers  <joseph@codesourcery.com>
11566
11567         * opt-functions.awk (static_var): Update comment.
11568         (var_ref): Return offsetof expression or -1, not variable address.
11569         * optc-gen.awk: Generate structure field initializers instead of
11570         static variables.  Expect -1 for missing variables instead of null
11571         pointer.  Add gcc_options parameters to generated functions.
11572         * opth-gen.awk: Generate structure fields for static variables.
11573         Add gcc_options parameters to generated functions.
11574         * common.opt (optimize, optimize_size): Add variables.
11575         * config/i386/i386-c.c (ix86_pragma_target_parse): Pass
11576         &global_options to cl_target_option_restore.
11577         * config/i386/i386.c (ix86_valid_target_attribute_p): Pass
11578         &global_options to cl_optimization_restore, cl_target_option_save
11579         and cl_target_option_restore.
11580         (ix86_set_current_function): Pass &global_options to
11581         cl_target_option_restore.
11582         * config/pdp11/pdp11.h (optimize): Remove.
11583         * config/rs6000/rs6000.h (optimize): Remove.
11584         * config/sh/sh.h (optimize): Remove.
11585         * config/xtensa/xtensa.h (optimize): Remove.
11586         * coretypes.h (struct gcc_options): Declare.
11587         * diagnostic.c (diagnostic_initialize): Initialize
11588         context->option_state.
11589         (diagnostic_report_diagnostic): Pass option_state to
11590         option_enabled hook.
11591         * diagnostic.h (diagnostic_context.option_enabled): Add void *
11592         parameter.
11593         (diagnostic_context.option_state): New field.
11594         * final.c (final_start_function, final, final_scan_insn): Rename
11595         optimize parameter to optimize_p.
11596         * flags.h (optimize, optimize_size): Remove.
11597         * function.c (invoke_set_current_function_hook): Pass
11598         &global_options to cl_optimization_restore.
11599         * gcc.c (driver_handle_option): Take gcc_options parameter.
11600         Assert that it is &global_options.
11601         (process_command): Pass &global_options to read_cmdline_option.
11602         * ipa-pure-const.c (suggest_attribute): Pass &global_options to
11603         option_enabled.
11604         * lto-opts.c (lto_reissue_options): Use option_flag_var.  Pass
11605         &global_options to set_option.
11606         * opts-common.c (handle_option, handle_generated_option,
11607         read_cmdline_option, set_option): Take explicit gcc_options
11608         parameters.  Use option_flag_var.
11609         (option_flag_var): New.
11610         * opts.c (common_handle_option, lang_handle_option,
11611         target_handle_option): Take gcc_options parameter.  Assert that it
11612         is &global_options.
11613         (read_cmdline_options): Pass &global_options to read_cmdline_option.
11614         (print_filtered_help): Use option_flag_var.  Pass &global_options
11615         to option_enabled.
11616         (common_handle_option): Use option_flag_var.
11617         (option_enabled): Take opts parameter.  Use option_flag_var.
11618         (get_option_state): Take gcc_options parameter.  Use
11619         option_flag_var.  Pass gcc_options parameter to option_enabled.
11620         (enable_warning_as_error): Pass &global_options to
11621         handle_generated_option.
11622         * opts.h (struct cl_option): Change flag_var to flag_var_offset.
11623         (cl_option_handler_func.handler): Take gcc_options parameter.
11624         (option_enabled, get_option_state, set_option, handle_option,
11625         handle_generated_option, read_cmdline_option): Take gcc_options
11626         parameters.
11627         * toplev.c (optimize, optimize_size): Remove.
11628         (print_switch_values): Pass &global_options to option_enabled.
11629         (option_affects_pch_p): Use option_flag_var.  Pass &global_options
11630         to get_option_state.
11631         (general_init): Initialize global_dc->option_state.
11632         * tree.c (build_optimization_node): Pass &global_options to
11633         cl_optimization_save.
11634         (build_target_option_node): Pass &global_options to
11635         cl_target_option_save.
11636
11637 2010-09-30  Martin Jambor  <mjambor@suse.cz>
11638
11639         * tree-sra.c (type_consists_of_records_p): Do not check for trailing
11640         zero sized bit-fields.
11641
11642 2010-09-30  Nicola Pero  <nicola.pero@meta-innovation.com>
11643
11644         * c-parser.c (c_lex_one_token): When finding a CPP_AT_NAME
11645         Objective-C token, map RID_CLASS to RID_AT_CLASS and similar.
11646         (c_parser_external_declaration): Use RID_AT_CLASS instead of RID_CLASS.
11647         (c_parser_objc_class_declaration): Same change.
11648         (c_parser_objc_try_catch_statement): Use RID_AT_TRY instead of
11649         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
11650         (c_parser_objc_class_instance_variables): Use RID_AT_PRIVATE
11651         instead of RID_PRIVATE, RID_AT_PROTECTED instead of RID_PROTECTED
11652         and RID_AT_PUBLIC instead of RID_PUBLIC.
11653         (c_parser_statement_after_labels): Use RID_AT_TRY instead of
11654         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
11655
11656 2010-09-30  Tom G. Christensen  <tgc@jupiterrise.com>
11657
11658         * doc/install.texi (Binaries): Update link to HP-UX porting centre.
11659         Add links to current providers of packages for Solaris and IRIX.
11660
11661 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
11662
11663         Merge from 'apple/trunk' branch on FSF servers.
11664         * c-parser.c: Applied change originally in c-parse.in.
11665
11666         2005-10-04  Fariborz Jahanian  <fjahanian@apple.com>
11667
11668         Radar 4281748
11669         * c-decl.c (start_decl): Check for redeclaration of class name.
11670         * c-parse.in (after_type_declarator): Recognize CLASSNAME.
11671
11672 2010-09-29  Steve Ellcey  <sje@cup.hp.com>
11673
11674         * config/ia64/ia64.c (ia64_builtin_decl): New.
11675         (TARGET_BUILTIN_DECL): Define.
11676         (ia64_builtins): New.
11677         (ia64_init_builtins): Save decls in ia64_builtins.
11678
11679 2010-09-29  Bernd Schmidt  <bernds@codesourcery.com>
11680
11681         PR target/40457
11682         * postreload.c (move2add_use_add2_insn): Use full_costs for comparison.
11683         (move2add_use_add3_insn): Likewise.
11684         (reload_cse_move2add): Likewise.
11685         * rtlanal.c (get_full_rtx_cost): New function.
11686         * rtl.h (struct full_rtx_costs): New.
11687         (init_costs_to_max, init_costs_to_zero, costs_lt_p,
11688         costs_add_n_insns): New inline functions.
11689         (get_full_rtx_cost): Declare.
11690
11691         PR c/45054
11692         * reload1.c (replace_pseudos_in): Use eliminate_regs_1, allowing
11693         invariants.  Check for reg_equiv_invariant.
11694         (reload): Assert that spilled_pseudos is empty when returning.
11695
11696 2010-09-29  Kai Tietz  <kai.tietz@onevision.com>
11697
11698         * config/i386/mingw32.h (TARGET_64BIT): replaced by
11699         TARGET_64BIT_DEFAULT in #if check.
11700
11701 2010-09-29  Jack Howarth  <howarth@bromo.med.uc.edu>
11702
11703         * varasm.c (assemble_alias): Add error message for unsupported ifunc.
11704
11705 2010-09-29  Mike Stump  <mikestump@comcast.net>
11706
11707         * config/darwin.h (flag_mkernel): Remove.
11708         (flag_apple_kext): Likewise.
11709
11710 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
11711             Jack Howarth  <howarth@bromo.med.uc.edu>
11712
11713         * config/darwin.opt (undefined): Add.
11714
11715 2010-09-29  Nathan Sidwell  <nathan@codesourcery.com>
11716
11717         PR testsuite/45664
11718         * configure.ac: Add --enable-indirect-function option.
11719         * config.gcc: Add default_gnu_indirect_function.
11720         * config.in (HAVE_GAS_INDIRECT_FUNCTION): Rename to ...
11721         (HAVE_GNU_INDIRECT_FUNCTION): ... this.
11722         * varasm.c (do_assemble_alias): Adjust for macro name change.
11723         * configure: Rebuilt.
11724         * doc/install.texi: Document --enable-indirect-function.
11725
11726 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
11727
11728         * doc/options.texi (Variable, Var, Init): Update documentation
11729         without reference to VarExists.
11730         (VarExists): Remove.
11731         * common.opt, config/i386/i386.opt, config/linux.opt,
11732         config/rs6000/rs6000.opt, config/sh/sh.opt, config/spu/spu.opt:
11733         Don't use VarExists.
11734
11735 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
11736
11737         * optc-gen.awk: Generate global_options initializer instead of
11738         individual variables.  Add x_ prefix to names of structure members.
11739         * opth-gen.awk: Generate gcc_options structure.  Add x_ prefix to
11740         names of structure members.
11741         * doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
11742         HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
11743         * doc/tm.texi: Regenerate.
11744         * alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
11745         * builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
11746         * c-parser.c (disable_extension_diagnostics,
11747         restore_extension_diagnostics): Update names of cpp_options members.
11748         * combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
11749         * common.opt (fcompare-debug-second): Don't use Var.
11750         * config/alpha/alpha.h (target_flags): Remove.
11751         * config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
11752         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
11753         * config/bfin/bfin.h (target_flags): Remove.
11754         * config/cris/cris.h (target_flags): Remove.
11755         * config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
11756         cl_target_option members.
11757         * config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
11758         (ix86_function_specific_print, ix86_valid_target_attribute_tree,
11759         ix86_can_inline_p): Update names of cl_target_option members.
11760         * config/i386/i386.h (ix86_isa_flags): Remove.
11761         * config/lm32/lm32.h (target_flags): Remove.
11762         * config/mcore/mcore.h (mcore_stack_increment): Remove.
11763         * config/mcore/mcore.md (addsi3): Remove extern declaration of
11764         flag_omit_frame_pointer.
11765         * config/mep/mep.h (target_flags): Remove.
11766         * config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
11767         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
11768         * config/mmix/mmix.h (target_flags): Remove.
11769         * config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
11770         flag_expensive_optimizations): Remove.
11771         * config/s390/s390.h (flag_pic): Remove.
11772         * config/score/score-conv.h (target_flags): Remove.
11773         * config/sh/sh.h (sh_fixed_range_str): Remove.
11774         * config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
11775         * dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
11776         * df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
11777         * diagnostic.c (diagnostic_initialize): Update names of
11778         diagnostic_context members.
11779         * diagnostic.h (diagnostic_context): Rename inhibit_warnings and
11780         warn_system_headers.
11781         (diagnostic_report_warnings_p): Update for new names.
11782         * dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
11783         * emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
11784         HARD_FRAME_POINTER_IS_ARG_POINTER.
11785         * flags.h (flag_compare_debug): Declare.
11786         * ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
11787         * opts.c (flag_compare_debug): Define.
11788         (common_handle_option): Update names of diagnostic_context
11789         members.  Handle -fcompare-debug-second.
11790         (fast_math_flags_struct_set_p): Update names of cl_optimization
11791         members.
11792         * reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
11793         * regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
11794         * reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
11795         * reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
11796         * resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
11797         * rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
11798         HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
11799         * sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
11800         * stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
11801
11802 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
11803
11804         * config/picochip/picochip.c (picochip_output_internal_label):
11805         This function can now be called for debug CFI labels, which can come
11806         in the middle of a vliw instruction.  Postpone until end of vliw.
11807
11808 2010-09-29  Richard Guenther  <rguenther@suse.de>
11809
11810         * tree.h (SCOPE_FILE_SCOPE_P): New macro.
11811         (DECL_FILE_SCOPE_P): Use it.
11812         (TYPE_FILE_SCOPE_P): New macro.
11813
11814 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
11815
11816         * c-parser.c (c_lex_one_token): In Objective-C, when dealing with
11817         a CPP_NAME which is a reserved word, clearly separate cases for
11818         OBJC_IS_PQ_KEYWORD, OBJC_IS_AT_KEYWORD and OBJC_IS_CXX_KEYWORD.
11819
11820 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
11821
11822         * c-parser.c (c_lex_one_token): In Objective-C, do not replace
11823         token->value with the canonical spelling.  Do exactly like C and
11824         C++ and leave it as it is.
11825
11826 2010-09-28  Richard Henderson  <rth@redhat.com>
11827
11828         * config/alpha/alpha.c (alpha_builtins): New.
11829         (alpha_builtin_decl, TARGET_BUILTIN_DECL): New.
11830         (alpha_builtin_function): New.
11831         (alpha_add_builtins, alpha_init_builtins): Use it.
11832
11833 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
11834
11835         * doc/standards.texi (Standards): Expanded the section on
11836         Objective-C and Objective-C++.
11837
11838 2010-09-28  DJ Delorie  <dj@redhat.com>
11839
11840         PR target/45800
11841         * config/m32c/m32c.c (m32c_subreg): Force adjustment of subregs of
11842         volatile MEMs.
11843
11844 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
11845
11846         * c-parser.c (c_parser_declaration_or_fndef): Diagnose incorrect prefix
11847         attributes on methods.
11848          (c_parser_objc_method_definition): Handle attributes.
11849         (c_parser_objc_methodproto): Likewise.
11850         (c_parser_objc_maybe_method_attributes): New.
11851         (c_parser_objc_method_decl): Handle attributes, add a diagnostic for a
11852         missing definition, similar to that in ObjC++.
11853
11854 2010-09-28  Richard Henderson  <rth@redhat.com>
11855
11856         * defaults.h (DWARF2_UNWIND_INFO): Don't depend on TARGET_UNWIND_INFO.
11857         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
11858         (CONFIG_SJLJ_EXCEPTIONS): Remove.
11859         (STACK_OLD_CHECK_PROTECT): Use targetm.except_unwind_info.
11860         (STACK_CHECK_PROTECT): Likewise.
11861         * dwarf2out.c (DWARF2_UNWIND_INFO, DWARF2_FRAME_INFO): Poison.
11862         (dwarf2out_do_frame): Use debug_unwind_info and except_unwind_info.
11863         (dwarf2out_do_cfi_asm, dwarf2out_begin_prologue): Likewise.
11864         (dwarf2out_frame_init, dwarf2out_frame_finish): Likewise.
11865         (dwarf2out_assembly_start): Likewise.
11866         * except.c (init_eh): Use targetm.except_unwind_info.
11867         (finish_eh_generation, gate_convert_to_eh_region_ranges): Likewise.
11868         (output_one_function_exception_table): Likewise.
11869         * final.c: Unconditionally include dwarf2out.h.
11870         (final_start_function): Unconditionally call dwarf2out routines.
11871         (final_end_function, final_scan_insn): Likewise.
11872         * function.c (expand_function_end): Use targetm.except_unwind_info.
11873         * opts.c (decode_options): Use targetm.except_unwind_info.
11874         * system.h (USING_SJLJ_EXCEPTIONS, TARGET_UNWIND_INFO): Poison.
11875         * target.def (debug_unwind_info, except_unwind_info): New.
11876         * target.h (enum unwind_info_type): New.
11877         * targhooks.c (default_debug_unwind_info): New.
11878         (default_except_unwind_info): New.
11879         (dwarf2_except_unwind_info, sjlj_except_unwind_info): New.
11880         * targhooks.h: Declare them.
11881         * tree-tailcall.c: Include "target.h"
11882         (suitable_for_tail_call_opt_p): Use targetm.except_unwind_info.
11883         * Makefile.in (tree-tailcall.o): Update.
11884         * tree.c (build_common_builtin_nodes): Use targetm.except_unwind_info.
11885         (lhd_gcc_personality): Likewise.
11886
11887         * doc/tm.texi.in (TARGET_UNWIND_INFO): Remove.
11888         (TARGET_EXCEPT_UNWIND_INFO): New.
11889         (DWARF2_UNWIND_INFO): Update.
11890         (TARGET_DEBUG_UNWIND_INFO): New.
11891         * doc/tm.texi: Rebuild.
11892
11893         * c-family/c-cppbuiltin.c (c_cpp_builtins): Use
11894         targetm.except_unwind_info.
11895
11896         * config/arm/arm.c (TARGET_EXCEPT_UNWIND_INFO): New.
11897         (arm_except_unwind_info): New.
11898         (arm_compute_func_type): Use it.
11899         (arm_expand_prologue, thumb_pushpop): Likewise.
11900         (thumb1_expand_prologue, thumb1_output_function_prologue): Likewise.
11901         (arm_unwind_emit, arm_output_fn_unwind): Likewise.
11902         * config/arm/bpabi.h (ARM_UNWIND_INFO): Rename from TARGET_UNWIND_INFO.
11903         * config/arm/arm.h (ARM_UNWIND_INFO): Likewise.
11904         (DWARF2_UNWIND_INFO): Remove.
11905         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
11906         (ARM_EABI_UNWIND_TABLES): Remove.
11907
11908         * config/ia64/ia64.c (ia64_debug_unwind_info): New.
11909         (TARGET_DEBUG_UNWIND_INFO, TARGET_EXCEPT_UNWIND_INFO): New.
11910         (ia64_except_unwind_info): New.
11911         (ia64_output_function_prologue): Use it.
11912         (ia64_add_bundle_selector_before): Likewise.
11913         (ia64_reorg, ia64_asm_unwind_emit): Likewise.
11914         * config/ia64/ia64.h (DWARF2_FRAME_INFO): Remove.
11915         (TARGET_UNWIND_INFO): Remove.
11916
11917         * config/pa/pa.c (pa_option_override): Use targetm.except_unwind_info.
11918
11919 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
11920
11921         * c-parser.c (c_parser_objc_class_definition): Adjust prototype.
11922         (c_parser_objc_protocol_definition): Likewise.
11923         (c_parser_external_declaration): Provide dummy attribute arguments.
11924         (c_parser_declaration_or_fndef): Parse prefix attributes for ObjC.
11925         (c_parser_objc_class_definition): Handle attributes.
11926         (c_parser_objc_protocol_definition): Likewise.
11927
11928 2010-09-28  Tobias Burnus  <burnus@net-b.de>
11929
11930         PR fortran/40569
11931         PR fortran/40568
11932         * toplev.h (save_decoded_options, save_decoded_options_count):
11933         New global variables.
11934         * toplev.c (save_decoded_options, save_decoded_options_count):
11935         Export variables.
11936
11937 2010-09-28  Ian Lance Taylor  <iant@google.com>
11938
11939         * config/i386/i386.c (ix86_supports_split_stack): Test
11940         HAVE_GAS_CFI_PERSONALITY_DIRECTIVE rather than dwarf2out_do_cfi_asm.
11941
11942 2010-09-28  Ian Lance Taylor  <iant@google.com>
11943
11944         PR target/45815
11945         * opts.c (decode_options): Don't test whether the target supports
11946         split stack if flag_split_stack == 0.
11947
11948 2010-09-28  Jan Hubicka  <jh@suse.cz>
11949
11950         * builtin-attrs.def (ATTR_LEAF): New attribute.
11951         (ATTR_NOVOPS_LEAF_LIST, ATTR_LEAF_LIST, ATTR_NOTHROW_LEAF_LIST,
11952         ATTR_CONST_NOTHROW_LEAF_LIST, ATTR_PURE_NOTHROW_LEAF_LIST,
11953         ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST, ATTR_NORETURN_NOTHROW_LEAF_LIST,
11954         ATTR_MALLOC_NOTHROW_LEAF_LIST, ATTR_SENTINEL_NOTHROW_LEAF_LIST,
11955         ATTR_NOTHROW_NONNULL_LEAF, ATTR_CONST_NOTHROW_NONNULL_LEAF,
11956         ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF, ATTR_PURE_NOTHROW_NONNULL_LEAF,
11957         ATTR_MALLOC_NOTHROW_NONNULL_LEAF): New attribute lists.
11958         * sync-builtins.def: Annotate all builtins by leaf.
11959         * omp-builtins.def: Annotate all builtins by leaf.
11960         * builtins.def: Annotate relevant builtins with leaf attribute.
11961         (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
11962         ATTR_MATHFN_FPROUNDING_ERRNO, ATTR_MATHFN_FPROUNDING_STORE): Make
11963         leaf.
11964
11965 2010-09-28  Jan Hubicka  <jh@suse.cz>
11966
11967         * tree-ssa-ccp.c (fold_ctor_reference): New function.
11968         (fold_const_aggregate_ref): Use it.
11969         * fold-const.c (canonicalize_constructor_val): Check that we don't fold
11970         into external static.
11971
11972 2010-09-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11973
11974         PR target/44452
11975         * config/i386/i386.opt (mvect8-ret-in-mem): Define.
11976         * config/i386/i386.c (ix86_target_string): Handle -mvect8-ret-in-mem.
11977         (ix86_solaris_return_in_memory): Remove.
11978         * config/i386/i386-protos.h (ix86_solaris_return_in_memory): Remove.
11979         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
11980         (TARGET_SUBTARGET_DEFAULT): Redefine.
11981         * config/i386/sol2-10.h (TARGET_SUBTARGET_DEFAULT): Update comment.
11982         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
11983         (TARGET_SUBTARGET_DEFAULT): Redefine.
11984         * doc/invoke.texi (Option Summary, i386 and x86-64 Options): Add
11985         -mvect8-ret-in-mem.
11986         (i386 and x86-64 Options): Document -mvect8-ret-in-mem.
11987
11988 2010-09-29  Alan Modra  <amodra@gmail.com>
11989
11990         PR target/45807
11991         * config/rs6000/aix.h (SETUP_FRAME_ADDRESSES): Delete.
11992         * config/rs6000/linux64.h (SETUP_FRAME_ADDRESSES): Delete.
11993         * config/rs6000/rs6000-protos.h (rs6000_aix_emit_builtin_unwind_init):
11994         Delete.
11995         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): Delete.
11996         (rs6000_emit_prologue): Don't just create frame save info for r2,
11997         actually save r2.
11998
11999 2010-09-28  Richard Henderson  <rth@redhat.com>
12000
12001         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Output 8 bytes
12002         when 8 bytes are requested.
12003
12004 2010-09-28  Tristan Gingold  <gingold@adacore.com>
12005
12006         * config/avr/avr.c (expand_prologue): Set
12007         current_function_static_stack_size.
12008
12009 2010-09-28  Tristan Gingold  <gingold@adacore.com>
12010
12011         * config/alpha/alpha.md: Change the initial condition of the
12012         probing loop.
12013
12014 2010-09-28  Uros Bizjak  <ubizjak@gmail.com>
12015
12016         * config/i386/sse.md (*avx_<umaxmin:code><mode>3):
12017         Split from *avx_<maxmin:code><mode>3.
12018         (*avx_<smaxmin:code><mode>3): Ditto.
12019         * config/i386/i386.md (maxmin): Remove code iterator.
12020
12021 2010-09-27  Ian Lance Taylor  <iant@google.com>
12022
12023         * config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack
12024         requires assembler support for CFI directives.
12025
12026 2010-09-27  Richard Henderson  <rth@redhat.com>
12027
12028         * dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL.
12029
12030 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
12031
12032         * emit-rtl.c (reorder_insns_nobb) [ENABLE_CHECKING]: Sanity-check
12033         that AFTER is not in the range FROM..TO, inclusive.
12034
12035 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
12036             Bernd Schmidt  <bernds@codesourcery.com>
12037
12038         PR rtl-optimization/45792
12039         * cfgcleanup.c (try_head_merge_bb): New rtx vector nextptr.
12040         If not all insns are to be merged, for each edge, stash the
12041         next candidate after the to-be-merged insns before doing the
12042         merge, and use them for the retry at the new insertion point.
12043         Handle CC0 targets when retrying.
12044
12045 2010-09-27  Ian Lance Taylor  <iant@google.com>
12046
12047         * common.opt (fsplit-stack): New option.
12048         * opts.c (decode_options): Set flag_split_stack to final value.
12049         * target.def (supports_split_stack): New hook.
12050         * gcc.c (STACK_SPLIT_SPEC): Define.
12051         (LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
12052         * doc/invoke.texi (Option Summary): Mention -fsplit-stack.
12053         (Code Gen Options): Document -fsplit-stack.
12054         * doc/extend.texi (Function Attributes): Mention no_split_stack.
12055         (Function Attributes): Document no_split_stack.
12056         * doc/tm.texi.in (Stack Smashing Protection): Add @hook
12057         TARGET_SUPPORTS_SPLIT_STACK.
12058         * doc/tm.texi: Rebuild.
12059         * function.c (thread_prologue_and_epilogue_insns): If
12060         flag_split_stack, add split stack prologue.
12061         * explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
12062         * varasm.c (saw_no_split_stack): New static variable.
12063         (assemble_start_function): Set saw_no_split_stack if the function
12064         has the no_split_stack attribute.
12065         (file_end_indicate_split_stack): New function.
12066         * output.h (file_end_indicate_split_stack): Declare.
12067         * libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
12068         and function.
12069         * doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
12070         routines.
12071         * config/i386/i386.c (ix86_option_override_internal): Don't set
12072         expand_builtin_va_start to NULL if -fsplit-stack.
12073         (ix86_function_regparm): Reduce local regparm by 1 for 32-bit
12074         -fsplit-stack.
12075         (ix86_va_start): If -fsplit-stack, get overflow pointer from
12076         scratch register set by prologue.
12077         (ix86_code_end): If -fsplit-stack, call
12078         file_end_indicate_split_stack.
12079         (ix86_supports_split_stack): New static function.
12080         (SPLIT_STACK_AVAILABLE): Define.
12081         (split_stack_prologue_scratch_regno): New static function.
12082         (split_stack_fn): New static variable.
12083         (ix86_expand_split_stack_prologue): New function.
12084         (ix86_live_on_entry): New static function.
12085         (ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
12086         (output_pic_addr_const): Likewise.
12087         (i386_asm_output_addr_const_extra): Likewise.
12088         (ix86_expand_call): Change return type to rtx.  Return the new
12089         call instruction.
12090         (TARGET_SUPPORTS_SPLIT_STACK): Define.
12091         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
12092         * config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
12093         (split_stack_prologue, split_stack_return): New insns.
12094         (split_stack_space_check): New insn.
12095         * config/i386/i386.h (struct machine_function): Add
12096         split_stack_varargs_pointer field.
12097         * config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
12098         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
12099         * config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
12100         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
12101         * config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
12102         Declare.
12103         (ix86_expand_call): Update declaration.
12104
12105 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
12106
12107         * doc/objc.texi (Type encoding): Added the new 'long double' (D)
12108         code.  Added byref, which was missing in the list of codes.
12109         Explain that enumeration values are encoded as the integer type
12110         that the compiler uses to store them.  Explain and make examples
12111         of how 'const' interacts with pointers, and the complication of
12112         the encoding of 'const char *'.
12113         (Legacy type encoding): New subsection, explaining that GCC emits
12114         incorrect type encodings for the NeXT runtime for compatibility
12115         reasons.
12116         (@@encode): New subsection, explaining @encode and particularly
12117         that protocol qualifiers are not recognized inside an @encode()
12118         expression.
12119         (Method signatures): New subsection, explaining how method
12120         signatures are encoded.
12121
12122 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
12123
12124         Merge from 'apple/trunk' branch on FSF servers.  Removed small
12125         change in build_conditional_expr that had been added when fixing
12126         PR objc/27377 and which did the same check in a less complete way.
12127
12128         2005-12-15  Fariborz Jahanian  <fjahanian@apple.com>
12129
12130         Radar 4229905
12131         * c-typeck.c (build_conditional_expr): Call objc_have_common_type when
12132         looking for objective-c common pointer types.
12133
12134         2005-06-22  Ziemowit Laski  <zlaski@apple.com>
12135
12136         Radar 4154928
12137         * c-typeck.c (build_conditional_expr): For two ObjC pointer types,
12138         use their ObjC common type.
12139
12140 2010-09-27  Richard Guenther  <rguenther@suse.de>
12141
12142         * dbxout.c (dbxout_symbol): Use DECL_FILE_SCOPE_P.
12143
12144 2010-09-27  Jie Zhang  <jie@codesourcery.com>
12145
12146         * print-tree.c (print_node): Print in-constant-pool.
12147
12148 2010-09-27  Uros Bizjak  <ubizjak@gmail.com>
12149
12150         * config/i386/i386.h (CLASS_MAX_NREGS): Also handle XCmode.
12151         (UNITS_PER_WORD): Define only when IN_LIBGCC2 is undefined.
12152         (MOVE_MAX_PIECES): Redefine using UNITS_PER_WORD.
12153         (ASM_OUTPUT_AVX_PREFIX): Simplify pointer addition.
12154
12155 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
12156
12157         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_add): Merge
12158         from pro_epilogue_adjust_stack_<mode>_{1,2}.
12159         (pro_epilogue_adjust_stack_<mode>_add): Rename from
12160         pro_epilogue_adjust_stack_<mode>_3.
12161         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for
12162         renamed pro_epilogue_adjust_stack_{si,di}_add.
12163         (ix86_expand_prologue): Use indirect functions.  Update for renamed
12164         pro_epilogue_adjust_stack_{si,di}_sub.
12165
12166 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
12167
12168         * config/i386/i386.md (movmsk_df): New insn.
12169         (signbitdf): Split out of signbit<mode>2.  Generate movmsk_df
12170         sequence for TARGET_SSE_MATH.
12171
12172 2010-09-26  Richard Sandiford  <rdsandiford@googlemail.com>
12173
12174         * config/mips/mips.c (mips_builtin_decls): Declare.
12175         (mips_init_builtins): Store function declarations in
12176         mips_builtin_decls.
12177         (mips_builtin_decl): New function.
12178         (TARGET_BUILTIN_DECL): Define.
12179
12180 2010-09-25  Kai Tietz  <kai.tietz@onevision.com>
12181             Richard Henderson  <rth@redhat.com>
12182
12183         * config/i386/cygwin.asm: Include auto-host.h.
12184         (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
12185         cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): New macros.
12186         (__chkstk, __alloca): Annotate for dwarf2 unwind info.  Drop
12187         alignment code from the 64-bit path.  Use gas local labels.
12188         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_2): Macroize
12189         from _di_2.  Remove the useless constant integer argument.
12190         (pro_epilogue_adjust_stack_<mode>_3): New.
12191         (allocate_stack_worker_probe_<mode>): Macroize from
12192         allocate_stack_worker_{32,64}.  Use __chkstk_ms.  Update all users.
12193         * config/i386/i386.c (ix86_expand_prologue): Use __chkstk_ms;
12194         use gen_pro_epilogue_adjust_stack_*_3 and annotate it.
12195         (__chkstk_ms): New function.
12196         * config/i386/t-cygming (LIB1ASMFUNCS): Add _chkstk_ms.
12197         * config/i386/t-interix: Likewise.
12198         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Export for target.
12199         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
12200         (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): Likewise.
12201         * configure, config.in: Rebuild.
12202
12203 2010-09-25  Eric Botcazou  <ebotcazou@adacore.com>
12204
12205         * tree-inline.c (copy_bb): Use GSI_CONTINUE_LINKING when inserting new
12206         statements because of the return slot optimization.
12207
12208 2010-09-25  Anatoly Sokolov  <aesok@post.ru>
12209
12210         * config/avr/avr.h (CLASS_LIKELY_SPILLED_P): Remove.
12211         * config/avr/avr-protos.h (class_likely_spilled_p): Remove.
12212         * config/avr/avr.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
12213         (class_likely_spilled_p): Rename to...
12214         (avr_class_likely_spilled_p): ...this. Make static. Change argument
12215         type to reg_class_t.
12216
12217 2010-09-24  Jan Hubicka  <jh@suse.cz>
12218
12219         * lto-symtab.c (lto_symtab_entry_def): Add guessed field.
12220         (lto_symtab_resolve_symbols): Set it.
12221         (lto_symtab_merge_decls_1): Do not compute used_from_object_file;
12222         store resolution field in cgraph/varpool.
12223         * cgraph.c (cgraph_same_body_alias, cgraph_add_thunk): Return node.
12224         (cgraph_get_node_or_alias, cgraph_get_node_or_alias): Constify.
12225         (cgraph_dump_node): Drop used_from_object_file.
12226         (cgraph_clone_node, cgraph_create_virtual_clone): Likewise.
12227         (cgraph_function_body_availability): Use decl_replaceable_p.
12228         (cgraph_make_node_local): Set resolution to LDPR_PREVAILING_DEF_IRONLY.
12229         (cgraph_can_remove_if_no_direct_calls_and_refs): Use
12230         cgraph_used_from_object_file_p.
12231         (cgraph_will_be_removed_from_program_if_no_direct_calls): Use
12232         cgraph_used_from_object_file_p.
12233         (resolution_used_from_other_file_p): New functoin.
12234         (cgraph_used_from_object_file_p): New predicate.
12235         * cgraph.h: Include plugin-api.h
12236         (struct cgraph_local_info): Remove used_from_object_file.
12237         (struct cgraph_node): Add resolution field.
12238         (struct varpool_node): Likewise; remove used_from_object_file;
12239         reove const_value_known.
12240         (cgraph_get_node, cgraph_get_node_or_alias, cgraph_node,
12241         cgraph_same_body_alias, cgraph_add_thunk): Update prototypes.
12242         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
12243         varpool_used_from_object_file_p): Declare.
12244         (varpool_get_node, varpool_extra_name_alias): Update prototype.
12245         * tree.h (DECL_REPLACEABLE_P): Remove.
12246         (decl_replaceable_p, decl_binds_to_current_def_p): Declare.
12247         * final.c (rest_of_clean_state): Use decl_binds_to_current_def_p.
12248         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
12249         input_overwrite_node, input_node, input_varpool_node): Stream
12250         resolution.
12251         * expr.c (expand_expr_real_1): Use const_value_known_p
12252         * ipa.c (ipa_discover_readonly_nonaddressable_var): Do not set
12253         const_value_known.
12254         (cgraph_externally_visible_p): Use cgraph_used_from_object_file_p.
12255         (function_and_variable_visibility): Set resolution for local vars
12256         and functions; use varpool_used_from_object_file_p.
12257         * varasm.c (resolution_to_local_definition_p, resolution_local_p): New
12258         static functions.
12259         (default_binds_local_p_1): Use resolutoin info.
12260         (decl_binds_to_current_def_p, decl_replaceable_p): New functions.
12261         * varpool.c (varpool_get_node): Constify.
12262         (const_value_known_p): Do not use vnode->const_value_known;
12263         use decl_replaceable_p.
12264         (varpool_finalize_decl): Do not set const_value_known.
12265         (cgraph_variable_initializer_availability): Use decl_replaceable_p
12266         (varpool_extra_name_alias): Return new node.
12267         (varpool_used_from_object_file_p): New function.
12268
12269 2010-09-24  Richard Henderson  <rth@redhat.com>
12270
12271         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): New.
12272         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): New.
12273         (do_spill): Use REG_CFA_OFFSET.
12274         (ia64_expand_prologue): Use REG_CFA_ADJUST_CFA and REG_CFA_REGISTER
12275         as appropriate.
12276         (ia64_expand_epilogue): Likewise.
12277         (process_set): Split into ...
12278         (process_cfa_adjust_cfa): this,
12279         (process_cfa_register): this,
12280         (process_cfa_offset): and this new function.
12281         (ia64_asm_unwind_emit): Use them.  Expect REG_CFA_* notes
12282         instead of REG_FRAME_RELATED_EXPR.
12283
12284 2010-09-24  Olivier Hainque  <hainque@adacore.com>
12285
12286         * config/i386/vx-common.h (DBX_REGISTER_NUMBER): Reinstate.
12287
12288 2010-09-24  Jan Hubicka  <jh@suse.cz>
12289
12290         * doc/extend.texi: (attribute leaf): Document.
12291         * tree.c (local_define_builtin): Handle ECF_LEAF.
12292         (build_common_builtin_nodes): Set ECF_LEAF where needed.
12293         * tree.h (ECF_LEAF): New.
12294         * ipa-reference.c (propagate_bits): For leaf calls propagate ever
12295         overwrittable and unavailable functions.
12296         (ipa_init): Put all_module_statics into optimization_summary_obstack.
12297         (copy_global_bitmap): Do not copy all_module_statics.
12298         (read_write_all_from_decl): Use cgraph_node argument; handle ECF_LEAF.
12299         (propagate): Handle overwritable and unavailable leaf functions;
12300         initialize global info for overwritable and unavailable leaf functions;
12301         do not free all module statics.
12302         (ipa_reference_get_not_{read,written}_global): Leaf calls don't clobber
12303         local statics.
12304         * calls.c (flags_from_decl_or_type): Handle leaf.
12305         * tree-cfg.c (stmt_can_make_abnormal_goto): Leaf functions can't do
12306         abnormal gotos.
12307
12308 2010-09-24  Basile Starynkevitch  <basile@starynkevitch.net>
12309
12310         * gengtype.c: Reindented.
12311         * gengtype.h: Reindented.
12312         * gengtype-parse.c: Reindented.
12313
12314 2010-09-24  Jan Hubicka  <jh@suse.cz>
12315
12316         PR tree-optimization/45738
12317         PR tree-optimization/45741
12318         * expr.c (string_constant): Allow CONST_DECL too;
12319         check that DECL_INITIAL is set.
12320         * varpool.c (const_value_known_p): Only look into VAR_DECL
12321         and CONST_DECL.
12322
12323 2010-09-24  Joseph Myers  <joseph@codesourcery.com>
12324
12325         * common.opt (undef): New.
12326
12327 2010-09-24  Jakub Jelinek  <jakub@redhat.com>
12328
12329         PR middle-end/45234
12330         * rtl.h (enum global_rtl_index): Add
12331         GR_VIRTUAL_PREFERRED_STACK_BOUNDARY.
12332         (LAST_VIRTUAL_POINTER_REGISTER): Define.
12333         (virtual_preferred_stack_boundary_rtx,
12334         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM): Define.
12335         (LAST_VIRTUAL_REGISTER): Increase by one.
12336         (REGNO_PTR_FRAME_P): Use LAST_VIRTUAL_POINTER_REGISTER
12337         instead of LAST_VIRTUAL_REGISTER.
12338         * function.c (instantiate_new_reg): Handle
12339         virtual_preferred_stack_boundary_rtx.
12340         * emit-rtl.c (init_virtual_regs): Handle
12341         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
12342         (init_emit_regs): Initialize virtual_preferred_stack_boundary_rtx.
12343         * explow.c (round_push): If crtl->preferred_stack_boundary
12344         is smaller than MAX_SUPPORTED_STACK_ALIGNMENT, use
12345         virtual_preferred_stack_boundary_rtx alignment instead of
12346         crtl->preferred_stack_boundary alignment.
12347         (allocate_dynamic_stack_space): Use CONST_INT_P and REG_P
12348         macros.  Never decrease crtl->preferred_stack_boundary,
12349         use crtl->preferred_stack_boundary or MAX_SUPPORTED_STACK_ALIGNMENT
12350         instead of PREFERRED_STACK_BOUNDARY.  Don't modify
12351         stack_pointer_delta in dynamic allocation, even when size
12352         is constant.
12353         (probe_stack_range, anti_adjust_stack_and_probe): Use CONST_INT_P
12354         macro.
12355         * print-rtl.c (print_rtx): Handle
12356         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
12357         * config/alpha/alpha.h (NONSTRICT_REG_OK_FP_BASE_P): Use
12358         LAST_VIRTUAL_POINTER_REGISTER instead of LAST_VIRTUAL_REGISTER.
12359         * config/frv/frv.c (frv_emit_movsi): Likewise.
12360         * config/arm/arm.c (thumb1_legitimate_address_p): Likewise.
12361         * config/rs6000/rs6000.c (virtual_stack_registers_memory_p):
12362         Likewise.
12363
12364         Revert:
12365         2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
12366
12367         PR middle-end/45234
12368         * calls.c (expand_call): Make sure that all variable sized
12369         adjustments are multiple of preferred stack boundary after
12370         stack alignment.
12371
12372 2010-09-24  Iain Sandoe  <iains@gcc.gnu.org>
12373             Dominique Dhumieres  <dominiq@lps.ens.fr>
12374
12375         PR bootstrap/45751
12376         * config/darwin-driver.c (darwin_default_min_version):
12377         Adjust size passed to memcpy in two places.
12378
12379 2010-09-24  Richard Guenther  <rguenther@suse.de>
12380
12381         * c-decl.c (pop_scope): Always set file-scope DECL_CONTEXT.
12382         Make sure to not call set_type_context with error_mark_node.
12383         * langhooks.c (lhd_set_decl_assembler_name): Use DECL_FILE_SCOPE_P.
12384
12385 2010-09-24  Richard Guenther  <rguenther@suse.de>
12386
12387         * Makefile.in (OBJS-onestep): Remove.
12388         (ALL_HOST_BACKEND_OBJS): Remove libbackend.o.
12389         (libbackend.a): Remove onestep support.
12390         (libbackend.o): Remove.
12391         * configure.ac (--enable-intermodule): Remove.
12392         * configure: Regenerate.
12393
12394 2010-09-24  Bernd Schmidt  <bernds@codesourcery.com>
12395
12396         * cfgcleanup.c (flow_find_head_matching_sequence): Terminate when
12397         reaching the end of a block if it occurs at a DEBUG_INSN.
12398
12399 2010-09-09  Tristan Gingold  <gingold@adacore.com>
12400
12401         PR target/44242
12402         * config/vms/vms-crt0-64.c: Removed.
12403         * config/vms/vms-crt0.c: Removed.
12404         * config/vms/vms-psxcrt0-64.c: Removed.
12405         * config/vms/vms-psxcrt0.c: Removed.
12406         * config/vms/vms-ucrt0.c: New file.
12407         * config/vms/t-vms64: Removed.
12408         * config/vms/t-vms (VMS_EXTRA_PARTS): Uncomment it.  Remove DECC.
12409         Use $(GCC_FOR_TARGET) to build pcrt0.o and vcrt0.o
12410         * config.gcc (alpha-dec-vms): Use t-vms.
12411
12412 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
12413
12414         * doc/invoke.texi (-fno-nil-receivers): Tidied up line to remove
12415         underfull hbox in DVI output.
12416         (-fobjc-class-cxx-cdtors): Same change.
12417         (-fobjc-exceptions): Tidied up documentation.  Explain what the
12418         option does, but moved the (lenghty) description of the exception
12419         syntax into objc.texi.
12420         (-fobjc-gc): Explain that the option is not useful with the GNU
12421         runtime.
12422         (-fzero-link): Explain that the GNU runtime always works in
12423         "zero-link" mode.
12424         * doc/objc.texi: All sections: simplified @node declarations
12425         removing specification of next, previous, up node.
12426         (Objective-C): Updated introduction.
12427         (Garbage Collection): Updated.  The bohem-gc library is now
12428         included in gcc itself.  Mention that this section only applies to
12429         the GNU Objective-C runtime.
12430         (compatibility_alias): Small tidy up.
12431         (Exceptions): New section mostly containing text previously in the
12432         description of the -fobjc-exception command-line option.
12433         (Synchronization): Same.
12434
12435 2010-09-24  Uros Bizjak  <ubizjak@gmail.com>
12436
12437         * config/i386/i386.md (ix86_code_end): Move the initialization of
12438         xops array near the consumer.  Use AX_REG and SP_REG instead of
12439         numerical constants.
12440
12441 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
12442
12443         * c-typeck.c (convert_arguments): Use warning 'too many arguments to
12444         method [methodname]' for an Objective-C method instead of the less
12445         satisfactory 'too many arguments to function' (with no method name).
12446
12447 2010-09-23  Eric Botcazou  <ebotcazou@adacore.com>
12448
12449         * tree-flow.h (execute_update_addresses_taken): Remove parameter.
12450         * tree-ssa.c (maybe_optimize_var): Tweak comment and dump messages.
12451         (execute_update_addresses_taken): Remove parameter.  Execute the
12452         optimization unconditionally.
12453         * passes.c (execute_function_todo): Call execute_update_addresses_taken
12454         unconditionally if TODO_rebuild_alias is set, else only when optimizing
12455         if TODO_update_address_taken is set.
12456
12457 2010-09-23  Anatoly Sokolov  <aesok@post.ru>
12458
12459         * config/arm/arm.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
12460         * config/arm/arm-protos.h (arm_output_addr_const_extra): Remove.
12461         * config/arm/arm.c (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
12462         (arm_output_addr_const_extra): Make static.
12463
12464 2010-09-23  Uros Bizjak  <ubizjak@gmail.com>
12465
12466         * config/i386/i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and
12467         define as unspec_volatile.
12468         ("nops"): Define as unspec_volatile. Use fputs to write to
12469         asm_out_file directly.  Output NOPs on separate lines using while loop.
12470         * config/i386/i386.c (ix86_code_end): Use fputs to write to
12471         asm_out_file directly.  Output NOPs on separate lines using while loop.
12472
12473 2010-09-23  Richard Guenther  <rguenther@suse.de>
12474
12475         PR tree-optimization/45565
12476         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
12477         Make sure to adjust the fndecl before replacing the stmt.
12478
12479 2010-09-23  Richard Guenther  <rguenther@suse.de>
12480
12481         PR middle-end/45750
12482         * gimplify.c (gimplify_expr): Properly pass on GS_ERROR when
12483         gimplifying MEM_REF.
12484
12485 2010-09-23  Alan Modra  <amodra@gmail.com>
12486
12487         * config/rs6000/rs6000.c (toc_relative_ok): Delete.
12488         (rs6000_emit_move): Use SYMBOL_REF_LOCAL_P instead.
12489
12490 2010-09-23  Bernd Schmidt  <bernds@codesourcery.com>
12491
12492         PR rtl-optimization/44374
12493         * basic-block.h (enum bb_flags): Add BB_MODIFIED.
12494         * df-core.c (df_set_bb_dirty): Set it.
12495         * ifcvt.c (find_memory): Remove function.
12496         (dead_or_predicable): Use can_move_insns_across.
12497         * df.h (can_move_insns_across): Declare function.
12498         * cfgcleanup.c (block_was_dirty): New static variable.
12499         (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
12500         than df_get_bb_dirty.
12501         (try_head_merge_bb): New static function.
12502         (try_optimize_cfg): Call it.  Call df_analyze if block_was_dirty
12503         is set.
12504         * df-problems.c: Include "target.h"
12505         (df_simulate_find_uses): New static function.
12506         (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
12507         (find_memory, find_memory_store): New static functions.
12508         (can_move_insns_across): New function.
12509         * Makefile.in (df-problems.o): Update dependencies.
12510
12511 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
12512
12513         PR java/44095
12514         * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
12515         is specified and the suffix of the file isn't ".c".
12516         * config/sparc/linux64.h (ASM_SPEC): Likewise.
12517
12518 2010-09-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12519
12520         * doc/contrib.texi (Contributors): Allow URL to wrap in PDF output.
12521         * doc/cppopts.texi: Fix markup of index entry.
12522         * doc/extend.texi (Constructing Calls): Fix markup of
12523         __builtin_va_arg_pack and __builtin_va_arg_pack_len definition.
12524         (Conditionals, C++ Comments, Pragmas, Unnamed Fields, Thread-Local)
12525         (Vague Linkage, C++ Attributes): Fix markup of index entries and
12526         keywords.
12527         * doc/invoke.texi (Option Summary): Fix spacing.  Rewrap to
12528         avoid long lines.
12529         (C Dialect Options, C++ Dialect Options, Warning Options)
12530         (Debugging Options, Spec Files, Darwin Options)
12531         (i386 and x86-64 Options, MIPS Options)
12532         (RS/6000 and PowerPC Options, Code Gen Options): Fix markup of
12533         index entries, avoid abbreviations, allow URLs to wrap, avoid
12534         long lines, avoid overlong pages from long @itemx lists.
12535         * doc/objc.texi (Garbage Collection): Allow URLs to wrap.
12536         * doc/standards.texi (Standards): Likewise.
12537         * doc/trouble.texi (Incompatibilities): Fix markup of index entry.
12538
12539 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
12540
12541         * opts-common.c (prune_options): Make static.  Work with decoded
12542         options.
12543         (decode_cmdline_options_to_array): Call prune_options.  Don't
12544         resize option array here.
12545         * opts.h (prune_options): Remove prototype.
12546         * gcc.c (process_command): Take decoded options; don't call
12547         decode_cmdline_options_to_array here.  Use decoded options for argv[0].
12548         (main): Call decode_cmdline_options_to_array here instead of
12549         prune_options.  Update call to process_command.
12550         * config/darwin-driver.c: Include opts.h.
12551         (darwin_default_min_version): Work with decoded options.  Don't
12552         handle -b or -V here.
12553         * config/darwin.h (darwin_default_min_version): Update prototype.
12554         (GCC_DRIVER_HOST_INITIALIZATION): Update call to
12555         darwin_default_min_version.
12556         * config/i386/cygwin.h (mingw_scan): Update prototype.
12557         (GCC_DRIVER_HOST_INITIALIZATION): Update call to mingw_scan.
12558         * config/i386/cygwin1.c: Include opts.h.
12559         (mingw_scan): Work with decoded options.
12560         * config/i386/t-cygwin (cygwin1.o): Update dependencies.
12561         * config/t-darwin (darwin-driver.o): Update dependencies.
12562
12563 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
12564
12565         * common.opt (-assemble, -compile, -coverage, -debug, -dump,
12566         -dump=, -dumpbase, -dumpdir, -entry, -entry=, -extra-warnings,
12567         -for-assembler, -for-assembler=, -for-linker, -for-linker=,
12568         -force-link, -force-link=, -language, -language=,
12569         -library-directory, -library-directory=, -no-canonical-prefixes,
12570         -no-standard-libraries, -no-warnings, -optimize, -output,
12571         -output=, -pass-exit-codes, -pedantic, -pedantic-errors, -pie,
12572         -pipe, -prefix, -prefix=, -preprocess, -print-file-name,
12573         -print-file-name=, -print-libgcc-file-name,
12574         -print-multi-directory, -print-multi-lib,
12575         -print-multi-os-directory, -print-prog-name, -print-prog-name=,
12576         -print-search-dirs, -print-sysroot, -print-sysroot-headers-suffix,
12577         -profile, -save-temps, -shared, -specs, -specs=, -static,
12578         -symbolic, -time, -verbose, -param=, -sysroot, coverage, e, u,
12579         symbolic): New.
12580         (fhelp, fhelp=, ftarget-help, fversion): Make into aliases.
12581         * gcc.c (A Short Introduction to Adding a Command-Line Option):
12582         Remove comment.
12583         (cc1_options): Correct specs for passing down --help,
12584         --target-help and --help=*.  Add spec for passing down --version.
12585         (struct option_map, option_map, target_option_translations,
12586         translate_options): Remove.
12587         (driver_handle_option): Handle OPT__version, OPT__help, OPT__help_
12588         and OPT__target_help instead of OPT_fversion, OPT_fhelp,
12589         OPT_fhelp_ and OPT_ftarget_help.
12590         (process_command): Don't call translate_options.  Call
12591         decode_cmdline_options_to_array before checking for
12592         -no-canonical-prefixes using decoded options.
12593         * opts-common.c (tm.h): Update comment on #include.
12594         (find_opt): Allow abbreviations of long options.
12595         (struct option_map, option_map): New.
12596         (decode_cmdline_option): Use them instead of hardcoding -Wno, -fno
12597         and -mno handling.
12598         (target_option_translations): New.
12599         (decode_cmdline_options_to_array): Handle
12600         TARGET_OPTION_TRANSLATE_TABLE in driver.
12601         * opts.c (common_handle_option): Don't handle OPT_fhelp,
12602         OPT_ftarget_help, OPT_fhelp_ or OPT_fversion.
12603
12604 2010-09-22  Richard Guenther  <rguenther@suse.de>
12605
12606         * tree-inline.c (optimize_inline_calls): Schedule cleanups
12607         only if we inlined something.  Block compaction and conditional
12608         folding are done by cfg cleanup.  Schedule update-address-taken.
12609         (tree_function_versioning): Remove redundant call to number_blocks.
12610         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Conditional
12611         folding is done by cfg cleanup.
12612         * passes.c (init_optimization_passes): Remove update-address-taken
12613         pass after IPA inlining.
12614
12615 2010-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
12616
12617         * postreload.c (move2add_note_store): Add reg_symbol_ref[] checks
12618         to update conditions. Fix reg_mode[] check.
12619
12620 2010-09-22  Hariharan Sandanagobalane  <hariharan@picochip.com>
12621
12622         * config/picochip/picochip.md (movhicc): Use expand to check whether
12623         movhicc is available and split it after reload.
12624
12625 2010-09-22  Richard Guenther  <rguenther@suse.de>
12626
12627         * tree-ssanames.c (release_dead_ssa_names): Do not remove
12628         callee edges here.
12629         * passes.c (init_optimization_passes): Remove early CFG cleanup.
12630         * tree-optimize.c (execute_cleanup_cfg_pre_ipa): Remove.
12631         (pass_cleanup_cfg): Likewise.
12632         (execute_fixup_cfg): Cleanup.
12633         * tree-pass.h (pass_cleanup_cfg): Remove.
12634
12635 2010-09-22  Martin Jambor  <mjambor@suse.cz>
12636
12637         * gimple-fold.c (fold_gimple_call): New parameter inplace, do not fold
12638         builtins if it is true.
12639         (fold_stmt_1): Call, fold_gimple_call always, pass inplace as a
12640         parameter.
12641
12642 2010-09-22  Martin Jambor  <mjambor@suse.cz>
12643
12644         * tree-sra.c (struct access): New field grp_no_warning.
12645         (create_access_replacement): Set TREE_NO_WARNING according to
12646          grp_no_warning.
12647         (create_artificial_child_access): Use build_ref_for_model and set
12648         grp_no_warning if build_user_friendly_ref_for_offset fails.
12649         (propagate_subaccesses_across_link): Likewise.
12650
12651 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
12652
12653         PR target/35664
12654         * config/sparc/constraints.md ('e'): Return NO_REGS if !TARGET_FPU.
12655         ('f'): Likewise.
12656
12657 2010-09-22  Tristan Gingold  <gingold@adacore.com>
12658
12659         * config/alpha/alpha.c (alpha_use_linkage): Initialize target field.
12660
12661 2010-09-22  Uros Bizjak  <ubizjak@gmail.com>
12662
12663         * config/i386/i386.h (MAX_STRINGOP_ALGS): Fix typo in the name.
12664         * config/i386/i386.c (decide_alg): Update for rename.
12665
12666 2010-09-22  Jakub Jelinek  <jakub@redhat.com>
12667
12668         PR rtl-optimization/45739
12669         * simplify-rtx.c (simplify_binary_operation_1): Optimize even
12670         vector mode | CONST0_RTX (mode) and ^ CONST0_RTX (mode).
12671
12672 2010-09-21  Anatoly Sokolov  <aesok@post.ru>
12673
12674         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): Remove macros.
12675         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
12676         Remove.
12677         * config/rs6000/rs6000.c (rs6000_output_addr_const_extra): Make static.
12678         (TTARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
12679
12680 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
12681
12682         PR objc/23710
12683         * c-parser.c (c_parser_objc_method_definition): Check the return
12684         value of objc_start_method_definition and if false is returned,
12685         parse the method definition but emit no code.
12686
12687 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
12688
12689         PR objc/25965
12690         * c-decl.c (detect_field_duplicates): If compiling Objective-C,
12691         call objc_get_interface_ivars ().
12692
12693 2010-09-21  Kai Tietz  <kai.tietz@onevision.com>
12694
12695         PR target/45694
12696         * config/i386/i386.c (ix86_expand_prologue): Save r10 in case that
12697         static chain-register is used for 64-bit.
12698
12699 2010-09-21  Richard Guenther  <rguenther@suse.de>
12700
12701         * dwarf2out.c (is_cu_die): New function.
12702         (add_pubtype): Use it.
12703         (gen_subprogram_die): Likewise.
12704         (gen_struct_or_union_type_die): Likewise.
12705         (dwarf2out_finish): Likewise.
12706         (comp_unit_die): Rename to ...
12707         (single_comp_unit_die): ... this.
12708         (comp_unit_die): New function lazily constructing and
12709         returning single_comp_unit_die.
12710         (is_cxx, is_fortran, is_ada, debug_dwarf, break_out_comdat_types,
12711         base_type_die, subrange_type_die, modified_type_die,
12712         lower_bound_default, add_bound_info, add_prototyped_attribute,
12713         dwarf2out_vms_debug_main_pointer, scope_die_for, retry_incomplete_types,
12714         dwarf2out_abstract_function, gen_type_die_with_usage, get_context_die,
12715         force_decl_die, gen_namespace_die, dwarf2out_decl,
12716         dwarf2out_start_source_file, dwarf2out_end_source_file,
12717         prune_unused_types, dwarf2out_finish): Use it.
12718         (gen_compile_unit_die): For GNU GIMPLE derive DW_AT_language from
12719         the global list of translation-unit decls.
12720         (dwarf2out_init): Do not create single_comp_unit_die here.
12721         (force_decl_die): Handle TRANSLATION_UNIT_DECL.
12722
12723 2010-09-21  Richard Guenther  <rguenther@suse.de>
12724
12725         * dwarf2out.c (dwarf2out_decl): Do not always generate a DIE
12726         for bool for C++.
12727
12728 2010-09-21  Bernd Schmidt  <bernds@codesourcery.com>
12729
12730         * config/arm/iterators.md (qhs_extenddi_op): New mode_attr.
12731         (qhs_extenddi_cstr): Likewise.
12732         * config/arm/arm.md (zero_extend<mode>di2, extend<mode>di2): Use
12733         them for the source operand.
12734
12735 2010-09-21  Uros Bizjak  <ubizjak@gmail.com>
12736
12737         * config/i386/i386.c (ix86_split_ashl): Rename single_width variable
12738         to half_width.  Use GET_MODE_BITSIZE to calculate mode size.
12739         (ix86_split_ashr): Ditto.
12740         (ix86_split_lshr): Ditto.
12741
12742 2010-09-21  Richard Guenther  <rguenther@suse.de>
12743
12744         PR tree-optimization/45580
12745         * tree-ssa-propagate.c (substitute_and_fold): Always replace
12746         regular uses.
12747         * gimple-fold.c (gimple_fold_obj_type_ref): For a BINFO without
12748         virtuals fold the call into a regular indirect one.
12749
12750 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
12751
12752         PR rtl-optimization/42775
12753         * cfgrtl.c (rest_of_pass_free_cfg): Recompute notes if delay slot
12754         scheduling is enabled.
12755
12756 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
12757
12758         PR rtl-optimization/45728
12759         * expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
12760         gen_lowpart_common first and if that fails, force_reg first
12761         before calling gen_lowpart.
12762
12763         PR middle-end/45678
12764         * cfgexpand.c (expand_one_stack_var_at): Use
12765         crtl->max_used_stack_slot_alignment as max_align, instead
12766         of maximum of that and PREFERRED_STACK_BOUNDARY.
12767         Don't call update_stack_alignment.
12768
12769 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
12770
12771         * langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
12772         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
12773         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
12774         * system.h (LANG_HOOKS_HASH_TYPES): Poison.
12775         * tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
12776         (build_nonstandard_integer_type): Likewise.
12777         (build_range_type_1): New function, built from...
12778         (build_range_type): ...this.  Call build_range_type_1.
12779         (build_nonshared_range_type): New function.
12780         (build_array_type_1): New function, built from...
12781         (build_array_type: ...this.  Call build_array_type_1.
12782         (build_nonshared_array_type): New function.
12783         * tree.h (build_nonshared_range_type): Declare.
12784         (build_nonshared_array_type): Likewise.
12785
12786 2010-09-20  Anatoly Sokolov  <aesok@post.ru>
12787
12788         * config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
12789         * config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
12790         (arm_class_likely_spilled_p): New function.
12791
12792 2010-09-20  Uros Bizjak  <ubizjak@gmail.com>
12793
12794         * config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
12795         indirect functions.
12796         (ix86_split_ashl): Ditto.
12797         (ix86_split_ashr): Ditto.
12798         (ix86_split_lshr): Ditto.
12799         (ix86_adjust_counter): Ditto.
12800
12801 2010-09-20  Nicola Pero  <nicola.pero@meta-innovation.com>
12802
12803         * c-family/c-common.h (constant_string_class): Documented with
12804         comment identical to the one already in c-common.c.
12805
12806 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
12807
12808         * dwarf2out.c (any_cfis_emitted): New static variable.
12809         (add_fde_cfi): Set it.
12810         (dwarf2out_frame_debug): Clear it before processing,
12811         if it is set afterwards, flush any queued reg saves.
12812
12813         PR debug/45124
12814         * dwarf2out.c (add_accessibility_attribute): Assume
12815         DW_ACCESS_private as the default for dwarf_version > 2
12816         and DW_TAG_class_type parent.
12817         (gen_inheritance_die): Assume DW_ACCESS_public as the default
12818         for dwarf_version > 2 and parent other than DW_TAG_class_type.
12819
12820 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
12821
12822         PR target/45726
12823         * arm.md (arm_movt): Only enable on machines with MOVT.
12824
12825 2010-09-20  Jie Zhang  <jie@codesourcery.com>
12826
12827         * config/arm/arm.c (arm_address_offset_is_imm): New.
12828         (arm_early_store_addr_dep): New.
12829         (arm_early_load_addr_dep): New.
12830         * config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
12831         (arm_early_load_addr_dep): Declare.
12832         (arm_address_offset_is_imm): Declare.
12833         * config/arm/cortex-m4.md: New file.
12834         * config/arm/cortex-m4-fpu.md: New file.
12835         * config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
12836         (attr generic_sched): Exclude cortexm4.
12837         (attr generic_vfp): Exclude cortexm4.
12838
12839 2010-09-20  Richard Guenther  <rguenther@suse.de>
12840
12841         PR middle-end/45704
12842         * gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
12843
12844 2010-09-20  Jan Hubicka  <jh@suse.cz>
12845
12846         PR tree-optimize/45605
12847         * cgraph.h (const_value_known_p): Declare.
12848         (varpool_decide_const_value_known): Remove.
12849         * tree-ssa-ccp.c (get_base_constructor): Use it.
12850         * lto-cgraph.c (compute_ltrans_boundary): Likewise.
12851         * expr.c (string_constant): Likewise.
12852         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
12853         * ipa.c (ipa_discover_readonly_nonaddressable_var,
12854         function_and_variable_visibility): Likewise.
12855         * gimplify.c (gimplify_call_expr): Likewise.
12856         * gimple-fold.c (get_symbol_constant_value): Likewise.
12857         * varpool.c (varpool_decide_const_value_known): Replace by...
12858         (const_value_known_p): ... this one; handle other kinds of DECLs
12859         too and work for automatic vars.
12860         (varpool_finalize_decl): Use const_value_known_p.
12861
12862 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
12863
12864         PR target/45726
12865         * arm.md (arm_movtas_ze): Only enable on machine with MOVT.
12866
12867 2010-09-20  Richard Guenther  <rguenther@suse.de>
12868
12869         PR tree-optimization/45705
12870         * tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
12871
12872 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
12873
12874         PR rtl-optimization/45695
12875         * combine.c (try_combine): When splitting a two set pattern,
12876         make sure the pattern which will be put into i2 doesn't use REGs
12877         or MEMs set by insns in between i2 and i3.
12878
12879 2010-09-19  Jan Hubicka  <jh@suse.cz>
12880
12881         PR lto/44246
12882         * lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
12883         processing same node twice.
12884
12885 2010-09-19  Anatoly Sokolov  <aesok@post.ru>
12886
12887         * config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
12888         * config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
12889         (bfin_class_likely_spilled_p): New function
12890
12891 2010-09-19  Ira Rosen  <irar@il.ibm.com>
12892
12893         PR tree-optimization/45714
12894         * tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
12895         created in vectorizable_call instead of the original statement in
12896         def stmt updates.
12897
12898 2010-09-19  Uros Bizjak  <ubizjak@gmail.com>
12899
12900         * config/i386/i386-protos.h (split_double_mode): New prototype.
12901         (split_di, split_ti): Remove prototypes.
12902         * config/i386/i386.c (split_double_mode): New function.
12903         (split_di, split_ti): Remove.
12904         (ix86_expand_branch): Use split_double_mode.
12905         (ix86_split_to_parts): Ditto.
12906         (ix86_split_ashl): Ditto.
12907         (ix86_split_ashr): Ditto.
12908         (ix86_split_lshr): Ditto.
12909         (ix86_force_to_memory): Ditto.
12910         * config/i386/i386.md: Use split_double_mode in double-mode splitters.
12911
12912 2010-09-18  Jan Hubicka  <jh@suse.cz>
12913
12914         PR tree-optimization/45453
12915         * cgraphunit.c (cgraph_finalize_function): Consider comdat & external
12916         virtual functions are reachable.
12917         * ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
12918         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
12919         * ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
12920         when modifying function.
12921
12922 2010-09-18  Jan Hubicka  <jh@suse.cz>
12923
12924         PR tree-optimization/45605
12925         * cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
12926         * gimple-fold.c (static_object_in_other_unit_p): New function.
12927         (canonicalize_constructor_val): Use it.
12928         (get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
12929         returning NULL.
12930         (gimple_fold_obj_type_ref_known_binfo): Use
12931         static_object_in_other_unit_p.
12932
12933 2010-09-18  Richard Guenther  <rguenther@suse.de>
12934
12935         PR tree-optimization/45709
12936         * tree-inline.c (copy_phis_for_bb): Delay commit of edge
12937         insertions until after all PHI nodes of the block are processed.
12938
12939 2010-09-18  Tijl Coosemans  <tijl@coosemans.org>
12940
12941         * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
12942
12943 2010-09-18  Kai Tietz  <kai.tietz@onevision.com>
12944
12945         * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
12946
12947 2010-09-18  Richard Guenther  <rguenther@suse.de>
12948
12949         PR tree-optimization/45709
12950         * tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
12951
12952 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
12953
12954         * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
12955         (dot_deps_stmt): Same.
12956         * graphite-poly.c (dot_lst): Same.
12957         * graphite-scop-detection.c (dot_all_scops): Same.
12958         (dot_scop): Same.
12959
12960 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
12961
12962         Revert:
12963         2009-12-16  Ben Elliston  <bje@au.ibm.com>
12964
12965         * tree-data-ref.c (dot_rdg_1): Added back.
12966         (dot_rdg): Same.  Added "#if 0" around system call.
12967
12968 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
12969             Richard Henderson  <rth@redhat.com>
12970
12971         * config/i386/i386.c (initial_ix86_tune_features): Add
12972         X86_TUNE_PAD_SHORT_FUNCTION.
12973         (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
12974         (ix86_count_insn): New.
12975         (ix86_pad_short_function): Likewise.
12976         (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
12977
12978         * config/i386/i386.h (ix86_tune_indices): Add
12979         X86_TUNE_PAD_SHORT_FUNCTION.
12980         (TARGET_PAD_SHORT_FUNCTION): New.
12981
12982         * config/i386/i386.md (UNSPEC_NOPS): New.
12983         (nops): Likewise.
12984
12985 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
12986
12987         PR middle-end/45234
12988         * calls.c (expand_call): Make sure that all variable sized
12989         adjustments are multiple of preferred stack boundary after
12990         stack alignment.
12991
12992 2010-09-17  DJ Delorie  <dj@redhat.com>
12993
12994         * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
12995         passed an invalid value, print an error instead of ICEing.
12996         (valid_psw_flag): New.
12997         (rx_expand_builtin): Call it for setpsw/clrpsw.
12998         (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
12999
13000         * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
13001         (bitclr_in_memory): Likewise.
13002         (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
13003
13004 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
13005
13006         PR middle-end/45678
13007         * cfgexpand.c (update_stack_alignment): New.
13008         (get_decl_align_unit): Use it.
13009         (expand_one_stack_var_at): Call update_stack_alignment.
13010
13011 2010-09-17  Richard Guenther  <rguenther@suse.de>
13012
13013         * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
13014         Properly copy the read string.
13015
13016 2010-09-17  Joseph Myers  <joseph@codesourcery.com>
13017
13018         * doc/options.texi (Variable): Document.
13019         * optc-gen.awk, opth-gen.awk: Handle Variable records.  Don't
13020         generate target_flags declarations explicitly.  Don't define
13021         VarExists variables for the driver.
13022         * common.opt (target_flags): New Variable record.
13023         (flag_dump_unnumbered, flag_dump_unnumbered_links,
13024         flag_var_tracking, flag_var_tracking_assignments,
13025         flag_var_tracking_assignments_toggle): Don't mark variables with
13026         VarExists.
13027         * config/i386/i386.c (ix86_isa_flags): Don't define here.
13028         * config/i386/i386.opt (ix86_isa_flags): Define here.
13029         * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
13030         * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
13031         VarExists.
13032         * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
13033         * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
13034         Only define for generator programs.
13035         * rtlanal.c (target_flags): Remove.
13036         * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
13037         flag_var_tracking_assignments_toggle): Remove.
13038
13039 2010-09-17  Michael Matz  <matz@suse.de>
13040
13041         PR tree-optimization/43432
13042         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
13043         Accept backwards consecutive accesses.
13044         (vect_create_data_ref_ptr): If step is negative generate
13045         decreasing IVs.
13046         * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
13047         (perm_mask_for_reverse, reverse_vec_elements): New functions.
13048         (vectorizable_load): Handle loads with negative steps when easily
13049         possible.
13050
13051 2010-09-03  Jan Hubicka  <jh@suse.cz>
13052
13053         * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
13054
13055 2010-09-03  Naveen H.S  <naveen.S@kpitcummins.com>
13056
13057         * config/v850/v850.c (v850_function_value_regno_p): Make static.
13058         Adjust comments. Declare.
13059         (TARGET_FUNCTION_VALUE_REGNO_P): Define.
13060         * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
13061
13062 2010-09-17  Richard Guenther  <rguenther@suse.de>
13063
13064         * common.opt (combine): Remove.
13065         * gcc.c (default_compilers): Remove specs testing combine.
13066         The C compilers no longer can combine.
13067         (option_map): Remove -combine.
13068         (display_help): Remove -combine.
13069         (driver_handle_option): Remove OPT_combine handling.
13070         (compile_input_file_p): Remove.
13071         (do_spec): Remove code concerning combine.
13072         (main): Likewise.
13073         * doc/invoke.texi: Remove traces of -combine.
13074         * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
13075
13076 2010-09-17  Richard Guenther  <rguenther@suse.de>
13077
13078         PR middle-end/45678
13079         * builtins.c (fold_builtin_memory_op): Always properly adjust
13080         alignment of memory accesses.
13081
13082 2010-09-16  Jan Hubicka  <jh@suse.cz>
13083
13084         * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
13085         processing clone.
13086
13087 2010-09-16  H.J. Lu  <hongjiu.lu@intel.com>
13088
13089         * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
13090
13091         * config/i386/i386.c (predict_jump): Add prototype.
13092         (flag_opts): Add -m8bit-idiv.
13093         (ix86_split_idivmod): New.
13094
13095         * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
13096         Add 2 splitters for SI/DI mode divide.
13097         (divmod<mode>4_1): New pattern.
13098         (udivmod<mode>4_1): Likewise.
13099         (testdi_ccno_1): Likewise.
13100
13101         * config/i386/i386.opt (m8bit-idiv): New.
13102
13103         * doc/invoke.texi: Document -m8bit-idiv.
13104
13105 2010-09-16  Reza Yazdani  <reza.yazdani@amd.com>
13106
13107         PR bootstrap/45680
13108         * config/i386/i386.c (min_insn_size): Moved out of the
13109         ASM_OUTPUT_MAX_SKIP_PAD ifdef.
13110
13111 2010-09-16  Jan Hubicka  <jh@suse.cz>
13112
13113         * lto-cgraph.c (lto_output_node): Fix handling of clones.
13114         * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
13115         unreachable clones with reachable clones.
13116         * tree-inline.c (copy_bb): Fix sanity checking when producing
13117         unreachable clone.
13118
13119 2010-09-16  Anatoly Sokolov  <aesok@post.ru>
13120
13121         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
13122         (TARGET_MEMORY_MOVE_COST): Define.
13123         (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
13124
13125 2010-09-16  Alexander Monakov  <amonakov@ispras.ru>
13126
13127         * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
13128         maybe_tidy_empty_bb.
13129
13130         Revert:
13131         2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
13132         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
13133
13134 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
13135
13136         * target.def (target_option.optimization): New hook.
13137         * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
13138         TARGET_OPTION_OPTIMIZATION hook.
13139         * doc/tm.texi: Regenerate.
13140         * hooks.c (hook_void_int_int): New.
13141         * hooks.h (hook_void_int_int): Declare.
13142         * opts.c: Don't include tm_p.h.
13143         (decode_options): Use targetm.target_option.optimization instead
13144         of OPTIMIZATION_OPTIONS.
13145         * system.h (OPTIMIZATION_OPTIONS): Poison.
13146         * config/arm/arm-protos.h (arm_optimization_options): Remove.
13147         * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
13148         (arm_optimization_options): Rename to arm_option_optimization.
13149         Make static.
13150         * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
13151         * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
13152         (cris_option_optimization): New.
13153         * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
13154         * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
13155         (crx_option_optimization): New.
13156         * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
13157         * config/frv/frv-protos.h (frv_optimization_options): Remove.
13158         * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
13159         (frv_optimization_options): Rename to frv_option_optimization.
13160         Make static.
13161         * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
13162         * config/h8300/h8300.c (h8300_option_optimization): New.
13163         (TARGET_OPTION_OPTIMIZATION): Define.
13164         * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
13165         * config/i386/i386-protos.h (optimization_options): Remove.
13166         * config/i386/i386.c (optimization_options): Rename to
13167         ix86_option_optimization.  Make static.
13168         (TARGET_OPTION_OPTIMIZATION): Define.
13169         * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
13170         * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
13171         * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
13172         (ia64_optimization_options): Rename to ia64_option_optimization.
13173         Make static.  Call SUBTARGET_OPTIMIZATION_OPTIONS.
13174         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove.  Remove
13175         commented-out definition.
13176         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
13177         instead of OPTIMIZATION_OPTIONS.
13178         * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
13179         (m32r_option_optimization): New.
13180         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
13181         * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
13182         Remove.
13183         * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
13184         (mcore_option_optimization): New.
13185         * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
13186         * config/mep/mep-protos.h (mep_optimization_options): Remove.
13187         * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
13188         (mep_optimization_options): Rename to mep_option_optimization.
13189         Make static.  Take unused level and size parameters.
13190         * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
13191         * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
13192         (mmix_option_optimization): New.
13193         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
13194         * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
13195         (pdp11_option_optimization): New.
13196         * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
13197         * config/rs6000/rs6000-protos.h (optimization_options): Remove.
13198         * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
13199         (optimization_options): Rename to rs6000_option_optimization.
13200         Make static.
13201         * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
13202         * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
13203         * config/rx/rx.c (rx_set_optimization_options): Rename to
13204         rx_option_optimization.  Make static.  Take unused level and size
13205         parameters.
13206         (TARGET_OPTION_OPTIMIZATION): Define.
13207         * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
13208         * config/s390/s390-protos.h (optimization_options): Remove.
13209         * config/s390/s390.c (optimization_options): Rename to
13210         s390_option_optimization.  Make static.  Don't mark size parameter
13211         unused.
13212         (TARGET_OPTION_OPTIMIZATION): Define.
13213         * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
13214         * config/sh/sh-protos.h (sh_optimization_options): Remove.
13215         * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
13216         (sh_optimization_options): Rename to sh_option_optimization.  Make
13217         static.  Don't mark parameters unused.
13218         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
13219         * config/spu/spu-protos.h (spu_optimization_options): Remove.
13220         * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
13221         (spu_optimization_options): Rename to spu_option_optimization.
13222         Make static.
13223         * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
13224         * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
13225         (v850_option_optimization): New.
13226         * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
13227         * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
13228         (xtensa_option_optimization): New.
13229         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
13230
13231 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
13232
13233         * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
13234         (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
13235         * doc/tm.texi: Regenerate.
13236         * system.h (OVERRIDE_OPTIONS): Poison.
13237         * target.def (override): Default to hook_void_void.
13238         * targhooks.c (default_target_option_override): Remove.
13239         * genmodes.c, machmode.def: Update comments mentioning
13240         OVERRIDE_OPTIONS.
13241         * config/alpha/alpha-modes.def: Update comment mentioning
13242         alpha_override_options.
13243         * config/alpha/alpha-protos.h (override_options): Remove.
13244         * config/alpha/alpha.c (override_options): Rename to
13245         alpha_option_override.  Call SUBTARGET_OVERRIDE_OPTIONS.  Make static.
13246         (TARGET_OPTION_OVERRIDE): Define.
13247         * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
13248         * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
13249         of OVERRIDE_OPTIONS.
13250         * config/arc/arc-protos.h (arc_init): Remove.
13251         * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
13252         (arc_init): Rename to arc_option_override.  Make static.
13253         * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
13254         (OVERRIDE_OPTIONS): Remove.
13255         * config/arm/arm-protos.h (arm_override_options): Remove.
13256         * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
13257         (arm_override_options): Rename to arm_option_override.  Make
13258         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
13259         * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
13260         * config/arm/arm.md: Update comment referring to arm_override_options.
13261         * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
13262         instead of OVERRIDE_OPTIONS.
13263         * config/avr/avr-protos.h (avr_override_options): Remove.
13264         * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
13265         (avr_override_options): Rename to avr_option_override.  Make static.
13266         * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
13267         * config/bfin/bfin-protos.h (override_options): Remove (twice).
13268         * config/bfin/bfin.c (override_options): Rename to
13269         bfin_option_override.  Make static.
13270         (TARGET_OPTION_OVERRIDE): Define.
13271         * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
13272         * config/cris/cris-protos.h (cris_override_options): Remove.
13273         * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
13274         (cris_override_options): Rename to cris_option_override.  Make static.
13275         * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
13276         * config/frv/frv-protos.h (frv_override_options): Remove.
13277         * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
13278         (frv_override_options): Rename to frv_option_override.  Make static.
13279         * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
13280         * config/h8300/h8300-protos.h (h8300_init_once): Remove.
13281         * config/h8300/h8300.c (h8300_init_once): Rename to
13282         h8300_option_override.  Make static.
13283         (TARGET_OPTION_OVERRIDE): Define.
13284         * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
13285         * config/i386/i386-protos.h (override_options): Remove.
13286         * config/i386/i386.c (override_options): Rename to
13287         ix86_option_override_internal.  Make static.  Comments referring
13288         to this function and callers changed.
13289         (ix86_option_override): New.
13290         (TARGET_OPTION_OVERRIDE): Define.
13291         * config/i386/i386.h (OVERRIDE_OPTION): Remove.
13292         * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
13293         * config/ia64/ia64.c (ia64_file_start): Update comment referring
13294         to ia64_override_options.
13295         * config/iq2000/iq2000-protos.h (override_options): Remove.
13296         * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
13297         (override_options): Rename to iq2000_option_override.  Make static.
13298         * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
13299         * config/lm32/lm32-protos.h (lm32_override_options): Remove.
13300         * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
13301         (lm32_override_options): Rename to lm32_option_override.  Make static.
13302         * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
13303         * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
13304         (m32r_option_override): New.
13305         (m32r_init): Update comment.
13306         * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
13307         * config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
13308         * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
13309         (m68hc11_override_options): Rename to m68hc11_option_override.
13310         Make static.  Return void.
13311         * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
13312         * config/m68k/m68k-protos.h (override_options): Remove.
13313         * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
13314         (override_options): Rename to m68k_option_override.  Make static.
13315         * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
13316         * config/mcore/mcore-protos.h (mcore_override_options): Remove.
13317         * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
13318         (mcore_override_options): Rename to mcore_option_override.  Make
13319         static.
13320         * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
13321         * config/mep/mep-protos.h (mep_override_options): Remove.
13322         * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
13323         (mep_override_options): Rename to mep_option_override.  Make static.
13324         * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
13325         * config/mmix/mmix-protos.h (mmix_override_options): Remove.
13326         * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
13327         (mmix_override_options): Rename to mmix_option_override.  Make static.
13328         * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
13329         * config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
13330         * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
13331         (mn10300_override_options): Rename to mn10300_option_override.
13332         Make static.
13333         * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
13334         * config/moxie/moxie-protos.h (moxie_override_options): Remove.
13335         * config/moxie/moxie.c (moxie_override_options): Rename to
13336         moxie_option_override.  Make static.
13337         (TARGET_OPTION_OVERRIDE): Define.
13338         * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
13339         * config/picochip/picochip-protos.h (picochip_override_options):
13340         Remove.  Update comment referring to picochip_override_options.
13341         * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
13342         (picochip_override_options): Rename to picochip_option_override.
13343         Make static.  Update comment and definition of
13344         TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
13345         * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
13346         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
13347         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
13348         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
13349         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
13350         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
13351         * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
13352         instead of OVERRIDE_OPTIONS.
13353         * config/rs6000/rs6000-modes.def: Update comment referring to
13354         rs6000_override_options.
13355         * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
13356         * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
13357         (rs6000_override_options): Rename to
13358         rs6000_option_override_internal.  Make static.  Commented
13359         referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
13360         (rs6000_option_override): New.
13361         * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
13362         instead of OVERRIDE_OPTIONS.
13363         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
13364         * config/s390/s390-protos.h (override_options): Remove.
13365         * config/s390/s390.c (override_options): Rename to
13366         s390_option_override.  Make static.
13367         (TARGET_OPTION_OVERRIDE): Define.
13368         * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
13369         * config/score/score-protos.h (score_override_options): Remove.
13370         * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
13371         (score_override_options): Rename to score_option_override.  Make
13372         static.
13373         * config/score/score.h (OVERRIDE_OPTIONS): Remove.
13374         Update comment referring to override_options.
13375         * config/score/score3.c (score3_override_options): Rename to
13376         score3_option_override.
13377         * config/score/score3.h (score3_override_options): Rename to
13378         score3_option_override.
13379         * config/score/score7.c (score7_override_options): Rename to
13380         score7_option_override.
13381         * config/score/score7.h (score7_override_options): Rename to
13382         score7_option_override.
13383         * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
13384         * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
13385         (sparc_override_options): Rename to sparc_option_override.  Make
13386         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
13387         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
13388         * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
13389         instead of OVERRIDE_OPTIONS.
13390         * config/spu/spu-protos.h (spu_override_options): Remove.
13391         * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
13392         (spu_override_options): Rename to spu_option_override.  Make
13393         static.
13394         * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
13395         * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
13396         OVERRIDE_OPTIONS.
13397         * config/vax/vax-protos.h (override_options): Remove.
13398         * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
13399         (override_options): Rename to vax_option_override.  Make static.
13400         Call SUBTARGET_OVERRIDE_OPTIONS.
13401         * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
13402         * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
13403         * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
13404         * config/xtensa/xtensa-protos.h (override_options): Remove.
13405         * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
13406         (override_options): Rename to xtensa_option_override.  Make static.
13407         * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
13408
13409 2010-09-16  Richard Guenther  <rguenther@suse.de>
13410
13411         PR tree-optimization/45623
13412         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
13413         (get_constraint_for_component_ref): If computing a constraint
13414         for the rhs handle type punning through unions.
13415         (get_constraint_for_address_of): Adjust.
13416         (get_constraint_for_1): Likewise.
13417         (get_constraint_for): Likewise.
13418         (get_constraint_for_rhs): New function.
13419         (do_structure_copy): Adjust.
13420         (make_constraint_to): Likewise.
13421         (handle_const_call): Likewise.
13422         (find_func_aliases): Likewise.
13423         (process_ipa_clobber): Likewise.
13424         (create_variable_info_for): Likewise.
13425
13426 2010-09-16  Ira Rosen  <irar@il.ibm.com>
13427
13428         * tree-vectorizer.c: Fix documentation.
13429         * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
13430         (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
13431         is_pattern_stmt_p, is_loop_header_bb_p,
13432         stmt_vinfo_set_inside_of_loop_cost,
13433         stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
13434         known_alignment_for_access_p): Likewise.
13435         * tree-vect-loop.c: Fix documentation.
13436         (vect_get_cost): Start function name from new line.
13437         * tree-vect-data-refs.c: Fix documentation.
13438         * tree-vect_stmts.c: Likewise.
13439         (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
13440         (vectorizable_store): Free vec_oprnds if allocated.
13441         (vectorizable_condition): Initialize several variables to avoid
13442         warnings.
13443         * tree-vect-slp.c: Fix documentation.
13444
13445 2010-09-16  Richard Guenther  <rguenther@suse.de>
13446
13447         * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
13448         is TS_TRANSLATION_UNIT_DECL.
13449         (initialize_tree_contains_struct): Adjust.
13450         (all_translation_units): New global vector.
13451         (build_translation_unit_decl): New function.
13452         * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
13453         (struct tree_translation_unit_decl): New.
13454         (all_translation_units): Declare.
13455         (union tree_node): Add translation_unit_decl member.
13456         (build_translation_unit_decl): Declare.
13457         * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
13458         * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
13459         New function.
13460         (pack_value_fields): Call it.
13461         (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
13462         (lto_output_ts_translation_unit_decl_tree_pointers): New function.
13463         (lto_output_tree_pointers): Call it.
13464         * lto-streamer-in.c (lto_input_tree_ref): Handle references
13465         to TRANSLATION_UNIT_DECL.
13466         (unpack_ts_translation_unit_decl_value_fields): New function.
13467         (unpack_value_fields): Call it.
13468         (lto_input_ts_translation_unit_decl_tree_pointers): New function.
13469         (lto_input_tree_pointers): Call it.
13470         * lto-streamer.c (check_handled_ts_structures): Adjust.
13471         * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
13472         * c-decl.c (all_translation_units): Remove.
13473         (pop_scope): Use build_translation_unit_decl.
13474         (collect_all_refs): Adjust.
13475         (for_each_global_decl): Likewise.
13476         (c_write_global_declarations): Likewise.
13477
13478 2010-09-16  Jakub Jelinek  <jakub@redhat.com>
13479
13480         PR bootstrap/45686
13481         * fold-const.c (fold_checksum_tree): Change slot from const void **
13482         to void **, use CONST_CAST_TREE to store into *slot.
13483
13484 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
13485
13486         * config/i386/i386.md: Remove unneeded empty conditions and
13487         preparation statements from expanders.
13488         * config/i386/mmx.md: Ditto.
13489         * config/i386/sse.md: Ditto.
13490
13491 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
13492
13493         * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
13494
13495 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
13496
13497         PR rtl-optimization/45593
13498         * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
13499         insns that were in delay slots as stand-alone insns.
13500
13501 2010-09-15  Ian Lance Taylor  <iant@google.com>
13502
13503         * incpath.c (remove_duplicates): If name is not a directory, issue
13504         a warning rather than an error.
13505
13506 2010-09-15  Martin Jambor  <mjambor@suse.cz>
13507
13508         PR middle-end/45644
13509         * tree-sra.c (create_access): Check for bit-fields directly.
13510
13511 2010-09-15  Jakub Jelinek  <jakub@redhat.com>
13512
13513         PR tree-optimization/45633
13514         * tree-cfg.c (verify_gimple_assign_binary): Allow
13515         MINUS_EXPR with lhs and rhs1 pointer vector and
13516         rhs2 sizetype vector.
13517         * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
13518         or vector pointer use TER to optimize pointer subtraction.
13519
13520 2010-09-15  Jie Zhang  <jie@codesourcery.com>
13521
13522         * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
13523         fcmpd to fcmps.
13524
13525 2010-09-15  Ian Lance Taylor  <iant@google.com>
13526
13527         * config/i386/i386.md (truncxf<mode>2): Fix indentation.
13528
13529 2010-09-15  Ian Lance Taylor  <iant@google.com>
13530
13531         * function.c (get_arg_pointer_save_area): Set
13532         arg_pointer_save_area_init to true.
13533
13534 2010-09-15  Martin Jambor  <mjambor@suse.cz>
13535
13536         * tree-sra.c (generate_subtree_copies): Updated comment.
13537         (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
13538         obtained from the statement iterator instead.
13539         (load_assign_lhs_subreplacements): Removed parameters lhs and
13540         right_offset, which is obtained from top_racc instead.  Parameter lacc
13541         is now expected to be the root of the processed tree rather than root's
13542         first child.  Updated all callers.
13543
13544 2010-09-15  Joseph Myers  <joseph@codesourcery.com>
13545
13546         * config/pdp11/pdp11.c (register_move_cost): Rename to
13547         pdp11_register_move_cost.
13548         * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
13549         pdp11_register_move_cost.
13550         * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
13551         pdp11_register_move_cost instead of register_move_cost.
13552
13553 2010-09-15  Tejas Belagod  <tejas.belagod@arm.com>
13554
13555         * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
13556         pattern for vmovn. Expansion in case of non
13557         -mvectorize-with-neon-quad.
13558         (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
13559         non- -mvectorize-with-neon-quad case.
13560         (move_lo_quad_<mode>): New expansion to vmov into low part.
13561         (move_hi_quad_<mode>): New expansion to vmov into high part.
13562         (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
13563         (move_lo_quad_v4sf): Likewise.
13564         (move_lo_quad_v8hi): Likewise.
13565         (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
13566         low part.
13567         (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
13568         high part.
13569         * config/arm/iterators.md (ANY128): New mode iterator.
13570         (V_narrow_pack): New mode attribute.
13571         (V_HALF): Add attribute.
13572         (V_DOUBLE): Add attribute.
13573         (V_mode_nunits): Add attribute.
13574
13575 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
13576
13577         * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
13578         is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
13579
13580 2010-09-15  Olivier Hainque  <hainque@adacore.com>
13581             Jose Ruiz  <ruiz@adacore.com>
13582
13583         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
13584         * config/alpha/osf5-unwind.h: New file.
13585
13586 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
13587
13588         PR bootstrap/45672
13589         * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
13590         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
13591         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
13592
13593 2010-09-15  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
13594
13595         * c-lang.h (struct lang_type): Add variable_size GTY option.
13596
13597 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
13598
13599         PR bootstrap/45672
13600         * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
13601
13602 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
13603
13604         * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
13605         result isn't used in memory address.
13606
13607 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
13608
13609         * defaults.h (UNITS_PER_SIMD_WORD): Removed.
13610         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
13611         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
13612         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
13613         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
13614         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
13615
13616         * target.def: Add units_per_simd_word to vectorize.
13617
13618         * targhooks.c (default_units_per_simd_word): New.
13619         * targhooks.h (default_units_per_simd_word): Likewise.
13620         * config/arm/arm.c (arm_units_per_simd_word): Likewise.
13621         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
13622         * config/mips/mips.c (mips_units_per_simd_word): Likewise.
13623         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
13624         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
13625         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
13626         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
13627         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
13628
13629         * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
13630         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
13631
13632         * tree-vect-stmts.c: Don't include "tm_p.h".
13633         (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
13634         with targetm.vectorize.units_per_simd_word.
13635
13636         * system.h (UNITS_PER_SIMD_WORD): Poisoned.
13637
13638         * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
13639
13640         * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
13641         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
13642
13643         * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD.  Add
13644         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
13645
13646         * doc/tm.texi: Regenerated.
13647
13648 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
13649
13650         * tree-vect-stmts.c: Include "tm_p.h".
13651
13652         * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
13653         out of RTX_CODE.
13654
13655 2010-09-14  Martin Jambor  <mjambor@suse.cz>
13656
13657         * tree-sra.c (build_ref_for_offset): Loc made a parameter.  Set the
13658         location of generated statement.  Changed all callers.
13659         (build_ref_for_model): New parameter loc which used to set location of
13660         all generated expressions.  Changed all callers.
13661         (generate_subtree_copies): Likewise.
13662         (init_subtree_with_zero): Likewise.
13663         (sra_modify_expr): Set locations of all generated statements and
13664         expressions to the location the original statement.
13665         (handle_unscalarized_data_in_subtree): Likewise.
13666         (load_assign_lhs_subreplacements): Likewise.
13667         (sra_modify_constructor_assign): Likewise.
13668         (sra_modify_assign): Likewise.
13669
13670 2010-09-14  Eric Botcazou  <ebotcazou@adacore.com>
13671
13672         PR target/45277
13673         PR target/45363
13674         PR target/45407
13675         * doc/install.texi (sparc*-*-*): New section.
13676         (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
13677
13678 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
13679
13680         PR middle-end/45567
13681         * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
13682         expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
13683         (expand_builtin): Adjust caller.
13684         (expand_builtin_unop): Only use subtarget if it has the right mode.
13685
13686 2010-09-14  Tristan Gingold  <gingold@adacore.com>
13687
13688         * configure.ac (plugins): Fix typos.
13689         * configure: Regenerate.
13690
13691 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
13692
13693         PR debug/45660
13694         * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
13695         gen_type_die for function/method return type.
13696
13697 2010-09-14  Ira Rosen  <irar@il.ibm.com>
13698
13699         PR tree-optimization/45470
13700         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
13701         can throw an exception.
13702         * tree-vect-stmts.c (vectorizable_call): Likewise.
13703
13704 2010-09-14  DJ Delorie  <dj@redhat.com>
13705
13706         PR target/44749
13707         * config/mep/mep-protos.h (mep_save_register_info,
13708         mep_reinit_regs, mep_init_regs): Declare.
13709
13710         * config/mep/mep.c: Move all target definitions to the end of the
13711         file to avoid the need for duplicate declarations.
13712         (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
13713         (mep_reorg_erepeat): Remove unused variables.
13714         (mep_expand_builtin): Likewise.
13715
13716         * config/mep/mep-pragma.c: Don't include rtl.h.
13717         (INVALID_REGNUM): New.
13718         (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
13719         functions.
13720         (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
13721         Avoid enum/integer math.
13722
13723 2010-09-13  Joseph Myers  <joseph@codesourcery.com>
13724
13725         PR target/44749
13726         * config/mep/t-mep (GTM_H): Add insn-constants.h.
13727         * config/mep/mep.c (mep_conditional_register_usage): Take no
13728         parameters.
13729         * config/mep/mep-protos.h (mep_conditional_register_usage): Update
13730         prototype.
13731         * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
13732         call to mep_conditional_register_usage.
13733
13734 2010-09-13  Eric Botcazou  <ebotcazou@adacore.com>
13735
13736         PR debug/43937
13737         * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
13738         the DECL as well.
13739
13740 2010-09-13  Jakub Jelinek  <jakub@redhat.com>
13741
13742         PR rtl-optimization/45617
13743         * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
13744         even if low N bits of X aren't known to be zero.
13745
13746 2010-09-13  H.J. Lu  <hongjiu.lu@intel.com>
13747
13748         * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
13749
13750         * config/i386/i386.c (initial_ix86_tune_features): Add
13751         X86_TUNE_VECTORIZE_DOUBLE.
13752         (ix86_units_per_simd_word): New.
13753
13754         * config/i386/i386.h (ix86_tune_indices): Add
13755         X86_TUNE_VECTORIZE_DOUBLE.
13756         (TARGET_VECTORIZE_DOUBLE): New.
13757         (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
13758
13759 2010-09-13  Pat Haugen  <pthaugen@us.ibm.com>
13760
13761         * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
13762         (new_temp_expr_table): Allocate call_cnt vector.
13763         (free_temp_expr_table): Free it.
13764         (process_replaceable): Add call_cnt parm and set in vector.
13765         (find_replaceable_in_bb): Skip replacement if def/use span a call.
13766         (debug_ter): Dump call_cnt value, remove stderr uses.
13767
13768 2010-09-13  Jan Hubicka  <jh@suse.cz>
13769
13770         * tree.c (build_zero_cst): New.
13771         * tree.h (build_zero_cst): Declare.
13772         * tree-ssa-ccp.c (get_constant_value): Accept general operands.
13773         (get_base_constructor): Break out from ...
13774         (fold_const_aggregate_ref): Here; handle empty constructors.
13775
13776 2010-09-13  Marcus Shawcroft  <marcus.shawcroft@arm.com>
13777
13778         * config/arm/arm.md: (define_attr "conds"): Update comment.
13779         * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
13780         conds attribute to clob.
13781         (arm_sync_compare_and_swapsi): Likewise.
13782         (arm_sync_compare_and_swap<mode>): Likewise.
13783         (arm_sync_lock_test_and_setsi): Likewise.
13784         (arm_sync_lock_test_and_set<mode>): Likewise.
13785         (arm_sync_new_<sync_optab>si): Likewise.
13786         (arm_sync_new_nandsi): Likewise.
13787         (arm_sync_new_<sync_optab><mode>): Likewise.
13788         (arm_sync_new_nand<mode>): Likewise.
13789         (arm_sync_old_<sync_optab>si): Likewise.
13790         (arm_sync_old_nandsi): Likewise.
13791         (arm_sync_old_<sync_optab><mode>): Likewise.
13792         (arm_sync_old_nand<mode>): Likewise.
13793
13794 2010-09-13  Olivier Hainque  <hainque@adacore.com>
13795
13796         * fwprop.c (forward_propagate_and_simplify): Only attach a
13797         REG_EQUAL note to an insn if the destination is a register.
13798         * gcse.c (try_replace_reg): Likewise.
13799
13800 2010-09-13  Richard Guenther  <rguenther@suse.de>
13801
13802         PR tree-optimization/45611
13803         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
13804         (copy_ref_info): Likewise.
13805
13806 2010-09-13  Alexandre Oliva  <aoliva@redhat.com>
13807
13808         PR debug/45604
13809         PR debug/45419
13810         PR debug/45408
13811         * tree-pretty-print.c (dump_generic_node): Disregard top-level
13812         types of MEM_REF pointer types to the same type.
13813
13814 2010-09-13  Hans-Peter Nilsson  <hp@axis.com>
13815
13816         PR rtl-optimization/41087
13817         * ifcvt.c (noce_get_condition): Don't allow conditions with
13818         side-effects.
13819
13820 2010-09-12  Anatoly Sokolov  <aesok@post.ru>
13821
13822         * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
13823         * config/frv/frv-protos.h (frv_register_move_cost): Remove.
13824         * config/frv/frv.c (frv_register_move_cost): Make static. Change
13825         arguments type to reg_class_t. Add mode argument.
13826         (frv_memory_move_cost): New.
13827         (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
13828
13829 2010-09-12  Bernd Schmidt  <bernds@codesourcery.com>
13830
13831         * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
13832         arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
13833
13834 2010-09-10  Jan Hubicka  <jh@suse.cz>
13835
13836         * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
13837
13838 2010-09-10  Richard Guenther  <rguenther@suse.de>
13839
13840         * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
13841         * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
13842         * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
13843         not stream TYPE_DEBUG_REPRESENTATION_TYPE.
13844         * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
13845
13846 2010-09-10  Richard Guenther  <rguenther@suse.de>
13847
13848         * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
13849         for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
13850         * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
13851         using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
13852
13853 2010-09-10  H.J. Lu  <hongjiu.lu@intel.com>
13854
13855         PR middle-end/45634
13856         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
13857         of string folding is of integral type.
13858
13859 2010-09-10  Ryan Mansfield  <rmansfield@qnx.com>
13860
13861         * doc/invoke.texi (-x): Fix typo.
13862
13863 2010-09-10  Richard Guenther  <rguenther@suse.de>
13864
13865         PR debug/44115
13866         * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
13867         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
13868         Output DECL_DEBUG_EXPR.
13869         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
13870         Input DECL_DEBUG_EXPR.
13871
13872 2010-09-10  Richard Guenther  <rguenther@suse.de>
13873
13874         * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
13875         (build_index_type): Implement in terms of build_range_type.
13876         (build_range_type): Do not allow NULL_TREE type, improve
13877         hashing to cover more cases.  Set TYPE_STRUCTURAL_EQUALITY_P
13878         if we didn't hash.
13879         * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
13880         create a distinct copy of the type.
13881
13882 2010-09-10  Kai Tietz  <kai.tietz@onevision.com>
13883
13884         * configure: Regenerated.
13885         * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
13886
13887 2010-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13888
13889         * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
13890         * config/arm/cortex-a9-neon.md: New and partially generated.
13891         * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
13892
13893 2010-09-10  Richard Guenther  <rguenther@suse.de>
13894
13895         * tree.h (build_index_2_type): Remove.
13896         * tree.c (build_index_2_type): Remove.
13897
13898 2010-09-10  Jakub Jelinek  <jakub@redhat.com>
13899
13900         PR bootstrap/45630
13901         * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
13902         HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
13903         (implicit_ptr_descriptor): Return NULL if dwarf_strict.
13904
13905 2010-09-10  Martin Jambor  <mjambor@suse.cz>
13906
13907         PR tree-optimization/44972
13908         * tree-sra.c: Include toplev.h.
13909         (build_ref_for_offset): Entirely reimplemented.
13910         (build_ref_for_model): New function.
13911         (build_user_friendly_ref_for_offset): New function.
13912         (analyze_access_subtree): Removed build_ref_for_offset check.
13913         (propagate_subaccesses_across_link): Likewise.
13914         (create_artificial_child_access): Use
13915         build_user_friendly_ref_for_offset.
13916         (propagate_subaccesses_across_link): Likewise.
13917         (ref_expr_for_all_replacements_p): Removed.
13918         (generate_subtree_copies): Updated comment.  Use build_ref_for_model.
13919         (sra_modify_expr): Use build_ref_for_model.
13920         (load_assign_lhs_subreplacements): Likewise.
13921         (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
13922         checks for return values of build_ref_for_offset.
13923         * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
13924         build_ref_for_offset.
13925         * ipa-prop.h: Include gimple.h
13926         * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
13927         (ipa_analyze_indirect_call_uses): Update comment.
13928         * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
13929         (IPA_PROP_H): Likewise.
13930
13931 2010-09-10  Martin Jambor  <mjambor@suse.cz>
13932
13933         PR tree-optimization/44972
13934         * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
13935         calling build_ref_for_offset.
13936
13937 2010-09-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13938
13939         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
13940         * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
13941         * config/arm/arm-tune.md: Regenerate.
13942         * doc/invoke.texi (ARM Options): Document it.
13943
13944 2010-09-09  Reza Yazdani  <reza.yazdani@amd.com>
13945
13946         * config/i386/i386.c: Include sched-int.h.
13947         (TARGET_SCHED_DISPATCH): Defined.
13948         (TARGET_SCHED_DISPATCH_DO): Defined.
13949         (DISPATCH_WINDOW_SIZE): Defined.
13950         (MAX_DISPATCH_WINDOWS): Defined.
13951         (MAX_INSN): Defined.
13952         (MAX_IMM): Defined.
13953         (MAX_IMM_SIZE): Defined.
13954         (MAX_IMM_32): Defined.
13955         (MAX_IMM_64): Defined.
13956         (MAX_LOAD): Defined.
13957         (MAX_STORE): Defined.
13958         (BIG): Defined.
13959         (dispatch_group): New.
13960         (num_allowable_groups): New.
13961         (group_name): New.
13962         (sched_insn_info_s): New.
13963         (dispatch_windows_s): New.
13964         (imm_info_s): New.
13965         (dispatch_window_list): New.
13966         (dispatch_window_list1): New.
13967         (get_mem_group): New.
13968         (is_cmp): New.
13969         (dispatch_violation): New.
13970         (is_branch): New.
13971         (is_prefetch): New.
13972         (init_window): New.
13973         (allocate_window): New.
13974         (init_dispatch_sched): New.
13975         (is_end_basic_block): New.
13976         (process_end_window): New.
13977         (allocate_next_window): New.
13978         (find_constant_1): New.
13979         (find_constant): New.
13980         (get_num_immediates): New.
13981         (has_immediate): New.
13982         (get_insn_path): New.
13983         (get_insn_group): New.
13984         (count_num_restricted): New.
13985         (fits_dispatch_window): New.
13986         (add_insn_window): New.
13987         (add_to_dispatch_window): New.
13988         (debug_dispatch_window_file): New.
13989         (debug_dispatch_window): New.
13990         (debug_insn_dispatch_info_file): New.
13991         (debug_ready_dispatch): New.
13992         (do_dispatch): New.
13993         (has_dispatch): New.
13994         * config/i386/i386.h (debug_ready_dispatch): Declared.
13995         (debug_dispatch_window): Declared.
13996         * config/i386/i386.opt (mdispatch-scheduler): New flag.
13997         * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
13998         (TARGET_SCHED_DISPATCH_DO): New.
13999         * doc/tm.texi: Regererated.
14000         * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
14001         ready_remove_first_dispatch
14002         (schedule_block): Call targetm.sched.dispatch and
14003         targetm.sched.dispatch_do.
14004         (sched_init): Call targetm.sched.dispatch and
14005         targetm.sched.dispatch_do.
14006         (ready_remove_first_dispatch): New.
14007         (number_in_ready): New.
14008         (get_ready_element): New.
14009         * hooks.c (hook_bool_rtx_int_false): New.
14010         (hook_void_rtx_int): New.
14011         * hooks.h (hook_bool_rtx_int_false): Declared.
14012         (hook_void_rtx_int): Declared.
14013         * sched-int.h (IS_DISPATCH_ON): Defined.
14014         (IS_CMP): Defined.
14015         (DISPATCH_VIOLATION): Defined.
14016         (FITS_DISPATCH_WINDOW): Defined.
14017         (DISPATCH_INIT): Defined.
14018         (ADD_TO_DISPATCH_WINDOW): Defined.
14019         (get_ready_element): Declared.
14020         (number_in_ready): Declared.
14021         * target.def (dispatch): Defined.
14022         (dispatch_do): Defined.
14023
14024 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
14025
14026         PR middle-end/45312
14027         * reload1.c (merge_assigned_reloads): Remove.
14028         (reload_as_needed): Don't call it.
14029
14030 2010-09-09  Anatoly Sokolov  <aesok@post.ru>
14031
14032         * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
14033         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
14034         * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
14035
14036 2010-09-09  Matthias Klose  <doko@ubuntu.com>
14037
14038         PR bootstrap/43847
14039         * configure.ac (--enable-plugin): Enhance for cross builds.
14040         * configure: Regenerate.
14041
14042 2010-09-09  Jan Hubicka  <jh@suse.cz>
14043
14044         PR tree-optimization/45598
14045         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
14046         string folding is of integral type.
14047
14048 2010-09-09  Nathan Sidwell  <nathan@codesourcery.com>
14049
14050         * configure.ac (gnu_indirect_function): New test.
14051         * configure: Rebuilt.
14052         * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
14053         * defaults.h (IFUNC_ASM_TYPE): Provide default.
14054
14055         * doc/extend.texi (Function Attributes): Document ifunc.
14056         * varasm.c (do_assemble_alias): Deal with ifuncs too.
14057
14058 2010-09-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
14059
14060         * config/picochip/picochip.c (picochip_reorg): Check for note_p for
14061         epilogue instruction move.
14062
14063 2010-09-09  Jan Hubicka  <jh@suse.cz>
14064
14065         * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
14066         command line to allow more partitions than input files.
14067
14068 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
14069
14070         PR middle-end/44554
14071         * ira.c (ira): Switch off sharing spill slots if setjmp is called.
14072
14073 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
14074
14075         PR middle-end/40386
14076         * ira.c (pseudo_for_reload_consideration_p): Don't use
14077         flag_ira_share_spill_slots.
14078
14079 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14080
14081         * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
14082         point zero operands that fit into a single GPR.
14083         (s390_preferred_reload_class): Ensure we only return general-purpose
14084         register classes.
14085         * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
14086         floating-point zero operands into GPRs.
14087         ("*mov<mode>_64"): Likewise.
14088         ("mov<mode>"): Likewise using lhi.
14089
14090 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14091
14092         * config/s390/s390.c (s390_symref_operand_p): Return false for
14093         literal pool references.
14094         (s390_check_qrst_address): Update caller.
14095
14096 2010-09-09  Uros Bizjak  <ubizjak@gmail.com>
14097
14098         * config/i386/predicates.md (ext_register_operand): Check that
14099         SUBREG_REG is really a register before looking for REGNO.
14100         (reg_not_xmm0_operand): Handle SUBREGs correctly.
14101         (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
14102
14103 2010-09-09  Jakub Jelinek  <jakub@redhat.com>
14104
14105         * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
14106         * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
14107         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
14108         * print-rtl.c (print_rtx): Likewise.
14109         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
14110         * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
14111         for ADDR_EXPR with non-addressable object.
14112         * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
14113         (struct dw_val_struct): Add v.val_decl_ref.
14114         (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
14115         Handle DW_OP_GNU_implicit_pointer.
14116         (size_of_loc_descr): Likewise.  Fix up DW_OP_call_ref size.
14117         (get_ref_die_offset_label): New function.
14118         (implicit_ptr_descriptor): New function.
14119         (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
14120         (loc_descriptor): Likewise.
14121         (gen_variable_die): Put even definitions into decl_die_table.
14122         (resolve_addr_in_expr): Resolve still unresolved
14123         DW_OP_GNU_implicit_pointer operands, if it can't be resolved
14124         return false.
14125         (dwarf2out_finish): Call output_location_lists after outputting
14126         .debug_info and .debug_abbrev instead of before.
14127
14128 2010-09-09  Roland McGrath  <roland@redhat.com>
14129
14130         * dwarf2out.c (DWARF_REF_SIZE): Define.
14131         (size_of_loc_descr): Use it for DW_OP_call_ref.
14132
14133 2010-09-09  Alan Modra  <amodra@gmail.com>
14134
14135         * doc/invoke.text: Reinstate mcmodel=medium.
14136         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
14137         CMODEL_MEDIUM as default.
14138         * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
14139         * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
14140         (toc_relative_ok, offsettable_ok_by_alignment): New functions.
14141         (rs6000_emit_move): Reinstate mcmodel=medium optimization.
14142
14143 2010-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14144
14145         PR target/45250
14146         * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
14147         hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
14148         (builtin_longjmp): Likewise.
14149         (allocate_stack): Use hard_frame_pointer_rtx instead of
14150         frame_pointer_rtx.
14151         * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
14152         * config/pa/pa.c (pa_internal_arg_pointer): Declare.
14153         (pa_can_eliminate): Likewise.
14154         (TARGET_INTERNAL_ARG_POINTER): Define.
14155         (TARGET_CAN_ELIMINATE): Define.
14156         (hppa_expand_prologue): Use hard frame pointer instead of soft frame
14157         pointer.
14158         (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
14159         (pa_internal_arg_pointer, pa_can_eliminate,
14160         pa_initial_elimination_offset): New.
14161         * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
14162         (HARD_FRAME_POINTER_REGNUM): Set to register three.
14163         (INITIAL_FRAME_POINTER_OFFSET): Delete.
14164         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
14165         Define.
14166         (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
14167         REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
14168         * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
14169         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
14170         REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
14171         new soft frame pointer.
14172         * config/pa/pa64-regs.h: Likewise.
14173
14174 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
14175
14176         * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
14177         numerical constant.
14178         (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
14179
14180 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
14181
14182         PR debug/45531
14183         * cfglayout.c (fixup_reorder_chain): Skip debug insns.
14184
14185 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
14186
14187         PR debug/45419
14188         PR debug/45408
14189         * tree-pretty-print.c (dump_generic_node): Disregard top-level
14190         qualifiers in otherwise equal MEM_REF pointer types.
14191         * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
14192         * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
14193
14194 2010-09-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14195
14196         PR target/44392
14197         * config/arm/arm.md (bswapsi2): Handle condition correctly
14198         for armv6 and optimize_size.
14199
14200 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
14201
14202         PR other/18555
14203         * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
14204
14205 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
14206
14207         * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
14208         symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
14209         ix86_expand_strlen, legitimate_pic_address_disp_p,
14210         ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
14211         ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
14212         ix86_check_movabs, ix86_secondary_memory_needed): Change function
14213         prototype to bool.
14214         * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
14215         return_in_memory_ms_64, ix86_check_movabs,
14216         symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
14217         legitimate_pic_address_disp_p, ix86_binary_operator_ok,
14218         ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
14219         ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
14220         ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
14221         ix86_secondary_memory_needed): Change to bool.  Return
14222         "true" and "false" values.
14223         * config/i386/i386.md: Return "true" and "false" values.
14224
14225 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14226
14227         * doc/sourcebuild.texi (Effective-Target Keywords): Document
14228         run_expensive_tests.
14229
14230 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14231
14232         * toplev.c (output_stack_usage): Use lbasename instead of basename.
14233
14234 2010-09-08  Martin Jambor  <mjambor@suse.cz>
14235
14236         PR other/45443
14237         * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
14238         at -O3.
14239
14240 2010-09-08  Richard Guenther  <rguenther@suse.de>
14241
14242         * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
14243         (visit): Adjust.
14244         (iterative_hash_gimple_type): Likewise.
14245         (gimple_type_hash): Likewise.
14246         (gimple_register_type): Likewise.
14247         (print_gimple_types_stats): Likewise.
14248         (free_gimple_type_tables): Likewise.
14249
14250 2010-09-08  Michael Matz  <matz@suse.de>
14251
14252         PR tree-optimization/43430
14253         * tree-vect-stmts.c (vectorizable_condition): Support multiple
14254         copies for conditional statements if it's not part of a reduction.
14255
14256 2010-09-08  Michael Matz  <matz@suse.de>
14257
14258         PR tree-optimization/33244
14259         * tree-ssa-sink.c (statement_sink_location): Don't sink into
14260         empty loop latches.
14261
14262 2010-09-08  Richard Guenther  <rguenther@suse.de>
14263
14264         PR tree-optimization/45578
14265         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
14266         Be more careful when transfering alignment information to
14267         the new induction variable.
14268         (copy_ref_info): Likewise.
14269
14270 2010-09-08  Richard Guenther  <rguenther@suse.de>
14271
14272         * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
14273         * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
14274
14275 2010-09-08  Arnaud Charlet  <charlet@adacore.com>
14276
14277         * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
14278         * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
14279
14280 2010-09-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
14281
14282         PR doc/45587
14283         * doc/md.texi: Fixed modes on several standard pattern names.
14284
14285 2010-09-08  Mingjie Xing  <mingjie.xing@gmail.com>
14286
14287         * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
14288         (ashl<mode>3): ...this.
14289         (loongson_psra<V_suffix>): Rename to...
14290         (ashr<mode>3): ...this.
14291         (loongson_psrl<V_suffix>): Rename to...
14292         (lshr<mode>3): ...this.
14293         * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
14294         (CODE_FOR_loongson_psllw): Define.
14295         (CODE_FOR_loongson_psrlh): Define.
14296         (CODE_FOR_loongson_psrlw): Define.
14297         (CODE_FOR_loongson_psrah): Define.
14298         (CODE_FOR_loongson_psraw): Define.
14299
14300 2010-09-07  Richard Henderson  <rth@redhat.com>
14301
14302         * tree-vect-data-refs.c: Include tm_p.h.
14303         * Makefile.in (tree-vect-data-refs.o): Update deps.
14304         * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
14305         Move delarations outside #ifdef RTX_CODE.
14306
14307 2010-09-07  Richard Henderson  <rth@redhat.com>
14308
14309         * final.c (rest_of_handle_final): Unconditionally do
14310         output_function_exception_table before assemble_end_function.
14311
14312 2010-09-07  Jan Hubicka  <jh@suse.cz>
14313
14314         * tree-inline.c (tree_inlinable_function_p): Do not test
14315         DECL_REPLACEABLE_P.
14316         * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
14317         update_callee_keys, cgraph_decide_inlining): Test function availability.
14318         * cif-code.def (OVERWRITABLE): New code.
14319
14320 2010-09-07  H.J. Lu  <hjl.tools@gmail.com>
14321             Jack Howarth  <howarth@bromo.med.uc.edu>
14322
14323         PR target/36502
14324         PR target/42313
14325         PR target/44651
14326         * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
14327         profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
14328         (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
14329         MAX macro.
14330
14331 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
14332
14333         * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
14334         Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
14335
14336 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
14337
14338         * config.gcc: Don't append t-android for Android targets.
14339
14340         * config/t-android: Removed.
14341
14342 2010-09-07  Richard Henderson  <rth@redhat.com>
14343
14344         * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
14345         * doc/tm.texi.in: Add doc marker.
14346         * doc/tm.texi: Rebuild.
14347         * except.c (switch_to_exception_section): Always build.
14348         (output_one_function_exception_table): Move section switch,
14349         personality output, and label output ...
14350         (output_function_exception_table): ... here.  Use the new
14351         personality hook.
14352
14353         * config/ia64/ia64.c (ia64_asm_emit_except_personality,
14354         ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
14355         TARGET_ASM_INIT_SECTIONS): New.
14356         (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
14357         make static.
14358         (TARGET_ASM_UNWIND_EMIT): Update to match.
14359         * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
14360
14361         * config/arm/arm.c (arm_asm_emit_except_personality): New.
14362         (arm_asm_init_sections): New.
14363         (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
14364
14365 2010-09-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14366
14367         * config/arm/arm.md: Remove unused variable.
14368
14369 2010-09-07  Anatoly Sokolov  <aesok@post.ru>
14370
14371         * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
14372         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
14373         (m32r_memory_move_cost): New function.
14374
14375 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
14376
14377         * config.gcc: Append t-android for Android targets.
14378
14379         * config/t-android: New.
14380
14381 2010-09-07  Richard Henderson  <rth@redhat.com>
14382
14383         * target.def (unwind_emit_before_insn): New hook.
14384         * doc/tm.texi.in: Add @hook marker for it.
14385         * doc/tm.texi: Rebuild.
14386         * final.c (final_scan_insn): Respect unwind_emit_before_insn.
14387
14388 2010-09-07  Martin Jambor  <mjambor@suse.cz>
14389
14390         PR fortran/43665
14391         * ipa-cp.c (ipcp_versionable_function_p): Return false if there
14392         are any type attributes.
14393
14394 2010-09-07  Jan Hubicka  <jh@suse.cz>
14395
14396         * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
14397         array_ref_low_bound in string access folding.
14398
14399 2010-09-07  Uros Bizjak  <ubizjak@gmail.com>
14400
14401         PR target/45206
14402         * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
14403         eh_return fixup sequence.
14404
14405 2010-09-07  Jan Hubicka  <jh@suse.cz>
14406
14407         * gimple-fold.c (maybe_fold_reference): Verify that operand is
14408         gimple_min_invariant.
14409
14410 2010-09-07  Richard Guenther  <rguenther@suse.de>
14411
14412         PR middle-end/45569
14413         * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
14414         nor CONSTRUCTOR can trap.
14415         * tree-complex.c (update_complex_assignment): Update EH info.
14416
14417 2010-09-07  Richard Guenther  <rguenther@suse.de>
14418
14419         PR middle-end/45569
14420         * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
14421         * passes.c (execute_function_todo): Do not verify anything if
14422         we saw errors.
14423
14424 2010-09-07  Richard Guenther  <rguenther@suse.de>
14425
14426         * tree-pretty-print.c (dump_generic_node): Dump void types as void.
14427
14428 2010-09-07  Bernd Schmidt  <bernds@codesourcery.com>
14429
14430         PR target/43137
14431         * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
14432         New define_mode_attrs.
14433         * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
14434         arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
14435         (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
14436         (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
14437         Remove pool_range attribute.
14438         (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
14439         arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
14440         pool_range and neg_pool_range attributes.
14441         * config/arm/thumb2.md (thumb2_zero_extendsidi2,
14442         thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
14443         thumb2_extendhidi2, thumb2_extendqidi2): Delete.
14444
14445 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
14446
14447         * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
14448         check glibc.
14449
14450 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
14451
14452         PR target/22152
14453         * config/i386/mmx.md (*mov<mode>_internal_rex64,
14454         *mov<mode>_internal_avx, *mov<mode>_internal,
14455         *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
14456         *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
14457
14458 2010-09-06  Mark Mitchell  <mark@codesourcery.com>
14459
14460         * c-typeck.c (do_warn_double_promotion): Remove.
14461         * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
14462         Objective-C++ too.
14463
14464 2010-09-06  Anatoly Sokolov  <aesok@post.ru>
14465
14466         * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
14467         * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
14468         * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
14469         argument type to reg_class_t. Change result type to bool.
14470         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
14471
14472 2010-09-06  Nicola Pero  <nicola.pero@meta-innovation.com>
14473
14474         PR libobjc/19850
14475         * gthr-posix.h (__gthread_objc_thread_detach): Use
14476         _objc_thread_attribs when detaching a thread.
14477         * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
14478
14479 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
14480
14481         PR target/45524
14482         * configure.ac (enable_decimal_float): Set to $default_decimal_float.
14483         * configure: Regenerated.
14484
14485 2010-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14486
14487         * combine.c (try_combine): Set subst_low_luid to i0.
14488
14489 2010-09-06  Richard Guenther  <rguenther@suse.de>
14490
14491         * tree.def (MISALIGNED_INDIRECT_REF): Remove.
14492         * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
14493         (build_aligned_type): Declare.
14494         * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
14495         (check_aligned_type): New function.
14496         (build_aligned_type): Likewise.
14497         * expr.c (expand_assignment): Handle misaligned stores via
14498         TARGET_MEM_REF and MEM_REF using movmisalign_optab.
14499         (expand_expr_real_1): Likewise.
14500         (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
14501         * tree-vect-stmts.c (vectorizable_store): Do not build
14502         MISALIGNED_INDIRECT_REF but initialize alignment information.
14503         (vectorizable_load): Likewise.
14504         * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
14505         handling.
14506         * cfgexpand.c (expand_debug_expr): Likewise.
14507         * dwarf2out.c (loc_list_from_tree): Likewise.
14508         * fold-const.c (maybe_lvalue_p): Likewise.
14509         (operand_equal_p): Likewise.
14510         (build_fold_addr_expr_with_type_loc): Likewise.
14511         * gimplify.c (gimplify_addr_expr): Likewise.
14512         (gimplify_expr): Likewise.
14513         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
14514         (verify_gimple_assign_single): Likewise.
14515         * tree-dump.c (dequeue_and_dump): Likewise.
14516         (tree_could_trap_p): Likewise.
14517         * tree-predcom.c (ref_at_iteration): Likewise.
14518         * tree-pretty-print.c (dump_generic_node): Likewise.
14519         (op_code_prio): Likewise.
14520         (op_symbol_code): Likewise.
14521         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
14522         * tree-ssa-loop-im.c (for_each_index): Likewise.
14523         (gen_lsm_tmp_name): Likewise.
14524         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
14525         (find_interesting_uses_address): Likewise.
14526         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
14527         * tree-ssa-operands.c (get_expr_operands): Likewise.
14528         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
14529         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
14530         (ao_ref_init_from_vn_reference): Likewise.
14531         * tree.c (staticp): Likewise.
14532         (build1_stat): Likewise.
14533         (reference_alias_ptr_type): Likewise.
14534         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
14535         * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
14536         MISALIGNED_INDIRECT_REF handling.
14537
14538 2010-09-06  Richard Guenther  <rguenther@suse.de>
14539
14540         PR tree-optimization/45534
14541         * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
14542         (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
14543         on the target.
14544         (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
14545         valid on the target.
14546
14547 2010-09-06  Andreas Schwab  <schwab@redhat.com>
14548
14549         * configure.ac: Quote argument of AC_MSG_WARN.
14550         * configure: Regenerate.
14551
14552 2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
14553
14554         * sel-sched.c (move_cond_jump): Correct arguments to
14555         maybe_tidy_empty_bb.
14556         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
14557
14558 2010-09-06  Andrey Belevantsev  <abel@ispras.ru>
14559
14560         PR rtl-optimization/44919
14561         * sel-sched.c (move_cond_jump): Remove assert, check that
14562         the several blocks case can only happen with mutually exclusive
14563         insns instead.  Rewrite the movement code to support moving through
14564         several basic blocks.
14565
14566 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
14567
14568         * config/i386/i386.md (iptrsize): New mode attribute.
14569         (tp_seg): Ditto.
14570         (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
14571         mode iterator.
14572         (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
14573         (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
14574         (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
14575         (stack_tls_protect_set_<mode>): Ditto from
14576         stack_tls_protect_set_{si,di}.  Use %@ to output segment register
14577         of thread base pointer load.
14578         (stack_tls_protect_test_<mode>): Ditto from
14579         stack_tls_protect_test_{si,di}.  Use %@ to output segment register
14580         of thread base pointer load.
14581         (stack_protect_set): Rewrite using indirect functions.
14582         (stack_protect_test): Ditto.
14583         * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
14584         (ix86_print_operand): Handle '@'.
14585
14586 2010-09-05  Giuseppe Scrivano  <gscrivano@gnu.org>
14587
14588         * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
14589         MINUS_EXPR.
14590
14591 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
14592
14593         * doc/invoke.texi: Document -Wdouble-promotion.
14594         * c-typeck.c (convert_arguments): Check for implicit conversions
14595         from float to double.
14596         (do_warn_double_promotion): New function.
14597         (build_conditional_expr): Use it.
14598         (build_binary_op): Likewise.
14599
14600 2010-09-05  Richard Guenther  <rguenther@suse.de>
14601
14602         PR tree-optimization/45535
14603         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
14604         handle TMR_INDEX2.  Make sure TMR_INDEX is not NULL before
14605         dereferencing it.
14606         (indirect_refs_may_alias_p): Likewise.
14607
14608 2010-09-05  Naveen H.S  <naveen.S@kpitcummins.com>
14609
14610         * config/sh/sh.c (sh_option_override): Make static.
14611         Adjust comments.  Declare.
14612         (sh_function_value_regno_p): Likewise.
14613         (sh_register_move_cost): Modify the arguments, make static.
14614         Adjust comments.  Declare.
14615         (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
14616         TARGET_FUNCTION_VALUE_REGNO_P): Define.
14617         * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
14618         REGISTER_MOVE_COST): Delete.
14619         * config/sh/sh-protos.h (sh_override_options): Delete.
14620         (sh_register_move_cost): Delete.
14621         (sh_function_value_regno_p): Delete.
14622
14623 2010-09-04  Anatoly Sokolov  <aesok@post.ru>
14624
14625         * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
14626         m32r_function_value_regno_p): New functions.
14627         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
14628         TARGET_FUNCTION_VALUE_REGNO_P): Declare.
14629         * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
14630         FUNCTION_VALUE_REGNO_P): Remove.
14631
14632 2010-09-04  Jan Hubicka  <jh@suse.cz>
14633
14634         * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
14635         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
14636         fold_read_from_constant_string.
14637
14638         * gimple.h (canonicalize_constructor_val): Declare.
14639         * gimple-fold.c (canonicalize_constructor_val): New function.
14640         (get_symbol_constant_value):Use it.
14641         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
14642
14643 2010-09-04  Jan Hubicka  <jh@suse.cz>
14644
14645         * tree-switch-conversion.c (build_one_array): Set constructor to be
14646         static.
14647         * varpool.c (varpool_finalize_decl): Compute const_value_known.
14648
14649 2010-09-04  Richard Guenther  <rguenther@suse.de>
14650
14651         PR bootstrap/45519
14652         * tree-flow.h (force_gimple_operand_1): Declare.
14653         (force_gimple_operand_gsi_1): Likewise.
14654         * gimplify.c (force_gimple_operand_1): New worker taking a
14655         gimple predicate for ...
14656         (force_gimple_operand): ... which now wraps it.
14657         (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
14658         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
14659         last change.
14660         * tree-ssa-address.c (gimplify_mem_ref_parts): Use
14661         force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
14662         (create_mem_ref): Likewise.
14663
14664 2010-09-04  Uros Bizjak  <ubizjak@gmail.com>
14665
14666         * config/i386/predicates.md (sse_reg_operand): New predicate.
14667         * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
14668         predicate for operand 1.
14669         (XFmode push splitter): Use fp_register_operand predicate
14670         for operand 1.
14671         (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
14672         (SF-DF float_extend push splitter): Add reload_completed insn
14673         predicate.
14674         ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
14675         MODEF mode macro.  Add reload_completed insn predicate.
14676
14677 2010-09-04  Paolo Bonzini  <bonzini@gnu.org>
14678
14679         * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
14680         (struct df_extract_ref): Remove.
14681         (union df_ref_d): Remove extract_ref member.
14682         (df_ref_create): Remove last three arguments.
14683         (DF_REF_LOC): Remove DF_REF_EXTRACT case.
14684         * df-scan.c (df_ref_record): Remove last three arguments, do not
14685         pass them to df_ref_create_structure.
14686         (df_uses_record): Remove first and last three arguments.  Replace
14687         first argument with DF_REF_REGULAR, adjust calls to remove the
14688         width, offset and mode.  Always call recursively on the second
14689         and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
14690         (df_ref_create_structure): Remove first argument.
14691         (struct df_scan_problem_data): Remove ref_extract_pool.
14692         (df_scan_free_internal): Do not free it.
14693         (df_scan_alloc): Do not allocate it.
14694         (df_ref_create): Remove last three arguments, do not pass them to
14695         df_ref_create_structure.
14696         (df_free_ref): Remove DF_REF_EXTRACT case.
14697         (df_notes_rescan): Adjust call to df_uses_record.
14698         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
14699         Remove DF_REF_EXTRACT case.
14700         (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
14701         Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
14702         and SUBREG definitions.
14703         (df_get_conditional_uses): Remove references to width/offset/mode,
14704         adjust call to df_ref_create_structure.
14705         (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
14706         df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
14707         calls to df_uses_record and df_ref_record.
14708         * fwprop.c (update_df): Remove references to width/offset/mode,
14709         adjust call to df_ref_create.
14710
14711 2010-09-03  Jan Hubicka  <jh@suse.cz>
14712
14713         * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
14714         (build_cdtor_fns): Update use of build_cdtor.
14715
14716 2010-09-03  Joseph Myers  <joseph@codesourcery.com>
14717
14718         * doc/options.texi (SeparateAlias): Document.
14719         * opt-functions.awk (switch_flags): Handle SeparateAlias.
14720         * opth-gen.awk: Generate enumeration names for options marked
14721         SeparateAlias, but not for those marked Ignore.
14722         * opts-common.c (generate_canonical_option): Don't output separate
14723         argument for options marked CL_SEPARATE_ALIAS.
14724         (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
14725         * opts.h (CL_SEPARATE_ALIAS): New.
14726         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
14727         CL_COMMON): Adjust definitions.
14728         * config/i386/darwin.opt, config/mips/sde.opt: New.
14729         * common.opt (fdump-final-insns): New.
14730         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
14731         i386/darwin.opt.
14732         (mips*-sde-elf*): Add mips/sde.opt.
14733         * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
14734         -mno-data-in-code and -mcode-xonly here.
14735         * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
14736         * gcc.c (option_map): Add "j" to --dump entry.
14737         (translate_options): Don't translate -d to -foutput-class-dir= here.
14738
14739 2010-09-03  Sebastian Pop  <sebastian.pop@amd.com>
14740
14741         * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
14742         DR_IS_WRITE.
14743         (compute_all_dependences): Same.
14744         (create_rdg_edge_for_ddr): Same.
14745         * tree-data-ref.h (DR_IS_WRITE): New.
14746         (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
14747         * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
14748         (write_memrefs_written_at_least_once): Same.
14749         * tree-predcom.c (suitable_component_p): Same.
14750         (determine_roots_comp): Same.
14751         (execute_load_motion): Same.
14752         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
14753         (vect_enhance_data_refs_alignment): Same.
14754         (vect_analyze_group_access): Same.
14755
14756 2010-09-03  Joern Rennecke  <joern.rennecke@embecosm.com>
14757
14758         PR testsuite/42843
14759         * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
14760         (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
14761
14762 2010-09-03  Marcin Baczynski  <marbacz@gmail.com>
14763
14764         * dwarf2out.c (file scope): Remove #if0'd code.
14765         (gen_subprogram_die): Same.
14766
14767 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
14768
14769         PR middle-end/45484
14770         * dwarf2out.c (flush_queued_reg_saves): Rename to...
14771         (dwarf2out_flush_queued_reg_saves): ... this.  No longer static.
14772         (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
14773         * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
14774         * config/i386/i386.c (output_set_got): Call it.
14775
14776 2010-09-03  Michael Matz  <matz@suse.de>
14777
14778         PR middle-end/45415
14779         * tree-sra.c (sra_modify_assign): If we modify the statement,
14780         say so.
14781
14782         * tree-ssa.c (verify_ssa): Check number of operands and links
14783         per statement to agree.
14784
14785 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
14786             Iain Sandoe  <iains@gcc.gnu.org>
14787
14788         PR target/45476
14789         * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
14790         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
14791         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
14792
14793 2010-09-03  Richard Guenther  <rguenther@suse.de>
14794
14795         * lto-streamer-out.c (output_function): Output function
14796         start and end loci.
14797         * lto-streamer-in.c (input_function): Input function start
14798         and end loci.
14799
14800 2010-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14801
14802         * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
14803         * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
14804         * configure: Regenerate.
14805         * aclocal.m4: Regenerate.
14806
14807 2010-09-03  Jan Hubicka  <jh@suse.cz>
14808
14809         PR lto/44812
14810         * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
14811         on functions/variables in other partition.
14812
14813 2010-09-03  Jan Hubicka  <jh@suse.cz>
14814
14815         * cgraph.h (struct varpool_node): Add const_value_known.
14816         (varpool_decide_const_value_known): Declare.
14817         * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
14818         * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
14819         (input_varpool_node): Restore const_value_known.
14820         * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
14821         initializer folding.
14822         * ipa.c (ipa_discover_readonly_nonaddressable_var,
14823         function_and_variable_visibility): Compute const_value_known.
14824         * gimple-fold.c (get_symbol_constant_value): Use varpool for
14825         initializer folding.
14826         * varpool.c (varpool_decide_const_value_known): New function.
14827
14828 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
14829
14830         * config/i386/i386.md: Remove empty preparation statements
14831         from splitters.
14832
14833 2010-09-03  Jan Hubicka  <jh@suse.cz>
14834
14835         * passes.c (rest_of_decl_compilation): Do not add local vars into
14836         varpool.
14837         * varpool.c (varpool_get_node, varpool_node): Sanity check that only
14838         static or extern vars are in varpool.
14839         (varpool_finalize_decl): Sanity check that only static vars are
14840         finalized.
14841
14842 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
14843
14844         PR debug/45500
14845         * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
14846         not just generic vectors with BLKmode.
14847
14848 2010-09-03  Richard Guenther  <rguenther@suse.de>
14849
14850         * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
14851         Move TMR_OFFSET to second operand.  Add TMR_INDEX2.
14852         * tree.h (TMR_SYMBOL): Remove.
14853         (TMR_BASE, TMR_OFFSET): Adjust.
14854         (TMR_INDEX2): New.
14855         * alias.c (ao_ref_from_mem): Use TMR_BASE.
14856         * builtins.c (get_object_alignment): Merge TMR_BASE and
14857         TMR_SYMBOL handling.
14858         * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
14859         * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
14860         handling.  Also allow TARGET_MEM_REF as base address.
14861         (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
14862         * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
14863         base.  Gimplify TMR_INDEX2.
14864         * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
14865         * tree-dfa.c (get_ref_base_and_extent): Likewise.
14866         (get_addr_base_and_unit_offset): Likewise.
14867         * tree-eh.c (tree_could_trap_p): Likewise.
14868         * tree-pretty-print.c (dump_generic_node): Likewise.
14869         * tree-ssa-address.c (tree_mem_ref_addr): Simplify.  Handle TMR_INDEX2.
14870         (create_mem_ref_raw): Merge symbol and base.  Move 2ndary
14871         base to index2.
14872         (get_address_description): Reconstruct addres description
14873         from merged TMR_BASE and TMR_INDEX2.
14874         (maybe_fold_tmr): Fold propagated addresses.
14875         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
14876         MEM_REF and TARGET_MEM_REF paths.
14877         (indirect_refs_may_alias_p): Likewise.
14878         * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
14879         instead of TMR_SYMBOL.
14880         * tree-ssa-operands.c (get_tmr_operands): Simplify.
14881         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
14882         according to changes ...
14883         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
14884         Split TARGET_MEM_REF into two fields plus the base.
14885         * tree.c (mem_ref_offset): Simplify.
14886         * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
14887         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
14888         Strip NOPs when folding MEM_REF addresses.
14889         * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
14890         * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
14891         (fold_gimple_assign): ... not here.
14892
14893 2010-09-03  Mingjie Xing  <mingjie.xing@gmail.com>
14894
14895         * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
14896         * config/mips/mips.c (mips_shift_truncation_mask): New function.
14897         (TARGET_SHIFT_TRUNCATION_MASK): Define.
14898
14899 2010-09-02  Richard Henderson  <rth@redhat.com>
14900
14901         * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
14902         instead of readelf in the test.
14903         (gcc_cv_as_cfi_sections_directive): Check for correct relocation
14904         in the .debug_frame section for coff targets.
14905         * configure: Rebuild.
14906
14907 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
14908
14909         * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
14910         * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
14911         * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
14912         (m32c_class_likely_spilled_p): Make static. Change argument type to
14913         reg_class_t. Change result type to bool.
14914
14915 2010-09-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
14916
14917         * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
14918         to convert (double)(long) into a single FRIZ instruction or not
14919         when -ffast-math is used.
14920
14921         * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
14922         (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
14923         or FRIZ instruction if -ffast-math.
14924         * config/rs6000/rs6000.md (friz): Ditto.
14925
14926         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
14927
14928 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
14929
14930         * opth-gen.awk (quote, comma): Remove unused variables.
14931
14932 2010-09-02  Ryan Mansfield  <rmansfield@qnx.com>
14933
14934         * arm.c (arm_override_options): Correct fall-back code to use
14935         SUBTARGET_CPU_DEFAULT.
14936
14937 2010-09-02  Julian Brown  <julian@codesourcery.com>
14938
14939         * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
14940         unspecs.
14941         (vcond<mode>, vcondu<mode>): New expanders.
14942         (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
14943         comparisons with zero.
14944         (neon_vcle<mode>, neon_vclt<mode>): New patterns.
14945         * config/arm/constraints.md (Dz): New constraint.
14946
14947 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
14948
14949         * target.def (class_likely_spilled_p): New hook.
14950         * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
14951         * doc/tm.texi: Regenerate.
14952         * targhooks.c (default_class_likely_spilled_p): New function.
14953         * targhooks.h (default_class_likely_spilled_p): Declare.
14954         * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
14955         * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
14956         TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
14957         Use fixed_reg_set instead of fixed_regs.
14958         * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
14959         * calls.c (avoid_likely_spilled_reg): Ditto.
14960         * ira-conflicts.c (ira_build_conflicts): Ditto.
14961         * ira.c (update_equiv_regs): Ditto.
14962         * mode-switching.c (create_pre_exit): Ditto.
14963         * regmove.c (find_matches): Ditto.
14964         (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
14965         * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
14966         (small_register_class_p): New inline function.
14967         (push_secondary_reload, find_reusable_reload, find_reloads): Use
14968         small_register_class_p instead of SMALL_REGISTER_CLASS_P.
14969
14970         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
14971         * config/i386/i386.c (ix86_class_likely_spilled_p): New.
14972         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
14973
14974 2010-09-02  Richard Guenther  <rguenther@suse.de>
14975
14976         PR tree-optimization/44937
14977         PR tree-optimization/45412
14978         * ipa-split.c (split_function): Properly remove PHI nodes.
14979
14980 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
14981
14982         * opts.h (struct cl_option): Add warn_message field.
14983         (struct cl_decoded_option): Add warn_message field.
14984         * doc/options.texi (Ignore, Warn): Document.
14985         * opt-functions.awk (needs_state_p): Don't consider aliases or
14986         ignored options to need state saved.
14987         * optc-gen.awk: Handle Warn and Ignore.
14988         * opth-gen.awk: Output OPT_SPECIAL_ignore.
14989         * opts-common.c (decode_cmdline_option): Set warn_message field.
14990         Handle ignored options.
14991         (decode_cmdline_options_to_array, generate_option,
14992         generate_option_input_file): Set warn_message field.
14993         (read_cmdline_option): Generate warnings from warn_message field.
14994         Handle ignored options.
14995         * common.opt (Wunreachable-code, fargument-alias,
14996         fargument-noalias, fargument-noalias-global,
14997         fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
14998         floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
14999         fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
15000         ftree-salias): Mark Ignore.
15001         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
15002         -mintel-syntax and -mno-intel-syntax here.
15003         * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
15004         using Warn.
15005         * opts.c (common_handle_option): Don't handle options marked as
15006         ignored.
15007         (enable_warning_as_error): Handle ignored options.
15008
15009 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
15010
15011         PR driver/44076
15012         * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
15013         alias_target fields.
15014         * opt-functions.awk (opt_sanitized_name): Don't handle
15015         finline-limit=, Wlarger-than= and ftemplate-depth= specially.
15016         * optc-gen.awk: Generate alias fields.
15017         * opth-gen.awk: Explicitly give values for OPT_* enum constants.
15018         Don't generate such constants for aliases.
15019         * opts-common.c (generate_canonical_option): New.
15020         (decode_cmdline_option): Handle aliases.  Use
15021         generate_canonical_option for known options instead of copying the
15022         input option text.
15023         * doc/options.texi (Alias): Document.
15024         * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
15025         fstack-check, specs): Mark as aliases.
15026         * gcc.c (driver_handle_option): Canonicalize -L options to joined
15027         arguments.
15028         (driver_handle_option): Don't handle OPT_specs.
15029         * opts.c (common_handle_option): Don't handle options marked as
15030         aliases.
15031         (enable_warning_as_error): Handle aliases.
15032         * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
15033         OPT_Wlarger_than_eq.
15034         * tree-optimize.c (tree_rest_of_compilation): Use
15035         OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
15036
15037 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
15038
15039         * config/i386/i386.md (nonmemory_operand): New mode attribute.
15040         (push memory peephole2): Macroize peepholes using SWI mode iterator.
15041         (move immediate to memory peephole2): Macroize peepholes using
15042         SWI124 mode iterator.
15043         (non-pairable NOT peephole2): Macroize peepholes using SWI124
15044         mode iterator.
15045         (simple lea add peephole2): Macroize peepholes using SWI48
15046         mode iterator.
15047         (simple lea mult peephole2): Ditto.
15048         (imul by 3,5,9 to lea peephole2): Ditto.
15049         (mov $-1, reg peephole2): Macroize peepholes using SWI248
15050         mode iterator.
15051         (imul $32bit_imm,mem,reg peephole2): Ditto.
15052         (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
15053
15054 2010-09-02  Ian Bolton  <ian.bolton@arm.com>
15055
15056         * tree-ssa-loop-prefetch.c: Fix comment at head of file.
15057
15058 2010-09-02  Olivier Hainque  <hainque@adacore.com>
15059
15060         PR middle-end/44763
15061         * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
15062         (allocno_priority_compare_func): Use it instead of a straight
15063         difference computation over priorities.
15064
15065 2010-09-02  Andi Kleen  <ak@linux.intel.com>
15066
15067         * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
15068
15069 2010-09-02  Ira Rosen  <irar@il.ibm.com>
15070
15071         * tree-vectorizer.h (get_later_stmt): New function.
15072         (vect_analyze_data_ref_dependences): Add argument.
15073         * tree-vect-loop.c (vect_analyze_loop): Update call to
15074         vect_analyze_data_ref_dependences.
15075         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
15076         New function.
15077         (vect_analyze_data_ref_dependence): Add argument for basic block
15078         dependencies. Check dependencies in basic block vectorization.
15079         (vect_analyze_data_ref_dependences): Add argument and update call to
15080         vect_analyze_data_ref_dependences.
15081         * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
15082         (vect_bb_vectorizable_with_dependencies): New.
15083         (vect_slp_analyze_bb): Check dependencies in basic block.
15084         (vect_schedule_slp_instance): Insert stores before the last store in
15085         SLP instance.
15086
15087 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
15088
15089         PR target/45476
15090         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
15091         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
15092
15093 2010-09-01  Jakub Jelinek  <jakub@redhat.com>
15094
15095         PR middle-end/45458
15096         * bb-reorder.c (add_labels_and_missing_jumps): Treat
15097         bbs ending with throwing insns like blocks ending with a call.
15098         (fix_up_fall_thru_edges): Likewise.
15099
15100 2010-09-01  Nathan Froyd  <froydnj@codesourcery.com>
15101
15102         * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
15103         (m32c_function_arg_advance): Delete.
15104         * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
15105         * config/m32c/m32c.c (m32c_function_arg): Make static.  Adjust
15106         comments.  Take a const_tree and a bool.  Declare.
15107         (m32c_function_arg_advance): Likewise.
15108         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
15109
15110 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
15111
15112         PR target/45476
15113         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
15114         LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
15115         * config/i386/mingw32.h: ... here.
15116
15117 2010-09-01  Andi Kleen  <ak@linux.intel.com>
15118
15119         PR lto/45475
15120         * lto-streamer-in.c (lto_input_ts_target_option): Add.
15121         (lto_input_tree_pointers): Call lto_input_ts_target_option.
15122         * lto-streamer-out (lto_output_ts_target_option): Add.
15123         (lto_output_tree_pointers): Call lto_output_ts_target_option.
15124
15125 2010-09-01  Kai Tietz  <kai.tietz@onevision.com>
15126
15127         PR/target 45452
15128         * config/i386/cygwin.h: Change order of specified import libraries.
15129         * config/i386/mingw32.h: Likewise.
15130         * config/i386/t-cygwin: Likewise.
15131         * config/i386/t-mingw32: Likewise.
15132         * config/i386/t-mingw-w32: Likewise.
15133         * config/i386/t-mingw-w64: Likewise.
15134
15135 2010-09-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15136
15137         * config/arm/neon-schedgen.ml (core): New type.
15138         (allCores): List of supported cores.
15139         (availability_table): Add supported cores.
15140         (collate_bypasses): Accept core as a parameter.
15141         (worst_case_latencies_and_bypasses): Accept core as a parameter.
15142         (emit_insn_reservations): Accept core as a parameter.  Use tuneStr
15143         and coreStr to get tune attribute and prefix for functional units.
15144         (emit_bypasses): Accept core name and use it.
15145         (calculate_per_core_availability_table): New.
15146         (filter_core): New.
15147         (calculate_core_availability_table): New.
15148         (main): Use calculate_core_availablity_table.
15149         * config/arm/cortex-a8-neon.md: Update copyright year.
15150         Regenerated from ml file and merged in.
15151         (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
15152         cortex_a8_neon_mrc.
15153
15154 2010-09-01  Ian Bolton  <ian.bolton@arm.com>
15155
15156         * Makefile.in (tree-switch-conversion.o): Update dependencies.
15157
15158 2010-09-01  Richard Guenther  <rguenther@suse.de>
15159
15160         * alias.c (ao_ref_from_mem): Adjust.
15161         * builtins.c (get_object_alignment): Likewise.
15162         * cfgexpand.c (expand_debug_expr): Likewise.
15163         * gimple.c (get_base_address): Likewise.
15164         * tree-dfa.c (get_ref_base_and_extent): Likewise.
15165         (get_addr_base_and_unit_offset): Likewise.  Fix for
15166         both TMR_SYMBOL and TMR_BASE being set.
15167         * tree-eh.c (tree_could_trap_p): Likewise.
15168         * gimplify.c (gimplify_expr): Do not attempt to gimplify
15169         TMR_SYMBOL.  Always gimplify TMR_BASE.
15170         * tree-cfg.c (verify_types_in_gimple_reference): Verify
15171         TMR_BASE if there is a TMR_SYMBOL.
15172         * tree-pretty-print.c (dump_generic_node): Adjust.
15173         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
15174         (tree_mem_ref_addr): Likewise.
15175         (create_mem_ref_raw): Likewise.
15176         (move_fixed_address_to_symbol): Likewise.
15177         (create_mem_ref): Likewise.
15178         (dump_mem_address): Likewise.
15179         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
15180         Fix for both TMR_SYMBOL and TMR_BASE being set.
15181         (indirect_refs_may_alias_p): Likewise.
15182         * tree-ssa-operands.c (get_tmr_operands): Adjust.
15183         * tree.def (TARGET_MEM_REF): Adjust documentation.
15184
15185 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
15186
15187         * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
15188         Rename from X86_TUNE_ADD_ESP_4.
15189         <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
15190         <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
15191         <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
15192         (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
15193         (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
15194         (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
15195         (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
15196         * config/i386/i386.c (initial_ix86_tune_features)
15197         <X86_TUNE_SINGLE_POP>: Invert members.
15198         <X86_TUNE_DOUBLE_POP>: Ditto.
15199         <X86_TUNE_SINGLE_PUSH>: Ditto.
15200         <X86_TUNE_DOUBLE_PUSH>: Ditto.
15201         * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
15202         No longer exported.
15203         (push peephole2 patterns): Macroize peepholes using P mode iterator.
15204         Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
15205         (pop peephole2 patterns): Macroize peepholes using P mode iterator.
15206         Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
15207
15208 2010-09-01  Eric Botcazou  <ebotcazou@adacore.com>
15209
15210         * gimplify.c (gimplify_init_constructor): Do not create a temporary for
15211         a volatile LHS if the constructor has only one element.
15212
15213 2010-09-01  Mikael Pettersson  <mikpe@it.uu.se>
15214
15215         PR bootstrap/45321
15216         * tree.c (stdarg_p): Make fntype parameter const.
15217         * tree.h (stdarg_p): Likewise.
15218         (function_args_iterator): Remove unused fntype field.
15219         (function_args_iter_init): Do not initialize fntype
15220         field.  Make fntype parameter const.
15221
15222 2010-09-01  Richard Guenther  <rguenther@suse.de>
15223
15224         * tree-vrp.c (adjust_range_with_scev): Use number of iteration
15225         estimate.
15226         (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
15227         (execute_vrp): Compute number of iteration estimates.
15228         * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
15229         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
15230         * tree-data-ref.c (estimated_loop_iterations): Adjust.
15231         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
15232         Infer loop bounds from undefined behavior based on a new parameter.
15233         (estimate_numbers_of_iterations): Likewise.
15234         (scev_probably_wraps_p): Adjust.
15235         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
15236
15237 2010-09-01  Nick Clifton  <nickc@redhat.com>
15238
15239         * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
15240         where appropriate.
15241         (xstormy16_legitimate_address_p): Use true and false instead of 1
15242         and 0.
15243         (xstormy16_expand_prologue): Delete unused local variable 'insn'.
15244         (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
15245         magic constant 2.
15246         (xstormy16_expand_call): Fix comment at start of function.
15247
15248 2010-09-01  Nick Clifton  <nickc@redhat.com>
15249
15250         * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
15251         when pushing accumulator register.
15252         (rx_get_stack_layout): Always save call clobbered registers inside
15253         interrupt handlers.
15254         * config/rx/rx-modes.def: Fix descriptive comment at start of file.
15255
15256 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
15257
15258         * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
15259         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
15260
15261         * libgcc-std.ver (GCC_4.6.0): Define version.
15262
15263 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
15264
15265         * tree-nested.c (convert_all_function_calls): Iterate until after the
15266         sum of static chains in the nest doesn't change.
15267
15268 2010-08-31  Anatoly Sokolov  <aesok@post.ru>
15269
15270         * config/m32c/m32c.c (classes_intersect): Remove.
15271         (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
15272         reg_classes_intersect_p instead of classes_intersect.
15273         (class_can_hold_mode): Change arguments type from enum reg_class to
15274         reg_class_t.  Use reg_class_contents instead of class_contents.
15275         (m32c_register_move_cost): Make static. Change arguments type from
15276         enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
15277         classes_intersect. Use reg_class_contents instead of class_contents.
15278         (m32c_memory_move_cost): Make static. Change arguments type from
15279         enum reg_class to reg_class_t.
15280         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
15281         * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
15282         * config/m32c/m32c-protos.h (m32c_register_move_cost,
15283         m32c_memory_move_cost): Remove.
15284
15285 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
15286
15287         * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
15288         (arm_function_arg): Delete.
15289         (arm_needs_doubleword_align): Take a const_tree.
15290         * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
15291         * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
15292         (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
15293         (arm_function_arg): Make static.  Take a const_tree and a bool.
15294         (arm_function_arg_advance): Likewise.
15295         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
15296
15297 2010-08-31  Andi Kleen  <ak@linux.intel.com>
15298
15299         * common.opt (fwhopr=): Update for -fwhopr=jobserver
15300         * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
15301         * lto-wrapper.c (run_gcc): Add jobserver mode.
15302         * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
15303         argument.
15304
15305 2010-08-31  Uros Bizjak  <ubizjak@gmail.com>
15306
15307         * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
15308         (popsi1): Ditto.
15309         (*popdi1_epilogue): Ditto.
15310         (*popsi1_epilogue): Ditto.
15311         (popsi, popdi peephole2 patterns): Update peepholes for changed
15312         pop{si,di}1 and *pop{si,di}1_epilogue patterns.
15313
15314         (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
15315         (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
15316
15317         * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
15318         (override_options): Do not initialize removed ix86_gen_pop1.
15319         (gen_pop): New static function.
15320         (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
15321         (release_scratch_register_on_entry): Ditto.
15322         (ix86_restore_reg_using_pop): Ditto.
15323         (ix86_expand_epilogue): Ditto.
15324
15325 2010-08-31  Jakub Jelinek  <jakub@redhat.com>
15326
15327         PR middle-end/45461
15328         * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
15329
15330 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
15331
15332         * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
15333         semicolons.
15334
15335 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
15336
15337         * doc/extend.texi: Fix documentation of the return value of
15338         __builtin_choose_expr.
15339
15340 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
15341
15342         * config/v850/v850-protos.h (function_arg): Delete.
15343         * config/v850/v850.h (FUNCTION_ARG): Delete.
15344         (FUNCTION_ARG_ADVANCE): Move code to...
15345         * config/v850/v850.c (v850_function_arg_advance): ...here.
15346         (v850_function_arg): Make static.  Take a const_tree and a bool.
15347         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
15348
15349 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
15350
15351         * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
15352         these...
15353         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
15354         ...and these...
15355         * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
15356         ..to here..
15357         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
15358         ...and here.
15359         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
15360
15361 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
15362
15363         * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
15364         Delete.
15365         * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
15366         * config/rx/rx.c (rx_function_arg_size): Make static.
15367         (rx_function_arg): Likewise.
15368         (rx_function_arg_advance): New function.
15369         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
15370
15371 2010-08-31  John Tytgat  <John.Tytgat@aaug.net>
15372
15373         * config/arm/arm.c (arm_override_options): Remove superfluous test.
15374         Fix indentation.
15375
15376 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
15377
15378         * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
15379         (dwarf2out_decl) <CONST_DECL>: Likewise.
15380
15381 2010-08-30  Eric Botcazou  <ebotcazou@adacore.com>
15382
15383         Stack usage support
15384         * common.opt (-fstack-usage): New option.
15385         * doc/invoke.texi (Debugging options): Document it.
15386         * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
15387         allocate_dynamic_stack_space.
15388         (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
15389         and propagate it to allocate_dynamic_stack_space.
15390         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
15391         * calls.c (initialize_argument_information): Pass TRUE as 4th
15392         argument to allocate_dynamic_stack_space.
15393         (expand_call): Set current_function_has_unbounded_dynamic_stack_size
15394         to 1 when pushing a variable-sized argument onto the stack.  Pass
15395         TRUE as 4th argument to allocate_dynamic_stack_space.
15396         Update current_function_pushed_stack_size.
15397         (emit_library_call_value_1): Likewise.
15398         * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
15399         CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
15400         attempt to find an upper bound.  Remove redundant code for the
15401         SETJMP_VIA_SAVE_AREA case.
15402         * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
15403         * function.h (struct stack_usage): New structure.
15404         (current_function_static_stack_size): New macro.
15405         (current_function_dynamic_stack_size): Likewise.
15406         (current_function_pushed_stack_size): Likewise.
15407         (current_function_dynamic_alloc_count): Likewise.
15408         (current_function_has_unbounded_dynamic_stack_size): Likewise.
15409         (current_function_allocates_dynamic_stack_space): Likewise.
15410         (struct function): Add new field 'su'.
15411         * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
15412         add the value of the dynamic offset to the dynamic stack usage.
15413         (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
15414         for variable-sized objects.
15415         (prepare_function_start): Allocate cfun->su if flag_stack_usage.
15416         (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
15417         * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
15418         BUILT_IN_ALLOCA for variable-sized objects.
15419         * output.h (output_stack_usage): Declare.
15420         * toplev.c (stack_usage_file): New file pointer.
15421         (output_stack_usage): New function.
15422         (open_auxiliary_file): Likewise.
15423         (lang_dependent_init): Open file if flag_stack_usage is set.
15424         (finalize): Close file if stack_usage_file is not null.
15425         * tree.h (ALLOCA_FOR_VAR_P): New macro.
15426         * config/alpha/alpha.c (compute_frame_size): New function.
15427         (alpha_expand_prologue): Use it.
15428         (alpha_start_function): Likewise.
15429         (alpha_expand_epilogue): Likewise.  Set stack usage info.
15430         * config/i386/i386.c (ix86_expand_prologue): Likewise.
15431         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
15432         * config/mips/mips.c (mips_expand_prologue): Likewise.
15433         * config/pa/pa.c (hppa_expand_prologue): Likewise.
15434         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
15435         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
15436
15437 2010-08-30  Zdenek Dvorak  <ook@ucw.cz>
15438
15439         PR tree-optimization/45427
15440         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
15441         Handle the case that the exit is never taken correctly.
15442         (number_of_iterations_ne): Pass exit_must_be_taken to
15443         number_of_iterations_ne_max.
15444
15445 2010-08-30  Catherine Moore  <clm@codesourcery.com>
15446
15447         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
15448         Infer -mdspr2 for the the 74K.
15449
15450 2010-08-30  Jakub Jelinek  <jakub@redhat.com>
15451
15452         PR debug/45419
15453         * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
15454
15455         PR middle-end/45423
15456         * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
15457         and TRUTH_{AND,OR,XOR}_EXPR.
15458         * c-parser.c (c_parser_omp_atomic): Handle boolean
15459         {PRE,POST}_{INC,DEC}REMENT.
15460
15461 2010-08-30  Nathan Froyd  <froydnj@codesourcery.com>
15462
15463         * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
15464         (function_arg): Delete.
15465         * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
15466         (FUNCTION_INCOMING_ARG): Delete.
15467         * config/xtensa/xtensa.c (function_arg_advance): Rename to...
15468         (xtensa_function_arg_advance): ...this.  Make static. Take a const_tree
15469         and a bool.
15470         (function_arg): Rename to...
15471         (xtensa_function_arg_1): ...this.  Make static.  Take a const_tree and
15472         a bool.
15473         (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
15474         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
15475         (TARGET_FUNCTION_INCOMING_ARG): Define.
15476
15477 2010-08-30  Richard Guenther  <rguenther@suse.de>
15478
15479         PR tree-optimization/21602
15480         * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
15481         using points-to information.
15482
15483 2010-08-30  H.J. Lu  <hongjiu.lu@intel.com>
15484
15485         * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
15486
15487 2010-08-30  Richard Guenther  <rguenther@suse.de>
15488
15489         PR tree-optimization/45449
15490         * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
15491         variables.
15492
15493 2010-08-30  Joseph Myers  <joseph@codesourcery.com>
15494
15495         * opts.h (CL_ERR_NEGATIVE): Define.
15496         * opts.c (unknown_option_callback): Don't postpone warnings for
15497         options marked with CL_ERR_NEGATIVE.
15498         * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
15499         for negative versions of CL_REJECT_NEGATIVE options.
15500
15501 2010-08-30  Uros Bizjak  <ubizjak@gmail.com>
15502
15503         * config/i386/i386.md (zero_extendsidi2_1): Rename from
15504         zero_extendsidi2_32.
15505         (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
15506         using SWI12 mode iterator.
15507         (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
15508         to define_insn_and_split pattern.
15509         (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
15510         using SWI24 mode iterator.
15511         (*zero_extendqi<mode>2_and): Macroize insn from
15512         *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
15513         (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
15514         *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
15515         SWI24 mode iterator.
15516         (*zero_extendqi<mode>2_movzbl): Ditto from
15517         *zero_extendqi{hi,si}2_movzbl.
15518         (extendsidi2_1): Rename from extendsidi2_32.
15519         (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
15520         SWI12 mode iterator.
15521
15522 2010-08-29  Eric Botcazou  <ebotcazou@adacore.com>
15523
15524         * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
15525         general purpose registers.
15526         (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
15527         * config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
15528         with general purpose registers and memory operands.  Add associated
15529         CCImode post-reload splitter.
15530         * config/ia64/div.md: Change BImode to CCImode throughout.
15531
15532 2010-08-28  Eric Botcazou  <ebotcazou@adacore.com>
15533
15534         * config/ia64/ia64.md (cstorebi4): Fix thinko.
15535
15536 2010-08-28  Hariharan Sandanagobalane  <hariharan@picochip.com>
15537
15538         * config/picochip/picochip.c (reorder_var_tracking_notes): This
15539         function was dropping debug insns which caused PR45299.
15540
15541 2010-08-28  Uros Bizjak  <ubizjak@gmail.com>
15542
15543         * config/i386/sse.md (extsuffix): New code attribute.
15544         (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
15545         and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
15546         (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
15547         and sse4_1_zero_extendv4qiv4si2.
15548         (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
15549         and sse4_1_zero_extendv2qiv2di2.
15550         (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
15551         and sse4_1_zero_extendv4hiv4si2.
15552         (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
15553         and sse4_1_zero_extendv2hiv2di2.
15554         (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
15555         and sse4_1_zero_extendv2siv2di2
15556
15557         (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
15558         using any_extend code iterator.
15559         (*avx_<s>mulv8hi3_highpart): Macroize insn from
15560         *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
15561         (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
15562
15563         * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
15564         gen_sse4_1_sign_extend* functions.
15565         (struct builtin_description bdesc_args): Ditto.
15566
15567 2010-08-27  Xinliang David Li  <davidxl@google.com>
15568
15569         PR/45422
15570         * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
15571         (iv_ca_set_no_cp): Update used inv expr count.
15572         (iv_ca_set_cp): Ditto.
15573         (iv_ca_new): Initialize new member.
15574         (iv_ca_free): Free memory.
15575
15576 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
15577
15578         * config/sh/sh-protos.h (sh_function_arg): Delete.
15579         (sh_function_arg_advance): Delete.
15580         * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
15581         (PASS_IN_REG_P): Eliminate cast.
15582         * config/sh/sh.c (sh_function_arg_advance): Make static.  Take a
15583         const_tree and a bool.
15584         (sh_function_arg): Likewise.
15585         (sh_output_mi_thunk): Call sh_function_arg_advance) and
15586         sh_function_arg.
15587         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
15588
15589 2010-08-27  Naveen H.S  <naveen.S@kpitcummins.com>
15590             Kaz Kojima  <kkojima@gcc.gnu.org>
15591
15592         * config/sh/sh.c (push_regs): Emit movml for interrupt handler
15593         when possible.
15594         (sh_expand_epilogue): Likewise.
15595         * config/sh/sh.md (movml_push_banked): New insn.
15596         (movml_pop_banked): Likewise.
15597
15598 2010-08-28  Bernd Schmidt  <bernds@codesourcery.com>
15599
15600         * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
15601         gen_regexp_oneof, gen_regexp_sequence): Use the string found
15602         in vector element 0 rather than the original string when there's
15603         only one element.
15604         (gen_regexp): Remove extra semicolon.
15605
15606         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
15607         thumb2_movsf_vfp): Set attribute "insn".
15608         * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
15609         not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
15610         thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
15611         arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
15612         arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
15613         thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
15614         thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
15615         movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
15616         if_not_move, if_shift_move, if_move_shift, if_shift_shift,
15617         if_not_arith, if_arith_not, cond_move_not): Likewise.
15618
15619 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
15620
15621         * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
15622         New declaration.
15623         (rs6000_allocate_stack_temp): Ditto.
15624         (rs6000_expand_convert_si_to_sfdf): Ditto.
15625
15626         * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
15627         line.  Update the options set if power6 or power7 server/embedded
15628         type options are used.  If we give a warning for no vsx under
15629         -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
15630         (rs6000_allocate_stack_temp): New function to allocate a stack
15631         tempoary and adjust the address so it meets either REG+OFFSET or
15632         REG+REG addressing requirements.
15633         (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
15634         that they can be used with the LFIWAX/LFIWZX instrucitons.
15635         (rs6000_expand_convert_si_to_sfdf): New helper funciton for
15636         converting signed/unsigned SImode to either SFmode/DFmode.
15637
15638         * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
15639         whether certain instructions can be generated.
15640         (TARGET_FCTIDZ): Ditto.
15641         (TARGET_STFIWX): Ditto.
15642         (TARGET_LFIWAX): Ditto.
15643         (TARGET_LFIWZX): Ditto.
15644         (TARGET_FCFIDS): Ditto.
15645         (TARGET_FCFIDU): Ditto.
15646         (TARGET_FCFIDUS): Ditto.
15647         (TARGET_FCTIDUZ): Ditto.
15648         (TARGET_FCTIWUZ): Ditto.
15649
15650         * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
15651         (UNSPEC_FCTID): Ditto.
15652         (UNSPEC_LFIWAX): Ditto.
15653         (UNSPEC_LFIWZX): Ditto.
15654         (UNSPEC_FCTIWUZ): Ditto.
15655         (rreg): Use correct constraints.
15656         (SI_CONVERT_FP): New mode attribute for floating point conversion
15657         tests.
15658         (E500_CONVERT): Ditto.
15659         (lfiwax): New insns for converting from integer to floating point
15660         utilizing newer instructions.  Attempt to optimize conversions
15661         that come from memory so that we don't load the value into a GPR,
15662         spill it to the stack and reload it into a FPR.
15663         (floatsi<mode>2_lfiwax): Ditto.
15664         (floatsi<mode>2_lfiwax_mem): Ditto.
15665         (floatsi<mode>2_lfiwax_mem2): Ditto.
15666         (lfiwzx): Ditto.
15667         (floatunssi<mode>2_lfiwzx): Ditto.
15668         (floatunssi<mode>2_lfiwzx_mem): Ditto.
15669         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
15670         (floatdidf2_mem): Ditto.
15671         (floatunsdidf2_fcfidu): Ditto.
15672         (floatunsdidf2_mem): Ditto.
15673         (floatunsdisf2): Ditto.
15674         (floatunsdisf2_fcfidus): Ditto.
15675         (floatunsdisf2_mem): Ditto.
15676         (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
15677         Use FCFID on 32-bit hosts that support it.
15678         (floatsidf2_internal): Ditto.
15679         (floatunssisf2): Ditto.
15680         (floatunssidf2): Ditto.
15681         (floatunssidf2_internal): Ditto.
15682         (floatsisf2): Ditto.
15683         (floatdidf2): Ditto.
15684         (floatdidf2_fpr): Ditto.
15685         (floatunsdidf2): Ditto.
15686         (floatdisf2): Ditto.
15687         (floatdisf2_fcfids): Ditto.
15688         (floatdisf2_internal1): Ditto.
15689         (fixuns_truncsfsi2): Delete, merge into common pattern for both
15690         SF/DF.  Add power7 support.
15691         (fix_truncsfsi2): Ditto.
15692         (fixuns_truncdfsi2): Ditto.
15693         (fixuns_truncdfdi2): Ditto.
15694         (fix_truncdfsi2): Ditto.
15695         (fix_truncdfsi2_internal): Ditto.
15696         (fix_truncdfsi2_internal_gfxopt): Ditto.
15697         (fix_truncdfsi2_mfpgpr): Ditto.
15698         (fctiwz): Ditto.
15699         (btruncdf2): Ditto.
15700         (btruncdf2_fpr): Ditto.
15701         (btructsf2): Ditto.
15702         (ceildf2): Ditto.
15703         (ceildf2_fpr): Ditto.
15704         (ceilsf2): Ditto.
15705         (floordf2): Ditto.
15706         (floordf2_fpr): Ditto.
15707         (floorsf2): Ditto.
15708         (rounddf2): Ditto.
15709         (rounddf2_fpr): Ditto.
15710         (roundsf2): Ditto.
15711         (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
15712         (fix_trunc<mode>di2): Ditto.
15713         (fixuns_trunc<mode>si2): Ditto.
15714         (fixuns_trunc<mode>di2): Ditto.
15715         (fctiwz_<mode>): Ditto.
15716         (btrunc<mode>2): Ditto.
15717         (btrunc<mode>2_fpr): Ditto.
15718         (ceil<mode>2): Ditto.
15719         (ceil<mode>2_fpr): Ditto.
15720         (floor<mode>2): Ditto.
15721         (float<mode>2_fpr): Ditto.
15722         (round<mode>2): Ditto.
15723         (round<mode>2_fpr): Ditto.
15724         (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
15725         (fixuns_trunc<mode>si2_stfiwx): Ditto.
15726         (fix_truncdfsi2_internal): Ditto.
15727         (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
15728         converted value on stack, loaded into GPR, and then stored into
15729         the final destination.
15730         (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
15731         FCTIDZ.
15732         (lrint<mode>di2): New insn, provide the lrint builtin functions.
15733         (ftruncdf2): Delete, unused.
15734         (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
15735
15736         * config/rs6000/vsx.md (toplevel): Update copyright year.
15737         (VSr2): Use "ws" contraint for DFmode, not "!r#r".
15738         (VSr3): Ditto.
15739
15740 2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
15741             Jeremie Salvucci  <jeremie.salvucci@free.fr>
15742
15743         * gengtype.c (output_type_enum): Test the right union member.
15744
15745 2010-08-27  Uros Bizjak  <ubizjak@gmail.com>
15746
15747         PR target/41484
15748         * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
15749         operands for operand 1.
15750         (sse4_1_extendv4qiv4si2): Ditto.
15751         (sse4_1_extendv2qiv2di2): Ditto.
15752         (sse4_1_extendv4hiv4si2): Ditto.
15753         (sse4_1_extendv2hiv2di2): Ditto.
15754         (sse4_1_extendv2siv2di2): Ditto.
15755         (sse4_1_zero_extendv8qiv8hi2): Ditto.
15756         (sse4_1_zero_extendv4qiv4si2): Ditto.
15757         (sse4_1_zero_extendv2qiv2di2): Ditto.
15758         (sse4_1_zero_extendv4hiv4si2): Ditto.
15759         (sse4_1_zero_extendv2hiv2di2): Ditto.
15760         (sse4_1_zero_extendv2siv2di2): Ditto.
15761         (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
15762         (*sse4_1_extendv4qiv4si2): Ditto.
15763         (*sse4_1_extendv2qiv2di2): Ditto.
15764         (*sse4_1_extendv4hiv4si2): Ditto.
15765         (*sse4_1_extendv2hiv2di2): Ditto.
15766         (*sse4_1_extendv2siv2di2): Ditto.
15767         (*sse4_1_zero_extendv8qiv8hi2): Ditto.
15768         (*sse4_1_zero_extendv4qiv4si2): Ditto.
15769         (*sse4_1_zero_extendv2qiv2di2): Ditto.
15770         (*sse4_1_zero_extendv4hiv4si2): Ditto.
15771         (*sse4_1_zero_extendv2hiv2di2): Ditto.
15772         (*sse4_1_zero_extendv2siv2di2): Ditto.
15773
15774 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
15775
15776         * config/mips/mips-protos.h (mips_function_arg_advance): Delete
15777         (mips_function_arg): Delete.
15778         (mips_function_arg_boundary): Take a const_tree.
15779         * config/mips/mips.c (mips_function_arg_boundary): Likewise.
15780         (mips_arg_info): Likewise.
15781         (mips_setup_incoming_varargs): Call mips_function_arg_advance
15782         instead of FUNCTION_ARG_ADVANCE.
15783         (mips_function_arg_advance): Adjust prototype.  Make static.
15784         (mips_function_arg): Likewise.
15785         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
15786         * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
15787
15788 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
15789
15790         * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
15791         * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
15792         (function_arg): Delete.
15793         (function_arg_boundary): Take a const_tree.
15794         * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
15795         (rs6000_spe_function_arg): Likewise.
15796         (rs6000_parm_start): Likewise.
15797         (rs6000_arg_size): Likewise.
15798         (rs6000_darwin64_record_arg_advance_recurse): Likewise.
15799         (rs6000_darwin64_record_arg): Likewise.  Take a bool instead of an int.
15800         (rs6000_mixed_function_arg): Likewise.
15801         (function_arg): Rename to...
15802         (rs6000_function_arg): ...this.
15803         (function_arg_advance): Rename to...
15804         (rs6000_function_arg_advance_1): ...this
15805         (rs6000_function_arg_advance): New function.  Call it.
15806         (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
15807         (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
15808         (rs6000_function_value): Likewise.
15809         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
15810
15811 2010-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15812
15813         * config/arm/arm.md (enabled): Test the value of arch_enabled
15814         rather than just using it.
15815
15816 2010-08-27  Olivier Hainque  <hainque@adacore.com>
15817             Eric Botcazou  <ebotcazou@adacore.com>
15818
15819         * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
15820         cover all the possible offsets from this base.
15821         (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
15822
15823 2010-08-26  Jakub Jelinek  <jakub@redhat.com>
15824
15825         PR tree-optimization/44485
15826         * calls.c (flags_from_decl_or_type): For const or pure
15827         noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
15828         together with ECF_CONST resp. ECF_PURE.
15829         * builtins.c (expand_builtin): Use flags_from_decl_or_type
15830         instead of querying flags directly.
15831         * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
15832         * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
15833
15834 2010-08-26  Richard Guenther  <rguenther@suse.de>
15835
15836         PR tree-optimization/45255
15837         * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
15838         and externals are also invariant.
15839
15840 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
15841
15842         PR rtl-optimization/44858
15843         * combine.c (try_combine): If recog_for_combine added CLOBBERs to
15844         newi2pat, make sure they don't affect newpat.
15845
15846         PR rtl-optimization/45400
15847         * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
15848         SUBREG_REG if both modes are of MODE_INT class.
15849
15850 2010-08-25  Julian Brown  <julian@codesourcery.com>
15851
15852         * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
15853         * config/arm/arm.md (generic_sched): No for Cortex-A5.
15854         (generic_vfp): Likewise.
15855         (cortex-a5.md): Include.
15856         * config/arm/cortex-a5.md: New.
15857
15858 2010-08-25  Richard Guenther  <rguenther@suse.de>
15859
15860         * alias.c (get_alias_set): Assign a single alias-set to all pointers.
15861         * gimple.c (gimple_get_alias_set): Remove special handling
15862         for pointers.
15863
15864 2010-08-25  Bernd Schmidt  <bernds@codesourcery.com>
15865
15866         PR middle-end/45355
15867         * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
15868         dead_or_set_p when computing i0_feeds_i2_n.
15869
15870         * combine.c (find_split_point): Undo canonicalization of multiply-add
15871         to (minus x (mult)) when it seems likely that this will increase the
15872         chances of a split.
15873
15874 2010-08-25  Richard Guenther  <rguenther@suse.de>
15875
15876         PR lto/44562
15877         * lto-streamer.c (lto_record_common_node): Do not mess with
15878         TYPE_CANONICAL when not in lto.
15879         * gimple.c (gimple_register_type): Likewise.
15880
15881 2010-08-25  Richard Guenther  <rguenther@suse.de>
15882
15883         PR tree-optimization/45316
15884         * tree-ssa-pre.c (eliminate): Properly clean EH info.
15885
15886 2010-08-25  Richard Guenther  <rguenther@suse.de>
15887
15888         PR tree-optimization/45393
15889         * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
15890         and clean EH info.  Avoid SSA update.
15891         (execute_cse_sincos): Cleanup the CFG if it has changed.
15892
15893 2010-08-25  Richard Guenther  <rguenther@suse.de>
15894
15895         PR middle-end/45379
15896         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
15897         TARGET_MEM_REF in alignment computation.
15898
15899 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
15900
15901         PR tree-optimization/45059
15902         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
15903         type conversions from newop{1,2}.  Assert t is a comparison and
15904         newop{1,2} after the stripping are gimple vals.
15905
15906 2010-08-25  Tejas Belagod  <tejas.belagod@arm.com>
15907
15908         * config/arm/iterators.md (VU, SE, V_widen_l): New.
15909         (V_unpack, US): New.
15910         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
15911         (vec_unpack<US>_lo_<mode>): Likewise.
15912         (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
15913         (neon_vec_unpack<US>_lo_<mode>): Likewise.
15914         (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
15915         (vec_widen_<US>mult_hi_<mode>): Likewise.
15916         (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
15917         (neon_vec_<US>mult_hi_<mode>"): Likewise.
15918         (neon_unpack<US>_<mode>): Widening move intermediate step for
15919         vectorizing without -mvectorize-with-neon-quad.
15920         (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
15921         for vectorizing without -mvectorize-with-neon-quad.
15922         * config/arm/predicates.md (vect_par_constant_high): Check for
15923         high-half lanes of a vector.
15924         (vect_par_constant_low): Check for low-half lanes of a vector.
15925
15926 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
15927
15928         * tree-if-conv.c (struct ifc_dr): New.
15929         (IFC_DR): New.
15930         (DR_WRITTEN_AT_LEAST_ONCE): New.
15931         (DR_RW_UNCONDITIONALLY): New.
15932         (memref_read_or_written_unconditionally): Use the cached values
15933         when possible.
15934         (write_memref_written_at_least_once): Same.
15935         (if_convertible_loop_p): Initialize and free DR->aux fields.
15936
15937 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
15938
15939         * gimple.c (gimple_could_trap_p_1): Not static anymore.
15940         Pass an extra bool parameter include_mem.
15941         (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
15942         (gimple_assign_rhs_could_trap_p): Same.
15943         * gimple.h (gimple_could_trap_p_1): Declared.
15944         * tree-data-ref.h (same_data_refs_base_objects): New.
15945         (same_data_refs): New.
15946         * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
15947         (write_memrefs_written_at_least_once): New.
15948         (ifcvt_memrefs_wont_trap): New.
15949         (operations_could_trap): New.
15950         (ifcvt_could_trap_p): New.
15951         (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
15952         Gets a vector of data refs.
15953         (if_convertible_stmt_p): Same.
15954         (if_convertible_loop_p_1): New.
15955         (if_convertible_loop_p): Call if_convertible_loop_p_1.
15956
15957 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
15958
15959         * common.opt (ftree-loop-if-convert-stores): New flag.
15960         * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
15961         * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
15962         the created statement before GSI.
15963         (if_convertible_phi_p): Allow virtual phi nodes when
15964         flag_loop_if_convert_stores is set.
15965         (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
15966         Do not handle types that do not match is_gimple_reg_type.
15967         Remove loop and bb parameters.  Call gimple_could_trap_p instead of
15968         when flag_loop_if_convert_stores is set, as LHS can contain
15969         memory refs.
15970         (if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
15971         to if_convertible_gimple_assign_stmt_p.
15972         (if_convertible_loop_p): Update call to if_convertible_stmt_p.
15973         (replace_phi_with_cond_gimple_assign_stmt): Renamed
15974         predicate_scalar_phi.  Do not handle virtual phi nodes.
15975         (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
15976         Call predicate_scalar_phi.
15977         (insert_gimplified_predicates): Insert the gimplified predicate of a BB
15978         just after the labels for flag_loop_if_convert_stores, otherwise
15979         insert the predicate in the end of the BB.
15980         (predicate_mem_writes): New.
15981         (combine_blocks): Call predicate_all_scalar_phis.  When
15982         flag_loop_if_convert_stores is set, call predicate_mem_writes.
15983         (tree_if_conversion): Call mark_sym_for_renaming when
15984         flag_loop_if_convert_stores is set.
15985         (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
15986         flag_loop_if_convert_stores is set.
15987
15988 2010-08-24  Anatoly Sokolov  <aesok@post.ru>
15989
15990         * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
15991         pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
15992         (pa_function_value): Make static.
15993         (override_options): Rename to...
15994         (pa_option_override): ...this. Make static.
15995         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
15996         TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
15997         TARGET_OPTION_OVERRIDE): Define.
15998         * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
15999         LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
16000         Remove.
16001         * config/pa/pa-protos.h (override_options): Remove.
16002
16003 2010-08-24  Richard Guenther  <rguenther@suse.de>
16004
16005         PR middle-end/45379
16006         * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
16007         if addr->index is NULL or zero.
16008         * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
16009         TARGET_MEM_REF more properly.
16010         (indirect_ref_may_alias_decl_p): Likewise.
16011         * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
16012         * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
16013
16014 2010-08-23  Anatoly Sokolov  <aesok@post.ru>
16015
16016         * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
16017         (m32c_override_options): Rename to...
16018         (m32c_option_override): ...this. Make static.
16019         (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
16020         * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
16021         Remove.
16022         * config/m32c/m32c-protos.h (m32c_override_options,
16023         m32c_function_value_regno_p): Remove.
16024
16025 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
16026
16027         * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
16028         Fix a typo in a previous commit.
16029
16030 2010-08-23  Kai Tietz  <kai.tietz@onevision.com>
16031
16032         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
16033         Pre-initialize innerloop_iters to one.
16034
16035 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
16036
16037         * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
16038         existing static function global.
16039
16040         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
16041         is changed to global.
16042
16043         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
16044         may_be_nonaddressable_p on base, and don't collect this reference
16045         if the address of the base could not be taken.
16046
16047 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
16048
16049         * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
16050         enable the compiler to autovectorize mathmetical functions for
16051         power7 using the Mathematical Acceleration Subsystem library.
16052
16053         * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
16054         handle which vector math library we have.
16055         (rs6000_override_options): Add -mveclibabi=mass support.
16056         (rs6000_builtin_vectorized_libmass): New function to handle auto
16057         vectorizing math functions that are in the MASS library.
16058         (rs6000_builtin_vectorized_function): Call it.
16059
16060         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
16061         -mveclibabi=mass.
16062
16063 2010-08-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16064
16065         PR boehm-gc/34544
16066         * gthr-posix.h (__gthread_active_init): Delete.
16067         (__gthread_active_p): Do activity check here.
16068         Don't include errno.h on hppa-hpux.  Update comment.
16069         * gthr-posix95.h (__gthread_active_init): Delete.
16070         (__gthread_active_p): Do activity check here.
16071         Don't include errno.h on hppa-hpux.  Update comment.
16072         * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
16073         * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
16074         add -lpthread when -mt or -pthread is specified.
16075         * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
16076         (LINK_GCC_C_SEQUENCE_SPEC): Define.
16077         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
16078         (stublib.c, pthread_default_stacksize_np-stub.o,
16079         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
16080         $(T)libgcc_stub.a): Add methods.
16081         * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
16082         (stublib.c, pthread_default_stacksize_np-stub.o,
16083         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
16084         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
16085         pthread_mutex_unlock): New stubs.
16086
16087 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
16088
16089         * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
16090         * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
16091         options.
16092         * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
16093         * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
16094         * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
16095         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
16096         * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
16097         "-l".
16098         * cppspec.c: Include opts.h.
16099         (lang_specific_driver): Use cl_decoded_option structures.
16100         * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
16101         * doc/tm.texi: Regenerate.
16102         * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
16103         (driver_handle_option): Allow driver options needing no special
16104         processing.
16105         (process_command): Decode options before call to
16106         lang_specific_driver.  Pass decoded options to
16107         lang_specific_driver.
16108         * gcc.h (lang_specific_driver): Update prototype.
16109         * gccspec.c: Include opts.h.
16110         (lang_specific_driver): Use cl_decoded_option structures.
16111         * opts-common.c (option_ok_for_language, generate_option,
16112         generate_option_input_file): New.
16113         (decode_cmdline_option): Use option_ok_for_language.
16114         (decode_cmdline_options_to_array): Use generate_option_input_file.
16115         (handle_generated_option): Use generate_option.
16116         * opts.h (generate_option, generate_option_input_file): Declare.
16117
16118 2010-08-22  Anatoly Sokolov  <aesok@post.ru>
16119
16120         * config/mips/mips.c (mips_override_options): Rename to...
16121         (mips_option_override): ...this. Make static.
16122         (TARGET_OPTION_OVERRIDE): Define.
16123         (mips_in_small_data_p): Update comment.
16124         * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
16125         (FIXED_REGISTERS): Update comment.
16126         * config/mips/mips-protos.h (mips_override_options): Remove.
16127
16128 2010-08-21  Olivier Hainque  <hainque@adacore.com>
16129
16130         * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
16131
16132 2010-08-21  Olivier Hainque  <hainque@adacore.com>
16133
16134         * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
16135         ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
16136
16137 2010-08-20  Jan Hubicka  <jh@suse.cz>
16138
16139         * tree-pass.h (pass_ipa_cdtor_merge): New function.
16140         * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
16141         heap allocated.
16142         (record_cdtor_fn): Move to ipa.c; do not test for
16143         have_ctors_dtors.
16144         (build_cdtor): Move to ipa.c; add code avoiding construction
16145         when target have ctors/dtors and there is only one ctor/dtor at given
16146         priority.
16147         (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
16148         sort; reverse order of constructors.
16149         (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
16150         (cgraph_finalize_function): Do not call record_cdtor_fn.
16151         (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
16152         (cgraph_build_static_cdtor): Move to ipa.c.
16153         * ipa.c: Include target.h and tree-iterator.h.
16154         (cgraph_build_static_cdtor, static_ctors, static_dtors,
16155         record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
16156         build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
16157         pass_ipa_cdtor_merge): New.
16158         * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
16159         * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
16160         bounds access.
16161
16162 2010-08-20  Jan Hubicka  <jh@suse.cz>
16163
16164         PR c++/45307
16165         PR c++/17736
16166         * cgraph.h (cgraph_only_called_directly_p,
16167         cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
16168         static cdtors.
16169         * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
16170         are not needed.
16171         (cgraph_finalize_function): Static cdtors are reachable.
16172         (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
16173
16174 2010-08-20  Jan Hubicka  <jh@suse.cz>
16175
16176         * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
16177         flag_wpa.
16178         * lto-streamer-out.c (lto_output): Likewise.
16179         * passes.c (ipa_write_optimization_summaries): Initialize statement
16180         uids.
16181
16182 2010-08-20  Olivier Hainque  <hainque@adacore.com>
16183
16184         * tree.h (alias_diag_flags): New enum.
16185         (alias_pair): Add an 'emitted_diags' field.
16186         * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
16187         (assemble_alias): Initialize emitted_diags of new pairs.
16188
16189 2010-08-20  Eric Botcazou  <ebotcazou@adacore.com>
16190
16191         * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
16192         * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
16193         * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
16194         (STACK_CHECK_PROTECT): Define.
16195         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
16196         (output_probe_stack_range): Likewise.
16197         (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
16198         builtin stack checking is enabled.
16199         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
16200         * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
16201         (probe_stack_range): New insn.
16202
16203 2010-08-20  H.J. Lu  <hongjiu.lu@intel.com>
16204
16205         PR target/45336
16206         * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
16207         short first.
16208
16209         * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
16210         char first.
16211
16212 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
16213
16214         PR target/45336
16215         * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
16216         to cover zero extension into 64-bit register.
16217         (*sse2_pextrw): Likewise.
16218         (*sse4_1_pextrd_zext): New insn.
16219
16220 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
16221
16222         revert r163410, partially revert r163267.
16223         * config/rs6000/darwin.h (LIB_SPEC): Remove.
16224         * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
16225         Darwin versions.
16226
16227 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
16228
16229         PR middle-end/44974
16230         * builtins.c (expand_builtin): Don't optimize away
16231         calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
16232
16233 2010-08-20  Uros Bizjak  <ubizjak@gmail.com>
16234
16235         * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
16236         (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
16237         alternative 1 of operand 2.
16238
16239 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
16240             Paolo Bonzini  <bonzini@gnu.org>
16241
16242         * simplify-rtx.c (simplify_unary_operation_1): Optimize
16243         (sign_extend (zero_extend (...)) and
16244         ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
16245
16246 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
16247
16248         PR rtl-optimization/45353
16249         * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
16250         after bb_note is a BARRIER.
16251
16252 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
16253
16254         * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
16255         linking libgcc.a.
16256
16257 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
16258             Michael Matz  <matz@suse.de>
16259
16260         * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
16261
16262 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
16263
16264         * ggc-common.c (ggc_mark_root_tab): New function, split out from...
16265         (ggc_mark_roots): ...here.
16266
16267 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
16268
16269         * vec.h (FOR_EACH_VEC_ELT): Define.
16270         * c-decl.c: Use it.
16271         * cfgloop.c: Likewise.
16272         * cfgloopmanip.c: Likewise.
16273         * cgraph.c: Likewise.
16274         * cgraphunit.c: Likewise.
16275         * combine.c: Likewise.
16276         * config/bfin/bfin.c: Likewise.
16277         * config/mips/mips.c: Likewise.
16278         * config/rs6000/rs6000.c: Likewise.
16279         * dbxout.c: Likewise.
16280         * df-scan.c: Likewise.
16281         * dominance.c: Likewise.
16282         * dse.c: Likewise.
16283         * dwarf2out.c: Likewise.
16284         * except.c: Likewise.
16285         * expr.c: Likewise.
16286         * function.c: Likewise.
16287         * gcse.c: Likewise.
16288         * genattr.c: Likewise.
16289         * ggc-common.c: Likewise.
16290         * gimplify.c: Likewise.
16291         * graphite-blocking.c: Likewise.
16292         * graphite-clast-to-gimple.c: Likewise.
16293         * graphite-dependences.c: Likewise.
16294         * graphite-interchange.c: Likewise.
16295         * graphite-poly.c: Likewise.
16296         * graphite-scop-detection.c: Likewise.
16297         * graphite-sese-to-poly.c: Likewise.
16298         * graphite.c: Likewise.
16299         * haifa-sched.c: Likewise.
16300         * ifcvt.c: Likewise.
16301         * implicit-zee.c: Likewise.
16302         * ipa-prop.c: Likewise.
16303         * ipa-struct-reorg.c: Likewise.
16304         * ipa.c: Likewise.
16305         * ira-build.c: Likewise.
16306         * ira-color.c: Likewise.
16307         * ira-emit.c: Likewise.
16308         * lambda-code.c: Likewise.
16309         * loop-invariant.c: Likewise.
16310         * loop-unroll.c: Likewise.
16311         * lower-subreg.c: Likewise.
16312         * lto-cgraph.c: Likewise.
16313         * lto-opts.c: Likewise.
16314         * lto-streamer-in.c: Likewise.
16315         * lto-streamer-out.c: Likewise.
16316         * lto-streamer.c: Likewise.
16317         * lto-symtab.c: Likewise.
16318         * matrix-reorg.c: Likewise.
16319         * opts.c: Likewise.
16320         * predict.c: Likewise.
16321         * print-tree.c: Likewise.
16322         * sdbout.c: Likewise.
16323         * sel-sched-dump.c: Likewise.
16324         * sel-sched-ir.c: Likewise.
16325         * sel-sched.c: Likewise.
16326         * sese.c: Likewise.
16327         * stor-layout.c: Likewise.
16328         * tree-cfg.c: Likewise.
16329         * tree-cfgcleanup.c: Likewise.
16330         * tree-chrec.c: Likewise.
16331         * tree-data-ref.c: Likewise.
16332         * tree-emutls.c: Likewise.
16333         * tree-inline.c: Likewise.
16334         * tree-into-ssa.c: Likewise.
16335         * tree-loop-distribution.c: Likewise.
16336         * tree-loop-linear.c: Likewise.
16337         * tree-mudflap.c: Likewise.
16338         * tree-outof-ssa.c: Likewise.
16339         * tree-parloops.c: Likewise.
16340         * tree-predcom.c: Likewise.
16341         * tree-pretty-print.c: Likewise.
16342         * tree-scalar-evolution.c: Likewise.
16343         * tree-ssa-live.c: Likewise.
16344         * tree-ssa-loop-im.c: Likewise.
16345         * tree-ssa-loop-ivcanon.c: Likewise.
16346         * tree-ssa-loop-ivopts.c: Likewise.
16347         * tree-ssa-loop-manip.c: Likewise.
16348         * tree-ssa-loop-niter.c: Likewise.
16349         * tree-ssa-loop-prefetch.c: Likewise.
16350         * tree-ssa-phiprop.c: Likewise.
16351         * tree-ssa-pre.c: Likewise.
16352         * tree-ssa-reassoc.c: Likewise.
16353         * tree-ssa-sccvn.c: Likewise.
16354         * tree-ssa-structalias.c: Likewise.
16355         * tree-ssa.c: Likewise.
16356         * tree-vect-data-refs.c: Likewise.
16357         * tree-vect-loop-manip.c: Likewise.
16358         * tree-vect-loop.c: Likewise.
16359         * tree-vect-patterns.c: Likewise.
16360         * tree-vect-slp.c: Likewise.
16361         * tree-vect-stmts.c: Likewise.
16362         * tree-vrp.c: Likewise.
16363         * tree.c: Likewise.
16364         * value-prof.c: Likewise.
16365         * var-tracking.c: Likewise.
16366         * varasm.c: Likewise.
16367         * vmsdbgout.c: Likewise.
16368
16369 2010-08-19  Nathan Sidwell  <nathan@codesourcery.com>
16370             Richard Guenther  <richard.guenther@gmail.com>
16371
16372         * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
16373         copy the src value and return a copy.
16374         * doc/extend.texi (Volatiles): Move from C++ to C and expand.
16375         (C++ Volatiles): Adjust to describe C++ semantics only.
16376
16377 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
16378
16379         * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
16380         be zero or nonzero.
16381         * doc/tm.texi: Regenerate.
16382         * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
16383         * df-scan.c (df_get_exit_block_use_set), reginfo.c
16384         (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
16385         Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
16386         * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
16387         to 1.
16388
16389 2010-08-20  Olivier Hainque  <hainque@adacore.com>
16390
16391         * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
16392         an extra nop past a sibling call at the very end.
16393
16394 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
16395
16396         PR bootstrap/45350
16397         * combine.c (try_combine): Initialize i1_is_used and i2_is_used.  Fix
16398         a comment.
16399
16400 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
16401
16402         * target.def (function_arg, function_incoming_arg): Remove const
16403         qualifier on CUMULATIVE_ARGS parameter.
16404         * targhooks.h (default_function_arg, default_function_incoming_arg):
16405         Likewise.
16406         * targhooks.c (default_function_arg, default_function_incoming_arg):
16407         Likewise.
16408         * config/i386/i386.c (ix86_function_arg): Likewise.
16409
16410 2010-08-19  Jakub Jelinek  <jakub@redhat.com>
16411
16412         PR target/45336
16413         * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
16414         SIGN_EXTENDs or ZERO_EXTENDs.
16415
16416 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
16417
16418         PR target/42172
16419         * combine.c (combine_validate_cost): New arg I0.  All callers changed.
16420         Take its cost into account if nonnull.
16421         (insn_a_feeds_b): New static function.
16422         (combine_instructions): Look for four-insn combinations.
16423         (can_combine_p): New args PRED2, SUCC2.  All callers changed.  Take
16424         them into account when computing all_adjacent and looking for other
16425         uses.
16426         (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC.  All callers
16427         changed.  Treat them like I1DEST and I1_NOT_IN_SRC.
16428         (try_combine): New arg I0.  Handle four-insn combinations.
16429         (distribute_notes): New arg ELIM_I0.  All callers changed.  Treat it
16430         like ELIM_I1.
16431
16432 2010-08-19  Jason Merrill  <jason@redhat.com>
16433
16434         PR c++/45307
16435         * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
16436         if ctor is empty.
16437         (gimplify_modify_expr_rhs): Adjust.
16438
16439 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
16440
16441         * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
16442         bitmap_bit_p.
16443         * config/bfin/bifn.c (bfin_discover_loop): Likewise.
16444         * dominance.c (iterate_fix_dominators): Likewise.
16445         * dse.c (set_usage_bits): Likewise.
16446         (set_position_unneeded, record_store): Likewise.
16447         * gimple-fold.c (get_maxval_strlen): Likewise.
16448         * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
16449         * ipa-inline.c (update_caller_keys): Likewise.
16450         * ipa-split.c (verify_non_ssa_vars): Likewise.
16451         * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
16452         (close_type_exposed_parameter, close_type_full_escape): Likewise.
16453         (close_addressof_down): Likewise.
16454         * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
16455         (setup_allocno_left_conflicts_size): Likewise.
16456         (ira_reassign_conflict_allocnos): Likewise.
16457         (ira_reassign_pseudos): Likewise.
16458         * ira-emit.c (change_loop): Likewise.
16459         * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
16460         * lto-streamer-out.c (write_symbol): Likewise.
16461         * predict.c (expr_expected_value_1): Likewise.
16462         * regstat.c (regstat_bb_compute_ri): Likewise.
16463         * sel-sched.c (create_block_for_bookkeeping): Likewise.
16464         (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
16465         * stmt.c (expand_case): Likewise.
16466         * tree-eh.c (emit_eh_dispatch): Likewise.
16467         * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
16468         * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
16469         Likewise.
16470         (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
16471         (rdg_build_components): Likewise.
16472         * tree-object-size.c (collect_object_sizes_for): Likewise.
16473         * tree-sra.c (convert_callers): Likewise.
16474         * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
16475         * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
16476         * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
16477
16478 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
16479
16480         * config/i386/i386.md (*lea_1): Use P mode iterator.
16481         (lea add splitter): Also handle DImode operands.
16482         (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
16483         predicate.  Do not use ix86_lea_for_add_ok.
16484         (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
16485         (lea ashift splitter): Also handle DImode operands.
16486         (DImode lea ashift splitter): Remove splitter.
16487
16488 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
16489
16490         * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
16491         ix86_binary_operator_ok.
16492
16493 2010-08-19  Andrey Belevantsev  <abel@ispras.ru>
16494
16495         PR rtl-optimization/44691
16496         * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
16497         is not a register.
16498
16499 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
16500
16501         PR target/45070
16502         * config/arm/arm.c (arm_output_epilogue): Ensure that return
16503          value of size 1-3 is handled correctly.
16504
16505 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
16506
16507         * tree-switch-conversion.c (gen_inbound_check): Ensure that the
16508         type for the conditional has wide enough range.
16509
16510 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
16511
16512         PR target/45327
16513         * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
16514         ix86_binary_operator_ok.
16515
16516 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
16517
16518         * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
16519         <default>:  Swap operands 1 and 2 for alternative 2 to use existing
16520         code to output insn mnemonic.  Fix comment.
16521         (*addsi_1_zext): Add r-r-0 alternative 1.
16522         <TYPE_LEA>: Split insn to lea.
16523         <default>: Handle alternative 1.
16524         (*addhi_1_lea): Add r-r-0 alternative 2.  Use cond RTX instead of
16525         multi-level if_then_else RTX to set "type" attribute.
16526         <default>: Handle alternative 2.
16527         (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
16528         Use cond RTX instead of multi-level if_then_else RTX to set
16529         "type" attribute.
16530         <default>: Handle alternatives 2 and 4.
16531         (lea splitters): Update calls to ix86_lea_for_add_ok.
16532
16533         * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
16534         argument.
16535         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
16536
16537 2010-08-18  Richard Guenther  <rguenther@suse.de>
16538
16539         * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
16540         use operand helpers.
16541
16542 2010-08-18  Paolo Bonzini  <bonzini@gnu.org>
16543
16544         PR middle-end/45292
16545         * optabs.c (expand_bool_compare_and_swap): Expand pending
16546         pops before trying the optab.
16547
16548 2010-08-18  Yao Qi  <yao@codesourcery.com>
16549
16550         PR target/45094
16551         * config/arm/arm.c (output_move_double): Fix typo generating
16552         instructions ('ldr'->'str').
16553
16554 2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
16555
16556         PR rtl-optimization/42575
16557         * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
16558         live ranges.
16559
16560 2010-08-18  Marcus Shawcroft  <marcus.shawcroft@arm.com>
16561
16562         * config/arm/arm-protos.h (arm_expand_sync): New.
16563         (arm_output_memory_barrier, arm_output_sync_insn): New.
16564         (arm_sync_loop_insns): New.
16565         * config/arm/arm.c (FL_ARCH7): New.
16566         (FL_FOR_ARCH7): Include FL_ARCH7.
16567         (arm_arch7): New.
16568         (arm_print_operand): Support %C markup.
16569         (arm_legitimize_sync_memory): New.
16570         (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
16571         (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
16572         (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
16573         (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
16574         (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
16575         (arm_process_output_sync_insn, arm_output_sync_insn): New.
16576         (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
16577         * config/arm/arm.h (struct arm_sync_generator): New.
16578         (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
16579         (TARGET_HAVE_MEMORY_BARRIER): New.
16580         (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
16581         * config/arm/arm.md: Include sync.md.
16582         (UNSPEC_MEMORY_BARRIER): New.
16583         (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
16584         (VUNSPEC_SYNC_OP):New.
16585         (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
16586         (sync_result, sync_memory, sync_required_value): New attributes.
16587         (sync_new_value, sync_t1, sync_t2): Likewise.
16588         (sync_release_barrier, sync_op): Likewise.
16589         (length): Add logic to length attribute defintion to call
16590         arm_sync_loop_insns when appropriate.
16591         * config/arm/sync.md: New file.
16592
16593 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
16594
16595         * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
16596         ENABLE_TREE_CHECKING.
16597         (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
16598         and GCC >= 4.3.
16599
16600 2010-08-17  H.J. Lu  <hongjiu.lu@intel.com>
16601
16602         * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
16603         or optimizing for size, always avoid lea if possible.
16604
16605         * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
16606
16607 2010-08-17  Iain Sandoe  <iains@gcc.gnu.org>
16608
16609         * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
16610         Dunmmy function with NULL return unless the target is
16611         OSX >= 10.6 (Darwin10).
16612
16613 2010-08-17  Jack Howarth  <howarth@bromo.med.uc.edu>
16614
16615         * gcc.c (spec_function): Add remove-outfile.
16616         (remove_outfile_spec_function): New function.
16617         * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
16618         * invoke.texi (replace-outfile): Document.
16619
16620 2010-08-17  Uros Bizjak  <ubizjak@gmail.com>
16621
16622         PR target/45296
16623         * reginfo.c (globalize_reg): Reject stack registers.
16624
16625 2010-08-17  Richard Guenther  <rguenther@suse.de>
16626
16627         * tree-ssa-dom.c (struct edge_info): Use a VEC for the
16628         list of conditional equivalences.
16629         (free_all_edge_infos): Adjust.
16630         (record_equivalences_from_incoming_edge): Likewise.
16631         (record_cond): Likewise.
16632         (build_and_record_new_cond): Likewise.
16633         (record_conditions): Likewise.
16634         (dom_opt_leave_block): Likewise.
16635
16636 2010-08-17  Kai Tietz  <kai.tietz@onevision.com>
16637
16638         * doc/invoke.texi (ms-extension): Add documentation.
16639
16640 2010-08-17  Richard Guenther  <rguenther@suse.de>
16641
16642         * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
16643
16644 2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>
16645
16646         PR c/40563
16647         * c-decl.c (diagnose_uninitialized_cst_member): New function.
16648         (finish_decl): Use it to issue a -Wc++-compat warning about
16649         uninitialized const field in struct or union.
16650
16651         (finish_struct): Use strip_array_types.
16652
16653 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
16654
16655         * function.c (block_fragments_nreverse, blocks_nreverse_all): New
16656         functions.
16657         (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
16658         (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL.  Don't
16659         call block_nreverse here.
16660         (blocks_nreverse): Rename decl temporary to block.
16661
16662 2010-08-16  Bernd Schmidt  <bernds@codesourcery.com>
16663
16664         * config/arm/thumb2.md (thumb2_notsi_shiftsi,
16665         thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
16666         thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
16667         thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
16668         thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
16669         thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
16670         thumb2_iorsi3): Delete.
16671         (orsi_notsi_si): No longer a named pattern.
16672         (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
16673         * config/arm/predicates.md (shift_amount_operand): New.
16674         (mult_operator): New.
16675         * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
16676         attr enabled): New.
16677         (iorsi3_insn): Renamed from arm_iorsi3.  Handle a new alternative if
16678         arch matches t2.
16679         (not_shiftsi): Renamed from arm_notsi_shiftsi.  Handle Thumb2 variant.
16680         (not_shiftsi_compare0): Likewise, renamed from
16681         arm_notsi_shiftsi_compare0.
16682         (not_shiftsi_compare0_scratch): Likweise, renamed from
16683         arm_notsi_shiftsi_compare0_scratch.
16684         (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
16685         (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
16686         (arith_shiftsi): Handle Thumb2 variant.  Set insn_enabled attribute
16687         so that the register alternative is disabled when the shift_operator
16688         is MULT.  Use "M" as the constraint for constants.
16689         (arith_shiftsi splitter): Enable for TARGET_32BIT.
16690         (arith_shiftsi_compare0): Handle Thumb2 variant.  Use "M" as the
16691         constraint for constants.
16692         (arith_shiftsi_compare0_scratch): Likewise.
16693         (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
16694         Handle Thumb2 alternative.
16695
16696 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
16697
16698         * doc/options.texi (NoDriverArg): Document.
16699         * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
16700         -MDX and -MMDX.
16701         * opt-functions.awk (switch_flags): Handle NoDriverArg.
16702         * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
16703         marking for CL_NO_DRIVER_ARG options when in the driver.
16704         * opts.h (CL_NO_DRIVER_ARG): Define.
16705         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
16706         CL_COMMON): Update values.
16707
16708 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
16709
16710         * common.opt: Add driver options.
16711         (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
16712         * doc/options.texi (Driver, RejectDriver): Document.
16713         * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
16714         print_prog_name, print_multi_directory, print_sysroot,
16715         print_multi_os_directory, print_multi_lib,
16716         print_sysroot_headers_suffix, report_times, combine_flag,
16717         use_pipes, wrapper_string): Remove.
16718         (save_switch, driver_unknown_option_callback,
16719         driver_wrong_lang_callback, driver_post_handling_callback,
16720         driver_handle_option): New.
16721         (spec_lang, last_language_n_infiles): Make file-scope static
16722         instead of local to process_command.
16723         (process_command): Use decode_cmdline_options_to_array and
16724         read_cmdline_option for option processing.  Compute have_c in
16725         prescan of decoded options.
16726         * opt-functions.awk (switch_flags): Handle Driver and
16727         RejectDriver.
16728         (var_type, var_type_struct): Handle Separate options as generating
16729         const char * variables.
16730         * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
16731         CL_TARGET to be passed by caller if required.
16732         (decode_cmdline_options_to_array): Update comment.
16733         * opts.c (complain_wrong_lang): Handle options only valid for the
16734         driver.
16735         (decode_options): Update call to decode_cmdline_options_to_array.
16736         (print_filtered_help): Ignore driver-only options.
16737         (print_specific_help): Ignore CL_DRIVER.
16738         (common_handle_option): Don't call print_specific_help for CL_DRIVER.
16739         * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
16740         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
16741         Update values.
16742
16743 2010-08-16  Richard Guenther  <rguenther@suse.de>
16744
16745         * tree-cfg.c (verify_types_in_gimple_reference): Verify
16746         TARGET_MEM_REF a bit.
16747         * tree-ssa-address.c (addr_for_mem_ref): Adjust.
16748         (create_mem_ref_raw): Always create TMR_OFFSET, store the
16749         alias pointer type via it.
16750         (copy_mem_ref_info): Adjust.
16751         (maybe_fold_tmr): Likewise.
16752         * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
16753         (reference_alias_ptr_type): Likewise.
16754         * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
16755         adjust documentation of TMR_OFFSET operand.
16756         * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
16757         use the alias pointer type.
16758         * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
16759         initialize mem attrs but the TMR itself.
16760         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
16761         similar to MEM_REF.
16762         * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
16763         * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
16764         (unshare_and_remove_ssa_names): Likewise.
16765         (copy_ref_info): Adjust.
16766         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
16767         TARGET_MEM_REF case.
16768         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
16769         at TMR_ORIGINAL.
16770         * tree.h (TMR_ORIGINAL): Remove.
16771         * gimple.c (get_base_address): For TARGET_MEM_REF with a
16772         symbol return that.
16773         * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
16774         with a symbol.
16775         (get_addr_base_and_unit_offset): Likewise.
16776         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
16777         TARGET_MEM_REFs.
16778         (indirect_ref_may_alias_decl_p): Likewise.
16779         (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
16780
16781 2010-08-15  Uros Bizjak  <ubizjak@gmail.com>
16782
16783         * doc/invoke.texi (-fomit-frame-pointer): Document that starting
16784         with GCC version 4.6, the default setting (when not optimizing
16785         for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
16786         been changed to -fomit-frame-pointer.
16787
16788 2010-08-15  Iain Sandoe  <iains@gcc.gnu.org>
16789
16790         * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
16791         Darwin10.  Do not link libgcc.a for Darwin >= 9.
16792
16793 2010-08-15  Gerald Pfeifer  <gerald@pfeifer.com>
16794
16795         * doc/invoke.texi (Warning Options): Fix terminology and markup
16796         in the description of how unknown warning options are handled.
16797
16798 2010-08-15  Ira Rosen  <irar@il.ibm.com>
16799
16800         * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
16801         in basic blocks.
16802         (vect_supportable_dr_alignment): Check alignment for basic blocks.
16803         * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
16804         data references.
16805         (vect_bb_vectorization_profitable_p): New function.
16806         (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
16807         check if it's worthwhile to vectorize the basic block.
16808
16809 2010-08-14  Anatoly Sokolov  <aesok@post.ru>
16810
16811         * reload.h (register_move_cost, memory_move_secondary_cost,
16812         secondary_reload_class): Adjust prototype.
16813         * rtl.h (reg_class_subset_p): Adjust prototype.
16814         * reload.c (secondary_reload_class): Change arguments type from
16815         enum reg_class to reg_class_t. Change result type to reg_class_t.
16816         * reginfo.c (register_move_cost, reg_class_subset_p): Change
16817         arguments type from enum reg_class to reg_class_t.
16818         (memory_move_secondary_cost): Change arguments type from
16819         enum reg_class to reg_class_t. Change type of saved_flags to
16820         reg_class_t.
16821
16822         * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
16823         Remove macros.
16824         (mips_cost): Remove.
16825         (struct mips_rtx_cost_data): Moved to mips.c.
16826         * config/mips/mips-protos.h (mips_register_move_cost): Remove.
16827         * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
16828         (mips_cost): Make static.
16829         (mips_canonicalize_move_class): Change argument type to reg_class_t.
16830         Change result type to reg_class_t.
16831         (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
16832         type from enum reg_class to reg_class_t.
16833         (mips_register_move_cost): Make static. Change arguments
16834         type from enum reg_class to reg_class_t.
16835         (mips_memory_move_cost): New function.
16836         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
16837
16838 2010-08-14  Richard Sandiford  <rdsandiford@googlemail.com>
16839
16840         PR rtl-optimization/43358
16841         * ira-lives.c (process_single_reg_class_operands): Adjust the costs
16842         of a single hard register, using simplify_subreg_regno to decide
16843         what that register should be.
16844
16845 2010-08-14  Mingjie Xing  <mingjie.xing@gmail.com>
16846
16847         * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
16848         * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
16849         (loongson_pmull<V_suffix>): Rename to...
16850         (mul<mode>3): ...this and use MULT instead of an UNSPEC.
16851
16852 2010-08-13  Jack Howarth  <howarth@bromo.med.uc.edu>
16853
16854         * configure.ac: Enable -fomit-frame-pointer on darwin
16855         which support dwarf2.
16856         * config/i386/i386.c (override_options): Same.
16857
16858 2010-08-13  Jie Zhang  <jie@codesourcery.com>
16859
16860         * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
16861
16862 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
16863
16864         * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
16865         -MMD.
16866
16867 2010-08-12  Changpeng Fang  <changpeng.fang@amd.com>
16868
16869         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
16870         up dot_prod pattern searching if a stmt is outside the loop.
16871
16872 2010-08-12  H.J. Lu  <hongjiu.lu@intel.com>
16873             Uros Bizjak  <ubizjak@gmail.com>
16874
16875         * config.gcc: Handle --enable-frame-pointer.
16876
16877         * configure.ac: Add --enable-frame-pointer.
16878         * configure: Regenerated.
16879
16880         * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
16881         (override_options): If not configured with --enable-frame-pointer,
16882         enable -fomit-frame-pointer (but not for TARGET_MACHO or when
16883         optimizing for size), -fasynchronous-unwind-tables and
16884         -maccumulate-outgoing-args by default.
16885
16886 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
16887
16888         * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
16889
16890         PR middle-end/45262
16891         * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
16892         -a overflows.  Normalize the range.
16893
16894 2010-08-12  Richard Guenther  <rguenther@suse.de>
16895
16896         PR tree-optimization/45232
16897         * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
16898         for types with undefined overflow.
16899         (reassociate_bb): Allow re-associating of bit and min/max
16900         operations for types with undefined overflow.
16901         * tree-ssa-forwprop.c (associate_plusminus): New function.
16902         (tree_ssa_forward_propagate_single_use_vars): Call it.
16903
16904 2010-08-12  Richard Guenther  <rguenther@suse.de>
16905
16906         * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
16907         * tree-ssa-alias.c (get_ptr_info): Move ...
16908         * tree-ssanames.c (get_ptr_info): ... here.  Initialize
16909         align and misalign fields conservatively.
16910         * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
16911         derive alignment information.
16912         (evaluate_stmt): Derive alignment information from memory
16913         allocation functions.
16914         * tree.h (get_pointer_alignment): Make unsigned.
16915         * builtins.c (get_object_alignment): Use alignment information we
16916         have computed for pointers.
16917         (get_pointer_alignment): Likewise.  Make conservative, return
16918         and unsigned value.
16919         (expand_builtin_strlen): Adjust.
16920         (expand_builtin_memcmp): Likewise.
16921         (expand_builtin_strcmp): Likewise.
16922         (expand_builtin_strncmp): Likewise.
16923         (get_builtin_sync_mem): Use at least mode alignment.
16924         (fold_builtin_memset): Adjust.
16925         (fold_builtin_memory_op): Likewise.
16926         * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
16927         information also dump pointer alignment knowledge.
16928         (dump_gimple_stmt): Likewise.
16929
16930 2010-08-12  Uros Bizjak  <ubizjak@gmail.com>
16931
16932         * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
16933         (EMPTY_FIELD_BOUNDARY): Remove.
16934         * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
16935
16936 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
16937
16938         PR debug/45259
16939         * caller-save.c (save_call_clobbered_regs): Only swap notes with
16940         DEBUG_INSNs if n_regs_saved.
16941
16942 2010-08-12  Wei Guozhi  <carrot@google.com>
16943
16944         PR target/44999
16945         * config/arm/arm.md (andsi3): Change to zero extension if possible.
16946         * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
16947
16948 2010-08-11  Vladimir Makarov  <vmakarov@redhat.com>
16949
16950         * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
16951
16952         * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
16953
16954 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16955
16956         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
16957         the case removed in the previous patch, when the only phi argument
16958         is defined in the same loop as the phi node itself.  Handle it
16959         separately from the invariant case by both propagating it outside
16960         the region and replacing the phi node with an assign.
16961
16962 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
16963
16964         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
16965         constant phi nodes with one argument are is_gimple_min_invariant
16966         and SSA_NAME_IS_DEFAULT_DEF.
16967
16968 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
16969
16970         * graphite-cloog-util.c (oppose_constraint):
16971         Extend loop counter's value range (CLOOG_ORG).
16972         (cloog_matrix_to_ppl_constraint): Same.
16973         (new_Constraint_System_from_Cloog_matrix): Same.
16974         * graphite-cloog-compat.h (matrix_num_type): New.
16975
16976 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
16977
16978         * graphite.c (graphite_initialize): Do not initialize
16979         CLooG and initialize the Parma Polyhedra Library
16980         manually when using CLOOG_ORG.
16981         (graphite_finalize): Do not finalize CLooG and finalize
16982         the Parma Polyhedra Library manually when using CLOOG_ORG.
16983         * graphite-cloog-compat.h (cloog_initialize): Hide function
16984         when using CLOOG_ORG.
16985         (cloog_finalize): Same.
16986
16987 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
16988
16989         * graphite-clast-to-gimple.c (free_scattering): Change
16990         CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
16991         (CLOOG_ORG).
16992         (build_cloog_prog): Same.
16993         * graphite-cloog-compat.h (cloog_domain): Removed.
16994         (cloog_scattering): New.
16995         (cloog_set_domain): Removed.
16996         (cloog_set_scattering): New.
16997         (cloog_next_domain): Removed.
16998         (cloog_next_scattering): New.
16999         (cloog_set_next_domain): Removed.
17000         (cloog_set_next_scattering): New.
17001         (CloogScatteringList): New.
17002         (CloogScattering): New.
17003         (cloog_scattering_free): New.
17004         (new_Cloog_Scattering_from_ppl_Polyhedron): New.
17005         * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
17006         New.
17007
17008 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17009
17010         * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
17011         CloogState.
17012         (set_cloog_options): Same.
17013         (print_clast_stmt): Same.
17014         (scop_to_clast): Same.
17015         (print_generated_program): Same.
17016         (gloog): Same.
17017         * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
17018         (scop_to_clast): Extend with CloogState.
17019         * graphite-cloog-util.c: Include graphite-cloog-compat.h
17020         (new_Cloog_Domain_from_ppl_Polyhedron):
17021         Extend with CloogState.  Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
17022         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
17023         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
17024         * graphite-cloog-util.h (build_cloog_prog): Same.
17025         * graphite-cloog-copat.h (build_cloog_prog): New.
17026         (CloogState): New.
17027         (cloog_state_malloc): New.
17028         (cloog_state_free): New.
17029         (cloog_loop_malloc): New.
17030         (cloog_options_malloc): New.
17031         (cloog_statement_alloc): New.
17032         (cloog_domain_from_cloog_matrix): New.
17033         (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
17034         (new_Cloog_Domain_from_ppl_Polyhedron): New.
17035
17036 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17037
17038         * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
17039         type of NAME now depends on used CLooG version.
17040         (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
17041         (gcc_type_for_clast_expr): Same.
17042         (print_clast_stmt): Replace pprint with clast_pprint.
17043         * graphite-cloog-compat.h: Provide compatibility macros for
17044         CLooG Legacy.
17045         (clast_name_p): New.
17046         (clast_expr_term): New.
17047         (clast_expr_red): New.
17048         (clast_expr_bin): New.
17049         (clast_pprint): New.
17050
17051 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17052
17053         * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
17054         compatible to newer CLooG releases (CLOOG_ORG).
17055         (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
17056         (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
17057         * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
17058         (build_cloog_prog) : New.
17059         (cloog_program_extract_scalars): New.
17060         (cloog_program_scatter): New.
17061
17062 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17063
17064         * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
17065         conditionally (CLOOG_ORG).
17066         * graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
17067         (cloog_statement_usr): New.
17068         (cloog_domain): Same.
17069         (cloog_set_domain): Same.
17070         (cloog_next_domain): Same.
17071         (cloog_set_next_domain): Same.
17072         (cloog_program_nb_scattdims): Same.
17073         (cloog_program_set_nb_scattdims): Same.
17074         (cloog_program_names): Same.
17075         (cloog_program_set_names): Same.
17076         (cloog_program_set_context): Same.
17077         (cloog_program_set_loop): Same.
17078         (cloog_program_blocklist): Same.
17079         (cloog_program_set_blocklist): Same.
17080         (cloog_program_scaldims): Same.
17081         (cloog_program_set_scaldims): Same.
17082         (cloog_names_nb_parameters): Same.
17083         (cloog_names_set_nb_parameters): Same.
17084         (cloog_names_parameters): Same.
17085         (cloog_names_set_parameters): Same.
17086         (cloog_names_set_nb_iterators): Same.
17087         (cloog_names_set_iterators): Same.
17088         (cloog_names_set_nb_scattering): Same.
17089         (cloog_names_set_scattering): Same.
17090         (cloog_statement_set_usr): Same.
17091         (cloog_loop_set_next): Same.
17092         (cloog_loop_set_domain): Same.
17093         (cloog_loop_set_block): Same.
17094         (cloog_block_list_next): Same.
17095         (cloog_block_list_set_next):
17096         (cloog_block_list_set_block): Same.
17097
17098 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17099
17100         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
17101         a bool.
17102         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
17103         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
17104         (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
17105         when something has been changed.
17106         (rewrite_commutative_reductions_out_of_ssa): Same.
17107
17108 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17109
17110         * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
17111         handle the case when def is in the sese region.
17112         (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
17113         for invariant expressions.
17114         (rewrite_cross_bb_phi_deps): Removed.
17115         (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
17116         (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
17117         rewrite_cross_bb_phi_deps.
17118
17119 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17120
17121         * graphite-sese-to-poly.c
17122         (rewrite_commutative_reductions_out_of_ssa_loop): Call
17123         scev_analyzable_p only on is_gimple_reg
17124
17125 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17126
17127         * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
17128         (rewrite_close_phi_out_of_ssa): Propagate constant values or
17129         parametric expressions outside the scop region.
17130         (rewrite_cross_bb_scalar_deps): Same.
17131         * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
17132
17133 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17134
17135         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
17136         SSA_NAME_DEF_STMT only on SSA_NAMEs.
17137
17138 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17139
17140         * tree-scalar-evolution.c (instantiate_scev_name): Do not
17141         instantiate default definitions.
17142
17143 2010-08-11  Vladimir Kargov  <kargov@gmail.com>
17144             Sebastian Pop  <sebastian.pop@amd.com>
17145
17146         * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
17147         (loop_exits_from_bb_p): New.
17148         * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
17149         (loop_exits_from_bb_p): Declared.
17150         * graphite-scop-detection.c (scopdet_basic_block_info): Call
17151         loop_exits_to_bb_p.
17152
17153 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17154
17155         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
17156         extra parameter for the region.  Call scev_analyzable_p.
17157         (rewrite_reductions_out_of_ssa): Update call to
17158         rewrite_close_phi_out_of_ssa.
17159         (rewrite_cross_bb_phi_deps): Same.
17160         (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
17161         parameter for the region.  Call scev_analyzable_p.
17162         (rewrite_commutative_reductions_out_of_ssa): Update call to
17163         rewrite_commutative_reductions_out_of_ssa_loop.
17164
17165 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17166
17167         * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
17168
17169 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17170
17171         * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
17172         SSA scalar phi nodes that can be scev_analyzable_p.
17173
17174 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17175
17176         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
17177         handle SSA_NAME_IS_DEFAULT_DEF.
17178
17179 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17180
17181         * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
17182
17183 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17184
17185         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
17186         case non close-phi nodes with one argument.
17187
17188 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17189
17190         * sese.h (scev_analyzable_p): Scevs could be expressions without
17191         chrecs and still be scev_analyzable_p.
17192
17193 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17194
17195         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
17196
17197 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17198
17199         * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
17200         * cfgloop.h (struct loop): Remove single_iv field.
17201         * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
17202         (scop_canonicalize_loops): Removed.
17203         (scop_ivs_can_be_represented): Do not use loop->single_iv.  Iterate
17204         over all the loop phi nodes in loop->header.
17205         (build_poly_scop): Remove use of scop_canonicalize_loops.
17206
17207 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17208
17209         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
17210         handle GIMPLE_CALL.
17211
17212 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17213
17214         * tree-chrec.c (chrec_apply): Should only apply to the specified
17215         variable.  Also handle multivariate chains of recurrences that
17216         satisfy evolution_function_is_affine_p.  Also handle CASE_CONVERT.
17217
17218 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17219
17220         * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
17221         (debug_clast_name_indexes_1): Removed.
17222         (debug_clast_name_indexes): Removed.
17223         (pbb_to_depth_to_oldiv): Removed.
17224         (build_iv_mapping): Replace the use of rename_map with iv_map.
17225         (translate_clast_user): Remove uses of rename_map.  Allocate and
17226         free iv_map.
17227         (translate_clast_for_loop): Remove uses of rename_map.
17228         (translate_clast_for): Same.
17229         (translate_clast_guard): Same.
17230         (translate_clast): Same.
17231         (gloog): Same.
17232         * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
17233         * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
17234         * sese.c (set_rename): Now static.
17235         (rename_variables_in_stmt): Removed.
17236         (rename_uses): New.
17237         (is_parameter): Removed.
17238         (is_iv): Removed.
17239         (expand_scalar_variables_call): Removed.
17240         (expand_scalar_variables_ssa_name): Removed.
17241         (expand_scalar_variables_expr): Removed.
17242         (expand_scalar_variables_stmt): Removed.
17243         (expand_scalar_variables): Removed.
17244         (rename_variables): Removed.
17245         (remove_condition): Removed.
17246         (get_true_edge_from_guard_bb): Removed.
17247         (get_false_edge_from_guard_bb): Removed.
17248         (struct igp): Removed.
17249         (default_before_guard): Removed.
17250         (convert_for_phi_arg): Removed.
17251         (add_guard_exit_phis): Removed.
17252         (insert_guard_phis): Removed.
17253         (graphite_copy_stmts_from_block): Now also uses iv_map and a
17254         region.  Do not copy conditions.  Do not copy induction variables.
17255         Call rename_uses.
17256         (copy_bb_and_scalar_dependences): Allocate a local rename_map for
17257         the translated statement.  Use the iv_map for the induction
17258         variable renaming.
17259         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
17260         (set_rename): Removed declaration.
17261         (scev_analyzable_p): ...here.
17262         * tree-chrec.c (chrec_apply_map): New.
17263         * tree-chrec.h (chrec_apply_map): Declared.
17264
17265 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17266
17267         * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
17268         insert_loop_close_phis.
17269         * sese.c (name_defined_in_loop_p): Removed.
17270         (expr_defined_in_loop_p): Removed.
17271         (alive_after_loop): Removed.
17272         (close_phi_not_yet_inserted_p): Removed.
17273         (struct alep): Removed.
17274         (add_loop_exit_phis): Removed.
17275         (insert_loop_close_phis): Removed.
17276
17277 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17278
17279         * graphite-cloog-util.c
17280         (cloog_matrix_to_ppl_constraint): Fix flipped condition.
17281         * graphite-poly.c
17282         (psct_scattering_dim_for_loop_depth): Same.
17283
17284 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17285
17286         * graphite-cloog-util.h: Added cloog.h.
17287         * graphite-blocking.c: Removed cloog.h.
17288         * graphite-dependences.c: Same.
17289         * graphite-interchange.c: Same.
17290         * graphite-poly.c: Same.
17291         * graphite-ppl.c: Same.
17292         * graphite-scop-detection.c: Same.
17293         * graphite-sese-to-poly.c:
17294         Removed cloog.h.
17295         Removed graphite-clast-to-gimple.h.
17296         (check_poly_representation): Removed (unused).
17297         * graphite-sese-to-poly.h
17298         (check_poly_representation): Removed (unused).
17299
17300 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17301
17302         * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
17303         (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
17304         (graphite-cloog-util.o): New.
17305         (graphite-ppl.o): Added graphite-cloog-util.h.
17306         * graphite-clast-to-gimple.c:
17307         Added graphite-cloog-util.h to include statements.
17308         * graphite-cloog-util.c: New.
17309         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
17310         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
17311         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
17312         (new_C_Polyhedron_from_Cloog_Matrix): Same.
17313         (insert_constraint_into_matrix): Same.
17314         (ppl_Constrain_System_number_of_constraints): Same.
17315         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
17316         (oppose_constraint): Same.
17317         (cloog_matrix_to_ppl_constraint): Same.
17318         (new_Constraint_System_from_Cloog_Matrix): Same.
17319         * graphite-cloog-util.h: New.
17320         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
17321         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
17322         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
17323         (new_C_Polyhedron_from_Cloog_Matrix): Same.
17324         (insert_constraint_into_matrix): Same.
17325         * graphite-ppl.c:
17326         Added graphite-cloog-util.h to include statements.
17327         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
17328         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
17329         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
17330         (new_C_Polyhedron_from_Cloog_Matrix): Same.
17331         (insert_constraint_into_matrix): Same.
17332         (ppl_Constrain_System_number_of_constraints): Same.
17333         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
17334         (oppose_constraint): Same.
17335         (cloog_matrix_to_ppl_constraint): Same.
17336         (new_Constraint_System_from_Cloog_Matrix): Same.
17337         * graphite-ppl.h:
17338         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
17339         graphite-cloog-util.h.
17340         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
17341         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
17342         (new_C_Polyhedron_from_Cloog_Matrix): Same.
17343         (insert_constraint_into_matrix): Same.
17344
17345 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17346
17347         * graphite-clast-to-gimple.c
17348         (precision_for_value): Resolve value_* calls to matching mpz_* calls.
17349         (precision_for_interval): Same.
17350         (gcc_type_for_interval): Same.
17351         (compute_type_for_level): Same.
17352         * graphite-interchange.c
17353         (lst_interchange_profitable_p): Same.
17354         * graphite-poly.c
17355         (psct_scattering_dim_for_loop_depth): Same.
17356         * graphite-ppl.c
17357         (ppl_max_for_le_pointset): Same.
17358         (ppl_min_for_le_pointset): Same.
17359
17360 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17361
17362         * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
17363         (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
17364
17365 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17366
17367         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
17368         rewrite_close_phi_out_of_ssa.
17369
17370 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17371
17372         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
17373
17374 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17375
17376         * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
17377         rename_map.
17378         * sese.c (debug_rename_map): Same.
17379         (get_rename): Same.
17380         (set_rename): Same.
17381         (rename_variables_in_stmt): Same.
17382         (expand_scalar_variables_call): Same.
17383         (expand_scalar_variables_ssa_name): Same.
17384         (expand_scalar_variables_expr): Same.
17385         (expand_scalar_variables_stmt): Same.
17386         (expand_scalar_variables): Same.
17387         (rename_variables): Same.
17388         (graphite_copy_stmts_from_block): Same.
17389         (copy_bb_and_scalar_dependences): Same.
17390
17391 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17392
17393         * graphite-clast-to-gimple.c (copy_renames): Removed.
17394         (translate_clast_for): Do not call copy_renames.
17395         (translate_clast_guard): Same.
17396
17397 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17398
17399         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
17400         (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
17401         (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
17402         before rewrite_cross_bb_scalar_deps.
17403
17404 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17405
17406         * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
17407         Early return in when flag_associative_math is not set.
17408
17409 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17410
17411         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
17412         of SSA copies on edges except for loop->latch.
17413
17414 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17415
17416         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
17417         Split out of rewrite_reductions_out_of_ssa.
17418         * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
17419         Declared.
17420         * graphite.c (graphite_transform_loops): Call it.
17421
17422 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17423
17424         * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
17425
17426 2010-08-11  Alexander Monakov  <amonakov@ispras.ru>
17427
17428         * dbgcnt.def (graphite_scop): New counter.
17429         * graphite.c: Include dbgcnt.h.
17430         (graphite_transform_loops): Use new counter to limit transformations.
17431         * Makefile.in (graphite.o): Depend on DBGCNT_H.
17432
17433 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17434
17435         * passes.c (init_optimization_passes): Add pass_graphite.
17436         Schedule a pass_copy_prop before pass_graphite_transforms.
17437         * timevar.def (TV_GRAPHITE): Declared.
17438         * tree-pass.h (pass_graphite): Declared.
17439         * tree-ssa-loop.c (pass_graphite): New.
17440
17441 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17442
17443         * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
17444         Remove calls to rename_nb_iterations and rename_sese_parameters.
17445         * graphite-clast-to-gimple.h (gloog): Update declaration.
17446         * graphite.c (graphite_transform_loops): Update call to gloog.
17447         * sese.c (rename_variables_in_expr): Removed.
17448         (rename_nb_iterations): Removed.
17449         (rename_sese_parameters): Removed.
17450         * sese.h (rename_nb_iterations): Removed.
17451         (rename_sese_parameters): Removed.
17452
17453 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17454
17455         * graphite-clast-to-gimple.c (gloog): Remove call to
17456         sese_adjust_liveout_phis.
17457         * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
17458         SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
17459         (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
17460         rewrite_phi_out_of_ssa.
17461         * sese.c (get_vdef_before_sese): Removed.
17462         (sese_adjust_vphi): Removed.
17463         (sese_adjust_liveout_phis): Removed.
17464         * sese.h (sese_adjust_liveout_phis): Removed.
17465
17466 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17467
17468         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
17469         argument for the place after which to insert the out of SSA copy.
17470         (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
17471         (rewrite_phi_out_of_ssa): Same.
17472         (rewrite_cross_bb_scalar_deps): Same.
17473         (insert_copyout): Removed.
17474         (insert_copyin): Removed.
17475         (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
17476         insert_out_of_ssa_copy_on_edge instead of insert_copyout and
17477         insert_copyin.
17478
17479 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17480
17481         * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
17482         (rewrite_reductions_out_of_ssa): Same.
17483         (rewrite_commutative_reductions_out_of_ssa): Same.
17484         (build_poly_scop): Do not call these functions.
17485         * graphite-sese-to-poly.h (build_poly_scop): Declared.
17486         (rewrite_reductions_out_of_ssa): Declared.
17487         (rewrite_commutative_reductions_out_of_ssa): Declared.
17488         * graphite.c (graphite_transform_loops): Call on every scop
17489         rewrite_commutative_reductions_out_of_ssa before calling
17490         rewrite_reductions_out_of_ssa and build_scop_bbs.
17491
17492 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17493
17494         * graphite-dependences.c (dot_deps): Make system call to dotty run
17495         in background.
17496         (dot_deps_stmt): Same.
17497         * graphite-poly.c (dot_lst): Same.
17498
17499 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17500
17501         * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
17502         phi_arg_in_outermost_loop.
17503         (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
17504         (remove_invariant_phi): Same.
17505
17506 2010-08-11  Anatoly Sokolov  <aesok@post.ru>
17507
17508         * target.def (output_addr_const_extra): New hook.
17509         * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
17510         * doc/tm.texi: Regenerate.
17511         * targhooks.c (default_asm_output_addr_const_extra): New function.
17512         * targhooks.h (default_asm_output_addr_const_extra): Declare.
17513         * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
17514         target hook.
17515
17516         * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
17517         * config/i386/i386-protos.h (output_addr_const_extra): Remove.
17518         * config/i386/i386.h (output_addr_const_extra): Rename to...
17519         (i386_asm_output_addr_const_extra): ...this. Make static.
17520         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
17521
17522 2010-08-11  Richard Henderson  <rth@redhat.com>
17523
17524         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
17525
17526 2010-08-11  Nick Clifton  <nickc@redhat.com>
17527
17528         * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
17529         * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
17530         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
17531         stormy16-lib2-cmpsi.c.
17532
17533         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
17534         -O2.
17535
17536 2010-08-11  Joseph Myers  <joseph@codesourcery.com>
17537
17538         * opts.h (struct cl_option_handler_func): Make handler take
17539         cl_decoded_option structure as parameter, not individual elements.
17540         (struct cl_option_handlers): Make callbacks take cl_decoded_option
17541         structure as parameter, not individual elements.
17542         (handle_option): Take cl_decoded_option structure as parameter,
17543         not individual elements.
17544         (handle_generated_option): Declare.
17545         * opts-common.c (handle_option): Take cl_decoded_option structure
17546         as parameter, not individual elements.  Update calls to callback
17547         and handler functions.
17548         (handle_generated_option): New.
17549         (read_cmdline_option): Update calls to callback functions and
17550         handle_option.
17551         * opts.c (common_handle_option, complain_wrong_lang,
17552         unknown_option_callback, post_handling_callback,
17553         lang_handle_option, target_handle_option): Take cl_decoded_option
17554         structure as parameter, not individual elements.
17555         (lang_handle_option, target_handle_option, common_handle_option):
17556         Assert option has at most one argument.
17557         (enable_warning_as_error): Call handle_generated_option instead of
17558         handle_option.  Do not pass -Werror argument as argument of
17559         generated option.
17560
17561 2010-08-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17562
17563         * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
17564         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
17565         (SUBWORD_BOOL_CAS): Likewise.
17566         (SUBWORD_SYNC_OP): Likewise.
17567         (SUBWORD_TEST_AND_SET): Likewise.
17568         (FETCH_AND_OP_WORD): Parenthesise INF_OP
17569         (SUBWORD_SYNC_OP): Likewise.
17570         (OP_AND_FETCH_WORD): Likewise.
17571
17572 2010-08-10  Xinliang David Li  <davidxl@google.com>
17573
17574         * tree-ssa-loop-ivopts.c (get_address_cost): Properly
17575         compute max/min offset in address.
17576
17577 2010-08-10  Vladimir Makarov  <vmakarov@redhat.com>
17578
17579         * ira-live.c: Include sbitmap.h.
17580         (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
17581         Compress live ranges even more.
17582
17583 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
17584
17585         * coverage.c (ctr_labels): Delete.
17586
17587 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
17588
17589         PR bootstrap/45177
17590         * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
17591         test here from arm_gen_load_multiple_1.
17592         (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
17593         multiple_operation_profitable_p.
17594
17595 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
17596
17597         * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
17598         (fini_pre): Call free_aux_for_blocks.  Delete unused bb variable.
17599
17600 2010-08-10  Richard Henderson  <rth@redhat.com>
17601
17602         * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
17603         after saving registers.  Assert that SSE registers are only saved
17604         with a sufficiently aligned frame.
17605         (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
17606         remove stack_realign_fp handling.
17607         (ix86_expand_prologue): Save int registers before stack_realign_fp,
17608         and do not mark the stack alignment as frame related.
17609         (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
17610
17611         * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
17612         saves when re-aligning the stack.
17613
17614 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
17615
17616         * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
17617         * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
17618         (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
17619
17620 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
17621
17622         * dwarf2out.c (struct die_struct): Move die_tag to the end.
17623
17624 2010-08-09  Sofiane Naci  <sofiane.naci@arm.com>
17625
17626         * config/arm/iterators.md: New file.
17627         * config/arm/arm.md: Include iterators.md.
17628         (QHSI): Move to new file.
17629         (LTUGEU, cnb, optab, ior_xor): Likewise.
17630         * config/arm/iwmmxt.md (VMMX): Move to new file.
17631         (VSHFT, MMX_char): Likewise.
17632         * config/arm/neon.md (VD): Move to new file.
17633         (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
17634         (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
17635         (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
17636         (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
17637         (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
17638         (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
17639         (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
17640         (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
17641         (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
17642         (Is_d_reg, V_mode_nunits): Likewise.
17643         * config/arm/vec-common.md (VALL): Move to new file.
17644         (VALLW, VINT, VINTW): Likewise.
17645
17646 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
17647
17648         PR middle-end/45182
17649         * combine.c (make_compound_operation): Don't try to convert
17650         shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
17651
17652 2010-08-10  Richard Guenther  <rguenther@suse.de>
17653
17654         * tree.h (get_object_alignment): Adjust prototype.
17655         * builtins.c (get_object_alignment): Return unsigned int,
17656         drop the align parameter.  Handle MEM_REF, MISALIGNED_INDIRECT_REF
17657         and TARGET_MEM_REF properly.
17658         (get_pointer_alignment): Adjust.
17659         * emit-rtl.c (get_mem_align_offset): Adjust comment.
17660         (set_mem_attributes_minus_bitpos): Adjust.
17661         * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
17662
17663 2010-08-10  Richard Guenther  <rguenther@suse.de>
17664
17665         * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
17666         (copy_prop_visit_assignment): Simplify.
17667         (copy_prop_visit_stmt): Also visit assignments from
17668         constants.
17669         (copy_prop_visit_phi_node): Use operand_equal_p.
17670
17671 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
17672
17673         * ipa-split.c (find_split_points): Free stack.
17674
17675 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
17676
17677         * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
17678         * tree.c (tree_node_kind): Delete corresponding entries.
17679
17680 2010-08-09  H.J. Lu  <hongjiu.lu@intel.com>
17681
17682         * alias.c (may_alias_p): Remove unused ret.
17683
17684 2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
17685
17686         * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
17687         alias_sets_conflict_p.
17688         (walk_mems_1): Moved from alias.c.
17689         (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
17690         in alias.c.
17691         (add_inter_loop_mem_dep): Use insns_may_alias_p now.
17692         * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
17693         * alias.c (walk_mems_2): Moved to ddg.c.
17694         (walk_mems_1): Ditto.
17695         (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
17696         to ddg.c.
17697         (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
17698         disambiguation.
17699         *(may_alias_p): New function to check whether two memory expression
17700         may alias or not. Currently used in buidling inter-iteration memory
17701         dependence.
17702         *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
17703         (insn_alias_sets_conflict_p): Removed
17704         *rtl.h (may_alias_p): New function prototype.
17705
17706 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
17707
17708         * tree.c (nreverse): Assert that we don't have a BLOCK.
17709
17710 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
17711
17712         * builtins.c (fold_builtin_next_arg): Use stdarg_p.
17713         * config/arm/arm.c (arm_get_pcs_model): Likewise.
17714         * config/avr/avr.c (init_cumulative_args): Likewise.
17715         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
17716         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
17717         * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
17718         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
17719         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
17720         * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
17721         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
17722         * dwarf2out.c (gen_subprogram_die): Likewise.
17723         * function.c (allocate_struct_function): Likewise.
17724         * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
17725         (deserves_ellipsis): Delete.
17726
17727 2010-08-09  Richard Guenther  <rguenther@suse.de>
17728
17729         * tree-ssa-copy.c (cached_last_copy_of): Remove.
17730         (valueize_val): New function.
17731         (get_last_copy_of): Remove.
17732         (set_copy_of_val): Simplify.
17733         (dump_copy_of): Likewise.
17734         (copy_prop_visit_cond_stmt): Use valueize_val.
17735         (copy_prop_visit_phi_node): Properly handle unvisited names.
17736         Drop code managing copy-of chains.
17737         (init_copy_prop): Adjust.
17738         (fini_copy_prop): Likewise.
17739         (execute_copy_prop): Remove obsolete comment.
17740
17741 2010-08-09  Richard Guenther  <rguenther@suse.de>
17742
17743         PR middle-end/44632
17744         * function.c (gimplify_parameters): Do not clear addressable
17745         bit of the original parameter.
17746
17747 2010-08-09  Richard Guenther  <rguenther@suse.de>
17748
17749         PR middle-end/45212
17750         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
17751         alignment from MEM_REF offset only if we took it from the
17752         base object.
17753
17754 2010-08-09  Eric Fisher  <joefoxreal@gmail.com>
17755
17756         * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
17757
17758 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
17759
17760         * c-tree.h (build_arg_info): Declare.
17761         * c-decl.c (build_arg_info): Define.
17762         (get_parm_info): Call it.  Delete initialization code.
17763         * c-parser.c (c_parser_parms_declarator): Likewise.
17764         (c_parser_parms_list_declaractor): Likewise.
17765
17766 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
17767
17768         * c-tree.h (c_arg_tag): Define.  Define a VEC containing it.
17769         (struct c_arg_info): Change type of tags field.
17770         * c-decl.c (grokdeclarator): Update for changed type of tags field.
17771         (get_parm_info): Likewise.
17772         (store_parm_decls_newstyle): Likewise.
17773
17774 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
17775
17776         * config/rs6000/rs6000.c (branch_island): Define.  Define a VEC of it.
17777         (branch_island_list): Delete.
17778         (branch_islands): Declare.
17779         (add_compiler_branch_island): Adjust for branch_islands instead of
17780         branch_island_list.
17781         (macho_branch_islands): Likewise.
17782         (no_previous_def): Likewise.
17783         (get_prev_label): Likewise.
17784
17785 2010-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17786
17787         PR boehm-gc/34544
17788         * gthr-posix.h (__gthread_start): Delete.
17789         (__gthread_active_init): Use pthread_default_stacksize_np instead of
17790         pthread_create to determine if hpux pthreads are active.
17791         * gthr-posix95.h (__gthread_start): Delete.
17792         (__gthread_active_init): Likewise use pthread_default_stacksize_np.
17793
17794 2010-08-08  Kai Tietz  <kai.tietz@onevision.com>
17795
17796         * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
17797         _WIN64 not expanded.
17798
17799 2010-08-07  Uros Bizjak  <ubizjak@gmail.com>
17800             H.J. Lu  <hongjiu.lu@intel.com>
17801
17802         PR target/45213
17803         * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
17804         to output 32bit SFmode immediate as 8 byte sign extended value.
17805
17806 2010-08-07  Marcus Shawcroft  <marcus.shawcroft@arm.com>
17807
17808         * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
17809         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
17810         (SUBWORD_BOOL_CAS): Likewise.
17811         (SUBWORD_SYNC_OP): Likewise.
17812         (SUBWORD_TEST_AND_SET): Likewise.
17813         (FETCH_AND_OP_WORD): Parenthesise INF_OP
17814         (SUBWORD_SYNC_OP): Likewise.
17815         (OP_AND_FETCH_WORD): Likewise.
17816
17817 2010-08-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
17818
17819         * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
17820         * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
17821         (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
17822         (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
17823         generic part.
17824         (cortex_a9_sched_adjust_cost): New function.
17825         (xscale_sched_adjust_cost): New function.
17826         * config/arm/arm-protos.h (struct tune_params): New field
17827         sched_adjust_cost.
17828         * config/arm/arm-cores.def: Adjust costs for cortex-a9.
17829
17830 2010-08-06  Eric Botcazou  <ebotcazou@adacore.com>
17831
17832         PR target/44942
17833         * config/sparc/sparc.c (function_arg_advance): Always take into account
17834         the padding, if any.
17835
17836 2010-08-06  Richard Guenther  <rguenther@suse.de>
17837
17838         * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
17839         (dump_lattice_value): Dump it.
17840         (get_default_value): Adjust.
17841         (get_constant_value): Likewise.
17842         (set_value_varying): Likewise.
17843         (set_lattice_value): Make sure to not go up the lattice
17844         with bitwise constant values.
17845         (get_value_for_expr): Handle ADDR_EXPRs.
17846         (value_to_double_int): New function.
17847         (get_value_from_alignment): Likewise.
17848         (do_dbg_cnt): Adjust.
17849         (ccp_lattice_meet): Handle partially constant values.
17850         (bit_value_unop_1): New function.
17851         (bit_value_binop_1): Likewise.
17852         (bit_value_unop): Likewise.
17853         (bit_value_binop): Likewise.
17854         (evaluate_stmt): Track partially constant values if
17855         flag_tree_bit_ccp is set.
17856         (ccp_fold_stmt): Dump if we folded a predicate.
17857         (ccp_visit_stmt): Adjust.
17858         * common.opt (ftree-bit-ccp): New flag.
17859         * doc/invoke.texi (ftree-bit-ccp): Document.
17860         * opts.c (decode_options): Enable bit-CCP at -O1.
17861
17862 2010-08-06  Alan Modra  <amodra@gmail.com>
17863
17864         * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
17865         and -mrelocatable-lib description.
17866
17867 2010-08-05  Bernd Schmidt  <bernds@codesourcery.com>
17868
17869         From Martin Thuresson  <martint@google.com>
17870         * postreload.c (reload_cse_simplify_operands): Use
17871         SET_REGNO_RAW instead of SET_REGNO.
17872         * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
17873         SET_REGNO.
17874         * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
17875         instead of SET_REGNO.
17876         * rtl.h (SET_REGNO_RAW): New macro.
17877
17878 2010-08-05  Eric Botcazou  <ebotcazou@adacore.com>
17879
17880         * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
17881         computations.  Fix formatting issues.
17882         (num_sign_bit_copies1): Likewise.
17883         (canonicalize_condition): Likewise.
17884
17885 2010-08-05  Richard Henderson  <rth@redhat.com>
17886
17887         * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
17888         (floor_log2): Use clz_hwi.
17889         (exact_log2): Use ctz_hwi.
17890         * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
17891         * builtins.c (fold_builtin_bitop): Use them.
17892         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
17893         * combine.c (get_pos_from_mask): Use ctz_hwi.
17894         * double-int.c (double_int_ctz): Likewise.
17895         * explow.c (force_reg): Likewise.
17896         * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
17897
17898 2010-08-05  Richard Henderson  <rth@redhat.com>
17899
17900         PR target/45189
17901         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
17902         the alignment constant is properly sign-extended.
17903
17904 2010-08-05  Richard Guenther  <rguenther@suse.de>
17905
17906         * expr.c (store_expr): Use emit_block_move only if both
17907         source and target are MEMs.  Use store_bit_field if only
17908         the target is a MEM.
17909
17910 2010-08-05  Richard Henderson  <rth@redhat.com>
17911
17912         PR debug/45188
17913         * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
17914         (INCOMING_RETURN_ADDR_RTX): Likewise.
17915         (dwarf2out_do_frame): Remove conditional compilation.
17916         (dwarf2out_frame_init): Likewise.
17917
17918 2010-08-05  Nicolas Setton  <setton@adacore.com>
17919
17920         * gcov.c (flag_display_progress): New static variable.
17921         (main): Display progress info on standard output if requested.
17922         (options): Add -d/--display-progress.
17923         (print_usage): Print them.
17924         (process_args): Handle them.
17925         * doc/gcov.texi: Document them.
17926
17927 2010-08-05  Martin Jambor  <mjambor@suse.cz>
17928
17929         * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
17930         (ipcp_insert_stage): Redirect only edges not flagged with
17931         indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
17932         discovered constants.
17933
17934 2010-08-05  Martin Jambor  <mjambor@suse.cz>
17935
17936         * ipa-prop.h (enum ipa_lattice_type): Changed comments.
17937         (struct ipa_param_descriptor): New fields types and
17938         cannot_devirtualize.
17939         (ipa_param_cannot_devirtualize_p): New function.
17940         (ipa_param_types_vec_empty): Likewise.
17941         (ipa_make_edge_direct_to_target): Declare.
17942         * ipa-cp.c: Fixed first stage driver name in initial comment,
17943         described devirtualization there too.
17944         (ipcp_analyze_node): Call ipa_analyze_params_uses.
17945         (ipcp_print_all_lattices): Print devirtualization info.
17946         (ipa_set_param_cannot_devirtualize): New function.
17947         (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
17948         lattice to BOTTOM.
17949         (ipcp_init_stage): Merged into...
17950         (ipcp_generate_summary): ...its caller.
17951         (ipcp_change_tops_to_bottom): Also process type lists.
17952         (ipcp_add_param_type): New function.
17953         (ipcp_copy_types): Likewise.
17954         (ipcp_propagate_types): Likewise.
17955         (ipcp_propagate_stage): Also propagate types.
17956         (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
17957         Also return true if propagated types require it.
17958         (ipcp_update_callgraph): Dump redirection info.
17959         (ipcp_process_devirtualization_opportunities): New function.
17960         (ipcp_const_param_count): Include known type information.
17961         (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
17962         on new node.  Fixed formatting.
17963         * ipa-prop.c (make_edge_direct_to_target): Renamed to
17964         ipa_make_edge_direct_to_target and changed all callers.  Made
17965         externally visible.
17966         (ipa_node_duplication_hook): Duplicate types vector.
17967         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
17968         redirect outgoing calls for which we can't get a decl from the
17969         statement.  Check that we can get a decl from the call statement.
17970         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
17971         ipa_analyze_params_uses only when ipa-cp is disabled.
17972         * tree-inline.c (get_indirect_callee_fndecl): Removed.
17973         (expand_call_inline): Do not call get_indirect_callee_fndecl.
17974         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
17975         * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
17976
17977 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
17978
17979         * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
17980         temporary. Emit move from temporary to accum, so REG_EQUAL note will
17981         be attached to this insn in correct mode.
17982
17983 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
17984
17985         * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
17986         using REGNO of base_reg directly.
17987
17988 2010-08-05  Jie Zhang  <jie@codesourcery.com>
17989
17990         PR tree-optimization/45144
17991         * tree-sra.c (type_consists_of_records_p): Return false
17992         if the record contains bit-field.
17993
17994 2010-08-04  Richard Henderson  <rth@redhat.com>
17995
17996         * config/i386/i386.c (struct ix86_frame): Remove padding and
17997         to_allocate members.
17998         (ix86_compute_frame_layout): Don't store them.
17999         (ix86_can_use_return_insn_p): Use a more direct and more obviously
18000         correct condition for the position of the stack pointer.
18001         (ix86_expand_prologue): Compute remaining stack allocation based
18002         on the ultimate stack pointer offset.
18003         (ix86_expand_epilogue): Use more obvious expressions testing for
18004         the stack pointer already pointing to the saved registers.
18005
18006         * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
18007         duplication deconstructing the frame pointer.  Simplify
18008         deallocation of the local stack frame.
18009
18010         * reg-notes.def (CFA_EXPRESSION): New.
18011         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
18012         (dwarf2out_frame_debug_cfa_expression): New.
18013         (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
18014
18015         * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
18016         * config/i386/i386.c (ix86_expand_prologue): Set it.
18017         (ix86_expand_epilogue): Clear it.
18018         (ix86_emit_save_reg_using_mov): For registers saved in a realigned
18019         context, add REG_CFA_EXPRESSION notes.
18020
18021         * config/i386/i386.h (struct machine_frame_state): Rename from
18022         machine_cfa_state.  Add members tracking SP and FP regardless
18023         of the current CFA register.
18024         (ix86_cfa_state): Remove.
18025         * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
18026         and sse_reg_save_offset members.
18027         (ix86_compute_frame_layout): Set them.
18028         (gen_push): Increment sp_offset too.
18029         (choose_baseaddr_len, choose_baseaddr): New.
18030         (ix86_emit_save_reg_using_mov): New.
18031         (ix86_emit_save_regs_using_mov): Use it.
18032         (ix86_emit_save_sse_regs_using_mov): Likewise.
18033         (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
18034         compare vs the saved red_zone_offset.
18035         (pro_epilogue_adjust_stack): Adjust sp_offset.
18036         (ix86_adjust_stack_and_probe): Likewise.
18037         (ix86_expand_prologue): Set up, use, and validate the new
18038         frame_state_info members.  Use gen_frame_mem.
18039         (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
18040         (ix86_emit_restore_reg_using_pop): Likewise.  Use and update the
18041         new frame_state_info members.
18042         (ix86_emit_leave): Likewise.
18043         (ix86_emit_restore_regs_using_mov): Likewise.  Don't check for
18044         out-of-range stack pointer offsets here.
18045         (ix86_emit_restore_sse_regs_using_mov): Likewise.
18046         (ix86_expand_epilogue): Use and validate the new frame_state_info
18047         members.  Break up and simplify the logic selecting the
18048         restore_regs_via_mov code path.  Ensure that there will be no
18049         out-of-range stack pointer offsets.
18050
18051         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
18052
18053         * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
18054         argument name to reflect the expected tree; fix indentation.
18055         (ix86_asm_output_function_label): Output the entire 32-bit
18056         ms_hook here as bytes ...
18057         (ix86_expand_prologue): ... not here as insns.  Attach the
18058         unwind info for the ms_hook to a blockage insn.
18059         (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
18060         (ix86_ms_bitfield_layout_p): Fix indentation.
18061         * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
18062
18063         * config/i386/i386.c (ix86_using_red_zone): New.
18064         (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
18065         ix86_expand_prologue, ix86_force_to_memory): Use it.
18066
18067         * config/i386/i386.c (ix86_expand_prologue): Simplify logic
18068         saving the int registers.
18069
18070         * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
18071         and DWARF2_UNWIND_INFO conditional compilation.
18072
18073 2010-08-04  Richard Henderson  <rth@redhat.com>
18074
18075         PR debug/45171
18076         * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
18077         an is_naming_typedef_decl.
18078
18079 2010-08-04  Bernd Schmidt  <bernds@codesourcery.com>
18080
18081         PR rtl-optimization/45162
18082         * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
18083         * dce.c (word_dce_process_block): Likewise.
18084
18085 2010-08-04  Steve Ellcey  <sje@cup.hp.com>
18086
18087         PR target/44583
18088         * config/ia64/constraints.md (Z): New.
18089         * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
18090         (xfreg_or_signed_fp01_operand): New.
18091         * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
18092         with fr_reg_or_signed_fp01_operand and constraint G with Z.
18093         (subsf3): Ditto.
18094         (*maddsf4): Ditto.
18095         (*msubsf4): Ditto.
18096         (adddf3): Ditto.
18097         (adddf3_trunc): Ditto.
18098         (subdf3): Ditto.
18099         (*subdf3_trunc): Ditto.
18100         (*madddf4): Ditto.
18101         (*madddf4_trunc): Ditto.
18102         (*msubdf4): Ditto.
18103         (*msubdf4_trunc): Ditto.
18104         (addxf3): Replace xfreg_or_fp01_operand with
18105         xfreg_or_signed_fp01_operand and constraint G with Z.
18106         (*addxf3_truncsf): Ditto.
18107         (*addxf3_truncdf): Ditto.
18108         (subxf3): Ditto.
18109         (*subxf3_truncsf): Ditto.
18110         (*subxf3_truncdf): Ditto.
18111         (*maddxf4): Ditto.
18112         (*maddxf4_truncsf): Ditto.
18113         (*maddxf4_truncdf): Ditto.
18114         (*msubxf4): Ditto.
18115         (*msubxf4_truncsf): Ditto.
18116         (*msubxf4_truncdf): Ditto.
18117
18118 2010-08-04  Richard Guenther  <rguenther@suse.de>
18119
18120         * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
18121         if either alias-set is zero.
18122
18123 2010-08-04  Richard Guenther  <rguenther@suse.de>
18124
18125         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
18126         * tree-ssa-ccp.c: ... here.
18127         * tree-ssa-copy.c: ... and here.
18128         * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
18129         value_range_t): Move ...
18130         * tree-vrp.c: ... here.
18131         * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
18132         (substitute_and_fold): Adjust prototype.
18133         * tree-ssa-propagate.c (replace_uses_in): Adjust.
18134         (replace_phi_args_in): Likewise.
18135         (substitute_and_fold): Take callback to query lattice instead
18136         of pointer to lattice.  Replace SSA name defs with lattice
18137         values first.
18138         * tree-ssa-ccp.c (ccp_finalize): Adjust.
18139         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
18140         (get_value): New function.
18141         (fini_copy_prop): Adjust.
18142         * tree-vrp.c (vrp_finalize): Adjust.
18143
18144 2010-08-04  Richard Guenther  <rguenther@suse.de>
18145
18146         PR middle-end/45176
18147         * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
18148         points-to set for original MEM_REF.
18149
18150 2010-08-04  Richard Guenther  <rguenther@suse.de>
18151
18152         * tree-ssa-ccp.c (get_constant_value): New function.
18153         (get_rhs_assign_op_for_ccp): Remove.
18154         (valueize_op): New function.
18155         (ccp_fold): Use get_constant_value and valueize_op.
18156         (fold_const_aggregate_ref): Likewise.
18157         (ccp_fold_stmt): Likewise.
18158         (visit_assignment): Simplify.
18159
18160 2010-08-04  Richard Guenther  <rguenther@suse.de>
18161
18162         * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
18163         * double-int.h (double_int_ctz): Declare.
18164         * double-int.c (double_int_ctz): New function.
18165
18166 2010-08-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
18167
18168         * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
18169         Define.
18170         picochip_expand_movmemhi : Expand movmem pattern.
18171         * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
18172         Declare.
18173         * config/picochip/picochip.md (movmemhi) : New pattern.
18174
18175 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
18176
18177         * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
18178
18179 2010-08-03  Bernd Schmidt  <bernds@codesourcery.com>
18180
18181         * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
18182         NEG as operand of a MULT by merging it with the other operand.
18183         * combine.c (make_compound_operation): Use trunc_int_for_mode when
18184         generating a MULT with constant.  Canonicalize PLUS and MINUS involving
18185         MULT.
18186         * config/arm/constraints.md (M): Examine only 32 bits of a
18187         HOST_WIDE_INT.
18188         * config/arm/predicates.md (power_of_two_operand): Likewise.
18189
18190 2010-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18191
18192         * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
18193         non-NOTE insns.
18194
18195 2010-08-03  Jan Hubicka  <jh@suse.cz>
18196
18197         * ipa-split.c (struct split_point): Add split_part_set_retval.
18198         (find_retval): Forward declare.
18199         (test_nonssa_use, mark_nonssa_use): Special case return by reference.
18200         (consider_split): Compute current->split_part_set_retval.
18201         (visit_bb): Do not look into return value.
18202         (split_function): Handle !split_part_set_retval
18203
18204 2010-08-03  Martin Jambor  <mjambor@suse.cz>
18205
18206         * tree-sra.c (completely_scalarize_record): New parameter REF, create
18207         its own access->expr intead of using build_ref_for_offset.
18208
18209 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
18210
18211         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
18212         * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
18213         * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
18214         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
18215         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
18216         * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
18217         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
18218         DEFAULT_SWITCH_TAKES_ARG.
18219         * config/rx/rx.opt (-patch=): Remove option.
18220         * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
18221         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
18222         * doc/invoke.texi (RX Options): Remove -patch=.
18223         * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
18224         (option_map): Remove --profile-blocks, --quiet and --silent.
18225
18226 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
18227
18228         * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
18229         * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
18230         (ix86_expand_branch): Add op0 and op1 arguments.  Do not access
18231         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
18232         Update calls to ix86_expand_compare and ix86_expand_branch.
18233         (ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
18234         ix86_expand_compare.
18235         (ix86_expand_compare): Add op0 and op1 arguments.  Do not access
18236         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
18237         Make static.
18238         (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
18239         and ix86_compare_op1.  Update calls to ix86_expand_compare.
18240         (ix86_expand_int_movcc): Ditto.
18241         (ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
18242         * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
18243         (ix86_expand_setcc): Ditto.
18244         (ix86_expand_compare): Remove prototype.
18245         * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
18246         ix86_compare_op0 and ix86_compare_op1.  Update calls
18247         to ix86_expand_branch to directly pass operands[1] and operands[2].
18248         (cbranchxf4): Ditto.
18249         (cbranch<MODEF:mode>4): Ditto.
18250         (cbranchcc4): Ditto.
18251         (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
18252         Update calls to ix86_expand_setcc to directly pass operands[2] and
18253         operands[3].
18254         (cstorexf4): Ditto.
18255         (cstore<MODEF:mode>4): Ditto.
18256         (cstorecc4): Ditto.
18257
18258 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
18259
18260         PR target/45063
18261         * caller-save.c (save_call_clobbered_regs): Remove regs from
18262         hard_regs_saved when they are set.
18263
18264 2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
18265
18266         PR target/41089
18267         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
18268         as volatile.
18269
18270 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
18271
18272         * common.opt (ftree-loop-distribute-patterns): New.
18273         * invoke.texi (-ftree-loop-distribute-patterns): Documented.
18274         * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
18275         at -O3.
18276         * tree-data-ref.c (stores_zero_from_loop): New.
18277         * tree-data-ref.h (stores_zero_from_loop): Declared.
18278         * tree-loop-distribution.c (tree_loop_distribution): Call
18279         stores_zero_from_loop.
18280         (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
18281
18282 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
18283
18284         * postreload.c (reload_cse_simplify_operands): Take attribute enabled
18285         into account.
18286
18287         * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
18288         * config/arm/arm.c (thumb1_code): New variable.
18289         (arm_override_options): Set it.
18290         (thumb1_final_prescan_insn): Keep track of condition code status.
18291         (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
18292         jumps that depend on them.
18293         * config/arm/arm.h (thumb1_code): Declare variable.
18294         (struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
18295         members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
18296         thumb1_cc_mode.
18297         (CC_STATUS_INIT): New macro.
18298         * config/arm/constraints.md (Pd): New constraint.
18299         * config/arm/predicates.md (noov_comparison_operator): New predicate.
18300         * config/arm/arm.md (is_thumb1): New define_attr.
18301         (conds): Set default to "clob" when generating Thumb1 code.
18302         (thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
18303         code are set.  Use two-operand assembly syntax.
18304         (thumb1_subsi3_insn): Condition codes are set.  Now a properly named
18305         pattern.
18306         (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
18307         codes are set.  Use two-operand assembly syntax.
18308         (zero_extendhisi splitter): Remove constraints.
18309         (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
18310         thumb1_movsf_insn): Set conds attribute as appropriate.
18311         (cbranchsi4_insn): Use condition code status from struct
18312         machine_function to determine whether the comparison can be eliminated.
18313         Discourage the alternative using high registers.
18314         (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
18315         orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
18316         bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
18317         subsi3_cbranch): Delete.
18318         (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
18319         one subtract and one cbranch insn.
18320
18321         * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
18322         thumb2_movdf_soft_insn): Delete patterns.
18323         * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
18324         arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
18325         (pool_range, neg_pool_range): Use them to define defaults.
18326         (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
18327         and allow for TARGET_32BIT.
18328
18329         PR target/40457
18330         * config/arm/arm.h (arm_regs_in_sequence): Declare.
18331         * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
18332         load_multiple_sequence, store_multiple_sequence): Delete
18333         declarations.
18334         (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
18335         declarations.
18336         * config/arm/ldmstm.md: New file.
18337         * config/arm/arm.c (arm_regs_in_sequence): New array.
18338         (load_multiple_sequence): Now static.  New args SAVED_ORDER,
18339         CHECK_REGS.  All callers changed.
18340         If SAVED_ORDER is nonnull, copy the computed order into it.
18341         If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
18342         (store_multiple_sequence): Now static.  New args NOPS_TOTAL,
18343         SAVED_ORDER, REG_RTXS and CHECK_REGS.  All callers changed.
18344         If SAVED_ORDER is nonnull, copy the computed order into it.
18345         If CHECK_REGS is false, don't sort REGS.  Set up REG_RTXS just
18346         like REGS.  Handle Thumb mode.
18347         (arm_gen_load_multiple_1): New function, broken out of
18348         arm_gen_load_multiple.
18349         (arm_gen_store_multiple_1): New function, broken out of
18350         arm_gen_store_multiple.
18351         (arm_gen_multiple_op): New function, with code from
18352         arm_gen_load_multiple and arm_gen_store_multiple moved here.
18353         (arm_gen_load_multiple, arm_gen_store_multiple): Now just
18354         wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
18355         changed.
18356         (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
18357         * config/arm/predicates.md (commutative_binary_operator): New.
18358         (load_multiple_operation, store_multiple_operation): Handle more
18359         variants of these patterns with different starting offsets.  Handle
18360         Thumb-1.
18361         * config/arm/arm.md: Include "ldmstm.md".
18362         (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
18363         ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
18364         stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
18365         peepholes): Delete.
18366         * config/arm/ldmstm.md: New file.
18367         * config/arm/arm-ldmstm.ml: New file.
18368
18369         * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
18370         if statement which adds extra costs to frame-related expressions.
18371
18372 2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18373
18374         * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
18375
18376 2010-08-01  Uros Bizjak  <ubizjak@gmail.com>
18377
18378         PR target/45142
18379         * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
18380         alternative 2.
18381         (vec_set<mode>_0 splitter): Use SSEMODE4S mode iterator to also
18382         split V4SI operands.
18383
18384 2010-08-01  Anatoly Sokolov  <aesok@post.ru>
18385
18386         * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
18387         * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
18388         * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
18389         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
18390
18391 2010-07-31  Kai Tietz  <kai.tietz@onevision.com>
18392
18393         * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
18394         LOCAL_INCLUDE_DIR.
18395
18396 2010-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
18397
18398         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
18399         used in the call to optab_for_tree_code.  Fix the second
18400         is_widening_mult_p call.  Check that both unwidened operands
18401         have the same sign.
18402
18403 2010-07-31  John Tytgat  <John.Tytgat@aaug.net>
18404
18405         * config/arm/arm.c (arm_function_arg): Remove superfluous test.
18406
18407 2010-07-31  Anatoly Sokolov  <aesok@post.ru>
18408
18409         * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
18410
18411 2010-07-30  DJ Delorie  <dj@redhat.com>
18412
18413         * config/rx/predicates.md (rx_constshift_operand): New.
18414         * config/rx/rx.md (zs_cond): New.
18415         (cbranchsi4): Remove mode.
18416         (*cbranchsi4_<code>): Likewise.
18417         (*tstbranchsi4_<code>): New.
18418         (*tstbranchsi4r_<code>): New.
18419         (*tstbranchsi4m_eq): New.
18420         (*tstbranchsi4m_ne): New.
18421         (cbranchsf4): Remove mode.
18422         (*cbranchsf4_<code>): Likewise.
18423
18424 2010-07-30  Bernd Schmidt  <bernds@codesourcery.com>
18425
18426         * rtlanal.c (simplify_subreg_regno): Don't treat
18427         HARD_FRAME_POINTER_REGNUM specially.
18428
18429 2010-07-30  Joseph Myers  <joseph@codesourcery.com>
18430
18431         * common.opt (-G): Don't define option here.
18432         * config/g.opt: New.
18433         * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
18434         rs6000/powerpc and score targets.
18435         * opts.c (common_handle_option): Don't handle -G here.
18436         * config/alpha/alpha.c (alpha_handle_option): Handle -G.
18437         * config/frv/frv.c (frv_handle_option): Handle -G.
18438         * config/ia64/ia64.c (ia64_handle_option): Handle -G.
18439         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
18440         * config/m32r/m32r.c (m32r_handle_option): Handle -G.
18441         * config/mips/mips.c (mips_handle_option): Handle -G.
18442         * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
18443         * config/score/score.c (score_handle_option): Handle -G.
18444
18445 2010-07-30  Anatoly Sokolov  <aesok@post.ru>
18446
18447         * config/mmix/mmix.c: Include basic-block.h.
18448
18449 2010-07-30  Jakub Jelinek  <jakub@redhat.com>
18450
18451         PR debug/45055
18452         PR rtl-optimization/45137
18453         * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
18454         prototypes.
18455         * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
18456         New functions.
18457         * combine.c (next_nonnote_nondebug_insn): Removed.
18458         * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
18459         * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
18460         * sched-deps.c (sched_analyze_insn): Likewise.
18461         (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
18462         * rtlanal.c (canonicalize_condition): Likewise.
18463         * postreload.c (reload_combine_recognize_pattern): Likewise.
18464         (reload_cse_move2add): Use next_nonnote_nondebug_insn.
18465
18466 2010-07-29  Uros Bizjak  <ubizjak@gmail.com>
18467
18468         * config/i386/i386.md (int_cond): Remove code iterator.
18469         (fp_cond): Ditto.
18470         (cbranch<mode>4): Use ordered_comparison_operator predicate
18471         for operator0.
18472         (cstore<mode>4): Ditto for operator1.
18473         (mov<SWIM:mode>cc and corresponding splitter): Ditto.
18474         (add<mode>cc): ditto.
18475
18476 2010-07-30  Richard Guenther  <rguenther@suse.de>
18477
18478         PR middle-end/45141
18479         * expr.c (expand_expr_real_1): Check for not handled base address.
18480
18481 2010-07-30  Richard Guenther  <rguenther@suse.de>
18482
18483         * ipa-prop.c (ipa_modify_formal_parameters): Use
18484         build_distinct_type_copy.
18485
18486 2010-07-30  Anthony Green  <green@moxielogic.com>
18487
18488         * config/moxie/rtems.h: New file.
18489         * config.gcc: Add moxie-rtems support.
18490
18491 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
18492
18493         * dce.c (run_word_dce): Take flag_dce into account.  Clear and restore
18494         df flags as in run_fast_df_dce.
18495
18496 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
18497
18498         Revert:
18499         2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
18500
18501         * rtl.def (NOTE): Swap operands 4 and 5.
18502         * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
18503         NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
18504         Adjust accordingly.
18505         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
18506
18507 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
18508
18509         PR debug/45110
18510         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
18511         (gen_formal_types_die): Add DW_AT_object_pointer in methods.
18512         (gen_subprogram_die): Likewise.  Remove it when removing declaration's
18513         formal parameters.
18514         (gen_decl_die): Change return type to dw_die_ref, return what
18515         gen_formal_parameter_die returned.
18516
18517 2010-07-29  Martin Jambor  <mjambor@suse.cz>
18518
18519         * dbgcnt.def (eipa_sra): New counter.
18520         * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
18521
18522 2010-07-29  Xinliang David Li  <davidxl@google.com>
18523
18524         PR bootstrap/45119
18525         * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
18526         in revision 162652.
18527
18528 2010-07-29  Richard Guenther  <rguenther@suse.de>
18529
18530         * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
18531         (TV_TREE_STORE_CCP): Likewise.
18532         (TV_TREE_REDPHI): Likewise.
18533
18534 2010-07-29  Richard Guenther  <rguenther@suse.de>
18535
18536         * double-int.h (double_int_and_not): New function.
18537         * combine.c (try_combine): Use it.
18538         * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
18539
18540 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
18541
18542         PR rtl-optimization/42575
18543         * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
18544         Argument AU removed.  All callers changed.  Ignore artificial refs.
18545         Use return value of df_word_lr_simulate_defs to decide whether an insn
18546         is necessary.
18547         (fast_dce): Rename arg to WORD_LEVEL.
18548         (run_word_dce): Renamed from rest_of_handle_fast_byte_dce.  No longer
18549         static.
18550         (pass_fast_rtl_byte_dce): Delete.
18551         * dce.h (run_word_dce): Declare.
18552         * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
18553         All callers changed.  Simplify code to only deal with two-word regs.
18554         * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
18555         (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
18556         (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
18557         (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
18558         (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
18559         (df_word_lr_mark_ref): Declare.
18560         (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
18561         df_word_lr_simulate_uses): Declare or rename from byte variants.
18562         (df_byte_lr_simulate_artificial_refs_at_top,
18563         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
18564         df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
18565         declarations.
18566         (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
18567         (enum df_mm): Delete.
18568         * df-byte-scan.c: Delete file.
18569         * df-problems.c (df_word_lr_problem_data): Renamed from
18570         df_byte_lr_problem_data, all members deleted except for
18571         WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS.  Uses changed.
18572         (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
18573         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
18574         df_byte_lr_get_regno_len, df_byte_lr_check_regs,
18575         df_byte_lr_confluence_0): Delete functions.
18576         (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
18577         callers changed.
18578         (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
18579         Don't initialize members that were deleted, don't try to discover data
18580         about registers.  Ignore hard regs.
18581         (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
18582         (df_word_lr_mark_ref): New function.
18583         (df_word_lr_bb_local_compute): Renamed from
18584         df_byte_bb_lr_local_compute; all callers changed.  Use
18585         df_word_lr_mark_ref.  Assert that artificial refs don't include
18586         pseudos.  Ignore hard registers.
18587         (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
18588         Assert that exit block uses don't contain pseudos.
18589         (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
18590         (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
18591         callers changed.  Ignore hard regs.
18592         (df_word_lr_transfer_function): Renamed from
18593         df_byte_lr_transfer_function; all callers changed.
18594         (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
18595         (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
18596         changed.
18597         (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
18598         callers changed.
18599         (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
18600         confluence operator 0 set to NULL.
18601         (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
18602         callers changed.
18603         (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
18604         Return bool, true if bitmap changed or insn otherwise necessary.
18605         All callers changed.  Simplify using df_word_lr_mark_ref.
18606         (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
18607         all callers changed.  Simplify using df_word_lr_mark_ref.
18608         * lower-subreg.c: Include "dce.h"
18609         (decompose_multiword_subregs): Call run_word_dce if df available.
18610         * Makefile.in (lower-subreg.o): Adjust dependencies.
18611         (df-byte-scan.o): Delete.
18612         * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
18613
18614 2010-07-29  Richard Guenther  <rguenther@suse.de>
18615
18616         * tree.c (build_vector): Assert that the vector constant
18617         has enough elements.
18618         (build_vector_from_ctor): Pad with trailing zeros.
18619
18620 2010-07-29  Richard Guenther  <rguenther@suse.de>
18621
18622         PR tree-optimization/45120
18623         * tree-ssa-structalias.c (get_constraint_for_component_ref):
18624         Handle offset in DEREFs properly.
18625         (get_constraint_for_1): Handle MEM_REF offset properly.
18626
18627 2010-07-29  Richard Guenther  <rguenther@suse.de>
18628
18629         PR middle-end/45034
18630         * convert.c (convert_to_integer): Always use an unsigned
18631         type for narrowed negate and bitwise not.
18632
18633 2010-07-29  Ira Rosen  <irar@il.ibm.com>
18634
18635         * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
18636         to outer loop when creating reduction epilogue for double reduction,
18637         and switch back to the inner loop when updating the phi nodes.
18638         Update uses of outer loop exit phi nodes in double reduction (instead
18639         of uses of reduction).
18640
18641 2010-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
18642
18643         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
18644         popcount on power7 and parity on power6 systems.
18645         (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
18646         (rs6000_emit_parity): Add support for power6 prtyd/prtyw
18647         instructions.
18648
18649         * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
18650         (UNSPEC_PARITY): Ditto.
18651         (SFDF): New iterator for SF/DF.
18652         (rreg2): New mode attribute for floating register constraint.
18653         (TARGET_FLOAT): New mode attribute for whether single/double float
18654         is supported.
18655         (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
18656         pattern.
18657         (parity<mode>2_cmpb): New insn for parity on power6 and newer
18658         machines.
18659         (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
18660         pattern.  Add support for fcpsgn instruction added in power6.
18661         (copysignsf3): Delete.
18662         (copysigndf3): Delete.
18663         (copysign<mode>3_fcpsgn): New insn to generate fcpsgn.  Use UNSPEC
18664         instead of if_then_else in RTL to avoid problems with -0.
18665
18666         * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
18667         of if_then_else to mirror scalar code.
18668         (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
18669         rs6000.md.
18670
18671         * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
18672         instead of if_then_else.
18673
18674 2010-07-28  Xinliang David Li  <davidxl@google.com>
18675
18676         * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
18677         (dump_cand): Dump var_before/after.
18678         (htab_inv_expr_eq): New function.
18679         (htab_inv_expr_hash): New function.
18680         (tree_ssa_iv_optimize_init): Support pseudo invariants.
18681         (add_candidate_1): consider base type precision.
18682         (set_use_iv_cost): New parameter.
18683         (adjust_setup_cost): Use profile information.
18684         (get_address_cost): Do not hard code width in computing address
18685         offset limits.
18686         (compare_aff_trees): New function.
18687         (get_loop_invariant_expr_id): New function.
18688         (get_computation_cost_at): New parameter and use profile information.
18689         (get_computation_cost): New parameter.
18690         (determine_use_iv_cost_generic): Pass new parameter.
18691         (determine_use_iv_cost_address): Ditto.
18692         (determine_use_iv_cost_condition): Ditto.
18693         (autoinc_possible_for_pair): Ditto.
18694         (determine_use_iv_costs): More dumps.
18695         (iv_ca_get_num_inv_exprs): New function.
18696         (iv_ca_recount_cost): Consider loop invariants in register pressure
18697         cost.
18698         (iv_ca_add_use): New parameter.
18699         (iv_ca_dump): Better dumping.
18700         (iv_ca_extend): New parameter.
18701         (try_add_cand_for): Attempt to get better partial solution.
18702         (try_improve_iv_set): Pass new parameter to iv_ca_extend.
18703         (create_new-ivs): More dumps.
18704         (rewrite_use_compare): Ditto.
18705         (free_loop_data): More cleanup.
18706         (treee_ssa_iv_optimize_finalize): Ditto.
18707
18708 2010-07-28  Kai Tietz  <kai.tietz@onevision.com>
18709
18710         * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
18711         * config/i386/i386.c (ix86_profile_before_prologue): New.
18712         (override_options): Add special handling for -mfentry.
18713         (ix86_function_regparm): Likewise.
18714         (ix86_function_sseregparm): Likewise.
18715         (ix86_frame_pointer_required): Likewise.
18716         (ix86_expand_prologue): Check for ms_hook_prologue.
18717         (x86_function_profiler): Adjust mcount output.
18718         (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
18719         * config/i386/i386.opt (mfentry): New.
18720         * doc/invoke.texi (mfentry): Add documentation.
18721         * doc/tm.texi: Regenerated..
18722         * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
18723         * final.c (final_start_function): Replace macro
18724         PROFILE_BEFORE_PROLOGUE by target hook.
18725         * function.c (thread_prologue_and_epilogue_insns): Likewise.
18726         * target.def (profile_before_prologue): New hook.
18727         * targhooks.c (default_profile_before_prologue): New.
18728         * targhooks.h (default_profile_before_prologue): New.
18729
18730 2010-07-28  Jakub Jelinek  <jakub@redhat.com>
18731
18732         PR debug/45105
18733         * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
18734
18735         PR debug/45103
18736         * dwarf2out.c (dwarf2out_var_location): Always consider
18737         NOTE_DURING_CALL_P notes, even when not followed by real instructions.
18738
18739 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
18740
18741         PR rtl-optimization/45107
18742         * gcse.c (hash_scan_set): Use max_distance for gcse-las.
18743
18744 2010-07-28  Richard Guenther  <rguenther@suse.de>
18745
18746         * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
18747         (set_lattice_value): Do not query an old default value.
18748         (get_value_for_expr): New function.  Properly canonicalize
18749         float values.
18750         (ccp_visit_phi_node): Use it.
18751
18752 2010-07-28  Chung-Lin Tang  <cltang@codesourcery.com>
18753
18754         * config/arm/arm.c (arm_pcs_default): Remove static.
18755         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
18756         __ARM_PCS_VFP to indicate soft/hard-float calling convention.
18757         (arm_pcs_default): Declare.
18758
18759 2010-07-28  Iain Sandoe  <iains@gcc.gnu.org>
18760
18761         * config/rs6000/rs6000.c (rs6000_override_options):
18762         Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
18763         ... to darwin_rs6000_override_options.
18764         (rs6000_return_in_memory): Update preceding comment for darwin
18765         64 bit ABI.  Use TARGET_MACHO inline.
18766         (rs6000_darwin64_struct_check_p): New.
18767         (function_arg_advance): Use rs6000_darwin64_struct_check_p.
18768         (function_arg): Likewise.
18769         (rs6000_arg_partial_bytes): Likewise.
18770         (rs6000_function_value): Likewise.
18771
18772 2010-07-28  Andi Kleen  <ak@linux.intel.com>
18773
18774         * lto-opts.c (lto_file_read_options): Add loop over all inputs.
18775
18776 2010-07-28  Richard Guenther  <rguenther@suse.de>
18777
18778         PR middle-end/44903
18779         * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
18780         targets try harder to not generate unaligned accesses.
18781
18782 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
18783
18784         PR rtl-optimization/45101
18785         * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
18786         for gcse-las.
18787
18788 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
18789
18790         PR tree-optimization/44885
18791         * tree-sra.c (find_param_candidates): Skip pointer types to arrays
18792         with non-aliased component.
18793
18794 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
18795
18796         * config/darwin-driver.c (SWITCH_TAKES_ARG,
18797         WORD_SWITCH_TAKES_ARG): Remove.
18798         * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
18799         * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
18800         DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
18801         (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
18802         definitions from gcc.c.
18803         * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
18804         defaults.h.
18805         * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
18806         Move to defaults.h.
18807         * opts-common.c: Include tm.h.
18808         (decode_cmdline_option): Use SWITCH_TAKES_ARG and
18809         WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
18810         Handle more than one argument.  Set canonical_option_num_elements.
18811         (decode_cmdline_options_to_array): Set
18812         canonical_option_num_elements and trailing elements of
18813         canonical_option.
18814         * opts.h (struct cl_decoded_option): Allow four elements in
18815         canonical_option.  Add field canonical_option_num_elements.
18816         * Makefile.in (opts-common.o): Update dependencies.
18817
18818 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
18819
18820         PR middle-end/44790
18821         PR middle-end/44993
18822         * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change.  Make
18823         sure the base has address_mode before adding the offset.
18824
18825 2010-07-27  Xinliang David Li  <davidxl@google.com>
18826
18827         * tree-flow.h (create_mem_ref): Add one new parameter.
18828         * tree-ssa-address.c (create_mem_ref): New parameter.
18829         (addr_to_parts): Ditto.
18830         (move_variant_to_index): New function.
18831         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
18832
18833 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
18834
18835         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
18836         4 and 5.
18837         * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
18838         NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
18839         NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
18840         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
18841         CODE_LABELs and NOTEs.
18842         * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
18843         * combine.c (try_combine): Likewise.
18844         * ira.c (setup_prohibited_mode_move_regs): Likewise.
18845         * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
18846
18847 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
18848
18849         * coretypes.h (struct cl_option_handlers): Declare.
18850         * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
18851         * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
18852         * langhooks-def.h (lhd_handle_option): Declare.
18853         (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
18854         * langhooks.c (lhd_handle_option): New.
18855         * langhooks.h (struct lang_hooks): Update prototype and return
18856         value type of handle_option hook.
18857         * optc-gen.awk: Generate target_flags_explicit definition for the
18858         driver.
18859         * opts-common.c: Include diagnostic.h.
18860         (handle_option): Move from opts.c.  Update prototype and return
18861         value type.  Use handlers structure.
18862         (read_cmdline_option): Move from opts.c.  Update prototype.  Use
18863         handlers structure.
18864         (set_option): Move from opts.c.
18865         * opts.c (common_handle_option): Update prototype and return value
18866         type.  Update calls to handle_option and enable_warning_as_error.
18867         (unknown_option_callback, post_handling_callback,
18868         lang_handle_option, target_handle_option): New.
18869         (handle_option, read_cmdline_option): Move to opts-common.c.
18870         (read_cmdline_options): Update prototype.  Update call to
18871         read_cmdline_option.
18872         (decode_options): Initialize and use handlers structure.
18873         (set_option): Move to opts-common.c.
18874         (enable_warning_as_error): Update prototype.  Update call to
18875         handle_option.
18876         * opts.h (struct cl_option_handler_func, struct
18877         cl_option_handlers): New.
18878         (handle_option, enable_warning_as_error): Update prototypes.
18879         (read_cmdline_option): Declare.
18880         * Makefile.in (opts-common.o): Update dependencies.
18881
18882 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
18883
18884         * config/arm/arm.c (params.h): Include.
18885         (arm_override_options): Tune gcse-unrestricted-cost.
18886         * config/arm/t-arm (arm.o): Define dependencies.
18887
18888 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
18889
18890         PR target/42495
18891         PR middle-end/42574
18892         * basic-block.h (get_dominated_to_depth): Declare.
18893         * dominance.c (get_dominated_to_depth): New function, use
18894         get_all_dominated_blocks as a base.
18895         (get_all_dominated_blocks): Use get_dominated_to_depth.
18896
18897         * gcse.c (occr_t, VEC (occr_t, heap)): Define.
18898         (hoist_exprs): Remove.
18899         (alloc_code_hoist_mem, free_code_hoist_mem): Update.
18900         (compute_code_hoist_vbeinout): Add debug print outs.
18901         (hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.
18902
18903         * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
18904         quadratic behavior.
18905         * params.h (MAX_HOIST_DEPTH): New macro.
18906         * doc/invoke.texi (max-hoist-depth): Document.
18907
18908 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
18909
18910         PR rtl-optimization/40956
18911         * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
18912         constants.
18913
18914 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
18915
18916         PR target/42495
18917         PR middle-end/42574
18918         * config/arm/arm.c (legitimize_pic_address): Use
18919         gen_calculate_pic_address pattern to emit calculation of PIC address.
18920         (will_be_in_index_register): New function.
18921         (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
18922         (thumb1_legitimate_address_p): Use it provided !strict_p.
18923         * config/arm/arm.md (calculate_pic_address): New expand and split.
18924
18925 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
18926
18927         PR target/42495
18928         PR middle-end/42574
18929         * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
18930         * config/arm/arm.md (define_split "J", define_split "K"): Make
18931         IRA/reload friendly.
18932
18933 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
18934
18935         * gcse.c (insert_insn_end_basic_block): Update signature, remove
18936         unused checks.
18937         (pre_edge_insert, hoist_code): Update.
18938
18939 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
18940
18941         PR target/42495
18942         PR middle-end/42574
18943         * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
18944
18945 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
18946
18947         * gcse.c (hoist_code): Generate new pseudo for every new set insn.
18948
18949 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
18950
18951         PR rtl-optimization/40956
18952         PR target/42495
18953         PR middle-end/42574
18954         * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
18955         for hoisting.
18956         (hoist_code): Count occurences in current block too.
18957
18958 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
18959
18960         * gcse.c (struct expr:max_distance): New field.
18961         (doing_code_hoisting_p): New static variable.
18962         (want_to_gcse_p): Change signature.  Allow constrained hoisting of
18963         simple expressions, don't change behavior for PRE.  Set max_distance.
18964         (insert_expr_in_table): Set new max_distance field.
18965         (hash_scan_set): Update.
18966         (hoist_expr_reaches_here_p): Stop search after max_distance
18967         instructions.
18968         (find_occr_in_bb): New static function.  Use it in ...
18969         (hoist_code): Calculate sizes of basic block before any changes are
18970         done.  Pass max_distance to hoist_expr_reaches_here_p.
18971         (one_code_hoisting_pass): Set doing_code_hoisting_p.
18972
18973         * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
18974         (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
18975         * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
18976         macros.
18977         * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
18978         Document.
18979
18980 2010-07-27  Jeff Law  <law@redhat.com>
18981             Maxim Kuvyrkov  <maxim@codesourcery.com>
18982
18983         * gcse.c (compute_transpout, transpout): Remove, move logic
18984         to prune_expressions.
18985         (compute_pre_data): Move pruning of trapping expressions ...
18986         (prune_expressions): ... here.  New static function.
18987         (compute_code_hoist_data): Use it.
18988         (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
18989
18990 2010-07-27  Xinliang David Li  <davidxl@google.com>
18991
18992         * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
18993         (rewrite_use_address): Adjust iv update position when needed.
18994
18995 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
18996
18997         * dbgcnt.def (hoist_insn): New debug counter.
18998         * gcse.c (hoist_code): Use it.
18999
19000 2010-07-27  Xinliang David Li  <davidxl@google.com>
19001
19002         * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
19003         (niter_for_single_dom_exit): Passes additional parameter.
19004         (iv_period): Fix comments.
19005         (may_eliminate_iv): Handles multiple exit loops properly.
19006         (free_tree_niter_desc): New function.
19007         (free_loop_data): Frees up loop iteration descriptors.
19008
19009 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
19010
19011         PR target/44542
19012         * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
19013         of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
19014         instead of MAX_SUPPORTED_STACK_ALIGNMENT.
19015         (expand_one_var): Don't consider DECL_ALIGN for variables for
19016         which expand_one_stack_var_at has been already called.
19017
19018         PR testsuite/44701
19019         * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
19020         constraints on IA-64.
19021
19022 2010-07-27  Jie Zhang  <jie@codesourcery.com>
19023
19024         PR target/44290
19025         Revert:
19026         2010-07-23  Jie Zhang  <jie@codesourcery.com>
19027
19028         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
19029         false if ! tree_versionable_function_p.
19030
19031 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
19032
19033         * dwarf2out.c (add_data_member_location_attribute): Use
19034         add_AT_unsigned instead of add_AT_int if offset is non-negative.
19035
19036 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
19037
19038         * postreload.c (try_replace_in_use): New static function.
19039         (reload_combine_recognize_const_pattern): Use it here.  Allow
19040         substituting into a final add insn, and substituting into a memory
19041         reference in an insn that sets the reg.
19042
19043 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
19044
19045         * common.opt (o): Add MissingArgError.
19046         * doc/options.texi (MissingArgError): Document.
19047         * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
19048         * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
19049         * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
19050         (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
19051         * langhooks.h (struct lang_hooks): Remove missing_argument.
19052         * optc-gen.awk: Handle MissingArgError and output new structure
19053         field initializers.
19054         * opts.c (read_cmdline_option): Use missing_argument_error field
19055         instead of missing_argument langhook.
19056         * opts.h (struct cl_option): Add missing_argument_error field.
19057         * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
19058
19059 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
19060
19061         PR target/29090
19062         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
19063         Darwin64 ABI, for zero-sized objects.
19064
19065 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
19066
19067         PR target/35491
19068         PR target/29090
19069
19070         Merge from Apple local 4.2.1.
19071         2005-05-11  Stan Shebs  <shebs@apple.com>
19072         Fix 64-bit varargs for Darwin (Radar 4028089).
19073         * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
19074         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
19075         Add argument, add case for 8-byte register half-filled with a float.
19076         (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
19077         single-precision floats specially.
19078
19079 2010-07-27  Ira Rosen  <irar@il.ibm.com>
19080
19081         PR tree-optimization/44152
19082         * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
19083         complex numbers for further check.
19084         (vect_supported_load_permutation_p): Check nodes with
19085         complex numbers.
19086
19087 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
19088
19089         * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
19090         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
19091         (LANG_HOOKS_INIT_OPTIONS): Update default definition.
19092         (LANG_HOOKS_INITIALIZER): Add new hooks.
19093         * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
19094         * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
19095         and complain_wrong_lang_p.  Update init_options prototype.
19096         * c-objc-common.c (c_initialize_diagnostics): First call
19097         c_common_initialize_diagnostics.
19098         * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
19099         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
19100         * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
19101         * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
19102         (hook_uint_void_0): New.
19103         * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
19104         (hook_uint_void_0): New.
19105         * opts-common.c (decode_cmdline_option,
19106         decode_cmdline_options_to_array): Also fill in canonical_option field.
19107         * opts.c (complain_wrong_lang): Use langhook to determine whether
19108         to complain instead of special-casing LTO.
19109         (decode_options): Separate lang_mask determination with
19110         option_lang_mask hook from call of init_options hook.
19111         * opts.h (struct cl_decoded_option): Add canonical_option.
19112
19113 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
19114
19115         PR tree-optimization/45083
19116         * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
19117
19118 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
19119
19120         * postreload.c (reload_combine_recognize_const_pattern): Move test
19121         for limiting the insn movement to the right scope.
19122
19123         PR rtl-optimization/45051
19124         * reload1.c (delete_output_reload): Use refers_to_regno_p rather
19125         than reg_mentioned_p.
19126
19127 2010-07-26  Richard Henderson  <rth@redhat.com>
19128
19129         PR target/44132
19130         * tree-emutls.c: New file.
19131         * Makefile.in (OBJS-common): Add it.
19132         * tree-pass.h (pass_ipa_lower_emutls): Declare.
19133         * passes.c (init_optimization_passes): Add it.
19134
19135         * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
19136         pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
19137         * expr.c (emutls_var_address): Delete.
19138         (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
19139         * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
19140         (emutls_finish): Delete.
19141         * toplev.c (compile_file): Don't call it.
19142         * tree.h (emutls_decl): Delete.
19143         * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
19144         (emutls_finish, emutls_finalize_control_var): Delete.
19145         (emutls_object_type): Move to tree-emutls.c.
19146         (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
19147         default_emutls_var_fields, get_emutls_object_type,
19148         get_emutls_init_templ_addr, emutls_decl, emutls_common_1
19149         default_emutls_var_init): Likewise.
19150         (get_variable_section): Don't special case emutls.
19151         (assemble_variable, do_assemble_alias, categorize_decl_for_section,
19152         default_elf_select_section, default_unique_section,
19153         default_encode_section_info): Likewise.
19154         * varpool.c (decide_is_variable_needed): Likewise.
19155         * gimple-iterator.c (update_call_edge_frequencies): New
19156         (gsi_insert_on_edge_immediate): Use it.
19157         (gsi_insert_seq_on_edge_immediate): Likewise.
19158         (gsi_commit_one_edge_insert): Likewise.
19159
19160         * config/i386/i386.c (x86_64_elf_select_section): Don't handle
19161         SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
19162         (x86_64_elf_unique_section): Likewise.
19163
19164 2010-07-26  Jan Hubicka  <jh@suse.cz>
19165
19166         * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
19167         GTY((skip)).
19168
19169 2010-07-26  Anatoly Sokolov  <aesok@post.ru>
19170
19171         * target.def (output_source_filename): New hook.
19172         * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
19173         * doc/tm.texi: Regenerate.
19174         * toplev.c (output_file_directive) Remove function.
19175         * toplev.h (output_file_directive) Remove.
19176         * output.h (default_asm_output_source_filename,
19177         output_file_directive): Declare.
19178         * varasm.h (default_asm_output_source_filename,
19179         output_file_directive): New functions.
19180
19181         * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
19182         * config/mips/mips-protos.h (mips_output_filename): Remove.
19183         * config/mips/mips.c (mips_output_filename): Make Static.
19184         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
19185
19186 2010-07-26  Richard Guenther  <rguenther@suse.de>
19187
19188         PR tree-optimization/43784
19189         * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
19190         if the destination is used by the call.
19191
19192 2010-07-26  Richard Guenther  <rguenther@suse.de>
19193
19194         PR middle-end/45073
19195         * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
19196         SSA updating on being in SSA form.
19197
19198 2010-07-26  Richard Guenther  <rguenther@suse.de>
19199
19200         PR middle-end/45056
19201         * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
19202
19203 2010-07-26  Richard Guenther  <rguenther@suse.de>
19204
19205         PR tree-optimization/45071
19206         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
19207         adjust op->opcode.
19208
19209 2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>
19210
19211         * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
19212         save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
19213         save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
19214         save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
19215         save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
19216         save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
19217         save_r31, return_r31, save_interrupt, return_interrupt,
19218         save_all_interrupt, return_all_interrupt, L_save_r2_r31,
19219         L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
19220         L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
19221         new ABI requirements.
19222         (save_r6_r9, L_callt_save_r6_r9): Remove.
19223         * config/v850/predicates.md (even_reg_operand, disp23_operand,
19224         const_float_1_operand const_float_0_operand): New Predicates.
19225         (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
19226         pattern_is_ok_for_epilogue): Update as per the ABI requirements.
19227         * config/v850/t-v850: Update multilibs for new target variants.
19228         (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
19229         * config/v850/t-v850e: Likewise.
19230         * config/v850/v850.c (v850_issue_rate): New.
19231         (v850_strict_argument_naming): New.
19232         (function_arg): Modify to generate a different ABI.
19233         (print_operand): Update case 'z' to support float modes.
19234         (output_move_single): Modify to generate appropriate and better
19235         assembly.
19236         (v850_float_z_comparison_operator, v850_select_cc_mode,
19237         v850_float_nz_comparison_operator,  v850_gen_float_compare,
19238         v850_gen_compare): New functions to support comparison of float values.
19239         (ep_memory_offset): Add support for V850E2 targets.
19240         (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
19241         (INTERRUPT_REGPARM_NUM): Remove.
19242         (compute_register_save_size): Add extra case to save/restore long call.
19243         (use_prolog_function): New function to support prologue.
19244         (expand_prologue): Add support for V850E2 targets and modified
19245         as per the current ABI requirements.
19246         (expand_epilogue): Likewise.
19247         (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
19248         (construct_save_jarl): Likewise.
19249         (construct_dispose_instruction): Update as per the current ABI
19250         requirements.
19251         (construct_prepare_instruction): Likewise.
19252         * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
19253         (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
19254         (CPP_SPEC): Updated to support v850e2 targets.
19255         (STRICT_ALIGNMENT): Modified.
19256         (FIRST_PSEUDO_REGISTER): Updated to add even registers.
19257         (FIXED_REGISTERS): Likewise.
19258         (CALL_USED_REGISTERS): Likewise.
19259         (CONDITIONAL_REGISTER_USAGE): Updated.
19260         (HARD_REGNO_MODE_OK): Updated.
19261         (reg_class): Updated to add even registers.
19262         (REG_CLASS_NAMES): Likewise.
19263         (REG_CLASS_CONTENTS): Likewise.
19264         (REGNO_REG_CLASS): Updated for CC registers.
19265         (REG_CLASS_FROM_LETTER): Added support for even registers.
19266         (REGNO_OK_FOR_BASE_P): Updated for CC registers.
19267         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
19268         ARG_POINTER_REGNUM): Updated.
19269         (FUNCTION_ARG_ADVANCE): Define.
19270         (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
19271         (OUTGOING_REG_PARM_STACK_SPACE): Remove.
19272         (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
19273         (GO_IF_LEGITIMATE_ADDRESS): Updated.
19274         (SELECT_CC_MODE): Define.
19275         (REGISTER_NAMES): Updated to add psw and fcc registers.
19276         (ADDITIONAL_REGISTER_NAMES): Updated.
19277         (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
19278         (JUMP_TABLES_IN_TEXT_SECTION): Updated.
19279         * config/v850/v850.md (define_constants): Define new constants.
19280         (type): Update store,bit1,macc,div,fpu and single attributes.
19281         (cpu): New attribute.
19282         (cc): Add set_z attribute.
19283         (unsign23byte_load, sign23byte_load, unsign23hword_load,
19284         sign23hword_load, 23word_load, 23byte_store, 23hword_store,
19285         23word_store): New instructions for 23-bit displacement load and store.
19286         (movqi_internal, movhi_internal): Update the attributes.
19287         (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
19288         (movsi_internal_v850e, movsi_internal, movsf_internal): Update
19289         the attributes.
19290         (v850_tst1): Modified using CC_REGNUM.
19291         (tstsi): Remove.
19292         (cmpsi): Modified as define_expand from define_insn.
19293         (cmpsi_insn, cmpsf, cmpdf): New instructions.
19294         (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
19295         udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
19296         v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
19297         one_cmplsi2): Clobber the CC_REGNUM register.
19298         (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
19299         v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
19300         v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
19301         (setf_insn, set_z_insn, set_nz_insn): New instructions for
19302         v850e2v3 target.
19303         (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
19304         (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
19305         targets.
19306         (sasf_1, sasf_2): Remove.
19307         (sasf): New instruction.
19308         (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
19309         targets. CC_REGNUM register is clobbered and attributes are
19310         updated.
19311         (branch_z_normal, branch_z_invert, branch_nz_normal,
19312         branch_nz_invert): New branch related instructions.
19313         (jump): Updated the attributes.
19314         (switch): Update to support new targets. CC_REGNUM register is
19315         clobbered and attributes are updated.
19316         (call_internal_short, call_internal_long, call_value_internal_short,
19317         call_value_internal_long): Updated the attributes.
19318         (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
19319         clobbered and attributes are updated.
19320         (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
19321         Update to support new targets. CC_REGNUM register is clobbered.
19322         (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
19323         instructions.
19324         (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
19325         are updated.
19326         (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
19327         divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
19328         negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
19329         floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
19330         rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
19331         cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
19332         cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
19333         cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
19334         movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
19335         movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
19336         point instructions defined for V850e2v3 target.
19337         (callt_save_interrupt, callt_return_interrupt, return_interrupt):
19338         Add support for V850E2 targets and CC_REGNUM register is clobbered.
19339         (callt_save_all_interrupt, callt_restore_all_interrupt): Add
19340         support for new targets.
19341         * config/v850/v850-modes.def: New file.
19342         * config/v850/v850.opt(mstrict-align): Remove.
19343         (mno-strict-align, mjump-tables-in-data-section, mv850e2,
19344         mv850e2v3): New command line options for V850.
19345         * config.gcc: Update the newly added files.
19346         * doc/invoke.texi: Update the newly added command line options for
19347         V850 target.
19348
19349 2010-07-26  Richard Guenther  <rguenther@suse.de>
19350
19351         PR tree-optimization/45052
19352         * ipa-pure-const.c (check_stmt): Check volatileness.
19353
19354 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
19355
19356         PR target/44707
19357         * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
19358         * config/sparc/sparc.c: Include reload.h.
19359         (legitimize_tls_address): Rename into...
19360         (sparc_legitimize_tls_address): ...this.
19361         (legitimize_pic_address): Rename into...
19362         (sparc_legitimize_pic_address): ...this.
19363         (sparc_expand_move): Adjust to above renaming.
19364         (sparc_tls_referenced_p): Likewise.
19365         (sparc_legitimize_tls_address): Likewise.
19366         (sparc_legitimize_pic_address): Likewise.
19367         (sparc_legitimize_address): Likewise.
19368         (sparc_output_mi_thunk): Likewise.
19369         (sparc_legitimize_reload_address): New global function.  Recognize
19370         (lo_sum (high ...) ...) patterns generated by earlier passes.
19371         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
19372
19373 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
19374
19375         PR target/44484
19376         * config/sparc/predicates.md (memory_reg_operand): Delete.
19377         * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
19378         (*sync_compare_and_swap): Encode the address form in the pattern.
19379         (*sync_compare_and_swapdi_v8plus): Likewise.
19380
19381 2010-07-24  Gerald Pfeifer  <gerald@pfeifer.com>
19382
19383         * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
19384         Streamline paragraph on compatibility with the system compiler.
19385
19386 2010-07-24  Steven Bosscher  <steven@gcc.gnu.org>
19387
19388         PR middle-end/45035
19389         * alias.c (true_dependence_1): Fix thinko in merge of old
19390         true_dependence and canon_true_dependence.
19391
19392 2010-07-23  Jan Hubicka  <jh@suse.cz>
19393
19394         * lto-streamer-out.c (write_symbol): Fix visibilities of external
19395         references.
19396
19397 2010-07-23  Le-Chun Wu  <lcwu@google.com>
19398
19399         * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
19400         * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
19401         and an unnecessary assignment.
19402         * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
19403         self-assign warning.
19404         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
19405         unnecessary self-init.
19406
19407 2010-07-23  Richard Guenther  <rguenther@suse.de>
19408
19409         PR lto/43071
19410         * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
19411         for -flto and -fwhopr.
19412
19413 2010-07-23  Kai Tietz  <kai.tietz@onevision.com>
19414
19415         PR target/41943
19416         * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
19417         (stmp-int-hdrs): Prefix/postfix headers by include_next.
19418         * config.gcc (user_headers_inc_next_pre): New.
19419         (user_headers_inc_next_post): Likewise.
19420         (*-w64-mingw*): Use for float.h post-fixing, and for
19421         stddef.h/stdarg.h pre-fixing by include_next.
19422         * configure.ac (user_headers_inc_next_post): New.
19423         (user_headers_inc_next_pre): New.
19424         * configure: Regenerated.
19425
19426 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19427
19428         * configure.ac: Don't disable TLS on Solaris 8/9 by default
19429         Set tga_func for Solaris 2/x86 resp. SPARC.
19430         Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
19431         (LIB_THREAD_LDFLAGS_SPEC): Define.
19432         (LIB_TLS_SPEC): Define.  Check for required Sun ld version.
19433         * configure: Regenerate.
19434         * config.in: Regenerate.
19435         * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
19436         -pthread, -threads, LIB_TLS_SPEC with -pthread.
19437         * doc/install.texi (Specific, *-*-solaris2*): Document use of
19438         alternate thread libraries on Solaris 8.
19439         Document TLS patch requirements.
19440         * doc/sourcebuild.texi (Add Options): Sort alphabetically.
19441         Document tls.
19442
19443         PR target/18788
19444         * config/sol2.h (LIB_SPEC): Link with thread libraries even with
19445         -shared.
19446
19447 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
19448
19449         * tree.h (struct tree_base): Add nameless_flag bitfield.
19450         (TYPE_NAMELESS, DECL_NAMELESS): Define.
19451         * omp-low.c (create_omp_child_function, scan_omp_parallel,
19452         scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
19453         DECL_ARTIFICIAL where needed.
19454         * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
19455         (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
19456         has DECL_NAMELESS set.
19457
19458 2010-07-23  Martin Jambor  <mjambor@suse.cz>
19459
19460         PR tree-optimization/44915
19461         * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
19462         * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
19463         (analyze_function): Likewise.
19464
19465 2010-07-23  Martin Jambor  <mjambor@suse.cz>
19466
19467         PR tree-optimization/44914
19468         * tree-sra.c (sra_modify_function_body): Return true if CFG was
19469         changed, add purging dead eh edges.
19470         (ipa_sra_modify_function_body): Return true if CFG was changed,
19471         simplify purging dead eh edges.
19472         (modify_function): Return true if CFG was changed.
19473         (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
19474         was changed.
19475         (ipa_early_sra): Likewise.
19476
19477 2010-07-23  Jie Zhang  <jie@codesourcery.com>
19478
19479         PR target/44290
19480         * attribs.c (decl_attributes): Insert "noinline" and "noclone"
19481         if "naked".
19482         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
19483         false if ! tree_versionable_function_p.
19484
19485 2010-07-23  Nathan Froyd  <froydnj@codesourcery.com>
19486
19487         * builtins.def (BUILT_IN_ARGS_INFO): Remove.
19488         * ipa-pure-const.c (special_builtlin_state): Remove
19489         BUILT_IN_ARGS_INFO case.
19490         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
19491         * builtins.c (expand_builtin): Likewise.
19492         (expand_builtin_args_info): Remove.
19493         * doc/tm.texi (__builtin_args_info): Remove.
19494         (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
19495         * doc/tm.text.in: Likewise.
19496
19497 2010-07-23  Richard Guenther  <rguenther@suse.de>
19498
19499         * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
19500         (lto_symtab_merge_decls_2): Likewise.
19501         * tree-ssa.c (useless_type_conversion_p): Likewise.
19502         * lto-streamer-in.c (input_gimple_stmt): Likewise.
19503         * gimple.c (gtc_visited2, gtc_ob2): Remove.
19504         (struct type_pair_d): Make same_p an array indexed by mode.
19505         Update comment.
19506         (lookup_type_pair): Update initialization.
19507         (struct sccs): Adjust same_p type.
19508         (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
19509         Adjust.
19510         (print_gimple_types_stats): Likewise.
19511         * gimple.h (enum gtc_mode): New.
19512         (gimple_types_compatible_p): Adjust prototype.
19513
19514 2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
19515
19516         * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
19517         again after processing insn.
19518
19519 2010-07-23  Jie Zhang  <jie@codesourcery.com>
19520
19521         * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
19522         proper words when !tree_versionable_function_p.
19523
19524 2010-07-23  Richard Guenther  <rguenther@suse.de>
19525
19526         PR tree-optimization/45037
19527         * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
19528
19529 2010-07-23  Jie Zhang  <jie@codesourcery.com>
19530
19531         * doc/extend.texi: Remove IP2K from the description of naked attribute.
19532         Add MCORE instead.
19533
19534 2010-07-10  Andi Kleen  <ak@linux.intel.com>
19535
19536         PR lto/44992
19537         * lto-opts.c (lto_write_options): Add NULL file_data argument to
19538         lto_get_section_name.
19539         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
19540         * lto-streamer-out.c (produce_asm): Likewise.
19541         (copy_function): Likewise.
19542         (produce_symtab): Likewise.
19543         (produce_asm_for_decls): Likewise.
19544         * lto-streamer.c (lto_get_section_name): Add file_data argument.
19545         Rewrite to add random postfix to LTO sections.
19546         * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
19547         (lto_get_section_name): Add file_data argument to prototype.
19548
19549 2010-07-10  Andi Kleen  <ak@linux.intel.com>
19550
19551         * lto-section-in.c (lto_section_name): Synchronize names
19552         with lto_get_section_name.
19553
19554 2010-07-10  Andi Kleen  <ak@linux.intel.com>
19555
19556         * lto-opts.c (lto_read_file_options): Check for missing section.
19557
19558 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
19559
19560         * ira.c (check_allocation): Correctly handle the case where an allocno
19561         with two objects was allocated to a single reg.
19562
19563 2010-07-22  Richard Sandiford  <rdsandiford@googlemail.com>
19564
19565         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
19566         (is_widening_mult_p): Likewise.
19567         (convert_to_widen): Use them.
19568         (convert_plusminus_to_widen): Likewise.  Handle fixed-point types as
19569         well as integer ones.
19570
19571 2010-07-22  Steven Bosscher  <steven@gcc.gnu.org>
19572
19573         * alias.c (true_dependence_1): New function, merged version of
19574         true_dependence and canon_true_dependence.
19575         (true_dependence): Simplify.
19576         (canon_true_dependence): Simplify.
19577
19578 2010-07-22  Richard Henderson  <rth@redhat.com>
19579
19580         PR target/45027
19581         * config/i386/i386.c (setup_incoming_varargs_64): Force the use
19582         of V4SFmode for the SSE saves; increase stack alignment if needed.
19583         (ix86_gimplify_va_arg): Don't increase stack alignment here.
19584
19585 2010-07-22  Jakub Jelinek  <jakub@redhat.com>
19586
19587         PR bootstrap/45028
19588         * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
19589         call cprop_find_used_regs again via note_uses.
19590
19591 2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>
19592
19593         * alias.c (get_alias_set): Fix formatting issues.
19594
19595 2010-07-22  Steve Ellcey  <sje@cup.hp.com>
19596
19597         PR middle-end/44878
19598         * stmt.c (expand_value_return):  Call promote_function_mode with
19599         a for_return argument of 2 when returning by reference.
19600
19601 2010-07-22  Dodji Seketeli  <dodji@redhat.com>
19602
19603         PR debug/45024
19604         * dwarf2out.c (scope_die_for): Don't fall back to the compilation
19605         unit DIE if we can find the scope DIE.
19606
19607 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
19608
19609         * ira-build.c (ira_create_object): New arg SUBWORD; all callers
19610         changed.  Initialize OBJECT_SUBWORD.
19611         (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
19612         (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
19613         all callers changed.
19614         (merge_hard_reg_conflicts): Iterate over allocno subobjects.
19615         (finish_allocno): Likewise.
19616         (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
19617         (remove_low_level_allocnos): Likewise.
19618         (update_bad_spill_attribute): Likewise.
19619         (setup_min_max_allocno_live_range_point): Likewise.
19620         (sort_conflict_id_map): Likewise.
19621         (ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
19622         (ior_hard_reg_conflicts): New function.
19623         (ior_allocate_object_conflicts): Renamed first argument to OBJ.
19624         (compress_conflict_vecs): Iterate over objects, not allocnos.
19625         (ira_add_live_range_to_object): New function.
19626         (object_range_compare_func): Renamed from allocno_range_compare_func.
19627         All callers changed.
19628         (setup_min_max_conflict_allocno_ids): For allocnos with multiple
19629         subobjects, widen the min/max range of the lowest-order object to
19630         potentially include all other such low-order objects.
19631         * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
19632         (check_allocation): Likewise.  Use more fine-grained tests for register
19633         conflicts.
19634         * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
19635         allocno subobjects.
19636         (assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
19637         choices about which bits to set in each set.  Don't use
19638         ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
19639         using the multiple sets we computed.
19640         (push_allocno_to_stack): Iterate over allocno subobjects.
19641         (all_conflicting_hard_regs_coalesced): New static function.
19642         (setup_allocno_available_regs_num): Use it.
19643         (setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
19644         subobjects.
19645         (coalesced_allocno_conflict): Test subobject 0 in each allocno.
19646         (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
19647         by ALLOCNO_NUM_OBJECTS.
19648         (calculate_spill_cost): Likewise.
19649         (color_pass): Express if statement in a more normal way.
19650         (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
19651         (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
19652         (setup_slot_coalesced_allocno_live_ranges): Likewise.
19653         (allocno_reload_assign): Likewise.
19654         (ira_reassign_pseudos): Likewise.
19655         (fast_allocation): Likewise.
19656         * ira-conflicts.c (build_conflict_bit_table): Likewise.
19657         (print_allocno_conflicts): Likewise.
19658         (ira_build_conflicts): Likewise.
19659         (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
19660         callers changed.  Test subword 0 of each allocno for conflicts.
19661         (build_object_conflicts): Renamed from build_allocno_conflicts.  All
19662         callers changed.  Iterate over allocno subobjects.
19663         * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
19664         * ira-int.h (struct ira_allocno): New member: num_objects.
19665         Rename object to objects and change it into an array.
19666         (ALLOCNO_OBJECT): Add new argument N.
19667         (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
19668         (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
19669         (ior_hard_reg_conflicts): Declare.
19670         (ira_add_live_range_to_object): Declare.
19671         (ira_allocno_object_iterator): New.
19672         (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
19673         (FOR_EACH_ALLOCNO_OBJECT): New macro.
19674         * ira-lives.c (objects_live): Renamed from allocnos_live; all
19675         uses changed.
19676         (allocnos_processed): New sparseset.
19677         (make_object_born): Renamed from make_allocno_born; take an
19678         ira_object_t argument.  All callers changed.
19679         (make_object_dead): Renamed from make_allocno_dead; take an
19680         ira_object_t argument.  All callers changed.
19681         (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
19682         All callers changed.
19683         (mark_pseudo_regno_live): Iterate over allocno subobjects.
19684         (mark_pseudo_regno_dead): Likewise.
19685         (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
19686         functions.
19687         (mark_ref_live): Detect subword accesses and call
19688         mark_pseudo_regno_subword_live as appropriate.
19689         (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
19690         (process_bb_nodes_live): Deal with object-related updates first; set
19691         and test bits in allocnos_processed to avoid computing allocno
19692         statistics more than once.
19693         (create_start_finish_chains): Iterate over objects, not allocnos.
19694         (print_object_live_ranges): New function.
19695         (print_allocno_live_ranges): Use it.
19696         (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
19697         and objects_live.
19698
19699 2010-07-22  Richard Guenther  <rguenther@suse.de>
19700
19701         PR lto/42451
19702         * gimple.c (gtc_next_dfs_num): New global.
19703         (struct sccs): Make value a union, add integer same_p member.
19704         (gtc_visit): New function.
19705         (gimple_types_compatible_p_1): New function, split out from ...
19706         (gimple_types_compatible_p): ... here.  Start a DFS walk here.
19707         (iterative_hash_gimple_type): Adjust for sccs change.
19708
19709 2010-07-22  Martin Jambor  <mjambor@suse.cz>
19710
19711         PR tree-optimization/44891
19712         * tree-sra.c: Include gimple-pretty-print.h.
19713         (replace_uses_with_default_def_ssa_name): Renamed to
19714         get_repl_default_def_ssa_name, return the new SSA name instead of
19715         replacing the old one.
19716         (sra_modify_assign): Dump a message when removing a load, if the LHS
19717         is an SSA_NAME, do not do any propagation, just set the RHS to a
19718         default definition SSA NAME, type convert if necessary.
19719         * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
19720
19721 2010-07-22  Richard Guenther  <rguenther@suse.de>
19722
19723         PR tree-optimization/45017
19724         * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
19725         TYPE_PRECISION of integral types in addition to size.
19726
19727 2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
19728
19729         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
19730         when no C library is specified.
19731
19732 2010-07-22  Martin Jambor  <mjambor@suse.cz>
19733
19734         * ipa-prop.h (struct ipa_node_params): Updated comment.
19735         (struct ipa_edge_args): Likewise.
19736         * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
19737
19738 2010-07-22  Martin Jambor  <mjambor@suse.cz>
19739
19740         * cgraphunit.c (verify_edge_count_and_frequency): New function.
19741         (verify_cgraph_node): Verify frequencies of indirect edges.
19742         * tree-inline.c (tree_function_versioning): Update frequencies of
19743         indirect edges.
19744
19745 2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19746
19747         PR target/43698
19748         * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
19749         Set *arm_rev to be predicable.
19750
19751 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
19752
19753         * config/darwin.h (LINK_COMMAND_SPEC): Split into...
19754         (LINK_COMMAND_SPEC_A): New.
19755         (DSYMUTIL): New.
19756         (DSYMUTIL_SPEC): New.
19757         * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
19758         (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
19759
19760 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
19761
19762         * calls.c (load_register_parameters): Move check for zero
19763         sized items so that only the call to
19764         mem_overlaps_already_clobbered_arg_p () is protected.
19765
19766 2010-07-22  Jan Hubicka  <jh@suse.cz>
19767
19768         * ipa-pure-const.c (varying_state): Break out from ...
19769         (get_function_state): ... here; always return varying_state
19770         when state would be NULL otherwise.
19771         (remove_node_data): Do not free varying state.
19772
19773 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
19774
19775         PR bootstrap/44970
19776         PR middle-end/45009
19777         * postreload.c: Include "target.h".
19778         (reload_combine_closest_single_use): Don't take DEBUG_INSNs
19779         into account.
19780         (fixup_debug_insns): Don't copy the rtx.
19781         (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
19782         Don't copy when replacing.  Call fixup_debug_insns in the case where
19783         we merged one add with another.
19784         (reload_combine_recognize_pattern): Fail if there aren't any uses.
19785         Try harder to determine whether we're picking a valid index register.
19786         Don't set store_ruid for an insn we're going to scan in the
19787         next iteration.
19788         (reload_combine): Remove unused code.
19789         (reload_combine_note_use): When updating use information for
19790         an old insn, ignore a use that occurs after store_ruid.
19791         * Makefile.in (postreload.o): Update dependencies.
19792
19793         * function.c (record_hard_reg_sets): Restrict the previous change
19794         to cases where the incoming nominal mode is the same as the
19795         incoming promoted mode and everything happens in MODE_INT.
19796
19797 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
19798
19799         PR debug/45015
19800         * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
19801         ASM_OPERANDS_OUTPUT_IDX.
19802         (adjust_insn): For inline asm with multiple sets ensure first
19803         ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
19804         the insn.
19805
19806 2010-07-21  Richard Henderson  <rth@redhat.com>
19807
19808         * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
19809         comparison for avoiding xmm register saves.  Emit the xmm register
19810         saves explicitly.
19811         * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
19812         (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
19813         (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
19814         Remove patterns and the associated splitters.
19815
19816 2010-07-21  Changpeng Fang  <changpeng.fang@amd.com>
19817
19818         * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
19819         and imagine parts of a complex, so that they can have the same
19820         base and fall into the same group.
19821
19822 2010-07-21  Richard Guenther  <rguenther@suse.de>
19823
19824         PR lto/45018
19825         * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
19826         of TYPE_DECLs.  Do not follow TYPE_NEXT_VARIANT,
19827         TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
19828
19829 2010-07-21  Martin Jambor  <mjambor@suse.cz>
19830
19831         PR tree-optimization/44900
19832         * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
19833         (sra_modify_assign): Move gsi to the next statmenent unconditionally.
19834
19835 2010-07-21  Bernd Schmidt  <bernds@codesourcery.com>
19836
19837         PR middle-end/44738
19838         * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
19839
19840 2010-07-21  Richard Guenther  <rguenther@suse.de>
19841
19842         PR middle-end/45013
19843         * tree-ssa.c (useless_type_conversion_p): Dispatch to
19844         gimple_types_compatible_p only when in lto.
19845         * gimple.c (gimple_types_compatible_p): Use canonical types
19846         to speed up comparison.
19847
19848 2010-07-21  Richard Guenther  <rguenther@suse.de>
19849
19850         * tree-flow.h (referenced_var): Move define ...
19851         * tree-flow-inline.h (referenced_var): ... here as an inline
19852         function.  Assert here ...
19853         * tree-dfa.c (referenced_var_lookup): ... instead of here.
19854         * tree-ssa.c (maybe_optimize_var): Check if the variable
19855         is in referenced vars.
19856         (execute_update_addresses_taken): Remove old broken check.
19857         * gimple-pretty-print.c (pp_points_to_solution): Use
19858         referenced_var_lookup.
19859         * tree-into-ssa.c (dump_decl_set): Likewise.
19860
19861 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
19862
19863         PR debug/45003
19864         * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
19865         * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
19866         ZERO_EXTEND here.
19867
19868 2010-07-20  Richard Henderson  <rth@redhat.com>
19869
19870         * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
19871
19872 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
19873
19874         * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
19875         computing the sum of the stack pointer and a large constant.
19876         * config/arm/constraints.md (M): Remove superfluous parentheses.
19877         (Pc): New constraint.
19878
19879 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
19880
19881         PR debug/45006
19882         * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
19883         operand's type if exp is tcc_unary class tree.
19884
19885 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
19886
19887         * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
19888         Reverse sense of if_then_else condition.
19889
19890 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
19891
19892         * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
19893         * config/rs6000/rs6000.c (rs6000_override_options): Set
19894         rs6000_block_move_inline_limit appropriately.
19895         (expand_block_move): Use rs6000_block_move_inline_limit.
19896         * doc/invoke.texi (mblock-move-inline-limit): Document.
19897
19898 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
19899
19900         * postreload.c (fixup_debug_insns): Remove arg REGNO.  New args
19901         FROM and TO.  All callers changed.  Don't look for tracked uses,
19902         just scan the RTL for DEBUG_INSNs and substitute.
19903         (reload_combine_recognize_pattern): Call fixup_debug_insns.
19904         (reload_combine): Ignore DEBUG_INSNs.
19905
19906 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
19907
19908         * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
19909         depth to 8 from 5.
19910
19911         PR debug/45003
19912         * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
19913         or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
19914         instead of the result's type.
19915
19916 2010-07-20  Richard Guenther  <rguenther@suse.de>
19917
19918         PR tree-optimization/44977
19919         * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
19920         SSA form.
19921
19922 2010-07-20  Richard Guenther  <rguenther@suse.de>
19923
19924         * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
19925         (lto_symtab_merge_decls_2): Likewise.
19926         * gimple.h (gimple_types_compatible_p): Declare.
19927         * gimple.c (gimple_queue_type_fixup): Remove.
19928         (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
19929         (gimple_compatible_complete_and_incomplete_type_p): New function.
19930         (gimple_types_compatible_p): Adjust.
19931         (gimple_register_type): Remove type fixup code.
19932         (print_gimple_types_stats): Adjust.
19933         (free_gimple_type_tables): Likewise.
19934         * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
19935         * tree-ssa.c (useless_type_conversion_p): Likewise.
19936
19937 2010-07-20  Richard Guenther  <rguenther@suse.de>
19938
19939         PR middle-end/44971
19940         PR middle-end/44988
19941         * tree-ssa.c (maybe_optimize_var): New function split out from ...
19942         (execute_update_addresses_taken): ... here.
19943         (non_rewritable_mem_ref_base): Likewise.
19944         (execute_update_addresses_taken): Do not iterate over all referenced
19945         vars but just all local decls and parms.
19946         Properly check call and asm arguments and rewrite call arguments.
19947
19948 2010-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
19949
19950         * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
19951         to top level.
19952         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
19953         definitions ...
19954         * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
19955         New macro.
19956         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
19957
19958 2010-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
19959
19960         * gengtype.c (start_root_entry): New function, split out from
19961         write_root.  Check whether V is null and raise an error if so.
19962         (write_field_root): Check for V being null.  Don't raise an error here;
19963         set V to null instead.
19964         (write_root): Update comment above function.  Use start_root_entry.
19965
19966 2010-07-19  Xinliang David Li  <davidxl@google.com>
19967
19968         PR testsuite/44932
19969         * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
19970         def edges.
19971         (find_uninit_use): Add dump.
19972         (is_use_properly_guarded): Ditto.
19973         (warn_uninitialized_phi): Ditto.
19974         (execute_late_warn_uninitialized): Ditto.
19975
19976 2010-07-19  Richard Guenther  <rguenther@suse.de>
19977
19978         PR middle-end/44941
19979         * expr.c (emit_block_move_hints): Move zero size check first.
19980         Move asserts to more useful places.
19981         * calls.c (load_register_parameters): Check for zero size.
19982
19983 2010-07-19  Richard Henderson  <rth@redhat.com>
19984
19985         * tree-optimize.c (execute_all_early_local_passes): New.  Change
19986         cgraph_state here ...
19987         (execute_early_local_optimizations): ... not here.  Remove.
19988         (pass_early_local_passes, pass_all_early_optimizations): Update.
19989
19990 2010-07-19  Bernd Schmidt  <bernds@codesourcery.com>
19991
19992         * postreload.c (reload_combine_closest_single_use): Ignore the
19993         number of uses for DEBUG_INSNs.
19994         (fixup_debug_insns): New static function.
19995         (reload_combine_recognize_const_pattern): Use it.  Don't let the
19996         main loop be affected by DEBUG_INSNs.
19997         Really disallow moving adds past a jump insn.
19998         (reload_combine_recognize_pattern): Don't update use_ruid here.
19999         (reload_combine_note_use): Do it here.
20000         (reload_combine): Use control_flow_insn_p rather than JUMP_P.
20001
20002 2010-07-19  Bingfeng Mei  <bmei@broadcom.com>
20003
20004         * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
20005         of a loop.
20006         * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
20007
20008 2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>
20009
20010         * config/i386/darwin.h: Define darwin_emit_branch_islands.
20011         (TARGET_MACHO_BRANCH_ISLANDS): New.
20012         (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
20013         * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
20014         default value.
20015         * config/i386/i386.c (output_pic_addr_const): Do not emit
20016         branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
20017         (x86_output_mi_thunk): Adjust symbol creation.
20018         * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
20019         Remove out of date comment.
20020         * config/rs6000/rs6000.c (print_operand): Adjust symbol.
20021         (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
20022         (DARWIN_GENERATE_ISLANDS): Ditto.
20023         (output_call):  Do not emit branch islands unless
20024         darwin_emit_branch_islands is set.
20025         * config/darwin.c: Declare darwin_emit_branch_islands.
20026         (machopic_indirect_data_reference): Do not emit unless
20027         darwin_emit_branch_islands is set.
20028         (darwin_override_options): Set darwin_emit_branch_islands
20029         where it is needed.
20030         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
20031
20032 2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20033
20034         * doc/sourcebuild.texi (Effective-Target Keywords): Document
20035         sse_runtime, sse2_runtime.
20036
20037 2010-07-18  Richard Sandiford  <rdsandiford@googlemail.com>
20038
20039         * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
20040         low half of a single-register SCmode return value before ORing
20041         it with the high half.
20042         * config/mips/mips16.S (MERGE_GPRf): Likewise.
20043
20044 2010-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20045
20046         PR target/44805
20047         * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
20048         on all targets.
20049
20050 2010-07-17  Bernd Schmidt  <bernds@codesourcery.com>
20051
20052         PR target/42235
20053         * postreload.c (reload_cse_move2add): Return bool, true if anything.
20054         changed.  All callers changed.
20055         (move2add_use_add2_insn): Likewise.
20056         (move2add_use_add3_insn): Likewise.
20057         (reload_cse_regs): If reload_cse_move2add changed anything, rerun
20058         reload_combine.
20059         (RELOAD_COMBINE_MAX_USES): Bump to 16.
20060         (last_jump_ruid): New static variable.
20061         (struct reg_use): New members CONTAINING_MEM and RUID.
20062         (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
20063         (reload_combine_split_one_ruid, reload_combine_split_ruids,
20064         reload_combine_purge_insn_uses, reload_combine_closest_single_use
20065         reload_combine_purge_reg_uses_after_ruid,
20066         reload_combine_recognize_const_pattern): New static functions.
20067         (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
20068         is true for our reg and that we have available index regs.
20069         (reload_combine_note_use): New args RUID and CONTAINING_MEM.  All
20070         callers changed.  Use them to initialize fields in struct reg_use.
20071         (reload_combine): Initialize last_jump_ruid.  Be careful when to
20072         take PREV_INSN of the scanned insn.  Update REAL_STORE_RUID fields.
20073         Call reload_combine_recognize_const_pattern.
20074         (reload_combine_note_store): Update REAL_STORE_RUID field.
20075
20076 2010-07-16  Jason Merrill  <jason@redhat.com>
20077
20078         * Makefile.in (opts-common.o): Depend on options.h.
20079
20080 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
20081
20082         * tree.c (build_common_builtin_nodes): Use build_function_type_list
20083         instead of build_function_type.
20084         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
20085         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
20086
20087 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
20088
20089         * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
20090         do all the work.
20091         (rs6000_emit_int_cmove): Use function pointers for insn generation.
20092         Don't force values into registers unnecessarily.
20093         (output_isel): Assert that we're not given conditions we can't handle.
20094         Delete corresponding code.
20095         * config/rs6000/rs6000.md (isel_signed_<mode>): Use
20096         scc_comparison_operator constraint.  Permit 0 for the consequent
20097         operand.  Permit any GPR for the alternative operand.
20098         (isel_unsigned_<mode>): Likewise.
20099
20100 2010-07-16  Jakub Jelinek  <jakub@redhat.com>
20101
20102         PR target/44942
20103         * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
20104         argument to const_tree.
20105         * config/i386/i386.c (function_arg_advance): If padding needs to be
20106         inserted before argument, increment cum->words by number of padding
20107         words as well.
20108         (contains_aligned_value_p): Change argument to const_tree.
20109         (ix86_function_arg_boundary): Change second argument to const_tree.
20110
20111 2010-07-16  Bernd Schmidt  <bernds@codesourcery.com>
20112
20113         PR target/42235
20114         * function.c (record_hard_reg_sets): New static function.
20115         (assign_parm_setup_reg): If an optab for extending exists and the
20116         generated code clobbbers no hard regs, emit the insn directly and
20117         create a REG_EQUIV note.
20118
20119 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
20120
20121         * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
20122         TREE_CHAIN.
20123         * c-typeck.c (push_init_level): Likewise.
20124         (process_init_element): Likewise.
20125
20126 2010-07-15  Anatoly Sokolov  <aesok@post.ru>
20127
20128         * tree.h (enum tree_index): Add TI_INTEGER_THREE.
20129         (integer_three_node): Add.
20130         * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
20131         NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
20132         * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
20133         of call build_int_cst.
20134         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
20135         * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
20136         (find_interesting_uses_address): Ditto.
20137         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
20138         * tree-eh.c (lower_eh_constructs_2): Ditto.
20139         * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
20140         * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
20141         * expmed.c (expand_divmod): Ditto.
20142         * tree-mudflap.c (mx_register_decls): Ditto.
20143         * varasm.c (array_size_for_constructor): Ditto.
20144         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
20145         * c-parser.c (c_parser_postfix_expression): Ditto.
20146
20147 2010-07-15  Bernd Schmidt  <bernds@codesourcery.com>
20148
20149         * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
20150         New static variables.
20151         (reload_combine_recognize_pattern): New static function, broken out
20152         of reload_combine.
20153         (reload_combine): Use it.  Only initialize first_index_reg and
20154         last_index_reg once.
20155
20156 2010-07-15  Richard Henderson  <rth@redhat.com>
20157
20158         * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
20159         when done.
20160
20161 2010-07-15  Jan Hubicka  <jh@suse.cz>
20162
20163         * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
20164         comdats for broken gold.
20165         (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
20166
20167 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
20168
20169         * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
20170
20171 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
20172
20173         * tree.h (DECL_CHAIN): Define.
20174         * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
20175         * c-decl.c: Likewise.
20176         * c-parser.c: Likewise.
20177         * c-typeck.c: Likewise.
20178         * cfgexpand.c: Likewise.
20179         * cgraph.c: Likewise.
20180         * cgraphunit.c: Likewise.
20181         * combine.c: Likewise.
20182         * config/alpha/alpha.c: Likewise.
20183         * config/arm/arm.c: Likewise.
20184         * config/frv/frv.c: Likewise.
20185         * config/i386/i386.c: Likewise.
20186         * config/i386/winnt-cxx.c: Likewise.
20187         * config/ia64/ia64.c: Likewise.
20188         * config/iq2000/iq2000.c: Likewise.
20189         * config/mep/mep.c: Likewise.
20190         * config/mips/mips.c: Likewise.
20191         * config/pa/som.h: Likewise.
20192         * config/rs6000/rs6000.c: Likewise.
20193         * config/s390/s390.c: Likewise.
20194         * config/sh/sh.c: Likewise.
20195         * config/sh/symbian-cxx.c: Likewise.
20196         * config/sparc/sparc.c: Likewise.
20197         * config/spu/spu.c: Likewise.
20198         * config/stormy16/stormy16.c: Likewise.
20199         * config/vxworks.c: Likewise.
20200         * config/xtensa/xtensa.c: Likewise.
20201         * coverage.c: Likewise.
20202         * dbxout.c: Likewise.
20203         * dwarf2out.c: Likewise.
20204         * emit-rtl.c: Likewise.
20205         * expr.c: Likewise.
20206         * function.c: Likewise.
20207         * gimple-low.c: Likewise.
20208         * gimple-pretty-print.c: Likewise.
20209         * gimplify.c: Likewise.
20210         * integrate.c: Likewise.
20211         * ipa-inline.c: Likewise.
20212         * ipa-prop.c: Likewise.
20213         * ipa-split.c: Likewise.
20214         * ipa-struct-reorg.c: Likewise.
20215         * ipa-type-escape.c: Likewise.
20216         * langhooks.c: Likewise.
20217         * lto-cgraph.c: Likewise.
20218         * omp-low.c: Likewise.
20219         * stor-layout.c: Likewise.
20220         * tree-cfg.c: Likewise.
20221         * tree-complex.c: Likewise.
20222         * tree-dfa.c: Likewise.
20223         * tree-dump.c: Likewise.
20224         * tree-inline.c: Likewise.
20225         * tree-mudflap.c: Likewise.
20226         * tree-nested.c: Likewise.
20227         * tree-object-size.c: Likewise.
20228         * tree-pretty-print.c: Likewise.
20229         * tree-sra.c: Likewise.
20230         * tree-ssa-live.c: Likewise.
20231         * tree-ssa-loop-niter.c: Likewise.
20232         * tree-ssa-math-opts.c: Likewise.
20233         * tree-ssa-reassoc.c: Likewise.
20234         * tree-ssa-sccvn.c: Likewise.
20235         * tree-ssa-structalias.c: Likewise.
20236         * tree-tailcall.c: Likewise.
20237         * tree-vrp.c: Likewise.
20238         * tree.c: Likewise.
20239         * var-tracking.c: Likewise.
20240         * varasm.c: Likewise.
20241
20242 2010-07-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
20243
20244         PR target/44877
20245         * config/spu/spu.c (spu_expand_builtin_1): Allow references
20246         (as well as pointers) as argument to mask_for_load builtins.
20247
20248 2010-07-15  Richard Guenther  <rguenther@suse.de>
20249
20250         PR tree-optimization/44946
20251         * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
20252         with accessing only padding properly.
20253
20254 2010-07-15  Jan Hubicka  <jh@suse.cz>
20255
20256         * ipa.c (function_and_variable_visibility): Variables marked as used
20257         should not be localized.
20258
20259 2010-07-15  Jan Hubicka  <jh@suse.cz>
20260
20261         * cgraph.c: Include lto-streamer.h
20262         (change_decl_assembler_name): Work when assembler name hash is at place.
20263         (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
20264         be sure to rename it to avoid name clash.
20265         * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
20266         Localize hidden symbols only when locally defined.
20267
20268 2010-07-15  Uros Bizjak  <ubizjak@gmail.com>
20269
20270         * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
20271
20272 2010-07-15  Magnus Granberg  <zorry@gentoo.org>
20273             Kevin F. Quinn  <kevquinn@gentoo.org>
20274
20275         * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
20276         * common.opt: Add -Wtrampolines.
20277         * doc/invoke.texi: Add -Wtrampolines.
20278
20279 2010-07-15  Jie Zhang  <jie@codesourcery.com>
20280
20281         * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
20282         cortex_a8_issue_ls.
20283
20284 2010-07-15  Dave Korn  <dave.korn.cygwin@gmail.com>
20285
20286         * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
20287         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
20288
20289 2010-07-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
20290
20291         * config/spu/spu.c (reg_names): Remove prototype.
20292         (call_used_regs): Likewise.
20293
20294 2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
20295
20296         * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
20297         "unused" with attribute "used".
20298         (__JCR_END__): Likewise.
20299         * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
20300         "used" attribute.
20301         (__JCR_LIST__): Replace attribute "unused" with attribute "used".
20302
20303 2010-07-14  Richard Guenther  <rguenther@suse.de>
20304
20305         * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
20306         (maybe_fixup_decls): Likewise.
20307         (input_gimple_stmt): Do not fixup anything.
20308         * lto-streamer-out.c (output_gimple_stmt): Make sure all
20309         non-automatic variable uses are wrapped inside a MEM_REF.
20310
20311 2010-07-14  Richard Henderson  <rth@redhat.com>
20312
20313         * passes.c (rest_of_decl_compilation): Do not call assemble_variable
20314         for functions.
20315         * varasm.c (assemble_variable): Remove early exit for functions;
20316         assert that we're given a variable.
20317
20318 2010-07-14  Jie Zhang  <jie@codesourcery.com>
20319
20320         * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
20321         cortex_a8_default when neon_type is not none.
20322
20323 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
20324
20325         * lower-subreg.c (subreg_context): New static bitmap.
20326         (decompose_multiword_subregs): Allocate and free it.
20327         (find_decomposable_subregs): Set a bit in it for a register that
20328         occurs in a subreg that changes mode but not size.
20329         (can_decompose_p): Test it instead of non_decomposable_context.
20330
20331 2010-07-14  Richard Guenther  <rguenther@suse.de>
20332
20333         PR tree-optimization/44824
20334         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
20335         is_gimple_mem_ref_addr.
20336         (tree_ssa_forward_propagate_single_use_vars): Do not propagate
20337         non-decl_address_invariant_p addresses.
20338
20339 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
20340
20341         * reload.c (find_reloads): Revert code to penalize small register
20342         classes that was brought in with the IRA merge.
20343
20344 2010-07-14  Richard Guenther  <rguenther@suse.de>
20345
20346         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
20347         as base of ARRAY_REFs.
20348
20349 2010-07-14  Richard Guenther  <rguenther@suse.de>
20350
20351         PR middle-end/44930
20352         * tree-pretty-print.c (do_niy): Do not print a newline.
20353
20354 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
20355
20356         * ira-int.h (struct ira_object): New.
20357         (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
20358         (struct ira_allocno): Remove members min, max,
20359         conflict_allocno_array, conflict_id, conflict_allocno_array_size,
20360         conflict_allocnos_num and conflict_vec_p.  Add new member object.
20361         (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
20362         OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
20363         OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
20364         OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
20365         ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
20366         ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
20367         ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
20368         ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
20369         an ira_object_t rather than ira_allocno_t.  All uses changed.
20370         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
20371         contains a vector of ira_object_t; all uses changed.
20372         (ira_objects_num): Declare variable.
20373         (ira_create_allocno_object): Declare function.
20374         (ira_conflict_vector_profitable_p): Adjust prototype.
20375         (ira_allocate_conflict_vec): Renamed from
20376         ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
20377         (ira_allocate_object_conflicts): Renamed from
20378         ira_allocate_allocno_conflicts; first arg now ira_object_t.
20379         (struct ira_object_iterator): New.
20380         (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
20381         (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
20382         to conflict_vec_p.  All uses changed.
20383         (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
20384         Changed to take into account that conflicts are now tracked for
20385         objects.
20386         * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
20387         Args changed to accept ira_object_t.  All uses changed.
20388         (allocnos_conflict_p): New static function.
20389         (collected_conflict_objects): Renamed from collected_allocno_objects;
20390         now a vector of ira_object_t.  All uses changed.
20391         (build_conflict_bit_table): Changed to take into account that
20392         conflicts are now tracked for objects.
20393         (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
20394         (print_allocno_conflicts, ira_build_conflicts): Likewise.
20395         * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
20396         setup_allocno_left_conflicts_size, allocno_reload_assign,
20397         fast_allocation): Likewise.
20398         * ira-lives.c (make_hard_regno_born, make_allocno_born)
20399         process_single_reg_class_operands, process_bb_node_lives): Likewise.
20400         * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
20401         Likewise.
20402         * ira-build.c (ira_objects_num): New variable.
20403         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
20404         contains a vector of ira_object_t; all uses changed.
20405         (ira_object_id_map_vec): Corresponding change.
20406         (object_pool): New static variable.
20407         (initiate_allocnos): Initialize it.
20408         (finish_allocnos): Free it.
20409         (ira_create_object, ira_create_allocno_object, create_allocno_objects):
20410         New functions.
20411         (ira_create_allocno): Don't set members that were removed.
20412         (ira_set_allocno_cover_class): Don't change conflict hard regs.
20413         (merge_hard_reg_conflicts): Changed to take into account that
20414         conflicts are now tracked for objects.
20415         (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
20416         allocate_conflict_bit_vec, ira_allocate_object_conflicts,
20417         compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
20418         setup_min_max_allocno_live_range_point, allocno_range_compare_func,
20419         setup_min_max_conflict_allocno_ids, ):  Likewise.
20420         (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
20421         to ira_object_t; all callers changed.
20422         (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
20423         to ira_object_t, all callers changed.
20424         (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
20425         to ira_object_t, all callers changed.
20426         (conflict_check, curr_conflict_check_tick): Renamed from
20427         allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
20428         changed.
20429         (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
20430         arg changed to ira_object_t, all callers changed.
20431         (create_cap_allocno): Call ira_create_allocno_object.
20432         (finish_allocno): Free the corresponding object.
20433         (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
20434         callers changed.  Adjusted for dealing with objects.
20435         (ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
20436         dealing with objects.
20437         * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
20438
20439         * ira-int.h (struct live_range): Rename allocno member to object
20440         and change type to ira_object_t.
20441         (struct ira_object): New member live_ranges.
20442         (struct ira_allocno): Remove member live_ranges.
20443         (ALLOCNO_LIVE_RANGES): Remove.
20444         (OBJECT_LIVE_RANGES): New macro.
20445         (ira_create_live_range, ira_copy_live_range_list,
20446         ira_merge_live_range_list, ira_live_ranges_intersect_p,
20447         ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
20448         * ira-build.c (ira_create_object): Initialize live ranges here.
20449         (ira_create_allocno): Not here.
20450         (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
20451         changed to ira_object_t, all callers changed.
20452         (copy_live_range): Rename from copy_allocno_live_range, all callers
20453         changed.
20454         (ira_copy_live_range_list): Rename from
20455         ira_copy_allocno_live_range_list, all callers changed.
20456         (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
20457         all callers changed.
20458         (ira_live_ranges_intersect_p): Rename from
20459         ira_allocno_live_ranges_intersect_p, all callers changed.
20460         (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
20461         callers changed.
20462         (ira_finish_live_range_list): Rename from
20463         ira_finish_allocno_live_range_list, all callers changed.
20464         (change_object_in_range_list): Rename from change_allocno_in_range_list,
20465         last arg changed to ira_object_t, all callers changed.
20466         (finish_allocno): Changed to expect live ranges in the allocno's object.
20467         (move_allocno_live_ranges, copy_allocno_live_ranges,
20468         update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
20469         ira_flattening, ira_build): Likewise.
20470         * ira-color.c (allocnos_have_intersected_live_ranges_p,
20471         slot_coalesced_allocno_live_ranges_intersect,
20472         setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
20473         * ira-conflicts.c (build_conflict_bit_table): Likewise.
20474         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
20475         * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
20476         make_allocno_dead, create_start_finish_chains,
20477         remove_some_program_points_and_update_live_ranges,
20478         ira_debug_live_range_list): Likewise.
20479
20480         * ira-int.h (ira_object_conflict_iterator): Rename from
20481         ira_allocno_conflict_iterator.
20482         (ira_object_conflict_iter_init): Rename from
20483         ira_allocno_conflict_iter_init, second arg changed to
20484         * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
20485         FOR_EACH_ALLOCNO_CONFLICT.
20486         * ira-color.c (assign_hard_reg, push_allocno_to_stack)
20487         setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
20488         ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
20489         * ira-conflicts.c (print_allocno_conflicts): Likewise.
20490
20491 2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
20492
20493         PR other/44874
20494         * tree-dump.c (dump_options): Add enumerate_locals entry.
20495         Add TDF_NOID exclusion to all entry.
20496         * tree-dump.h (dump_enumerated_decls): Declare.
20497         * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
20498         Don't display type uid.
20499         (print_declaration): Don't crash on TREE_TYPE (t) == 0.
20500         * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
20501         * tree-ssa-live.c: Include gimple.h.
20502         (numbered_tree_d): New struct.
20503         (numbered_tree): New typedef.
20504         (DEF_VEC_O (numbered_tree): New.
20505         (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
20506         (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
20507         (dump_enumerated_decls): Likewise.
20508         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
20509         debug info and flag_dump_final_insns, call dump_enumerated_decls.
20510         * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
20511         * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
20512
20513 2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
20514
20515         * expmed.h (MAX_BITS_PER_WORD): Move to...
20516         * defaults.h (MAX_BITS_PER_WORD): ...here.
20517
20518 2010-07-13  DJ Delorie  <dj@redhat.com>
20519
20520         * config/h8300/h8300.c (h8300_init_once): Default to
20521         -fstrict_volatile_bitfields.
20522
20523         * config/sh/sh.c (sh_override_options): Default to
20524         -fstrict_volatile_bitfields.
20525
20526         * config/rx/rx.c (rx_option_override): New.
20527
20528         * config/m32c/m32c.c (m32c_override_options): Default to
20529         -fstrict_volatile_bitfields.
20530
20531 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
20532
20533         * tree.h (build_function_call_expr): Delete.
20534         (build_call_expr_loc_array): New function.
20535         (build_call_expr_loc_vec): New function.
20536         * tree-flow.h (struct omp_region): Change type of ws_args field
20537         to a VEC.
20538         * builtins.c (build_function_call_expr): Delete.
20539         (build_call_expr_loc_array): New function.
20540         (build_call_expr_loc): Call it.  Use XALLOCAVEC.
20541         (build_call_expr): Likewise.
20542         (build_call_expr_loc_vec): New function.
20543         * cgraphunit.c (build_cdtor): Call build_call_expr instead of
20544         build_function_call_expr.
20545         * expr.c (emutls_var_address): Likewise.
20546         * varasm.c (emutls_common_1): Likewise.
20547         * omp-low.c (expand_omp_atomic_mutex): Likewise.
20548         (expand_omp_taskreg): Adjust for new type of region->ws_args.
20549         (get_ws_args_for): Return a VEC instead of a tree.
20550         (expand_parallel_call): Call build_call_expr_loc_vec instead of
20551         build_function_call_expr.
20552         * stor-layout.c (self_referential_size): Likewise.
20553
20554 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
20555
20556         PR testsuite/44701
20557         * recog.c (constrain_operands): Allow side-effects in memory
20558         operands if either < or > constraint is used, rather than if
20559         both < and > is used.
20560
20561 2010-07-13  Richard Guenther  <rguenther@suse.de>
20562
20563         PR middle-end/44911
20564         * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
20565         MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
20566         without name.
20567
20568 2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
20569
20570         PR target/44761
20571         * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
20572         to variable emited.
20573         * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
20574         * config/sh/sh.md (symGOT_load): Likewise.
20575         (symDTPOFF2reg): Likewise.
20576         (symTPOFF2reg): Likewise.
20577
20578 2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
20579
20580         * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
20581         * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
20582
20583 2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20584
20585         * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
20586         explanation.
20587         Find ucontext_t * on Solaris 11.
20588         (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
20589         Handle new Solaris 11 __sighndlr patterns.
20590
20591 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
20592
20593         PR debug/44901
20594         * vec.h (VEC_block_remove): Fix comment.
20595         * tree-ssa-live.c (remove_unused_locals): Don't use
20596         VEC_unordered_remove on local_decls, instead replace a single
20597         vector element in each iteration if at least one element had
20598         to be removed and VEC_truncate at the end.
20599         * omp-low.c (expand_omp_taskreg): Likewise.
20600
20601 2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20602
20603         * c-decl.c (finish_function): Fix typo in comment.
20604
20605 2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
20606
20607         PR bootstrap/44921
20608         * postreload.c (move2add_use_add3_insn): Silence gcc warning
20609         on min_regno.
20610
20611 2010-07-12  Jakub Jelinek  <jakub@redhat.com>
20612
20613         * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
20614         (simplify_stmt_using_ranges): Use it.
20615
20616 2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
20617
20618         * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
20619         member.  Do not mark as GTY(()).
20620         * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
20621         (spu_builtin_decls): New static variable.
20622         (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
20623         (spu_init_builtins): Likewise.
20624         (spu_builtin_mul_widen_even): Likewise.
20625         (spu_builtin_mul_widen_odd): Likewise.
20626         (spu_builtin_mask_for_load): Likewise.
20627         (spu_builtin_vec_perm): Likewise.
20628         * config/spu/spu-c.c: Include "target.h".
20629         (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
20630         of using spu_builtins[].fndecl.
20631
20632 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20633
20634         * config/mips/mips.c (mips_override_options): Make -mflip-mips16
20635         imply -minterlink-mips16.
20636
20637 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20638
20639         * config/mips/mips.h (mips16_globals): Declare.
20640         (SWITCHABLE_TARGET): Define.
20641         * config/mips/mips.c: Include target-globals.h.
20642         (mips16_globals): New variable.
20643         (mips_set_mips16_mode): Use save_target_globals and
20644         restore_target_globals instead of target_reinit.
20645
20646 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20647
20648         * reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
20649         to say that the function can be called more than once.
20650         * target-globals.c (save_target_globals): Call init_reg_sets.
20651
20652 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20653
20654         * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
20655         * bb-reorder.h: New file.
20656         * bb-reorder.c (default_target_bb_reorder): New variable.
20657         (this_target_bb_reorder): New conditional variable.
20658         (uncond_jump_length): Redefine as a macro.
20659         * target-globals.h (this_target_bb_reorder): Declare.
20660         (target_globals): Add a bb_reorder field.
20661         (restore_target_globals): Copy the bb_reorder field to
20662         this_target_bb-reorder.
20663         * target-globals.c: Include bb-reorder.h.
20664         (default_target_globals): Initialize the bb_reorder field.
20665         (save_target_globals): Likewise.
20666
20667 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20668
20669         * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
20670         * gcse.h: New file.
20671         * gcse.c: Include gcse.h.
20672         (default_target_gcse): New variable.
20673         (this_target_gcse): New conditional variable.
20674         (can_copy): Redefine as a macro.
20675         (can_copy_init_p): New macro.
20676         (can_copy_p): Remove can_copy_init_p.
20677         * target-globals.h (this_target_gcse): Declare.
20678         (target_globals): Add a gcse field.
20679         (restore_target_globals): Copy the gcse field to this_target_gcse.
20680         * target-globals.c: Include gcse.h.
20681         (default_target_globals): Initialize the gcse field.
20682         (save_target_globals): Likewise.
20683
20684 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20685
20686         * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
20687         and x_ira_prohibited_mode_move_regs_initialized_p.
20688         (ira_prohibited_mode_move_regs): Redefine as a macro.
20689         * ira.c (ira_prohibited_mode_move_regs): Delete.
20690         (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
20691
20692 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20693
20694         * reload.h (target_reload): Add x_cached_reg_save_code and
20695         x_cached_reg_restore_code.
20696         * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
20697         Redefine as macros.
20698
20699 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20700
20701         * Makefile.in (target-globals.o): Depend on builtins.h.
20702         * builtins.h: New file.
20703         * builtins.c: Include builtins.h.
20704         (default_target_builtins): New variable.
20705         (this_target_builtins): New conditional variable.
20706         (apply_args_mode, apply_result_mode): Redefine as macros.
20707         * target-globals.h (this_target_builtins): Declare.
20708         (target_globals): Add a builtins field.
20709         (restore_target_globals): Copy the builtins field to
20710         this_target_builtins.
20711         * target-globals.c: Include builtins.h.
20712         (default_target_globals): Initialize the builtins field.
20713         (save_target_globals): Likewise.
20714
20715 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20716
20717         * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
20718         (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
20719         from expmed.c.
20720         (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
20721         (alg_hash, alg_hash_used_p): New macros.
20722         * expmed.c (init_expmed): Clear alg_hash if reinitializing.
20723         (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
20724         (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
20725
20726 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20727
20728         * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
20729         x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
20730         * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
20731         (this_op_costs, costs_classes): Redefine as macros.
20732         (record_reg_classes): Don't take op_costs as a parameter.
20733         (record_operand_costs): Likewise.  Update calls to record_reg_classes.
20734         (scan_one_insn): Update call to record_operand_costs.
20735
20736 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20737
20738         * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
20739         * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
20740         (target_ira_int): New structure.
20741         (default_target_ira_int): Declare.
20742         (this_target_ira_int): Declare as a variable or define as a macro.
20743         (ira_reg_mode_hard_regset, ira_register_move_cost)
20744         (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
20745         (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
20746         (prohibited_class_mode_regs, ira_important_classes_num)
20747         (ira_important_classes, ira_reg_class_intersect)
20748         (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
20749         (ira_reg_class_union): Redefine as macros.
20750         * ira.h (target_ira): New structure.
20751         (default_target_ira): Declare.
20752         (this_target_ira): Declare as a variable or define as a macro.
20753         (ira_available_class_regs, ira_hard_regno_cover_class)
20754         (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
20755         (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
20756         (ira_class_hard_regs_num): Redefine as macros.
20757         * ira.c (default_target_ira, default_target_ira_int): New variables.
20758         (this_target_ira, this_target_ira_int): New conditional variables.
20759         (ira_reg_mode_hard_regset, ira_memory_move_cost)
20760         (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
20761         (ira_class_subset_p): Delete.
20762         (no_unit_alloc_regs): Redefine as a macro.
20763         (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
20764         (ira_class_hard_regs_num, ira_class_hard_reg_index)
20765         (ira_available_class_regs): Delete.
20766         (alloc_reg_class_subclasses): Redefine as a macro.
20767         (ira_reg_class_cover_size, ira_reg_class_cover)
20768         (ira_important_classes_num, ira_important_classes)
20769         (ira_important_class_nums, ira_class_translate): Delete.
20770         (cover_class_order): Document the variable's lifetime.
20771         (reorder_important_classes): Don't set ira_important_class_nums.
20772         (ira_reg_class_intersect, ira_reg_classes_intersect_p)
20773         (ira_reg_class_super_classes, ira_reg_class_union)
20774         (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
20775         Delete.
20776         (setup_reg_class_nregs): Don't set ira_max_regs.
20777         (prohibited_class_mode_regs): Delete.
20778         * target-globals.h (this_target_ira, this_target_ira_int): Declare.
20779         (target_globals): Add ira and ira_int fields.
20780         (restore_target_globals): Copy the ira field to this_target_ira
20781         and the ira_int field to this_target_ira_int.
20782         * target-globals.c: Include ira-int.h.
20783         (default_target_globals): Initialize the ira and ira_int fields.
20784         (save_target_globals): Likewise.
20785
20786 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20787
20788         * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
20789         * cfgloop.h (target_cfgloop): New structure.
20790         (default_target_cfgloop): Declare.
20791         (this_target_cfgloop): Declare as a variable or define as a macro.
20792         (target_avail_regs, target_clobbered_regs, target_res_regs)
20793         (target_reg_cost, target_spill_cost): Redefine as macros.
20794         * cfgloopanal.c (default_target_cfgloop): New variable.
20795         (this_target_cfgloop): New conditional variable.
20796         (target_avail_regs, target_clobbered_regs, target_res_regs)
20797         (target_reg_cost, target_spill_cost): Delete.
20798         * target-globals.h (this_target_cfgloop): Declare.
20799         (target_globals): Add a cfgloop field.
20800         (restore_target_globals): Copy the cfgloop field to
20801         this_target_cfgloop.
20802         * target-globals.c: Include cfgloop.h.
20803         (default_target_globals): Initialize the cfgloop field.
20804         (save_target_globals): Likewise.
20805
20806 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20807
20808         * regs.h (target_regs): Add x_direct_load, x_direct_store and
20809         x_float_extend_from_mem.
20810         (direct_load, direct_store, float_extend_from_mem): New macros.
20811         * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
20812
20813 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20814
20815         * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
20816         (target-globals.o): Depend on $(LIBFUNCS_H).
20817         * libfuncs.h: Include hashtab.h.
20818         (libfunc_entry): Moved from optabs.c.
20819         (target_libfuncs): New structure.
20820         (default_target_libfuncs): Declare.
20821         (this_target_libfuncs): Declare as a variable or define as a macro.
20822         (libfunc_table): Redefine as a macro.
20823         * optabs.c (default_target_libfuncs): New variable.
20824         (this_target_libfuncs): New conditional variable.
20825         (libfunc_table): Delete.
20826         (libfunc_entry): Moved to optabs.h.
20827         (libfunc_hash): Redefine as a macro.
20828         (hash_libfunc, eq_libfunc): Fix comments.
20829         (init_optabs): Use libfunc_hash to detect cases where the function
20830         has already been called.  Clear the hash table instead of
20831         recreating it.
20832         * target-globals.h (this_target_libfuncs): Declare.
20833         (target_globals): Add a libfuncs field.
20834         (restore_target_globals): Copy the libfuncs field to
20835         this_target_libfuncs.
20836         * target-globals.c: Include libfuncs.h.
20837         (default_target_globals): Initialize the libfuncs field.
20838         (save_target_globals): Likewise.
20839
20840 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20841
20842         * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
20843         in all dependency lists.
20844
20845 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20846
20847         * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
20848         * optabs.h (target_optabs): New structure.
20849         (default_target_optabs): Declare.
20850         (this_target_optabs): Declare as a variable or define as a macro.
20851         (optab_table, convert_optab_table, direct_optab_table): Redefine
20852         as macros.
20853         * optabs.c (default_target_optabs): New variable.
20854         (this_target_optabs): New conditional variable.
20855         (optab_table, convert_optab_table, direct_optab_table): Delete.
20856         * target-globals.h (this_target_optabs): Declare.
20857         (target_globals): Add a optabs field.
20858         (restore_target_globals): Copy the optabs field to
20859         this_target_optabs.
20860         * target-globals.c: Include expr.h and optabs.h.
20861         (default_target_globals): Initialize the optabs field.
20862         (save_target_globals): Likewise.
20863
20864 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20865
20866         * flags.h (target_flagstate): Add x_flag_excess_precision.
20867         (flag_excess_precision): Redefine as a macro.
20868         * toplev.c (flag_excess_precision): Delete.
20869
20870 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20871
20872         * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
20873         * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
20874         * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
20875         (no_caller_save_reg_set): Redefine as a macro.
20876         * reload.h (target_reload): Add x_caller_save_initialized_p and
20877         x_regno_save_mode.
20878         (caller_save_initialized_p): Redefine as a macro.
20879         * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
20880         (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
20881         (regno_save_mode): Redefine as a macro.
20882
20883 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20884
20885         * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
20886         * expmed.h: New file.
20887         * expmed.c (default_target_costs): New variable.
20888         (this_target_costs): New conditional variable.
20889         (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
20890         (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
20891         (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
20892         * target-globals.h (this_target_expmed): Declare.
20893         (target_globals): Add a expmed field.
20894         (restore_target_globals): Copy the expmed field to
20895         this_target_expmed.
20896         * target-globals.c: Include expmed.h.
20897         (default_target_globals): Initialize the expmed field.
20898         (save_target_globals): Likewise.
20899
20900 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20901
20902         * Makefile.in (target-globals.o): Depend on reload.h.
20903         * reload.h (target_reload): New structure.
20904         (default_target_reload): Declare.
20905         (this_target_reload): Declare as a variable or define as a macro.
20906         (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
20907         * reload1.c (default_target_reload): New variable
20908         (this_target_reload): New conditional variable.
20909         (indirect_symref_ok, double_reg_address_ok): Delete.
20910         (spill_indirect_levels): Redefine as a macro.
20911         * target-globals.h (this_target_reload): Declare.
20912         (target_globals): Add a reload field.
20913         (restore_target_globals): Copy the reload field to
20914         this_target_reload.
20915         * target-globals.c: Include hard-reg-set.h.
20916         (default_target_globals): Initialize the reload field.
20917         (save_target_globals): Likewise.
20918
20919 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20920
20921         * rtl.h (target_rtl): Add x_static_reg_base_value.
20922         * alias.c (static_reg_base_value): Redefine as a macro.
20923
20924 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20925
20926         * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
20927         (GTFILES): Remove reginfo.c.
20928         * rtl.h (target_rtl): Add x_top_of_stack.
20929         (top_of_stack): New macro.
20930         * reginfo.c: Don't include ggc.h or gt-reginfo.h.
20931         (top_of_stack): Delete.
20932
20933 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20934
20935         * regs.h (target_regs): Add x_hard_regs_of_mode,
20936         x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
20937         x_may_move_out_cost and x_last_mode_for_init_move_cost.
20938         (have_regs_of_mode, contains_reg_of_mode, move_cost)
20939         (may_move_in_cost, may_move_out_cost): Redefine as macros.
20940         * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
20941         (may_move_in_cost, may_move_out_cost): Delete.
20942         (last_mode_for_init_move_cost): Redefine as a macro.
20943
20944 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20945
20946         * hard-reg-set.h (target_hard_regs): New structure.
20947         (default_target_hard_regs): Declare.
20948         (this_target_hard_regs): Declare as a variable or define as a macro.
20949         (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
20950         (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
20951         (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
20952         (reg_class_size, reg_class_subclasses, reg_class_subunion)
20953         (reg_class_superunion, reg_names): Redefine as macros.
20954         * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
20955         (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
20956         (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
20957         (reg_class_contents, reg_class_size, reg_class_subclasses)
20958         (reg_class_subunion, reg_class_superunion, reg_names): Delete.
20959         (default_target_hard_regs): New variable
20960         (this_target_hard_regs, initial_call_really_used_regs)
20961         (initial_reg_alloc_order): New conditional variables.
20962         (initial_reg_names): New variable.
20963         (init_reg_sets): Assert that initial_call_really_used_regs,
20964         initial_reg_alloc_order and initial_reg_names
20965         are all the same size as their variable counterparts.  Use them to
20966         initialize those counterparts.
20967         * target-globals.h (this_target_hard_regs): Declare.
20968         (target_globals): Add a hard_regs field.
20969         (restore_target_globals): Copy the hard_regs field to
20970         this_target_hard_regs.
20971         * target-globals.c: Include hard-reg-set.h.
20972         (default_target_globals): Initialize the hard_regs field.
20973         (save_target_globals): Likewise.
20974
20975 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20976
20977         * Makefile.in (target-globals.o): Depend on $(RTL_H).
20978         * rtl.h (target_rtl): New structure.
20979         (default_target_rtl): Declare.
20980         (this_target_rtl): Declare as a variable or define as a macro.
20981         (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
20982         Redefine as macros.
20983         * emit-rtl.c (default_target_rtl): New variable.
20984         (this_target_rtl): New conditional variable.
20985         (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
20986         (return_address_pointer_rtx): Delete.
20987         (initial_regno_reg_rtx): New macro.
20988         (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
20989         (init_emit_regs): Likewise.
20990         * target-globals.h (this_target_rtl): Declare.
20991         (target_globals): Add a rtl field.
20992         (restore_target_globals): Copy the rtl field to this_target_rtl.
20993         * target-globals.c: Include rtl.h.
20994         (default_target_globals): Initialize the rtl field.
20995         (save_target_globals): Likewise.
20996
20997 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
20998
20999         * Makefile.in (target-globals.o): Depend on $(REGS_H).
21000         * regs.h (target_reg_modes): New structure.
21001         (default_target_reg_modes): Declare.
21002         (this_target_reg_modes): Declare as a variable or define as a macro.
21003         (hard_regno_nregs, reg_raw_mode): Redefine as macros.
21004         * reginfo.c (default_target_reg_modes): New variable.
21005         (this_target_reg_modes): New conditional variable.
21006         (hard_regno_nregs, reg_raw_mode): Delete.
21007         * target-globals.h (this_target_regs): Declare.
21008         (target_globals): Add a regs field.
21009         (restore_target_globals): Copy the regs field to this_target_regs.
21010         * target-globals.c: Include regs.h.
21011         (default_target_globals): Initialize the regs field.
21012         (save_target_globals): Likewise.
21013
21014 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21015
21016         * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
21017         * doc/tm.texi: Regenerate.
21018         * Makefile.in (OBJS-common): Add target-globals.o.
21019         (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
21020         and target-globals.h.
21021         (target-globals.o): New rule.
21022         (GTFILES): Include $(srcdir)/target-globals.h.
21023         * defaults.h (SWITCHABLE_TARGET): Define.
21024         * gengtype.c (open_base_files): Add target-globals.h to the
21025         list of includes.
21026         * target-globals.h: New file.
21027         * target-globals.c: Likewise.
21028
21029         * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
21030         * flags.h (target_flag_state): New structure.
21031         (default_target_flag_state): Declare.
21032         (this_target_flag_state): Declare as a variable or define as a macro.
21033         (align_loops_log): Redefine as a macro.
21034         (align_loops_max_skip, align_jumps_log): Likewise.
21035         (align_jumps_max_skip, align_labels_log): Likewise.
21036         (align_labels_max_skip, align_functions_log): Likewise.
21037         * toplev.c (default_target_flag_state): New variable.
21038         (this_target_flag_state): New conditional variable.
21039         (align_loops_log): Delete.
21040         (align_loops_max_skip, align_jumps_log): Likewise.
21041         (align_jumps_max_skip, align_labels_log): Likewise.
21042         (align_labels_max_skip, align_functions_log): Likewise.
21043         * target-globals.h (this_target_flag_state): Declare.
21044         (target_globals): Add a flag_state field.
21045         (restore_target_globals): Copy the flag_state field to
21046         this_target_flag_state.
21047         * target-globals.c: Include flags.h.
21048         (default_target_globals): Initialize the flag_state field.
21049         (save_target_globals): Likewise.
21050
21051 2010-07-12  Jie Zhang  <jie@codesourcery.com>
21052
21053         * postreload.c (reg_symbol_ref[]): New.
21054         (move2add_use_add2_insn): New.
21055         (move2add_use_add3_insn): New.
21056         (reload_cse_move2add): Handle SYMBOL + OFFSET case.
21057         (move2add_note_store): Likewise.
21058
21059 2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
21060
21061         PR rtl-optimization/44752
21062         * genautomata.c (main): Don't emit an empty file even if there
21063         is no automaton.
21064
21065 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21066
21067         * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
21068         ix86_solaris_return_in_memory.
21069         * config/i386-protos.h: Reflect this.
21070         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
21071         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
21072         Move ...
21073         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
21074
21075 2010-07-12  Jie Zhang  <jie@codesourcery.com>
21076
21077         * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
21078         align the stack when it's going to be saved.
21079
21080 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21081
21082         PR pch/14940
21083         * config/host-solaris.c (mmap_fixed): New function.
21084         (sol_gt_pch_get_address): Use it.
21085         (sol_gt_pch_use_address): Likewise.
21086
21087 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21088
21089         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
21090         pentiumpro on Solaris 8 and 9/x86.
21091         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
21092         Document SSE/SSE2 support.
21093         * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
21094
21095 2010-07-12  Andi Kleen  <ak@linux.intel.com>
21096
21097         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
21098         instead of gcc_assert to print better error message for multiple
21099         prevailing defs.
21100
21101 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
21102
21103         * config/i386/i386.c (ix86_asm_output_function_label): Change format
21104         string placeholder from 0x%x to %#x.
21105         (ix86_code_end): Use putc to output '\n'.
21106         (ix86_print_operand) <case ';'>: Use putc to output ';'.
21107
21108 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
21109
21110         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
21111         in directive -export.
21112
21113 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
21114
21115         * reginfo.h (reg_classes_intersect_p): Change arguments type to
21116         reg_class_t.
21117         * rtl.h (reg_classes_intersect_p): Adjust prototype.
21118
21119         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
21120         Remove macros.
21121         * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
21122         rs6000_memory_move_cost): Remove
21123         * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
21124         TARGET_MEMORY_MOVE_COST): Define.
21125         (rs6000_register_move_cost): Make static. Change arguments type from
21126         enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
21127         (rs6000_memory_move_cost): Make static. Change arguments type from
21128         'enum reg_class' to reg_class_t.
21129
21130 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
21131
21132         PR middle-end/42505
21133         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
21134         lookup code into....
21135         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
21136         new functions.
21137         * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
21138         * cfgloopanal.c (target_clobbered_regs): Define.
21139         (init_set_costs): Initialize target_clobbered_regs.
21140         (estimate_reg_pressure_cost): Add call_p argument.  When true,
21141         adjust the number of available registers to exclude the
21142         call-clobbered registers.
21143         * cfgloop.h (target_clobbered_regs): Declare.
21144         (estimate_reg_pressure_cost): Adjust declaration.
21145         * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
21146         (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
21147         (determine_set_costs): Dump target_clobbered_regs.
21148         (loop_body_includes_call): New function.
21149         (tree_ssa_iv_optimize_loop): Use it to initialize new field.
21150         * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
21151         call_p flag through.
21152         (best_gain_for_invariant): Likewise.
21153         (find_invariants_to_move): Likewise.
21154         (move_single_loop_invariants): Likewise, using already-computed
21155         has_call field.
21156
21157 2010-07-10  Richard Guenther  <rguenther@suse.de>
21158             Joern Rennecke  <joern.rennecke@embecosm.com>
21159
21160         PR debug/44832
21161         * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
21162         (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
21163         unless they have DECL_IGNORED_P set.
21164
21165 2010-07-10  Richard Guenther  <rguenther@suse.de>
21166
21167         PR lto/44889
21168         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
21169         helper function.
21170         (gimple_types_compatible_p): Similar to pointed-to
21171         types allow and merge a mix of complete and incomplete aggregate.
21172         Use gimple_fixup_complete_and_incomplete_subtype_p for that.
21173         (iterative_hash_gimple_type): Adjust for that.
21174
21175 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
21176
21177         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
21178
21179 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
21180
21181         PR objc/44140
21182         * config/darwin.c (output_objc_section_asm_op): Save and restore
21183         section when outputting ObjC section list.
21184
21185 2010-07-09  Jan Hubicka  <jh@suse.cz>
21186
21187         * lto-streamer-out.c (produce_symtab): Do not write alias
21188         cgraph/varpool nodes.
21189
21190 2010-07-09  Jan Hubicka  <jh@suse.cz>
21191
21192         * tree-inline.c (declare_return_variable): Fix ICE while
21193         inlining DECL_BY_VALUE function not in SSA form
21194
21195 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
21196
21197         PR tree-optimization/44576
21198         * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
21199         New.  Pull out from is_loop_prefetching_profitable to implement
21200         the trip count to ahead ratio heuristic.
21201         (mem_ref_count_reasonable_p): New.  Pull out from
21202         is_loop_prefetching_profitable to implement the instruction to
21203         memory reference ratio heuristic.  Also consider not reasonable if
21204         the memory reference count is above a threshold (to avoid
21205         explosive compilation time.
21206         (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
21207         is_loop_prefetching_profitable to implement the instruction to
21208         prefetch ratio heuristic.
21209         (is_loop_prefetching_profitable): Removed.
21210         (loop_prefetch_arrays): Distribute the cost analysis across the
21211         function to allow early exit of the prefetch analysis.
21212         is_loop_prefetching_profitable is splitted into three functions,
21213         with each one called as early as possible.
21214         (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
21215         number of memory references in a loop is considered too many.
21216
21217 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
21218
21219         * reload.c (find_reloads): Don't clear badop if we have a winreg
21220         alternative, but not win, and the class only has fixed regs.
21221         * hard-reg-set.h (class_only_fixed_regs): Declare.
21222         * reginfo.c (class_only_fixed_regs): New array.
21223         (init_reg_sets_1): Initialize it.
21224         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
21225         discourage alternatives using the stack pointer.
21226
21227         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
21228
21229         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
21230
21231         * config/arm/arm.md (cbranchqi4): Fix array size.
21232         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
21233         calculating length.
21234
21235 2010-07-09  Richard Guenther  <rguenther@suse.de>
21236
21237         * gimple.c (struct type_fixup_s): New struct and VEC type.
21238         (gimple_register_type_fixups): New static global.
21239         (gimple_queue_type_fixup): New function.
21240         (gimple_types_compatible_p): Queue type fixups instead of
21241         applying them here.
21242         (gimple_register_type): Apply queued fixups for the
21243         canonical type.  Empty the type fixup queue.
21244
21245 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
21246
21247         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
21248         * configure: Regenerate.
21249         * config.in: Ditto.
21250
21251 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
21252             Denys Vlasenko  <dvlasenk@redhat.com>
21253             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
21254
21255         PR tree-optimization/28632
21256         * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
21257         (extract_range_from_binary_expr): Further optimize
21258         BIT_AND_EXPR and BIT_IOR_EXPR.
21259
21260 2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
21261
21262         * tree-if-conv.c (fold_or_predicates): New.
21263         (add_to_predicate_list): Call it.
21264
21265 2010-07-09  Richard Guenther  <rguenther@suse.de>
21266
21267         PR middle-end/44890
21268         * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
21269         if base is a pointer.
21270         * tree-cfg.c (verify_expr): Update MEM_REF checking.
21271
21272 2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
21273
21274         PR target/44877
21275         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
21276         POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
21277         builtin mask for load/store builtins.
21278
21279 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
21280
21281         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
21282         for "lock addl".
21283         * configure: Regenerate.
21284         * config/i386/i386.c (ix86_print_operand) <case ';'>:
21285         Remove TARGET_MACHO.
21286
21287 2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
21288
21289         * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
21290         default ISA flags.
21291         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
21292
21293 2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
21294
21295         * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
21296
21297 2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
21298
21299         * config/picochip/picochip.md (commsTestPort): Emit more
21300         efficient sequence for tstport instruction.
21301
21302 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
21303
21304         * config/i386/i386.c (ix86_veclib_handler): Make static.
21305
21306 2010-07-09  Richard Guenther  <rguenther@suse.de>
21307
21308         PR tree-optimization/44852
21309         * tree-ssa-alias.c: Include toplev.h for exact_log2.
21310         (indirect_ref_may_alias_decl_p): Properly handle negative offsets
21311         in MEM_REF.
21312         (indirect_refs_may_alias_p): Likewise.
21313         * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
21314
21315 2010-07-09  Richard Guenther  <rguenther@suse.de>
21316
21317         PR tree-optimization/44882
21318         * tree-vect-stmts.c (vectorizable_store): Do not assert alias
21319         sets do conflict.
21320         (vectorizable_load): Likewise.
21321
21322 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
21323
21324         PR target/40657
21325         * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
21326         All callers changed.
21327         Handle the case when we're called for the epilogue.
21328         (thumb_unexpanded_epilogue): Use it.
21329         (thumb1_expand_epilogue): Likewise.
21330
21331 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
21332
21333         * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
21334         both ranges are range_int_cst_p with non-negative minimum,
21335         try harder to derive smaller range.
21336
21337 2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21338
21339         * genrecog.c: Include diagnostic-core.h before toplev.h.
21340         * genoutput.c: Likewise.
21341         * genextract.c: Likewise.
21342         * genautomata.c: Likewise.
21343         * genemit.c: Likewise.
21344         * genpeep.c: Likewise.
21345         * genattrtab.c: Likewise.
21346         * genconditions.c: Likewise.
21347         * genpreds.c: Likewise.
21348
21349 2010-07-08  Andi Kleen  <ak@linux.intel.com>
21350
21351         * lto-section-in.c (lto_section_name): Add missing comma.
21352
21353 2010-07-08  Anatoly Sokolov  <aesok@post.ru>
21354
21355         * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
21356         * config/ia64/ia64-protos.h (ia64_override_options): Remove.
21357         * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
21358         (ia64_override_options): Rename to...
21359         (ia64_option_override): ... this one. Make static.
21360
21361 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
21362
21363         PR middle-end/44843
21364         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
21365         pointed-to type of the offset in a MEM_REF to compute the alignment.
21366
21367 2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
21368
21369         * final.c (final_scan_insn): Replace
21370         TARGET_UNWIND_INFO macro check by unwind_emit
21371         hook NULL check.
21372         * targhooks.c (default_unwind_emit): Removed.
21373         * targhooks.h (default_unwind_emit): Likewise.
21374         * target.def (unwind_emit): Set default value to NULL.
21375
21376         * config/i386/i386-protos.h (ix86_asm_output_function_label):
21377         New prototype.
21378         * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
21379         for NULL fntype argument and allow 64-bit targets.
21380         (ix86_asm_output_function_label): New function.
21381         (ix86_expand_prologue): Handle 64-bit ms hook prologue.
21382         (ix86_handle_fndecl_attribute): Likewise.
21383         * doc/extend.texi (ms_hook_prologue): Adjust documentation.
21384         * doc/doc/tm.texi: Regenerated.
21385         * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
21386         (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
21387         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
21388         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
21389         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
21390         * config/elfos.h: Likewise.
21391         * config/i386/cygming.h: Likewise.
21392         * config/netbsd-aout.h: Likewise.
21393         * config/openbsd.h: Likewise.
21394         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
21395         by ix86_asm_output_function_label function call.
21396         * varasm.c (assemble_start_function): Use
21397         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
21398
21399 2010-07-08  Jan Hubicka  <jh@suse.cz>
21400
21401         * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
21402         New function.
21403         * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
21404         Declare.
21405         * ipa-cp.c (ipcp_estimate_growth): Use it.
21406         * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
21407         Likewise.
21408
21409 2010-07-08  Jan Hubicka  <jh@suse.cz>
21410
21411         * tree-inline.c (declare_return_variable): Allocate annotation for new
21412         temporary.
21413
21414 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
21415
21416         PR tree-optimization/44710
21417         * tree-if-conv.c (parse_predicate): New.
21418         (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
21419         Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
21420
21421 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
21422
21423         * common.opt (ftree-loop-if-convert): New flag.
21424         * doc/invoke.texi (ftree-loop-if-convert): Documented.
21425         * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
21426         when flag_tree_loop_if_convert is set.
21427
21428 2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
21429
21430         * config/i386/i386.c: Use short syntax for function calls
21431         through function pointers.
21432         * config/i386/i386.md: Ditto.
21433
21434 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
21435
21436         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
21437
21438 2010-07-08  Richard Guenther  <rguenther@suse.de>
21439
21440         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
21441         stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
21442
21443 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
21444
21445         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
21446         instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
21447         (loc_list_from_tree): Likewise.
21448         (output_loc_operands): Handle outputting DW_OP_const[48]u
21449         with loc->dtprel set.
21450         (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
21451
21452 2010-07-08  Jan Hubicka  <jh@suse.cz>
21453
21454         * ipa.c: Include pointer-set.h
21455         (cgraph_externally_visible_p): New attribute ALIASED;
21456         when in LTO, hidden symbols are local unless they are aliased.
21457         (function_and_variable_visibility): Compute aliased nodes;
21458         handle LTO and hidden symbol on functions and vars.
21459         * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
21460         for COMDAT symbols; handle COMDAT_GROUPS also at vars.
21461
21462 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
21463
21464         * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
21465         * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
21466         * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
21467         * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
21468         * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
21469         * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
21470         (ix86_gen_probe_stack_range): Likewise.
21471         (override_options): Set them.
21472         (ix86_target_stack_probe): New function.
21473         (ix86_compute_frame_layout): Force use of push instructions to
21474         save registers if stack checking with probes is enabled.
21475         (get_scratch_register_on_entry): New function.
21476         (release_scratch_register_on_entry): Likewise.
21477         (ix86_adjust_stack_and_probe): Likewise.
21478         (output_adjust_stack_and_probe): Likewise.
21479         (ix86_emit_probe_stack_range): Likewise.
21480         (output_probe_stack_range): Likewise.
21481         (ix86_expand_prologue): Emit stack checking code if static built-in
21482         stack checking is enabled.
21483         Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
21484         * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
21485         (output_adjust_stack_and_probe): Likewise.
21486         (output_probe_stack_range): Likewise.
21487         * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
21488         (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
21489         TARGET_STACK_PROBE.
21490         (allocate_stack_worker_64): Likewise.
21491         (allocate_stack): Likewise.
21492         (adjust_stack_and_probe): New insn.
21493         (probe_stack_range): Likewise.
21494
21495 2010-07-08  Richard Guenther  <rguenther@suse.de>
21496
21497         PR tree-optimization/44831
21498         * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
21499         a MEM_REF preserving TBAA info of the original dereference.
21500         Dereference the original pointer if the address is not invariant.
21501         (propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
21502         at least one invariant address that we are going to dereference.
21503
21504 2010-07-08  Richard Guenther  <rguenther@suse.de>
21505
21506         PR tree-optimization/44861
21507         * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
21508         information when building MEM_REFs.
21509         (vectorizable_load): Likewise.
21510         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
21511
21512 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
21513
21514         * config/sol2-c.c: Do not include diagnostic-core.h.
21515
21516 2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21517
21518         PR bootstrap/44768
21519         * cfgexpand.c (estimated_stack_frame_size): Make self-contained
21520         with respect to current_function_decl. Pass decl of the function.
21521         * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
21522         * ipa-inline.c (compute_inline_parameters): Pass decl to
21523         estimated_stack_frame_size.
21524
21525 2010-07-08  Richard Guenther  <rguenther@suse.de>
21526
21527         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
21528         New function.
21529         (valueize_refs): Call it.
21530
21531 2010-07-08  Richard Guenther  <rguenther@suse.de>
21532
21533         PR rtl-optimization/44838
21534         * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
21535         SSA form do not use pointer equivalence.
21536
21537 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
21538
21539         * dwarf2out.c (AT_linkage_name): Delete.
21540         (add_linkage_attr): New function.
21541         (add_linkage_name): Call it to emit the linkage attribute.
21542         (dwarf2out_finish): Likewise.
21543         (move_linkage_attr): Explicitly accept both attribute variants.
21544
21545 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21546
21547         * toplev.h: Do not include diagnostic-core.h.
21548         Include diagnostic-core.h in every file that includes toplev.h.
21549         * c-tree.h: Do not include toplev.h.
21550         * pretty-print.h: Update comment.
21551         * Makefile.in: Update dependencies.
21552         * alias.c: Include diagnostic-core.h in every file that includes
21553         toplev.h.
21554         * attribs.c: Likewise.
21555         * auto-inc-dec.c: Likewise.
21556         * bb-reorder.c: Likewise.
21557         * bt-load.c: Likewise.
21558         * caller-save.c: Likewise.
21559         * calls.c: Likewise.
21560         * cfg.c: Likewise.
21561         * cfganal.c: Likewise.
21562         * cfgbuild.c: Likewise.
21563         * cfgcleanup.c: Likewise.
21564         * cfghooks.c: Likewise.
21565         * cfgloop.c: Likewise.
21566         * combine.c: Likewise.
21567         * config/alpha/alpha.c: Likewise.
21568         * config/arc/arc.c: Likewise.
21569         * config/arm/arm.c: Likewise.
21570         * config/arm/pe.c: Likewise.
21571         * config/avr/avr.c: Likewise.
21572         * config/bfin/bfin.c: Likewise.
21573         * config/cris/cris.c: Likewise.
21574         * config/crx/crx.c: Likewise.
21575         * config/darwin-c.c: Likewise.
21576         * config/darwin.c: Likewise.
21577         * config/fr30/fr30.c: Likewise.
21578         * config/frv/frv.c: Likewise.
21579         * config/h8300/h8300.c: Likewise.
21580         * config/host-darwin.c: Likewise.
21581         * config/i386/i386.c: Likewise.
21582         * config/i386/netware.c: Likewise.
21583         * config/i386/nwld.c: Likewise.
21584         * config/i386/winnt-cxx.c: Likewise.
21585         * config/i386/winnt-stubs.c: Likewise.
21586         * config/i386/winnt.c: Likewise.
21587         * config/ia64/ia64-c.c: Likewise.
21588         * config/ia64/ia64.c: Likewise.
21589         * config/iq2000/iq2000.c: Likewise.
21590         * config/lm32/lm32.c: Likewise.
21591         * config/m32c/m32c-pragma.c: Likewise.
21592         * config/m32c/m32c.c: Likewise.
21593         * config/m32r/m32r.c: Likewise.
21594         * config/m68hc11/m68hc11.c: Likewise.
21595         * config/m68k/m68k.c: Likewise.
21596         * config/mcore/mcore.c: Likewise.
21597         * config/mep/mep-pragma.c: Likewise.
21598         * config/mep/mep.c: Likewise.
21599         * config/mmix/mmix.c: Likewise.
21600         * config/mn10300/mn10300.c: Likewise.
21601         * config/moxie/moxie.c: Likewise.
21602         * config/pa/pa.c: Likewise.
21603         * config/pdp11/pdp11.c: Likewise.
21604         * config/picochip/picochip.c: Likewise.
21605         * config/rs6000/rs6000-c.c: Likewise.
21606         * config/rs6000/rs6000.c: Likewise.
21607         * config/rx/rx.c: Likewise.
21608         * config/s390/s390.c: Likewise.
21609         * config/score/score.c: Likewise.
21610         * config/score/score3.c: Likewise.
21611         * config/score/score7.c: Likewise.
21612         * config/sh/sh.c: Likewise.
21613         * config/sh/symbian-base.c: Likewise.
21614         * config/sh/symbian-c.c: Likewise.
21615         * config/sh/symbian-cxx.c: Likewise.
21616         * config/sol2-c.c: Likewise.
21617         * config/sol2.c: Likewise.
21618         * config/sparc/sparc.c: Likewise.
21619         * config/spu/spu.c: Likewise.
21620         * config/stormy16/stormy16.c: Likewise.
21621         * config/v850/v850-c.c: Likewise.
21622         * config/v850/v850.c: Likewise.
21623         * config/vax/vax.c: Likewise.
21624         * config/vxworks.c: Likewise.
21625         * config/xtensa/xtensa.c: Likewise.
21626         * convert.c: Likewise.
21627         * cse.c: Likewise.
21628         * cselib.c: Likewise.
21629         * dbgcnt.c: Likewise.
21630         * dbxout.c: Likewise.
21631         * ddg.c: Likewise.
21632         * dominance.c: Likewise.
21633         * emit-rtl.c: Likewise.
21634         * explow.c: Likewise.
21635         * expmed.c: Likewise.
21636         * fixed-value.c: Likewise.
21637         * fold-const.c: Likewise.
21638         * fwprop.c: Likewise.
21639         * gcse.c: Likewise.
21640         * ggc-common.c: Likewise.
21641         * ggc-page.c: Likewise.
21642         * ggc-zone.c: Likewise.
21643         * gimple-low.c: Likewise.
21644         * gimplify.c: Likewise.
21645         * graph.c: Likewise.
21646         * haifa-sched.c: Likewise.
21647         * ifcvt.c: Likewise.
21648         * implicit-zee.c: Likewise.
21649         * integrate.c: Likewise.
21650         * ira-build.c: Likewise.
21651         * ira-color.c: Likewise.
21652         * ira-conflicts.c: Likewise.
21653         * ira-costs.c: Likewise.
21654         * ira-lives.c: Likewise.
21655         * ira.c: Likewise.
21656         * lists.c: Likewise.
21657         * loop-doloop.c: Likewise.
21658         * loop-iv.c: Likewise.
21659         * lto-opts.c: Likewise.
21660         * lto-symtab.c: Likewise.
21661         * main.c: Likewise.
21662         * modulo-sched.c: Likewise.
21663         * optabs.c: Likewise.
21664         * params.c: Likewise.
21665         * plugin.c: Likewise.
21666         * postreload-gcse.c: Likewise.
21667         * postreload.c: Likewise.
21668         * predict.c: Likewise.
21669         * profile.c: Likewise.
21670         * real.c: Likewise.
21671         * regcprop.c: Likewise.
21672         * reginfo.c: Likewise.
21673         * regmove.c: Likewise.
21674         * reorg.c: Likewise.
21675         * resource.c: Likewise.
21676         * rtl.c: Likewise.
21677         * rtlanal.c: Likewise.
21678         * sched-deps.c: Likewise.
21679         * sched-ebb.c: Likewise.
21680         * sched-rgn.c: Likewise.
21681         * sdbout.c: Likewise.
21682         * sel-sched-dump.c: Likewise.
21683         * sel-sched-ir.c: Likewise.
21684         * simplify-rtx.c: Likewise.
21685         * stmt.c: Likewise.
21686         * stor-layout.c: Likewise.
21687         * store-motion.c: Likewise.
21688         * targhooks.c: Likewise.
21689         * tree-cfg.c: Likewise.
21690         * tree-cfgcleanup.c: Likewise.
21691         * tree-dump.c: Likewise.
21692         * tree-eh.c: Likewise.
21693         * tree-inline.c: Likewise.
21694         * tree-nomudflap.c: Likewise.
21695         * tree-object-size.c: Likewise.
21696         * tree-optimize.c: Likewise.
21697         * tree-outof-ssa.c: Likewise.
21698         * tree-phinodes.c: Likewise.
21699         * tree-profile.c: Likewise.
21700         * tree-ssa-ccp.c: Likewise.
21701         * tree-ssa-coalesce.c: Likewise.
21702         * tree-ssa-live.c: Likewise.
21703         * tree-ssa-loop-niter.c: Likewise.
21704         * tree-ssa-loop-prefetch.c: Likewise.
21705         * tree-ssa-loop.c: Likewise.
21706         * tree-ssa-structalias.c: Likewise.
21707         * tree-ssa-uninit.c: Likewise.
21708         * tree-ssa.c: Likewise.
21709         * tree-vect-data-refs.c: Likewise.
21710         * tree-vect-loop-manip.c: Likewise.
21711         * tree-vect-loop.c: Likewise.
21712         * tree-vect-patterns.c: Likewise.
21713         * tree-vect-stmts.c: Likewise.
21714         * tree-vrp.c: Likewise.
21715         * varasm.c: Likewise.
21716         * vec.c: Likewise.
21717         * web.c: Likewise.
21718         * xcoffout.c: Likewise.
21719
21720 2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
21721
21722         * gengtype.c (write_field_root): New function.
21723         (write_root): Use it.
21724
21725 2010-07-07  Wei Guozhi  <carrot@google.com>
21726
21727         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
21728         of lowest bits to lshift/compare): Add a missing line.
21729
21730 2010-07-07  Wei Guozhi  <carrot@google.com>
21731
21732         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
21733         of lowest bits to lshift/compare): New.
21734
21735 2010-07-07  Tom Tromey  <tromey@redhat.com>
21736
21737         * doc/tm.texi: Update.
21738         * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
21739         Add @hook.
21740         * target.def (want_debug_pub_sections): New hook.
21741         * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
21742         * dwarf2out.c (add_pubname_string): Check
21743         targetm.want_debug_pub_sections.
21744         (add_pubname): Likewise.
21745         (add_pubtype): Likewise.
21746
21747 2010-07-07  Jie Zhang  <jie@codesourcery.com>
21748
21749         * genautomata.c (output_automata_list_min_issue_delay_code):
21750         Correctly decompress min_issue_delay.
21751
21752 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
21753
21754         PR rtl-optimization/44404
21755         * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
21756         possible, use reg_overlap_mentioned_p instead.
21757
21758 2010-07-07  Duncan Sands  <baldrick@free.fr>
21759
21760         PR middle-end/41355
21761         * tree.c (build_function_type_skip_args): Copy the original type using
21762         build_distinct_type_copy rather than copy_node.
21763
21764 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
21765
21766         PR target/44850
21767         * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
21768         revision 161876.
21769         (ix86_expand_prologue): Likewise.
21770         (ix86_handle_fndecl_attribute): Likewise.
21771         (ix86_asm_declare_function_name): Likewise.
21772         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
21773         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
21774         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
21775         * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
21776         * doc/extend.texi: Likewise.
21777
21778 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
21779
21780         PR target/44844
21781         * config/i386/i386.md (rdrand<mode>): Changed to expand to
21782         retry if the carry flag isn't valid.
21783         (rdrand<mode>_1): New.
21784
21785 2010-07-07  Richard Guenther  <rguenther@suse.de>
21786
21787         PR middle-end/44790
21788         * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
21789         for expanding the constant offset for MEM_REFs.
21790
21791 2010-07-07  Richard Guenther  <rguenther@suse.de>
21792
21793         * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
21794         * tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
21795         * gimple.h (is_gimple_operand): Remove.
21796         * gimple.c (is_gimple_operand): Likewise.
21797         (walk_gimple_op): Fix wi->val_only setting for calls.
21798         * tree-cfg.c (verify_gimple_call): Fix argument validation.
21799         * tree-profile.c (tree_gen_ic_func_profiler): Do not create
21800         invalid gimple calls.
21801
21802 2010-07-06  Jan Hubicka  <jh@suse.cz>
21803
21804         * lto-cgraph.c (output_cgraph): Add missing declaration.
21805
21806 2010-07-06  Jan Hubicka  <jh@suse.cz>
21807
21808         * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
21809         partition.
21810
21811 2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
21812
21813         * doc/gimple.texi (GIMPLE_DEBUG): Document.
21814         * doc/rtl.texi (Debug Information): New node.
21815         (NOTE_INSN_VAR_LOCATION): Document.
21816         (debug_insn): Likewise.
21817         * doc/generic.texi (DEBUG_EXPR_DECL): Document.
21818
21819 2010-07-07  Jan Hubicka  <jh@suse.cz>
21820
21821         With parts by Richard Guenther.
21822
21823         PR middle-end/44813
21824         * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
21825         for functions passed by reference.
21826         * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
21827         in memory when passed by reference.
21828         * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
21829         beggining.
21830         * ipa-split.c (split_function): Cleanup way return value is passed;
21831         handle SSA DECL_BY_REFERENCE retvals.
21832         * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
21833         DECL_BY_REFERENCE is set.
21834         * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
21835         find_what_p_points_to): Handle RESULT_DECL.
21836         * tree-inline.c (declare_return_variable): Get new entry_block argument;
21837         when passing by reference ensure that RESULT_DECL is gimple_val.
21838         (remap_gimple_op_r): Remap RESULT_DECL ssa name.
21839         (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
21840
21841 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
21842
21843         PR rtl-optimization/44787
21844         * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
21845         * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
21846
21847 2010-07-06  Jan Hubicka  <jh@suse.cz>
21848
21849         * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
21850         (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
21851         with body can prevail.
21852         (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
21853         (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
21854         * cgraph.c (cgraph_get_node_or_alias): New function.
21855         * cgraph.h (cgraph_get_node_or_alias): Declare.
21856
21857 2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
21858
21859         * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
21860         support.
21861         (ix86_expand_prologue): Likewise.
21862         (ix86_handle_fndecl_attribute): Likewise.
21863         (ix86_asm_declare_function_name): New function for
21864         ASM_DECLARE_FUNCTION_NAME.
21865         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
21866         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
21867         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
21868         * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
21869         * doc/extend.texi: Adjust documentation about ms_hook_prologue
21870         attribute.
21871
21872 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
21873
21874         * config/i386/i386.md (immediate_operand): New mode attribute.
21875
21876         (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
21877         pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
21878         using P mode iterator.
21879         (pro_epilogue_adjust_stack_di_2): Rename from
21880         pro_epilogue_adjust_stack_rex64_2.
21881
21882         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
21883
21884 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
21885
21886         * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
21887         through gen_mov_insv_1 function pointer.
21888         (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
21889         gen_truncxf<mode>2 through gen_truncxf function pointer.
21890         (remainder<mode>3): Ditto.
21891         (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
21892         (allocate_stack): Call gen_allocate_stack_worker_64 or
21893         gen_allocate_stack_worker_32 through gen_allocate_stack_worker
21894         function pointer.
21895         (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
21896         function pointer.
21897
21898 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
21899
21900         * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
21901         operand constraint instead of <r><i>m.
21902
21903 2010-07-06  Richard Guenther  <rguenther@suse.de>
21904
21905         PR middle-end/44828
21906         * convert.c (convert_to_integer): Watch out for overflowing
21907         MULT_EXPR as well.
21908
21909 2010-07-05  Jan Hubicka  <jh@suse.cz>
21910
21911         * lto-streamer.c (write_symbol_vec): Rename to ...
21912         (write_symbol) ... this one; write only symbol given and when
21913         present in cache. Sanity check that what is defined is present
21914         in cgraph/varpool with body/finalized decl.
21915         (write_symbols_of_kind): Remove.
21916         (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
21917         pairs to produce symtab.
21918         (produce_asm_for_decls): Update call of produce_symtab; don't do so
21919         when doing WPA streaming.
21920
21921 2010-07-05  Jan Hubicka  <jh@suse.cz>
21922
21923         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
21924         function is still available to fold into.
21925
21926 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
21927
21928         * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
21929         * function.h (struct_function): Change type of local_decls field
21930         to a VEC.
21931         (add_local_decl): New function.
21932         (FOR_EACH_LOCAL_DECL): New macro.
21933         * cfgexpand.c (init_vars_expansion): Adjust for new type of
21934         cfun->local_decls.
21935         (estimated_stack_frame_size): Likewise.
21936         (expand_used_vars): Likewise.
21937         * cgraphbuild.c (build_cgraph_edges): Likewise.
21938         * function.c (instantiate_decls_1): Likewise.
21939         * ipa-struct-reorg.c (build_data_structure): Likewise.
21940         * ipa-type-escape.c (analyze_function): Likewise.
21941         * lto-streamer-in.c (input_function): Likewise.
21942         * lto-streamer-out.c (output_function): Likewise.
21943         * tree-ssa-live.c (remove_unused_locals): Likewise.
21944         * tree.c (free_lang_data_in_decl): Likewise.
21945         (find_decls_types_in_node): Likewise.
21946         * omp-low.c (remove_exit_barrier): Likewise.
21947         (expand_omp_taskreg): Likewise.
21948         (list2chain): Rename to...
21949         (vec2chain): ...this.  Adjust.
21950         * cgraphunit.c (assemble_thunk): Call add_local_decl.
21951         * tree-cfg.c (replace_by_duplicate_decl): Likewise.
21952         * gimple-low.c (record_vars_into): Likewise.
21953         * tree-inline.c (remap_decls): Likewise.
21954         (declare_return_variable): Likewise.
21955         (declare_inline_vars): Likewise.
21956         (copy_forbidden): Adjust for new type of cfun->local_decls.
21957         (add_local_variables): New function.
21958         (expand_call_inline): Call it.
21959         (tree_function_versioning): Likewise.
21960
21961 2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
21962
21963         AVX Programming Reference (June, 2010)
21964         * config/i386/cpuid.h (bit_F16C): New.
21965         (bit_RDRND): Likewise.
21966         (bit_FSGSBASE): Likewise.
21967
21968         * config/i386/i386-builtin-types.def: Add
21969         "DEF_FUNCTION_TYPE (UINT16)", function types for
21970         float16 <-> float conversions and
21971         "DEF_FUNCTION_TYPE (VOID, UINT64)".
21972
21973         * config/i386/i386-c.c (ix86_target_macros_internal): Support
21974         OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
21975         OPTION_MASK_ISA_F16C.
21976
21977         * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
21978         (OPTION_MASK_ISA_RDRND_SET): Likewise.
21979         (OPTION_MASK_ISA_F16C_SET): Likewise.
21980         (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
21981         (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
21982         (OPTION_MASK_ISA_F16C_UNSET): Likewise.
21983         (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
21984         (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
21985         (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
21986         (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
21987         (override_options): Handle them.
21988         (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
21989         (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
21990         IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
21991         IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
21992         IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
21993         IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
21994         IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
21995         IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
21996         IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
21997         (bdesc_args): Likewise.
21998         (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
21999         V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
22000         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
22001         VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
22002         Handle non-memory store.
22003
22004         * config/i386/i386.h (TARGET_FSGSBASE): New.
22005         (TARGET_RDRND): Likewise.
22006         (TARGET_F12C): Likewise.
22007
22008         * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
22009         (UNSPEC_VCVTPS2PH): Likewise.
22010         (UNSPECV_RDFSBASE): Likewise.
22011         (UNSPECV_RDGSBASE): Likewise.
22012         (UNSPECV_WRFSBASE): Likewise.
22013         (UNSPECV_WRGSBASE): Likewise.
22014         (UNSPECV_RDRAND): Likewise.
22015         (rdfsbase<mode>): Likewise.
22016         (rdgsbase<mode>): Likewise.
22017         (wrfsbase<mode>): Likewise.
22018         (wrgsbase<mode>): Likewise.
22019         (rdrand<mode>): Likewise.
22020
22021         * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
22022
22023         * config/i386/immintrin.h (_rdrand_u16): New.
22024         (_rdrand_u32): Likewise.
22025         (_readfsbase_u32): Likewise.
22026         (_readfsbase_u64): Likewise.
22027         (_readgsbase_u32): Likewise.
22028         (_readgsbase_u64): Likewise.
22029         (_writefsbase_u32): Likewise.
22030         (_writefsbase_u64): Likewise.
22031         (_writegsbase_u32): Likewise.
22032         (_writegsbase_u64): Likewise.
22033         (_rdrand_u64): Likewise.
22034         (_cvtsh_ss): Likewise.
22035         (_mm_cvtph_ps): Likewise.
22036         (_mm256_cvtph_ps): Likewise.
22037         (_cvtss_sh): Likewise.
22038         (_mm_cvtps_ph): Likewise.
22039         (_mm256_cvtps_ph): Likewise.
22040
22041         * config/i386/sse.md (vcvtph2ps): New.
22042         (*vcvtph2ps_load): Likewise.
22043         (vcvtph2ps256): Likewise.
22044         (vcvtps2ph): Likewise.
22045         (*vcvtps2ph): Likewise.
22046         (*vcvtps2ph_store): Likewise.
22047         (vcvtps2ph256): Likewise.
22048
22049         * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
22050
22051         * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
22052
22053 2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
22054
22055         PR bootstrap/44512
22056         * genenums.c (main): Output include of insn-constants.h
22057         * Makefile.in (insn-enums.o): Depend on insn-constants.h.
22058
22059 2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
22060
22061         * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
22062         (override_options): Initialize it.
22063         (ix86_expand_prologue): Use it.
22064
22065 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
22066
22067         * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
22068
22069 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
22070
22071         * double-int.h (fit_double_type): Remove declaration.
22072         * double-int.c (fit_double_type): Remove function.
22073         * tree.h (int_fits_type_p): Adjust prototype.
22074         * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
22075         instead of fit_double_type.
22076         (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
22077         instead of fit_double_type and build_int_cst_wide.
22078         * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
22079         instead of fit_double_type and build_int_cst_wide.
22080         (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
22081         of fit_double_type.
22082
22083 2010-07-05  Jan Hubicka  <jh@suse.cz>
22084
22085         * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
22086         in_other_partition.
22087         * lto-cgraph.c (referenced_from_other_partition_p,
22088         reachable_from_other_partition_p): Use in_other_partition flags.
22089         (output_node, output_varpool_node): COMDAT nodes always have private
22090         copies and thus are never used from other partition.
22091
22092 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
22093
22094         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
22095         * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
22096         * config/ia64/ia64.c Include reload.h.
22097         (ia64_memory_move_cost): New function.
22098         (TARGET_MEMORY_MOVE_COST): Define.
22099         (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
22100         memory_move_cost.
22101
22102 2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
22103
22104         PR middle-end/42505
22105         * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
22106         comments about cost model.
22107         (try_add_cand_for):  Add second strategy for choosing initial set
22108         based on original IVs, controlled by ORIGINALP argument.
22109         (get_initial_solution): Add ORIGINALP argument.
22110         (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
22111         (find_optimal_iv_set): Try two different strategies for choosing
22112         the IV set, and return the one with lower cost.
22113
22114 2010-07-05  Richard Guenther  <rguenther@suse.de>
22115
22116         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
22117
22118 2010-07-05  Richard Guenther  <rguenther@suse.de>
22119
22120         * tree.c (reference_alias_ptr_type): New function.
22121         * tree.h (reference_alias_ptr_type): Declare.
22122         * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
22123         allow non-TARGET_MEM_REF new refs.
22124         (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
22125         * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
22126         Build a MEM_REF instead of a TARGET_MEM_REF if possible.
22127         (create_mem_ref): Get alias pointer type.  Adjust calls to
22128         create_mem_ref_raw.
22129         (maybe_fold_tmr): Likewise.
22130         * tree-flow.h (create_mem_ref): Adjust prototype.
22131
22132 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
22133
22134         PR c++/44808
22135         * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
22136         *from_p is VAR_DECL.
22137
22138 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
22139
22140         * tree.h (build_call_list): Remove.
22141         * tree.c (build_call_list): Remove.
22142
22143 2010-07-05  Richard Guenther  <rguenther@suse.de>
22144
22145         * double-int.h (double_int_sub): Declare.
22146         * double-int.c (double_int_sub): New function.
22147         * dwarf2out.c (field_byte_offset): Use it.
22148         * fixed-value.c (do_fixed_add): Likewise.
22149         (do_fixed_multiply): Likewise.
22150         (do_fixed_divide): Likewise.
22151         * tree-predcom.c (add_ref_to_chain): Likewise.
22152         (determine_roots_comp): Likewise.
22153         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
22154
22155 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
22156
22157         * vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
22158         implementations.
22159
22160 2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>
22161
22162         * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
22163         * arm-modes.def (CC_NOTB): Don't define.
22164         * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
22165         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
22166         (LTUGEU): New code_iterator.
22167         (cnb, optab): New corresponding code_attrs.
22168         (addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
22169         to canonical form.  Operands 1 and 2 are commutative.  Parametrize
22170         using LTUGEU.
22171         (addsi3_carryin_shift_<optab>): Likewise.
22172         (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
22173         Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
22174         (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
22175         (subsi3_compare): Renamed from subsi3_compare0_c.
22176         Change CC_NOTB to CC.
22177         (arm_subsi3_insn): Allow constants for operand 0.
22178         (compare_scc peephole for eq case): New.
22179         (compare_scc splitters): Change CC_NOTB to CC.
22180
22181 2010-07-05  Richard Guenther  <rguenther@suse.de>
22182
22183         * tree-ssa-loop-im.c (for_each_index): Do not handle
22184         ALIGN_INDIRECT_REF.
22185         (gen_lsm_tmp_name): Likewise.
22186         * tree-dump.c (dequeue_and_dump): Likewise.
22187         * tree-pretty-print.c (dump_generic_node): Likewise.
22188         (op_code_prio): Likewise.
22189         (op_symbol_code): Likewise.
22190         * tree.c (staticp): Likewise.
22191         (build1_stat): Likewise.
22192         * tree.h (INDIRECT_REF_P): Likewise.
22193         * fold-const.c (maybe_lvalue_p): Likewise.
22194         (operand_equal_p): Likewise.
22195         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
22196         (ao_ref_init_from_vn_reference): Likewise.
22197         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
22198         (find_interesting_uses_address): Likewise.
22199         * dwarf2out.c (loc_list_from_tree): Likewise.
22200         * gimplify.c (gimplify_expr): Likewise.
22201         * tree-eh.c (tree_could_trap_p): Likewise.
22202         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
22203         * cfgexpand.c (expand_debug_expr): Likewise.
22204         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
22205         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
22206         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
22207         * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
22208         * tree-ssa-operands.c (get_expr_operands): Likewise.
22209         * expr.c (safe_from_p): Likewise.
22210         (expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
22211         * tree-vect-data-refs.c (vect_setup_realignment): Build
22212         BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
22213         * tree-vect-stmts.c (vectorizable_load): Likewise.
22214         * tree.def (ALIGN_INDIRECT_REF): Remove.
22215
22216 2010-07-05  Richard Guenther  <rguenther@suse.de>
22217
22218         PR tree-optimization/44784
22219         * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
22220         for inserted stmts.
22221         (find_or_generate_expression): Fix SCCVN insertion check.
22222
22223 2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>
22224
22225         * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
22226         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
22227         * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
22228         directives.
22229
22230 2010-07-05  Ira Rosen  <irar@il.ibm.com>
22231
22232         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
22233         statements that are not vectorized.
22234         * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
22235         in INSIDE_COST.
22236
22237 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
22238
22239         PR bootstrap/44820
22240         * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
22241
22242 2010-07-05  Richard Guenther  <rguenther@suse.de>
22243
22244         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
22245         RESULT_DECLs properly.
22246
22247 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
22248
22249         PR rtl-optimization/44695
22250         * config/i386/i386.md (extract_code): Removed.
22251         (<u>divmodqi4): Likewise.
22252         (divmodqi4): New.
22253         (udivmodqi4): Likewise.
22254         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
22255         (udivmodhiqi3): Likewise.
22256
22257 2010-07-04  Jan Hubicka  <jh@suse.cz>
22258
22259         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
22260
22261 2010-07-04  Jan Hubicka  <jh@suse.cz>
22262
22263         * cgraphunit.c (init_cgraph): Only initialize dump file if it
22264         is not already initialized.
22265
22266 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
22267
22268         * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
22269         (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
22270         (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
22271         (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
22272         (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
22273         (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
22274         (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
22275         (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
22276         (sync_new_nand_optab): Redefine as macros.
22277         (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
22278         Delete.
22279         (direct_optab_index): New enum.
22280         (direct_optab_d): New structure.
22281         (direct_optab): New typedef.
22282         (direct_optab_table): Declare.
22283         (direct_optab_handler, set_direct_optab_handler): New functions.
22284         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
22285         (sync_lock_release_optab): New macros.
22286         * optabs.c (direct_optab_table): New variable.
22287         (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
22288         (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
22289         cmpstr_optab and cmpstrn_optab.
22290         (emit_conditional_move): Likewise for movcc_optab.
22291         (can_conditionally_move_p): Likewise for movcc_gen_code.
22292         (init_insn_codes): Clear direct_optab_table.
22293         (init_optabs): Don't initialize the new "direct optabs" here.
22294         (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
22295         vcond_gen_code.
22296         (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
22297         (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
22298         (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
22299         (expand_sync_operation): Likewise other sync_*_optabs.
22300         (expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
22301         to sync_compare_and_swap_optab.
22302         (expand_sync_lock_test_and_set): Use direct_optab_handler for
22303         sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
22304         to the names of both.
22305         * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
22306         cmpstr_optab and cmpstrn_optab.
22307         (expand_builtin_lock_release): Likewise sync_lock_release.
22308         * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
22309         (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
22310         (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
22311         (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
22312         (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
22313         (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
22314         (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
22315         (sync_lock_test_and_set, sync_lock_release): Delete.
22316         (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
22317         (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
22318         * genopinit.c (optabs): Use set_direct_optab_handler for the new
22319         macro optabs.
22320         * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
22321         the "optab" local variable.  Use direct_optab_handler for optab and
22322         sync_compare_and_swap_optab.
22323         * reload1.c (reload_in_optab, reload_out_optab): Delete.
22324         * targhooks.c (default_secondary_reload): Use direct_optab_handler for
22325         reload_in_optab and reload_out_optab.
22326         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
22327         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
22328         * config/pa/pa.c (pa_secondary_reload): Likewise.
22329         * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
22330         for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
22331         (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
22332         (VMSupportsCS8_builtin): Likewise.
22333
22334 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
22335
22336         * optabs.h (optab_handlers): Change type of insn_code to int.
22337         (optab_handler, set_optab_handler, convert_optab_handler)
22338         (set_convert_optab_handler): Treat the insn_code field as "insn_code -
22339         CODE_FOR_nothing".
22340         * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
22341         (init_insn_codes): Zero both the above arrays.
22342         (init_optabs): Never call init_insn_codes first time around.
22343
22344 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
22345
22346         * optabs.h (optab_handler, convert_optab_handler): Turn into
22347         inline functions that return an insn code.
22348         (set_optab_handler, set_convert_optab_handler): New functions.
22349         * builtins.c: Replace optab_handler(X)->insn_code with
22350         optab_handler or set_optab_handler thoughout.  Likewise
22351         convert_optab_handler(X)->insn_code with convert_optab_handler
22352         and set_convert_optab_handler.
22353         * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
22354         reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
22355         tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
22356         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
22357         tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
22358         config/spu/spu.c: Likewise.
22359
22360 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
22361
22362         PR target/44531
22363         * config.gcc (sh*-*-*): Use regular expressions instead of
22364         the 'i' modifier for sed substitutions.
22365
22366 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
22367
22368         * gimple.c (gimple_body): Comments added.
22369
22370 2010-07-04  Richard Guenther  <rguenther@suse.de>
22371
22372         PR middle-end/44809
22373         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
22374         of an INDIRECT_REF.
22375
22376 2010-07-04  Richard Guenther  <rguenther@suse.de>
22377
22378         PR tree-optimization/44479
22379         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
22380         extra SSA name copy statements which preserves points-to
22381         information.
22382         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
22383         Copy points-to information for all pointers.  Properly handle
22384         MEM_REFs.
22385         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
22386         copy statements.
22387         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
22388         dependency.
22389
22390 2010-07-04  Richard Guenther  <rguenther@suse.de>
22391
22392         PR middle-end/44785
22393         * tree-inline.c (initialize_inlined_parameters): Do not
22394         re-use pointer-map slot over remap_type call.
22395
22396 2010-07-04  Richard Guenther  <rguenther@suse.de>
22397
22398         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
22399
22400 2010-07-04  Richard Guenther  <rguenther@suse.de>
22401
22402         PR tree-optimization/44656
22403         * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
22404         again after value-replacing in the defintions lhs.
22405
22406 2010-07-04  Ira Rosen  <irar@il.ibm.com>
22407             Revital Eres  <eres@il.ibm.com>
22408
22409         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
22410         Document new arguments.
22411         * doc/tm.texi: Regenerate.
22412         * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
22413         Handle unaligned store.
22414         * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
22415         * target.def (builtin_vectorization_cost): Add new arguments.
22416         * target.h (enum vect_cost_for_stmt): Add unaligned_store.
22417         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
22418         of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
22419         (vect_vfa_segment_size): Fix indentation.
22420         * tree-vectorizer.h (struct _vect_peel_info): New.
22421         (struct _vect_peel_extended_info): New.
22422         (struct _loop_vec_info): Add new field for peeling hash table and a
22423         macro for its access.
22424         (VECT_MAX_COST): Define.
22425         (vect_get_load_cost): Declare.
22426         (vect_get_store_cost, vect_get_known_peeling_cost,
22427         vect_get_single_scalar_iteraion_cost): Likewise.
22428         (vect_supportable_dr_alignment): Add new argument.
22429         * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
22430         field.
22431         (destroy_loop_vec_info): Free peeling hash table.
22432         (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
22433         (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
22434         vect_analyze_slp. Fix indentation.
22435         (vect_get_single_scalar_iteraion_cost): New function.
22436         (vect_get_known_peeling_cost): Likewise.
22437         (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
22438         Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
22439         statement. Move outside cost calculation inside unknown peeling case.
22440         Call vect_get_known_peeling_cost for known amount of peeling.
22441         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
22442         reference to the print message of forced alignment.
22443         (vect_verify_datarefs_alignment): Update call to
22444         vect_supportable_dr_alignment.
22445         (vect_get_data_access_cost): New function.
22446         (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
22447         vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
22448         vect_peeling_hash_choose_best_peeling): Likewise.
22449         (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
22450         to store all the accesses in the loop and find best possible access to
22451         align using peeling for known alignment case. For unknown alignment
22452         check if stores are preferred or if peeling is worthy.
22453         (vect_find_same_alignment_drs): Analyze pairs of loads too.
22454         (vect_supportable_dr_alignment): Add new argument and check aligned
22455         accesses according to it.
22456         * tree-vect-stmts.c (vect_get_stmt_cost): New function.
22457         (cost_for_stmt): Call vect_get_stmt_cost.
22458         (vect_model_simple_cost): Likewise.
22459         (vect_model_store_cost): Call vect_get_stmt_cost. Call
22460         vect_get_store_cost to calculate the cost of the statement.
22461         (vect_get_store_cost): New function.
22462         (vect_model_load_cost): Call vect_get_stmt_cost. Call
22463         vect_get_load_cost to calculate the cost of the statement.
22464         (vect_get_load_cost): New function.
22465         (vectorizable_store): Update call to vect_supportable_dr_alignment.
22466         (vectorizable_load): Likewise.
22467         * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
22468         * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
22469         arguments. Handle unaligned store.
22470         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
22471         (rs6000_builtin_support_vector_misalignment): Return true for word and
22472         double word alignments for VSX.
22473         * tree-vect-slp.c (vect_build_slp_tree): Update calls to
22474         vect_supportable_dr_alignment and builtin_vectorization_cost.
22475
22476 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22477
22478         PR target/44597
22479         * config/pa/predicates.md (prefetch_cc_operand): Remove.
22480         (prefetch_nocc_operand): Likewise.
22481         * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
22482         (prefetch_20): New insn.
22483         (prefetch_cc): Remove.
22484         (prefetch_nocc): Likewise.
22485
22486 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22487
22488         * expr.c (vector_mode_valid_p): Move to c-common.c.
22489         * expr.h (vector_mode_valid_p): Do not declare here.
22490         * system.h: Poison GCC_EXPR_H in front-ends.
22491         * Makefile.in: Update dependencies.
22492
22493 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22494
22495         PR target/44705
22496         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
22497
22498 2010-07-03  Jan Hubicka  <jh@suse.cz>
22499
22500         * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
22501         TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
22502         * cfgexpand.c (gimple_expand_cfg): Use new timevars.
22503         * var-tracking.c (vt_find_locations, variable_tracking_main_1):
22504         Likewise.
22505
22506         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
22507         Update timevars.V
22508         * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
22509         (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
22510         TV_IPA_LTO_DECL_OUT): New.
22511         * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
22512
22513 2010-07-03  Jan Hubicka  <jh@suse.cz>
22514
22515         * ipa-inline.c (update_edge_key): Break out from ...
22516         update_callers_keys): ... here;
22517         (update_callee_keys): Update only the edges from caller to callee.
22518         (update_all_calle_keys): Do what update_calle_keys did.
22519         (decide_inlining_of_small_functions): Avoid recomputing of all
22520         callees when badness increase.
22521
22522 2010-07-03  Jie Zhang  <jie@codesourcery.com>
22523
22524         * config/arm/arm.c (arm_attr_length_move_neon): New.
22525         * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
22526         * config/arm/neon.md (define_mode_attr V_slen): Remove.
22527         (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
22528         to compute length attribute.
22529
22530 2010-07-03  Jie Zhang  <jie@codesourcery.com>
22531
22532         * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
22533         as predicate for operand 1 and remove its constraint.
22534         * config/arm/predicates.md (vfp_register_operand): New.
22535         * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
22536         (*push_fp_multi): Likewise.
22537
22538 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
22539
22540         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
22541
22542 2010-07-03  Jan Hubicka  <jh@suse.cz>
22543
22544         * config/i386/i386.c (override_options): Revert accidental commit.
22545
22546 2010-07-02  Le-Chun Wu  <lcwu@google.com>
22547
22548         PR c++/44128
22549         * doc/invoke.texi: Update documentation of -Wshadow.
22550
22551 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
22552             Julian Brown  <julian@codesourcery.com>
22553             Sandra Loosemore  <sandra@codesourcery.com>
22554
22555         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
22556         comparisons.  Adjust to take both operands.
22557         (arm_select_cc_mode): Handle DImode comparisons.
22558         (arm_gen_compare_reg): Generate a scratch register for DImode
22559         comparisons which require one.  Use xor for Thumb equality checks.
22560         (arm_const_double_by_immediates): New.
22561         (arm_print_operand): Allow 'Q' and 'R' for constants.
22562         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
22563         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
22564         arm_canonicalize_comparison.
22565         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
22566         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
22567         prototype.
22568         (arm_const_double_by_immediates): Declare.
22569         * config/arm/constraints.md (Di): New constraint.
22570         * config/arm/predicates.md (arm_immediate_di_operand)
22571         (arm_di_operand, cmpdi_operand): New.
22572         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
22573         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
22574         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
22575         (cstoredi4): Handle non-Cirrus also.
22576
22577 2010-07-02  Julian Brown  <julian@codesourcery.com>
22578             Sandra Loosemore  <sandra@codesourcery.com>
22579
22580         PR target/43703
22581         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
22582         (smax<mode>3): Disable for NEON float modes when
22583         flag_unsafe_math_optimizations is false.
22584         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
22585         (*mul<mode>3_neon)
22586         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
22587         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
22588         for NEON float modes when flag_unsafe_math_optimizations is false.
22589         (quad_halves_<code>v4sf): Only enable if
22590         flag_unsafe_math_optimizations is true.
22591         * doc/invoke.texi (ARM Options): Add note about floating point
22592         vectorization requiring -funsafe-math-optimizations.
22593
22594 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
22595             Julian Brown  <julian@codesourcery.com>
22596
22597         * config/arm/neon.md (UNSPEC_VABA): Delete.
22598         (UNSPEC_VABAL): Delete.
22599         (UNSPEC_VABS): Delete.
22600         (UNSPEC_VMUL_N): Delete.
22601         (adddi3_neon): New.
22602         (subdi3_neon): New.
22603         (mul<mode>3add<mode>_neon): Make the pattern named.
22604         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
22605         (neon_vadd<mode>): Replace with define_expand, and move the remaining
22606         unspec parts...
22607         (neon_vadd<mode>_unspec): ...to this.
22608         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
22609         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
22610         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
22611         (neon_vaba<mode>): Rewrite in terms of vabd.
22612         (neon_vabal<mode>): Rewrite in terms of vabdl.
22613         (neon_vabs<mode>): Rewrite without unspec.
22614         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
22615         (*arm_subdi3): Likewise.
22616         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
22617         No_op attribute to disable assembly output checks.
22618         * config/arm/arm_neon.h: Regenerated.
22619         * doc/arm-neon-intrinsics.texi: Regenerated.
22620
22621 2010-07-02  Jan Hubicka  <jh@suse.cz>
22622
22623         * ipa-split.c (split_function): For aggregate values, set the return
22624         slot optimization bit.  When passing DECL_BY_REFERENCE, produce
22625         *<retval> = fncall.part ().
22626         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
22627
22628 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
22629
22630         * config/arm/neon.md (UNSPEC_VAND): Delete.
22631         (UNSPEC_VBIC): Delete.
22632         (UNSPEC_VCLZ): Delete.
22633         (UNSPEC_VCNT): Delete.
22634         (UNSPEC_VEOR): Delete.
22635         (UNSPEC_VORN): Delete.
22636         (UNSPEC_VORR): Delete.
22637         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
22638         core registers too.
22639         (anddi3_neon): Likewise.
22640         (orndi3_neon): Likewise.
22641         (bicdi3_neon): Likewise.
22642         (xordi3_neon): Likewise.
22643         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
22644         rid of unspec and handle unused operand.
22645         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
22646         * config/arm/predicates.md (imm_for_neon_logic_operand):
22647         Require TARGET_NEON.
22648         (imm_for_neon_inv_logic_operand): Likewise.
22649         * config/arm/arm.md (define_split for logical_binary_operator):
22650         Disable for NEON registers.
22651         (anddi3): Add new define_expand, and rename the insn.  Disable
22652         this insn for NEON, where anddi3_neon now applies.
22653         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
22654         (iordi3): As for anddi3.
22655         (xordi3): Likewise.
22656         * config/arm/neon.ml (Vand): Split DImode variants and mark them
22657         as No_op to disable testing for exact instruction match.
22658         (Vorr): Likewise.
22659         (Veor): Likewise.
22660         (Vbic): Likewise.
22661         (Vorn): Likewise.
22662         * config/arm/arm_neon.h: Regenerated.
22663         * doc/arm-neon-intrinsics.texi: Regenerated.
22664
22665 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
22666
22667         * expr.h (emit_stack_probe): Declare.
22668         * explow.c (emit_stack_probe): Make global.
22669         (anti_adjust_stack_and_probe): Fix comments.
22670         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
22671         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
22672         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
22673         * config/sparc/sparc.c: Include except.h.
22674         (sparc_emit_probe_stack_range): New function.
22675         (output_probe_stack_range): Likewise.
22676         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
22677         built-in stack checking is enabled.
22678         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
22679         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
22680         (probe_stack_range): New insn.
22681
22682 2010-07-02  Richard Guenther  <rguenther@suse.de>
22683
22684         PR target/43958
22685         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
22686         for argument alignment.
22687
22688 2010-07-02  Jan Hubicka  <jh@suse.cz>
22689
22690         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
22691         walk backwards from entry_bb to check only those basic block of header
22692         that might lead to execution of split part.
22693         (consider_split) ... here.
22694         (find_return_bb): Allow assignment in return BB.
22695         (find_retval): New.
22696         (split_function): Fix name of cloned function; take care of updating
22697         return value in return_bb containing move.
22698
22699 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
22700
22701         PR target/44771
22702         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
22703         used variable insn.
22704
22705 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
22706
22707         * implicit-zee.c (combine_reaching_defs): Fix long lines.
22708         (is_set_with_extension_DI): Delete.
22709         (struct zero_extend_info): New structure.
22710         (add_removable_zero_extend): New function.
22711         (find_removable_zero_extends): Use note_stores to find SETs.
22712         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
22713
22714 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
22715
22716         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
22717         is_miss_rate_acceptable. Pull total_positions computation
22718         out of the loops.  Early return if miss_positions exceeds
22719         the acceptable threshold.
22720         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
22721         is_miss_rate_acceptable after renaming of compute_miss_rate.
22722
22723 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
22724
22725         PR middle-end/44576
22726         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
22727         of 1000) for miss rate if the address diference is greater than or
22728         equal to the cache line size (the two reference will never hit the
22729         same cache line).
22730
22731 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
22732
22733         PR target/42835
22734         * config/arm/arm-modes.def (CC_NOTB): New mode.
22735         * config/arm/arm.c (get_arm_condition_code): Handle it.
22736         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
22737         * config/arm/arm.md (subsi3_compare0_c): New pattern.
22738         (compare_scc): Now a define_and_split.  Add a number of extra
22739         splitters before it.
22740
22741         PR target/42172
22742         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
22743         and ZERO_EXTEND.
22744         (arm_rtx_costs_1): Likewise.
22745         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
22746         * config/arm/arm.md (is_arch6): New attribute.
22747         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
22748         extendqisi2): Tighten the code somewhat, avoiding invalid
22749         RTL to occur in the expander patterns.
22750         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
22751         (thumb1_zero_extendhisi2_v6): Delete.
22752         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
22753         (thumb1_extendhisi2_v6): Delete.
22754         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
22755         (thumb1_extendqisi2_v6): Delete.
22756         (zero_extendhisi2 for register input splitter): New.
22757         (zero_extendqisi2 for register input splitter): New.
22758         (thumb1_extendhisi2 for register input splitter): New.
22759         (extendhisi2 for register input splitter): New.
22760         (extendqisi2 for register input splitter): New.
22761         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
22762         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
22763         and add support for a register alternative requiring a split.
22764         (thumb1_zero_extendqisi2): Likewise.
22765         (arm_zero_extendqisi2): Likewise.
22766         (arm_extendhisi2): Likewise.
22767         (arm_extendqisi2): Likewise.
22768
22769 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
22770
22771         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
22772         instead of an unspec.
22773         (neon_expand_vector_init): Likewise.
22774         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
22775         (UNSPEC_VDUP_LANE): Delete.
22776         (UNSPEC VDUP_N): Delete.
22777         (UNSPEC_VGET_HIGH): Delete.
22778         (UNSPEC_VGET_LANE): Delete.
22779         (UNSPEC_VGET_LOW): Delete.
22780         (UNSPEC_VMVN): Delete.
22781         (UNSPEC_VSET_LANE): Delete.
22782         (V_double_vector_mode): New.
22783         (vec_set<mode>_internal): Make code emitted match that for the
22784         corresponding intrinsics.
22785         (vec_setv2di_internal): Likewise.
22786         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
22787         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
22788         (neon_vset_lane<mode>): Combine double and quad patterns and
22789         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
22790         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
22791         (neon_vdup_n<mode>): Rewrite RTL without unspec.
22792         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
22793         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
22794         with neon_vdup_lanev2di, adjusting the pattern from the latter
22795         to be predicable for consistency.
22796         (neon_vdup_lane<mode>_internal): New.
22797         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
22798         to avoid using an unspec.
22799         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
22800         (neon_vdup_lanev2di): Turn into a define_expand.
22801         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
22802         (neon_vget_high<mode>): Replace with....
22803         (neon_vget_highv16qi): New pattern using canonical RTL.
22804         (neon_vget_highv8hi): Likewise.
22805         (neon_vget_highv4si): Likewise.
22806         (neon_vget_highv4sf): Likewise.
22807         (neon_vget_highv2di): Likewise.
22808         (neon_vget_low<mode>): Replace with....
22809         (neon_vget_lowv16qi): New pattern using canonical RTL.
22810         (neon_vget_lowv8hi): Likewise.
22811         (neon_vget_lowv4si): Likewise.
22812         (neon_vget_lowv4sf): Likewise.
22813         (neon_vget_lowv2di): Likewise.
22814
22815         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
22816         test for this emitting vmov.
22817         (Vset_lane): Likewise.
22818         (Vdup_n): Likewise.
22819         (Vmov_n): Likewise.
22820
22821         * doc/arm-neon-intrinsics.texi: Regenerated.
22822
22823 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
22824
22825         * config/arm/neon.md (vec_extractv2di): Correct error in register
22826         numbering to reconcile with neon_vget_lanev2di.
22827
22828 2010-07-02  Richard Guenther  <rguenther@suse.de>
22829
22830         * tree-ssa-structalias.c (pt_solution_set_var): New function.
22831         * tree-ssa-alias.h (pt_solution_set_var): Declare.
22832         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
22833         points-to information.
22834
22835 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
22836
22837         * config/s390/s390.c (override_options): Adopt prefetching
22838         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
22839
22840 2010-07-02  Jan Hubicka  <jh@suse.cz>
22841
22842         * df-problems.c (df_kill_notes): Do not collect dead  notes.
22843         (df_set_note): Just call add_reg_note.
22844         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
22845         df_create_unused_note): Do not deal with lists of old notes.
22846         (df_note_bb_compute): Likewise.
22847
22848 2010-07-02  Richard Guenther  <rguenther@suse.de>
22849
22850         * tree-ssa-structalias.c (find_func_aliases): Handle
22851         pointer alignment via BIT_AND_EXPR.
22852         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
22853
22854 2010-07-02  Richard Guenther  <rguenther@suse.de>
22855
22856         * tree-data-ref.c (initialize_data_dependence_relation): Handle
22857         mismatching number of dimensions properly.
22858
22859 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
22860
22861         PR target/44707
22862         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
22863         (lo_sum (high ...) ...) patterns generated by earlier passes.
22864
22865 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22866
22867         * doc/install.texi (Prerequisites): Document Perl requirement on
22868         Solaris 2.
22869         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
22870
22871 2010-07-02  Richard Guenther  <rguenther@suse.de>
22872
22873         PR middle-end/44777
22874         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
22875
22876 2010-07-02  Jan Hubicka  <jh@suse.cz>
22877
22878         PR middle-end/44706
22879         * predict.c (predict_paths_for_bb): Handle case when control dependence
22880         BB has only abnormal edges.
22881
22882 2010-07-02  Richard Guenther  <rguenther@suse.de>
22883
22884         PR tree-optimization/44748
22885         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
22886         the embedded conversion in MEM_REFs.
22887
22888 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
22889
22890         * reload.c: Include toplev.h.
22891         * recog.c:  Likewise.
22892         * Makefile.in: Adjust dependencies.
22893
22894 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
22895
22896         PR debug/44694
22897         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
22898         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
22899
22900 2010-07-01  Richard Guenther  <rguenther@suse.de>
22901
22902         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
22903         types for offsets.
22904
22905 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
22906
22907         PR target/44732
22908         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
22909         Fix argument types.
22910
22911 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
22912
22913         PR target/44727
22914         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
22915         Make sure operand 0 dies.
22916
22917 2010-07-01  Richard Guenther  <rguenther@suse.de>
22918
22919         PR middle-end/42834
22920         PR middle-end/44468
22921         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
22922         * doc/generic.texi (References to storage): Document MEM_REF.
22923         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
22924         (print_call_name): Likewise.
22925         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
22926         (build_simple_mem_ref_loc): New function.
22927         (mem_ref_offset): Likewise.
22928         * tree.h (build_simple_mem_ref_loc): Declare.
22929         (build_simple_mem_ref): Define.
22930         (mem_ref_offset): Declare.
22931         * fold-const.c: Include tree-flow.h.
22932         (operand_equal_p): Handle MEM_REF.
22933         (build_fold_addr_expr_with_type_loc): Likewise.
22934         (fold_comparison): Likewise.
22935         (fold_unary_loc): Fold
22936         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
22937         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
22938         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
22939         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
22940         (ptr_deref_may_alias_ref_p_1): Likewise.
22941         (ao_ref_base_alias_set): Properly differentiate base object for
22942         offset and TBAA.
22943         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
22944         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
22945         (indirect_refs_may_alias_p): Likewise.
22946         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
22947         chasing code.
22948         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
22949         (call_may_clobber_ref_p_1): Likewise.
22950         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
22951         * expr.c (expand_assignment): Handle MEM_REF.
22952         (store_expr): Handle MEM_REFs from STRING_CSTs.
22953         (store_field): If expanding a MEM_REF of a non-addressable
22954         decl use bitfield operations.
22955         (get_inner_reference): Handle MEM_REF.
22956         (expand_expr_addr_expr_1): Likewise.
22957         (expand_expr_real_1): Likewise.
22958         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
22959         * alias.c (ao_ref_from_mem): Handle MEM_REF.
22960         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
22961         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
22962         (dr_analyze_indices): Likewise.
22963         (dr_analyze_alias): Likewise.
22964         (object_address_invariant_in_loop_p): Likewise.
22965         * gimplify.c (mark_addressable): Handle MEM_REF.
22966         (gimplify_cond_expr): Build MEM_REFs.
22967         (gimplify_modify_expr_to_memcpy): Likewise.
22968         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
22969         (gimple_fold_indirect_ref): Adjust.
22970         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
22971         * tree.def (MEM_REF): New tree code.
22972         * tree-dfa.c: Include toplev.h.
22973         (get_ref_base_and_extent): Handle MEM_REF.
22974         (get_addr_base_and_unit_offset): New function.
22975         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
22976         * gimple-fold.c (may_propagate_address_into_dereference): Handle
22977         MEM_REF.
22978         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
22979         accesses if the array has just one dimension.  Remove always true
22980         parameter.  Do not require type compatibility here.
22981         (maybe_fold_offset_to_component_ref): Remove.
22982         (maybe_fold_stmt_indirect): Remove.
22983         (maybe_fold_reference): Remove INDIRECT_REF handling.
22984         Fold back to non-MEM_REF.
22985         (maybe_fold_offset_to_address): Simplify.  Deal with type
22986         mismatches here.
22987         (maybe_fold_reference): Likewise.
22988         (maybe_fold_stmt_addition): Likewise.  Also handle
22989         &ARRAY + I in addition to &ARRAY[0] + I.
22990         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
22991         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
22992         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
22993         * tree-ssa.c (useless_type_conversion_p): Make most pointer
22994         conversions useless.
22995         (warn_uninitialized_var): Handle MEM_REF.
22996         (maybe_rewrite_mem_ref_base): New function.
22997         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
22998         to SSA form.
22999         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
23000         INDIRECT_REF handling.
23001         (copy_tree_body_r): Handle MEM_REF.
23002         * gimple.c (is_gimple_addressable): Adjust.
23003         (is_gimple_address): Likewise.
23004         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
23005         invariant base are invariant.
23006         (is_gimple_min_lval): Adjust.
23007         (is_gimple_mem_ref_addr): New function.
23008         (get_base_address): Handle MEM_REF.
23009         (count_ptr_derefs): Likewise.
23010         (get_base_loadstore): Likewise.
23011         * gimple.h (is_gimple_mem_ref_addr): Declare.
23012         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
23013         * tree-cfg.c (verify_address): New function, split out from ...
23014         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
23015         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
23016         INDIRECT_REFs.
23017         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
23018         INDIRECT_REF.  Allow conversions.
23019         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
23020         a register does not change its size.
23021         (verify_types_in_gimple_reference): Verify MEM_REF.
23022         (verify_gimple_assign_single): Disallow INDIRECT_REF.
23023         Handle MEM_REF.
23024         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
23025         New.
23026         (mark_address_taken): Handle MEM_REF.
23027         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
23028         (get_asm_expr_operands): Pass opf_not_non_addressable.
23029         (get_expr_operands): Handle opf_[not_]non_addressable.
23030         Handle MEM_REF.  Remove INDIRECT_REF handling.
23031         * tree-vrp.c (check_array_ref): Handle MEM_REF.
23032         (search_for_addr_array): Likewise.
23033         (check_array_bounds): Likewise.
23034         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
23035         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
23036         (ref_always_accessed_p): Likewise.
23037         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
23038         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
23039         Handle MEM_REF.
23040         * cgraphbuild.c (mark_load): Properly check for NULL result
23041         from get_base_address.
23042         (mark_store): Likewise.
23043         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
23044         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
23045         handling for MEM_REF.
23046         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
23047         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
23048         * builtins.c (stabilize_va_list_loc): Use the function ABI
23049         valist type if we couldn't canonicalize the argument type.
23050         Always dereference with the canonical va-list type.
23051         (maybe_emit_free_warning): Handle MEM_REF.
23052         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
23053         memmove to memcpy.
23054         * builtins.c (fold_builtin_memory_op): Use ref-all types
23055         for all memcpy foldings.
23056         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
23057         (build_outer_var_ref): Likewise.
23058         (scan_omp_1_op): Likewise.
23059         (lower_rec_input_clauses): Likewise.
23060         (lower_lastprivate_clauses): Likewise.
23061         (lower_reduction_clauses): Likewise.
23062         (lower_copyprivate_clauses): Likewise.
23063         (expand_omp_atomic_pipeline): Likewise.
23064         (expand_omp_atomic_mutex): Likewise.
23065         (create_task_copyfn): Likewise.
23066         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
23067         Remove old union trick.  Initialize constant offsets.
23068         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
23069         INDIRECT_REF.  Init base_alias_set properly.
23070         (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
23071         (vn_reference_fold_indirect): Adjust for MEM_REFs.
23072         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
23073         for ARRAY_REFs.
23074         (may_insert): Remove.
23075         (visit_reference_op_load): Do not test may_insert.
23076         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
23077         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
23078         a field to store the constant offset this op applies.
23079         (run_scc_vn): Adjust prototype.
23080         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
23081         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
23082         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
23083         bother about volatile qualifiers on pointers.
23084         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
23085         * tree-ssa-loop-ivopts.c
23086         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
23087         (strip_offset_1): Likewise.
23088         (find_interesting_uses_address): Replace INDIRECT_REF handling with
23089         MEM_REF handling.
23090         (get_computation_cost_at): Likewise.
23091         * ipa-pure-const.c (check_op): Handle MEM_REF.
23092         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
23093         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
23094         and constants.
23095         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
23096         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
23097         (eliminate_local_variables_1): Likewise.
23098         (create_call_for_reduction_1): Likewise.
23099         (create_loads_for_reductions): Likewise.
23100         (create_loads_and_stores_for_name): Likewise.
23101         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
23102         (ssa_accessed_in_tree): Handle MEM_REF.
23103         (ssa_accessed_in_assign_rhs): Likewise.
23104         (update_type_size): Likewise.
23105         (analyze_accesses_for_call_stmt): Likewise.
23106         (analyze_accesses_for_assign_stmt): Likewise.
23107         (transform_access_sites): Likewise.
23108         (transform_allocation_sites): Likewise.
23109         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
23110         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
23111         not handle INDIRECT_REF.
23112         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
23113         (cond_store_replacement): Likewise.
23114         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
23115         MEM_REF, no not handle INDIRECT_REFs.
23116         (insert_into_preds_of_block): Properly initialize avail.
23117         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
23118         for ARRAY_REFs.  Properly handle reference lookups that
23119         require a bit re-interpretation.
23120         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
23121         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
23122         (build_ref_for_offset_1): Remove.
23123         (build_ref_for_offset): Build MEM_REFs.
23124         (gate_intra_sra): Disable for now.
23125         (sra_ipa_modify_expr): Handle MEM_REF.
23126         (ipa_early_sra_gate): Disable for now.
23127         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
23128         MEM_REF handling.
23129         (disqualify_base_of_expr): Likewise.
23130         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
23131         MEM_REF handling.
23132         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
23133         Use mem_ref_offset.  Remove bogus folding.
23134         (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
23135         (make_fancy_name_1): Add support for MEM_REF.
23136         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
23137         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
23138         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
23139         (compute_complex_ancestor_jump_func): Likewise.
23140         (ipa_analyze_virtual_call_uses): Likewise.
23141         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
23142         INDIRECT_REF folding with more generalized MEM_REF folding.
23143         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
23144         (forward_propagate_addr_into_variable_array_index): Also handle
23145         &ARRAY + I in addition to &ARRAY[0] + I.
23146         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
23147         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
23148         creates assignments with overlap.
23149         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
23150         (get_frame_field): Likewise.
23151         (get_nonlocal_debug_decl): Likewise.
23152         (convert_nonlocal_reference_op): Likewise.
23153         (struct nesting_info): Add mem_refs pointer-set.
23154         (create_nesting_tree): Allocate it.
23155         (convert_local_reference_op): Insert to be folded mem-refs.
23156         (fold_mem_refs): New function.
23157         (finalize_nesting_tree_1): Perform defered folding of mem-refs
23158         (free_nesting_tree): Free the pointer-set.
23159         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
23160         (vectorizable_load): Likewise.
23161         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
23162         (propagate_with_phi): Likewise.
23163         * tree-object-size.c (addr_object_size): Handle MEM_REFs
23164         instead of INDIRECT_REFs.
23165         (compute_object_offset): Handle MEM_REF.
23166         (plus_stmt_object_size): Handle MEM_REF.
23167         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
23168         for &MEM_REF.
23169         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
23170         (symbol_marked_for_renaming): Likewise.
23171         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
23172         (fold-const.o): Add $(TREE_FLOW_H).
23173         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
23174         (find_func_clobbers): Likewise.
23175         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
23176         (decompose_access): Likewise.
23177         (replace_field_acc): Likewise.
23178         (replace_field_access_stmt): Likewise.
23179         (insert_new_var_in_stmt): Likewise.
23180         (get_stmt_accesses): Likewise.
23181         (reorg_structs_drive): Disable.
23182         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
23183         (ix86_canonical_va_list_type): Likewise.
23184
23185 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
23186
23187         PR other/44566
23188         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
23189         * target.def (struct gcc_target): Replace enum reg_class with
23190         reg_class_t in hook argument / return types.
23191         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
23192         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
23193         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
23194         * targhooks.h (default_branch_target_register_class): Likewise.
23195         (default_ira_cover_classes, default_secondary_reload): Likewise.
23196         (default_memory_move_cost, default_register_move_cost): Likewise.
23197         * targhooks.c (default_branch_target_register_class): Likewise.
23198         (default_ira_cover_classes, default_secondary_reload): Likewise.
23199         (default_memory_move_cost, default_register_move_cost): Likewise.
23200         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
23201         * bt-load.c (branch_target_load_optimize): Likewise.
23202         * ira.c (setup_cover_and_important_classes): Likewise.
23203         * ira-costs.c (copy_cost): Likewise.
23204         * reload1.c (emit_input_reload_insns): Likewise.
23205         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
23206         * config/frv/frv.c (frv_secondary_reload): Likewise.
23207         * config/s390/s390.c (s390_secondary_reload): Likewise.
23208         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
23209         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
23210         (ix86_register_move_cost): Likewise.
23211         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
23212         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
23213         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
23214         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
23215         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
23216         (rs6000_ira_cover_classes): Likewise.
23217         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
23218         * config/picochip/picochip-protos.h (picochip_secondary_reload):
23219         Likewise.
23220         * config/pa/pa.c (pa_secondary_reload): Likewise.
23221         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
23222         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
23223         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
23224         * doc/tm.texi: Regenerate.
23225
23226 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
23227
23228         PR bootstrrap/44726
23229         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
23230         use.
23231         (build_alias_set_optimal_p): Likewise.
23232         (build_base_obj_set_for_drs): Likewise.
23233
23234 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
23235
23236         * target.def: Remove comment about licensing problems of function
23237         declarations.
23238
23239         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
23240         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
23241         * doc/tm.texi: Regenerate.
23242
23243         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
23244         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
23245
23246         * target.def (enum_va_list_p): Use DEFHOOK.
23247         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
23248         Rename ptype to ptree.
23249         * doc/tm.texi: Regenerate.
23250
23251         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
23252         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
23253         * doc/tm.texi: Regenerate.
23254
23255         * target.def (memory_move_cost): Use DEFHOOK.
23256         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
23257         Rename regclass AKA class to rclass.
23258         * doc/tm.texi: Regenerate.
23259
23260         * target.def (pragma_parse): Use DEFHOOK.
23261         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
23262         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
23263         * doc/tm.texi: Regenerate.
23264
23265         * target.def (pass_by_reference): Use DEFHOOK.
23266         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
23267         * doc/tm.texi: Regenerate.
23268
23269         * target.def (resolve_overloaded_builtin): Rename params to arglist.
23270         Use DEFHOOK.
23271         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
23272         * doc/tm.texi: Regenerate.
23273
23274         * target.def (return_pops_args): Use DEFHOOK.
23275         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
23276         Rename stack-size to size.
23277         * doc/tm.texi: Regenerate.
23278
23279         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
23280         last-sched_cycle to last_clock, cur_cycle to clock.
23281         * doc/tm.texi.in: Use @hook.
23282         * doc/tm.texi: Regenerate.
23283
23284         * target.def (print_operand, print_operand_address): Update comment.
23285         (print_operand_punct_valid_p): Likewise.
23286
23287 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23288
23289         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
23290         to rtl.h.
23291         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
23292         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
23293         * rtl-error.h: New.
23294         * regrename.c: Do not include toplev.h. Include rtl-error.h.
23295         * rtl-error.c: Likewise.
23296         * reload.c: Likewise.
23297         * recog.c:  Likewise.
23298         * sel-sched.c: Likewise.
23299         * function.c: Likewise.
23300         * reg-stack.c: Likewise.
23301         * cfgrtl.c: Likewise.
23302         * reload1.c: Likewise.
23303         * final.c: Include rtl-error.
23304         * Makefile.in: Adjust dependencies.
23305
23306 2010-06-30  Jan Hubicka  <jh@suse.cz>
23307
23308         PR middle-end/PR44706
23309         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
23310         to return the value.
23311
23312 2010-06-30  Michael Matz  <matz@suse.de>
23313
23314         PR bootstrap/44699
23315         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
23316         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
23317         a gimple reg, attach the original VDEF to the last store in the
23318         sequence.
23319
23320 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
23321
23322         PR other/44034
23323         * config/darwin.c (darwin_override_options): Use renamed
23324         targetm.asm_out.emit_unwind_label.
23325
23326 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
23327
23328         PR tree-optimization/39799
23329         * tree-inline.c (remap_ssa_name): Initialize variable only if
23330         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
23331
23332 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
23333
23334         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
23335
23336 2010-06-30  Richard Guenther  <rguenther@suse.de>
23337
23338         PR target/44722
23339         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
23340         against oscillation with reverse peephole2.
23341
23342 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
23343
23344         PR target/44721
23345         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
23346         Fix last commit.
23347
23348 2010-06-30  Nick Clifton  <nickc@redhat.com>
23349
23350         * config/rx/rx-modes.def: New file.
23351         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
23352         (CC_REGNUM): Define.
23353         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
23354         register.
23355         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
23356         (SELECT_CC_MODE): Define.
23357         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
23358         (reg:CC CC_REG) instead of (cc0).
23359         (attr "cc"): Delete.
23360         (cbranchsi4): Do not split compare and branch here. Instead move
23361         it to...
23362         (cbranchsi4_<code>): ... here.  New patterns.
23363         (cmpsi): Call rx-compare_redundant to find out if it is necessary
23364         to emit the compare instruction.
23365         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
23366         cc_status flags.
23367         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
23368         FIRST_PSEUDO_REGNUM.
23369         (rx_expand_prologue, rx_expand_epilogue): Likewise.
23370         (rx_notice_update_cc): Delete.
23371         (rx_cc_modes_compatible): New function.
23372         (flags_needed_for_conditional): New function.
23373         (flags_from_mode): New function.
23374         (rx_compare_redundant): New function - scans backwards through
23375         insn list to find out if condition flags are already set correctly.
23376         (TARGET_CC_MODES_COMPATIBLE): Define.
23377         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
23378
23379         * config/rx/rx.h (BRANCH_COST): Define.
23380         (REGISTER_MOVE_COST): Define.
23381         * config/rx/predicates (rx_source_operand): Allow all constant types.
23382         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
23383         (tstsi4): New pattern.
23384         * config/rx/rx.c (rx_memory_move_cost): Define.
23385         (TARGET_MEMORY_MOVE_COST): Define.
23386
23387 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23388
23389         * tree.h (block_may_fallthru): Declare here.
23390         * tree-flow.h (block_may_fallthru): Do not declare here.
23391         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
23392         bitmap.h
23393         * Makefile.in (c-typeck.o): Update dependencies.
23394
23395 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
23396
23397         PR debug/44694
23398         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
23399         * cselib.c (cfa_base_preserved_regno): New static variable.
23400         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
23401         of REGNO (cfa_base_preserved_val->locs->loc).
23402         (cselib_preserve_cfa_base_value): Add regno argument, set
23403         cfa_base_preserved_regno to it.
23404         (cselib_invalidate_regno): Allow removal of registers other than
23405         cfa_base_preserved_regno from cfa_base_preserved_val.
23406         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
23407         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
23408         of MEM addresses, if not on LHS.
23409         (reverse_op): Don't add reverse ops for cfa_base_rtx.
23410         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
23411
23412 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
23413
23414         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
23415         static variables.
23416         (peep2_buf_position): New static function.
23417         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
23418         peephole2_optimize): Use it.
23419         (peep2_attempt, peep2_update_life): New static functions, broken out
23420         of peephole2_optimize.
23421         (peep2_fill_buffer): New static function.
23422         (peephole2_optimize): Change the main loop to try to fill the buffer
23423         with the maximum number of insns before matching them against
23424         peepholes.  Use a forward scan.  Remove special case for targets with
23425         conditional execution.
23426         * genrecog.c (change_state): Delete dead code.
23427         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
23428         Rewrite so as not to expect the second insn to have had a peephole
23429         applied yet.
23430
23431 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
23432
23433         * genhooks.c (emit_findices): Cast field precision to int.
23434         (emit_documentation): Likewise.
23435
23436 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
23437
23438         PR tree-optimization/43801
23439         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
23440         if old_decl was DECL_ONE_ONLY.
23441
23442         PR debug/44668
23443         * dwarf2out.c (add_accessibility_attribute): New function.
23444         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
23445         instead of adding DW_AT_accessibility manually.
23446         (gen_enumeration_type_die, gen_struct_or_union_type_die,
23447         gen_typedef_die): Use it.
23448
23449 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
23450
23451         * vmsdbgout.c (full_name): Just output the file name if not native.
23452
23453 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
23454
23455         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
23456         (funcnam_table): New static table.
23457         (funcnum_table): New static table.
23458         (write_rtnbeg): Write value saved in funcnum_table.
23459         (write_rtnend): Write value saved in funcnum_table.
23460         (vmsdbgout_begin_function): Save current function info in
23461         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
23462         (vmsdbgout_finish): Iterate over funcnum_table.
23463
23464 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
23465
23466         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
23467         (vmsdbgout_type_decl): Declare
23468         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
23469         (FUNC_EPILOGUE_LABEL): New macro
23470         (vmsdbgout_begin_epilogue): New function.
23471         (vmsdbgout_type_decl): New function.
23472
23473 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
23474
23475         * vmsdbg.h: Update copyright.
23476
23477 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
23478
23479         * vmsdbg.h (DST_K_TBG): New DST constant.
23480         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
23481         (write_modbeg): Cast module_language to avoid warning.
23482         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
23483
23484 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
23485
23486         PR other/44034
23487         * target.def, doc/tm.texi.in, genhooks.c: New files.
23488         * target.h: Instead of defining individual hook members,
23489         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
23490         include target.def.
23491         * target-def.h: Instead of defining individual hook initializers,
23492         include target-hooks-def.h.
23493         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
23494         targetm.live_on_entry -> targetm.extra_live_on_entry
23495         targetm.sched.md_finish ->targetm.sched.finish
23496         targetm.sched.md_init -> targetm.sched.init
23497         targetm.sched.md_init_global -> targetm.sched.init_global
23498         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
23499         targetm.asm_out.except_table_label ->
23500           targetm.asm_out.emit_except_table_label
23501         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
23502         targetm.target_help -> targetm.help
23503         targetm.vectorize.builtin_support_vector_misalignment ->
23504           targetm.vectorize.support_vector_misalignment
23505         targetm.file_start_app_off -> targetm.asm_file_start_app_off
23506         targetm.file_start_file_directive ->
23507          targetm.asm_file_start_file_directive
23508         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
23509         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
23510         * config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
23511         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
23512           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
23513         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
23514           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
23515         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
23516         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
23517         * Makefile.in (TARGET_H): Depend on target.def.
23518         (TARGET_DEF_H): Depend on target-hooks-def.h.
23519         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
23520         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
23521         * doc/tm.texi: Regenerate.
23522
23523         * Makefile.in (s-tm-texi): Remove stray tab / rule.
23524
23525         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
23526         (targetm.sched.init): Likewise.
23527
23528 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
23529
23530         PR bootstrap/44713
23531         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
23532         (function_arg_advance_32): Const-ify TYPE parameter.
23533         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
23534         (ix86_function_arg_advance): Change type of NAMED to bool.
23535         (function_arg_32): Const-ify CUM and TYPE parameters.
23536         (function_arg_64): Likewise.  Change type of NAMED to bool.
23537         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
23538         to bool.
23539         (ix86_function_arg): Change type of NAMED to bool.
23540         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
23541         last argument as a bool.
23542
23543 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
23544
23545         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
23546         (OVERRIDE_OPTIONS): Add note of obsolescence.
23547         Replace references with references to TARGET_OPTION_OVERRIDE.
23548         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
23549          the macro).
23550         * targhooks.c (default_target_option_override): New function.
23551         * targhooks.h (default_target_option_override): Declare.
23552         * target.h (struct gcc_target): Add override member to
23553         target_option member.
23554         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
23555         targetm.target_option.override call.
23556         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
23557         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
23558
23559 2010-06-29  Jan Hubicka  <jh@suse.cz>
23560
23561         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
23562
23563 2010-06-29  Jan Hubicka  <jh@suse.cz>
23564
23565         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
23566         unreachable.
23567         (rebuild_frequencies): New function.
23568         * predict.h (rebuild_frequencies): Declare.
23569         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
23570         entry block and edge reaching new_entry.
23571         (tree_function_versioning): When doing partial cloning, rebuild
23572         frequencies when done.
23573         * passes.c (execute_function_todo): Use rebild_frequencies.
23574
23575 2010-06-29  Richard Guenther  <rguenther@suse.de>
23576
23577         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
23578         * tree-flow.h (enum noalias_state): Remove.
23579         (struct var_ann_d): Remove noalias_state member.
23580
23581 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
23582
23583         PR target/43902
23584         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
23585         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
23586         (maddhidi4): Likewise.
23587
23588         Revert parts of the change for PR25130.
23589         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
23590         MEM_ALIAS_SET.
23591
23592 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
23593
23594         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
23595         targetm.calls.function_incoming_arg, and
23596         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
23597         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
23598         * target.h (struct gcc_target): Add function_arg_advance,
23599         function_arg, and function_incoming_arg fields.
23600         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
23601         (TARGET_FUNCTION_INCOMING_ARG): Define.
23602         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
23603         and TARGET_FUNCTION_INCOMING_ARG.
23604         * targhooks.h (default_function_arg_advance): Declare.
23605         (default_function_arg, default_function_incoming_arg): Declare.
23606         * targhooks.c (default_function_arg_advance): New function.
23607         (default_function_arg, default_function_incoming_arg): New function.
23608         * config/i386/i386.c (function_arg_advance): Rename to...
23609         (ix86_function_arg_advance): ...this.  Make static.
23610         (function_arg): Rename to...
23611         (ix86_function_arg): ...this.  Make static.
23612         (TARGET_FUNCTION_ARG_ADVANCE): Define.
23613         (TARGET_FUNCTION_ARG): Define.
23614         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
23615         (FUNCTION_ARG): Delete.
23616         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
23617         (function_arg): Delete prototype.
23618
23619 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
23620
23621         * reginfo.c (init_reg_sets_1): Adjust comments.
23622         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
23623         * calls.c (prepare_call_address): Likewise.
23624         (emit_call_1): Use targetm.calls.return_pops_args.
23625         (expand_call): Likewise.
23626         * function.c (assign_parms): Likewise.
23627         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
23628         * target.h (struct gcc_target) [struct calls]: Add
23629         return_pops_args field.
23630         * targhooks.h (default_return_pops_args): Declare.
23631         * targhooks.c (default_return_pops_args): Define.
23632         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
23633         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
23634         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
23635         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
23636         documentation.
23637         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
23638         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
23639         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
23640         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
23641         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
23642         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
23643         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
23644         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
23645         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
23646         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
23647         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
23648         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
23649         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
23650         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
23651         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
23652         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
23653         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
23654         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
23655         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
23656         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
23657         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
23658         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
23659         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
23660         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
23661         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
23662         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
23663         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
23664         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
23665         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
23666         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
23667         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
23668         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
23669         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
23670         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
23671         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
23672         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
23673         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
23674         * config/i386/i386.c (ix86_return_pops_args): Make static.
23675         Constify arguments.
23676         (TARGET_RETURN_POPS_ARGS): Define.
23677         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
23678         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
23679         (TARGET_RETURN_POPS_ARGS): Define.
23680         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
23681         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
23682         (TARGET_RETURN_POPS_ARGS): Define.
23683
23684 2010-06-29  Richard Guenther  <rguenther@suse.de>
23685
23686         PR middle-end/44667
23687         * tree-inline.c (initialize_inlined_parameters): Make sure
23688         to remap the inlined parameter variable substitutions types.
23689
23690 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
23691
23692         PR rtl-optimization/44659
23693         * combine.c (make_compound_operation) <SUBREG>: Do not return the
23694         result of force_to_mode if it partially re-expanded the compound.
23695
23696 2010-06-28  Jan Hubicka  <jh@suse.cz>
23697
23698         PR middle-end/44671
23699         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
23700         RESULT_DECL.
23701
23702 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
23703
23704         * double-int.h (force_fit_type_double): Remove declaration.
23705         * double-int.c (force_fit_type_double): Move to tree.c.
23706         * tree.h (force_fit_type_double): Declare.
23707         * tree.h (force_fit_type_double): Moved from double-int.c. Use
23708         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
23709         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
23710         * convert.c (convert_to_pointer): Adjust call to
23711         force_fit_type_double.
23712         * tree-vrp.c (extract_range_from_assert,
23713         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
23714         * fold-const.c: Update comment.
23715         (int_const_binop, fold_convert_const_int_from_int,
23716         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
23717         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
23718         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
23719         round_up_loc): Adjust call to force_fit_type_double.
23720
23721 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
23722
23723         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
23724
23725 2010-06-28  Martin Jambor  <mjambor@suse.cz>
23726
23727         * tree-sra.c (convert_callers): New parameter, change fndecls of
23728         recursive calls.
23729         (modify_function): Pass the old decl to convert_callers.
23730
23731 2010-06-28  Martin Jambor  <mjambor@suse.cz>
23732
23733         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
23734         ipa_check_create_node_params and ipa_initialize_node_params with
23735         checking asserts they are not necessary.
23736
23737 2010-06-28  Jan Hubicka  <jh@suse.cz>
23738
23739         PR tree-optimization/44687
23740         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
23741
23742 2010-06-28  Martin Jambor  <mjambor@suse.cz>
23743
23744         PR c++/44535
23745         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
23746         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
23747         instead of BINFO_BASE_BINFO.
23748
23749 2010-06-28  Michael Matz  <matz@suse.de>
23750
23751         PR middle-end/44592
23752         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
23753         proper VDEF chain for intermediate stores in the sequence.
23754
23755 2010-06-28  Jan Hubicka  <jh@suse.cz>
23756
23757         PR tree-optimization/44357
23758         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
23759         uninlinable functions.
23760
23761 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
23762
23763         * config.gcc (powerpc*-*-*): Handle titan.
23764         * config/rs6000/rs6000.c (titan_cost): New costs.
23765         (rs6000_override_options): Add "titan" to processor_target_table.
23766         Add Titan to branch alignment logic.
23767         Correctly set rs6000_cost for titan.
23768         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
23769         * config/rs6000/titan.md: New file.
23770         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
23771
23772 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
23773
23774         * tree-browser.c (TB_history_stack): Convert to a VEC.
23775         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
23776         (TB_history_prev): Likewise.
23777
23778 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
23779
23780         * vec.h (vec_heap_free): Add parentheses around free.
23781
23782 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
23783
23784         * system.h: Poison GCC_EXCEPT_H for front-end files.
23785
23786         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
23787         langhook.
23788         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
23789         Define to NULL by default.
23790         * except.h: Define GCC_EXCEPT_H.
23791         (doing_eh): Remove prototype.
23792         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
23793         (lang_protect_cleanup_actions): Remove.
23794         * except.c (lang_protect_cleanup_actions): Remove.
23795         (doing_eh): Remove.
23796         (gen_eh_region): Don't check doing_eh here.
23797         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
23798         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
23799         instead of lang_protect_cleanup_actions.
23800         * omp-low.c (maybe_catch_exception): Likewise.
23801         * Makefile.in: Update dependencies.
23802
23803 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
23804
23805         * cgraph.h (struct varpool_node): new used_from_object_file flag.
23806         (struct cgraph_local_info): new used_from_object_file flag.
23807         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
23808         (cgraph_clone_node): initialize used_from_object_file.
23809         (cgraph_create_virtual_clone): initialize used_from_object_file.
23810         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
23811         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
23812         when compiling with -fwhole-program.
23813         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
23814         internal resolver.
23815         * ipa.c (function_and_variable_visibility): Set externally_visible
23816         flag of varpool_node if used_from_object_file flag is set.
23817         (cgraph_externally_visible_p): check used_from_object_file flag.
23818         * doc/invoke.texi (-fwhole-program option): Change description of
23819         externally_visible attribute accordingly.
23820         * doc/extend.texi (externally_visible): Ditto.
23821
23822 2010-06-27  Jan Hubicka  <jh@suse.cz>
23823
23824         * params.def (max-inline-insns-auto): Default to 40.
23825         * doc/invoke.texi (max-inline-insns-auto): Document the change.
23826
23827 2010-06-27  Jan Hubicka  <jh@suse.cz>
23828
23829         PR middle-end/44671
23830         PR middle-end/44686
23831         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
23832         signature change.
23833         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
23834         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
23835
23836 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
23837
23838         * target.h (struct gcc_target): Add register_move_cost field.
23839         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
23840         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
23841         * targhooks.c (default_register_move_cost): New function.
23842         * targhooks.h (default_register_move_cost): Declare function.
23843         * defaults.h (REGISTER_MOVE_COST): Delete.
23844         * ira-int.h (ira_register_move_cost): Update comment.
23845         * ira.c (ira_register_move_cost): Update comment.
23846         * reload.h (register_move_cost): Declare.
23847         * reginfo.c (register_move_cost): New function.
23848         (move_cost): Update comment.
23849         (init_move_cost, memory_move_secondary_cost): Replace
23850         REGISTER_MOVE_COST with register_move_cost.
23851         * postreload.c (reload_cse_simplify_set): (Ditto.).
23852         * reload.c (find_valid_class, find_reloads): (Ditto.).
23853         * reload1.c (choose_reload_regs): (Ditto.).
23854         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
23855         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
23856         * doc/md.texi (can_create_pseudo_p): Update documentation.
23857
23858         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
23859         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
23860         * config/i386/i386.h (ix86_memory_move_cost): Make static.
23861         (TARGET_MEMORY_MOVE_COST): Define.
23862
23863         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
23864         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
23865         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
23866         (TARGET_MEMORY_MOVE_COST): Define.
23867
23868 2010-06-27  Richard Guenther  <rguenther@suse.de>
23869
23870         PR tree-optimization/44683
23871         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
23872         false edge from the inverted condition.
23873
23874 2010-06-27  Richard Guenther  <rguenther@suse.de>
23875
23876         PR middle-end/44684
23877         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
23878         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
23879         for register LHS.  Or non-store assignments.
23880
23881 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
23882
23883         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
23884         (sparc_emit_set_const64): Likewise.  Remove disabled code.
23885         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
23886         (sparc_emit_set_const64): Likewise.
23887
23888 2010-06-26  Catherine Moore  <clm@codesourcery.com>
23889
23890         * config/mips/mips.md (alu_type): New attribute.
23891         (type): Infer type from alu_type.
23892         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
23893         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
23894         *subsi3_extended, negsi2, negdi2, *low<mode>,
23895         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
23896         xor<mode>3, *nor<mode>3,
23897         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
23898         *zero_extendhi_truncqi):  Set alu_type instead of type.
23899
23900 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
23901
23902         * config/alpha/alpha.c (alpha_need_linkage): Adjust
23903         splay_tree_new_ggc call.
23904         (alpha_use_linkage): Likewise.
23905
23906 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
23907
23908         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
23909         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
23910         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
23911         (static_specs): Remove switches_need_spaces.
23912         (process_command, do_self_spec): Hardcode handling "-o" instead of
23913         checking switches_need_spaces.
23914         * system.h (SWITCHES_NEED_SPACES): Poison.
23915
23916 2010-06-26  Richard Guenther  <rguenther@suse.de>
23917
23918         PR tree-optimization/44393
23919         * tree-loop-distribution.c (generate_loops_for_partition): Fix
23920         stmt removal and VOP renaming.
23921         (generate_memset_zero): Remove redundant stmt updating.
23922         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
23923         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
23924
23925 2010-06-26  Jan Hubicka  <jh@suse.cz>
23926
23927         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
23928         edges comming from header are equivalent.
23929         (visit_bb): Handle PHIs correctly.
23930         * tree-inline.c (copy_phis_for_bb): Be able to copy
23931         PHI from entry edge.
23932         (copy_cfg_body): Produce edge from entry BB before copying PHIs.
23933
23934 2010-06-26  Richard Guenther  <rguenther@suse.de>
23935
23936         PR middle-end/44674
23937         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
23938         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
23939
23940 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
23941
23942         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
23943         add_infile, alloc_switch): New.
23944         (process_command): Remove variable lang_n_infiles.  Process
23945         options in a single pass.  Use new functions for allocating
23946         infiles and switches arrays.  Properly skip operands of
23947         -Xpreprocessor and -Xassembler.
23948
23949 2010-06-26  Jan Hubicka  <jh@suse.cz>
23950
23951         PR middle-end/44671
23952         * cgraphunit.c (cgraph_function_versioning): Remove wrong
23953         cgraph_make_decl_local call; fix typo copying RTL data.
23954
23955 2010-06-25  DJ Delorie  <dj@redhat.com>
23956
23957         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
23958         (m32c_output_aligned_common): Likewise.
23959         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
23960         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
23961         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
23962         (m32c_register_pragmas): Register it.
23963         * config/m32c/m32c.c (m32c_get_pragma_address): New.
23964         (m32c_insert_attributes): Set #pragma address decls volatile.
23965         (pragma_entry_eq): New.
23966         (pragma_entry_hash): New.
23967         (m32c_note_pragma_address): New.
23968         (m32c_get_pragma_address): New.
23969         (m32c_output_aligned_common): New.
23970         * doc/extend.texi: Document the new pragma.
23971
23972         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
23973         also.
23974         * config/m32c/predicates.md (m32c_any_operand): Check the code
23975         instead of memory_operand so as to allow matching volatile MEMs.
23976         (m32c_nonimmediate_operand): Likewise.
23977         (mra_operand): Allow volatiles.
23978
23979 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
23980
23981         PR debug/44610
23982         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
23983         address if the offset is unknown.
23984
23985 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
23986
23987         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
23988         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
23989         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
23990         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
23991         to ia64_start_function. Invoke it.
23992         * config/ia64/ia64.c (ia64_start_function): Call new function
23993         dwarf2out_vms_debug_main_pointer.
23994
23995 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
23996
23997         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
23998         statements computing the true predicate.
23999
24000 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
24001
24002         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
24003         to boolean_true_node.
24004         (reset_bb_predicate): New.
24005         (predicate_bbs): Call reset_bb_predicate.
24006
24007 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
24008
24009         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
24010         (tree_if_conversion): Returns true when something has been changed.
24011         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
24012         changed something.
24013
24014 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
24015
24016         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
24017         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
24018         * tree-if-conv.c: Include dbgcnt.h.
24019         (tree_if_conversion): Use if_conversion_tree to count the number of
24020         if-convertible loops.
24021
24022 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
24023
24024         * common.opt (fprefetch-loop-arrays): Re-define
24025         -fprefetch-loop-arrays as a tri-state option with the initial
24026         value of -1.
24027         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
24028         pass only when flag_prefetch_loop_arrays > 0.
24029         * toplev.c (process_options): Note that, with tri-states,
24030         flag_prefetch_loop_arrays>0 means prefetching is enabled.
24031         * config/i386/i386.c (override_options): Enable prefetching at -O3
24032         for a set of CPUs that sw prefetching is helpful.
24033         (software_prefetching_beneficial_p): New.  Return TRUE if software
24034         prefetching is beneficial for the given CPU.
24035
24036 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
24037
24038         PR rtl-optimization/44326
24039         * implicit-zee.c (find_removable_zero_extends): Replace
24040         INSN_P with NONDEBUG_INSN_P.
24041
24042 2010-06-25  Martin Jambor  <mjambor@suse.cz>
24043
24044         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
24045         (struct ipa_node_params): Removed the modification_analysis_done flag.
24046         (ipa_is_param_modified): Removed.
24047         (ipa_analyze_node): Declare.
24048         (ipa_compute_jump_functions): Remove declaration.
24049         (ipa_count_arguments): Likewise.
24050         (ipa_detect_param_modifications): Likewise.
24051         (ipa_analyze_params_uses): Likewise.
24052         * ipa-prop.c (struct param_analysis_info): New type.
24053         (visit_store_addr_for_mod_analysis): Removed.
24054         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
24055         moved down in the file.
24056         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
24057         (ipa_count_arguments): Made static.
24058         (mark_modified): New function.
24059         (is_parm_modified_before_call): New function.
24060         (compute_pass_through_member_ptrs): New parameter parms_info, call
24061         is_parm_modified_before_call instead of ipa_is_param_modified.
24062         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
24063         it to compute_pass_through_member_ptrs.
24064         (ipa_compute_jump_functions): New parameter parms_info, pass it to
24065         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
24066         on the callee if it is analyzed.  Made static.
24067         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
24068         is_parm_modified_before_call instead of ipa_is_param_modified.
24069         (ipa_analyze_call_uses): New parameter parms_info, pass it to
24070         ipa_analyze_indirect_call_uses.
24071         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
24072         ipa_analyze_call_uses.
24073         (ipa_analyze_params_uses): New parameter parms_info, pass it to
24074         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
24075         (ipa_analyze_node): New function.
24076         (ipa_print_node_params): Do not dump the modified flag.
24077         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
24078         it.  Do not stream the modified parameter flag.
24079         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
24080         it.  Do not stream the modified parameter flag.
24081         * ipa-cp.c (ipcp_analyze_node): Removed.
24082         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
24083         with only a call to ipa_analyze_node.
24084         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
24085         node with only a call to ipa_analyze_node.
24086
24087 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24088
24089         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
24090
24091 2010-06-25  Jan Hubicka  <jh@suse.cz>
24092
24093         * tree-pass.h (pass_split_functions): Declare.
24094         * opts.c (decode_options): Enable function splitting at -O2
24095         * timevar.def (TV_IPA_FNSPLIT): New macro.
24096         * ipa-split.c: New file.
24097         * common.opt (-fpartial-inlining): New flag.
24098         * Makefile.in (ipa-split.o): New object file.
24099         * passes.c (init_optimization_passes): Add ipa-split.
24100         * params.def (partial-inlining-entry-probability): New parameters.
24101         * doc/invoke.texi (-fpartial-inlining): New.
24102
24103 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24104
24105         PR 44665
24106         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
24107         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
24108         (gimplify_expr): Likewise.
24109
24110 2010-06-25  Martin Jambor  <mjambor@suse.cz>
24111
24112         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
24113         statements instead of bailing out on them.
24114         (ipa_analyze_indirect_call_uses): Do not require that loads from the
24115         parameter are in the same BB as the condition.  Update comments.
24116
24117 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
24118
24119         PR middle-end/43866
24120         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
24121         true or always false, return NULL_TREE.
24122         (tree_unswitch_single_loop): Optimize conditions even when reaching
24123         max-unswitch-level parameter.  If num > 0, optimize first all conditions
24124         using entry checks, then do still reachable block discovery and consider
24125         only conditions in still reachable basic blocks in the loop.
24126
24127         PR tree-optimization/44539
24128         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
24129         the call doesn't have LHS, but has VDEF.
24130
24131 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
24132
24133         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
24134         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
24135         * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
24136         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
24137         * system.h (MODIFY_TARGET_NAME): Poison.
24138
24139 2010-06-25  Alan Modra  <amodra@gmail.com>
24140
24141         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
24142         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
24143         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
24144         CMODEL_LARGE as default.
24145         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
24146         (offsettable_ok_by_alignment): Delete.
24147         (rs6000_emit_move): Remove mcmodel=medium optimization.
24148
24149 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
24150
24151         With large parts from Jim Wilson:
24152         PR target/43902
24153         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
24154         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
24155         * optabs.c (optab_for_tree_code): Likewise.
24156         (expand_widen_pattern_expr): Likewise.
24157         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
24158         out of execute_optimize_widening_mul.
24159         (convert_plusminus_to_widen): New function.
24160         (execute_optimize_widening_mul): Use the two new functions.
24161         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
24162         Remove code to generate widening multiply-accumulate.  Add support
24163         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
24164         * gimple-pretty-print.c (dump_ternary_rhs): New function.
24165         (dump_gimple_assign): Call it when appropriate.
24166         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
24167         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
24168         (expand_gimple_stmt_1): Likewise.
24169         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
24170         WIDEN_MULT_MINUS_EXPR.
24171         * tree-ssa-operands.c (get_expr_operands): Likewise.
24172         * tree-inline.c (estimate_operator_cost): Likewise.
24173         * gimple.c (extract_ops_from_tree_1): Renamed from
24174         extract_ops_from_tree.  Add new arg for a third operand; fill it.
24175         (gimple_build_assign_stat): Support operations with three operands.
24176         (gimple_build_assign_with_ops_stat): Likewise.
24177         (gimple_assign_set_rhs_from_tree): Likewise.
24178         (gimple_assign_set_rhs_with_ops_1): Renamed from
24179         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
24180         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
24181         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
24182         WIDEN_MULT_MINUS_EXPR.
24183         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
24184         (extract_ops_from_tree_1): Adjust declaration.
24185         (gimple_assign_set_rhs_with_ops_1): Likewise.
24186         (gimple_build_assign_with_ops): Pass NULL for last operand.
24187         (gimple_build_assign_with_ops3): New macro.
24188         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
24189         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
24190         functions.
24191         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
24192         (verify_gimple_assign): Call it.
24193         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
24194         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
24195         functions for dealing with three-operand statements.
24196         * tree.c (commutative_ternary_tree_code): New function.
24197         * tree.h (commutative_ternary_tree_code): Declare it.
24198         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
24199         ternary statements.
24200         (gimple_assign_nonzero_warnv_p): Likewise.
24201         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
24202         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
24203         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
24204         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
24205         (struct hashtable_expr): New member ternary in the union.
24206         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
24207         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
24208         (iterative_hash_hashable_expr): Likewise.
24209         (print_expr_hash_elt): Handle EXPR_TERNARY.
24210         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
24211         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
24212         statements.  Handle GIMPLE_TERNARY_RHS.
24213
24214 2010-06-25  Jan Hubicka  <jh@suse.cz>
24215
24216         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
24217
24218 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
24219
24220         PR c/44517
24221         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
24222         parameters are not good.
24223         (c_parser_parameter_declaration): Error unknown type name if the type
24224         name can't start declaration specifiers.
24225
24226 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
24227
24228         * gcc.c (translate_options): Don't mention +e in comment.
24229         (process_command): Don't handle +e specially.
24230
24231 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
24232
24233         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
24234
24235         * ira-build.c (merge_hard_reg_conflicts): New function.
24236         (create_cap_allocno, copy_info_to_removed_store_destinations,
24237         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
24238         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
24239         (remove_unnecessary_allocnos, remove_low_level_allocnos)
24240         copy_nifo_to_removed_store_destination): Use them.
24241         * ira-lives.c (make_hard_regno_born): New function, split out of
24242         make_regno_born.
24243         (make_allocno_born): Likewise.
24244         (make_hard_regno_dead): New function, split out of make_regno_dead.
24245         (make_allocno_dead): Likewise.
24246         (inc_register_pressure): New function, split out of set_allocno_live.
24247         (dec_register_pressure): New function, split out of clear_allocno_live.
24248         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
24249         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
24250         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
24251         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
24252         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
24253         mark_pseudo_regno_live.
24254         (process_bb_node_lives): Use mark_pseudo_regno_live,
24255         make_hard_regno_born and make_allocno_dead.
24256         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
24257         set_allocno_live, clear_allocno_live): Delete functions.
24258
24259         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
24260         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
24261         functions.
24262         (ira_flattening): Use ira_parent_allocno.
24263         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
24264         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
24265
24266         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
24267         statement.
24268
24269         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
24270         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
24271         minmax_set_iter_cond, minmax_set_iter_next,
24272         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
24273         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
24274         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
24275         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
24276         uses changed.
24277
24278         * ira-int.h (struct live_range, live_range_t): Renamed from struct
24279         ira_allocno_live_range and allocno_live_range_t; all uses changed.
24280         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
24281         All uses changed.
24282
24283 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
24284
24285         * thumb2.md (thumb2_tlobits_cbranch): Delete.
24286         (peephole2 to convert zero_extract/compare of single bit to
24287          lshift/compare): New.
24288
24289 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
24290
24291         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
24292         recursive call and call to 'int_const_binop'.
24293         (build_range_check, fold_cond_expr_with_comparison, unextend,
24294         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
24295         multiple_of_p): Adjust call to const_binop.
24296
24297 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
24298
24299         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
24300         determine size of XFmode operand.
24301         (XFmode extended DFmode push splitter): Ditto.
24302         (XFmode extended SFmode push splitter): Ditto.
24303
24304 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
24305
24306         PR target/44588
24307         * config/i386/i386.md (extract_code): New.
24308         (<u>divmodqi4): Likewise.
24309         (divmodhiqi3): Likewise.
24310         (udivmodhiqi3): Likewise.
24311         (<u>divqi3): Remvoved.
24312
24313 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
24314
24315         PR middle-end/44492
24316         * recog.h (struct recog_data): Add is_asm field.
24317         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
24318         present in constraints of inline-asm operand and memory operand
24319         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
24320         (extract_insn): Initialize recog_data.is_asm.
24321         * doc/md.texi (Constraints): Document operand side-effect rules.
24322
24323 2010-06-24  Andi Kleen  <ak@linux.intel.com>
24324
24325         * c-parser.c (c_parser_conditional_expression): Call
24326         warn_for_omitted_condop.
24327         * doc/invoke.texi: Document omitted condop warning.
24328
24329 2010-06-24  Nick Clifton<nickc@redhat.com>
24330
24331         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
24332         insn in the sequence is a jump insn before setting its label.
24333
24334 2010-06-24  Alan Modra  <amodra@gmail.com>
24335
24336         * collect2.c (main): Match exactly --version and --help.
24337
24338 2010-06-24  DJ Delorie  <dj@redhat.com>
24339
24340         * config/m32c/m32c-pragma.c: Don't include rtl.h.
24341
24342 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
24343
24344         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
24345         using X87MODEF mode iterator.
24346         (pushsf splitter): Macroize splitter using P mode iterator.
24347         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
24348         mode iterator.
24349
24350         (*movxf_internal): Rename from *movxf_integer.
24351         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
24352         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
24353         (*movdf_internal): Rename from *movdf_integer.
24354         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
24355         (*movsf_internal): Rename from *movdf_1.
24356
24357 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
24358
24359         * coretypes.h (gimple_seq_node_d, gimple_seq_node)
24360         (const_gimple_seq_node): Removed typedefs.
24361
24362         * gimple.h (gimple_seq_node_d, gimple_seq_node)
24363         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
24364
24365 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
24366
24367         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
24368         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
24369         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
24370         and CODE_FOR_vec_extract_lo_v4df.
24371
24372         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
24373         Changed to define_insn_and_split.
24374         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
24375         (vec_extract_lo_v16hi): Likewise.
24376         (vec_extract_lo_v32qi): Likewise.
24377         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
24378         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
24379
24380 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
24381
24382         PR target/44640
24383         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
24384         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
24385         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
24386         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
24387         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
24388
24389         PR target/44640
24390         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
24391
24392         PR other/44644
24393         * df-core.c (struct df): Rename to df_d.
24394         * df.h (struct df): Likewise.
24395         * dse.h (struct df): Remove forward declaration.
24396         * recog.h (struct insn_data): Rename to:
24397         (struct_insn_data_d).  Adjusted all users.
24398
24399 2010-06-23  Arnaud Charlet  <charlet@adacore.com
24400
24401         PR ada/22220
24402         * doc/install.texi: Update requirements to build GNAT.
24403
24404 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
24405
24406         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
24407         enum type.
24408         (m68k_sched_attr_opx_type): Remove unreachable return.
24409         (m68k_sched_attr_opy_type): Likewise.
24410         (m68k_sched_attr_size): Likewise.
24411         (sched_get_opxy_mem_type): Likewise.
24412         (m68k_sched_attr_op_mem): Likewise.
24413
24414 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
24415
24416         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
24417         new statement and adjust VDEF only if necessary.  Remove superfluous
24418         call to maybe_clean_or_replace_eh_stmt.
24419         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
24420         copy the flags.
24421         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
24422         * tree-inline.c (copy_bb): ...and not there.
24423
24424 2010-06-22  Cary Coutant  <ccoutant@google.com>
24425
24426         * dwarf2out.c (is_nested_in_subprogram): New function.
24427         (should_move_die_to_comdat): Use it.
24428         (copy_ancestor_tree): Don't mark DIEs here.
24429         (copy_decls_walk): Start walk from root of newly-added tree;
24430         mark DIEs here instead.
24431
24432 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
24433
24434         * config/i386/i386.md (unit): Also check sseishft1.
24435
24436 2010-06-22  Jan Hubicka  <jh@suse.cz>
24437
24438         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
24439         enabled.
24440
24441 2010-06-22  Jan Hubicka  <jh@suse.cz>
24442
24443         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
24444         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
24445         Return true if something changed.
24446         * df.h (df_confluence_function_n): Return bool.
24447         * df-core.c (df_worklist_propagate_forward,
24448         df_worklist_propagate_backward): Track changes and ages.
24449         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
24450         track ages.
24451         * dse.c (dse_confluence_n): Return always true.
24452
24453 2010-06-22  Jan Hubicka  <jh@suse.cz>
24454
24455         * bitmap.c (bitmap_clear_bit): Micro optimize.
24456
24457 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
24458
24459         * config/i386/i386.md (SWI1248x): New mode iterator.
24460         (SWI48x): Ditto.
24461         (SWI12): Ditto.
24462         (SWI24): Ditto.
24463
24464         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
24465         SWI1248x mode iterator.
24466         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
24467         using SWI124 mode iterator.
24468         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
24469         mode iterator.
24470         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
24471         *pushdi2_prologue_rex64 using P mode iterator.
24472         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
24473         using SWI48 mode iterator.
24474         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
24475         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
24476         using SWI1248x mode iterator.
24477         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
24478         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
24479         SWI48 mode iterator.
24480         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
24481         iterator.
24482         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
24483         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
24484         SWI12 mode iterator.
24485         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
24486         SWI12 mode iterator.
24487         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
24488         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
24489         SWI24 mode iterator.
24490         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
24491         SWI48 mode iterator.
24492         (mov<mode>_insn_1): New expander.
24493         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
24494         using SWI48x mode iterator.
24495
24496         (*movoi_internal_avx): Rename from *movoi_internal.
24497         (*movti_internal_rex64): Rename from *movti_rex64.
24498         (*movti_internal_sse): Rename from *movti_sse.
24499         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
24500         (*movdi_internal): Rename from *movdi_2.
24501         (*movsi_internal): Rename from *movsi_1.
24502         (*movhi_internal): Rename from *movhi_1.
24503         (*movqi_internal): Rename from *movqi_1.
24504
24505         (insv): Update the call to gen_movsi_insv_1 for rename.
24506         * config/i386/i386.c (promote_duplicated_reg): Ditto.
24507
24508 2010-06-22  Jan Hubicka  <jh@suse.cz>
24509
24510         * passes.c (execute_function_todo): Move call of statistics_fini_pass
24511         to ...
24512         (execute_todo) ... this one.
24513
24514 2010-06-22  Alan Modra  <amodra@gmail.com>
24515
24516         PR target/44364
24517         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
24518         * caller-save.c (insert_restore, insert_save): Use non-validate
24519         form of adjust_address.
24520
24521 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24522
24523         PR target/39690
24524         * config/pa/pa.c (override_options): Disable
24525         -freorder-blocks-and-partition.
24526
24527 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
24528
24529         PR target/44615
24530         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
24531
24532         * config/i386/i386.md (type): Add sseishft1
24533
24534         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
24535         (ppro_insn_load): Likewise.
24536         (ppro_insn_store): Likewise.
24537         (ppro_insn_both): Likewise.
24538
24539         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
24540         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
24541         for type.
24542         (*vec_extractv2di_1_avx): Likewise.
24543         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
24544         type.  Remove atom_unit.
24545         (*vec_extractv2di_1_sse2): Likewise.
24546
24547 2010-06-21  DJ Delorie  <dj@redhat.com>
24548
24549         * diagnostic.h (diagnostic_classification_change_t): New.
24550         (diagnostic_context): Add history and push/pop list.
24551         (diagnostic_push_diagnostics): Declare.
24552         (diagnostic_pop_diagnostics): Declare.
24553         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
24554         from pragmas in a history chain instead of the global table.
24555         (diagnostic_push_diagnostics): New.
24556         (diagnostic_pop_diagnostics): New.
24557         (diagnostic_report_diagnostic): Scan history chain to find state
24558         of diagnostics as of the diagnostic location.
24559         * opts.c (set_option): Pass UNKNOWN_LOCATION to
24560         diagnostic_classify_diagnostic.
24561         (enable_warning_as_error): Likewise.
24562         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
24563         use in the history chain.
24564         * doc/extend.texi: Document pragma GCC diagnostic changes.
24565
24566 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
24567
24568         * dwarf2out.c (add_linkage_name): New function.  Don't add
24569         anything to DW_TAG_member DIEs.
24570         (add_name_and_src_coords_attributes): Use it.
24571         (gen_variable_die): Call it for C++ static data members if
24572         specification is DW_TAG_member.
24573
24574         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
24575         C++ char16_t and char32_t.
24576
24577         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
24578         * genattrtab.c: Include vecprim.h.
24579         (cached_attrs, cached_attr_count, attrs_seen_once,
24580         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
24581         attrs_cached_after): New variables.
24582         (find_attrs_to_cache): New function.
24583         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
24584         (write_test_expr): Add attrs_cached argument, return it too,
24585         attempt to cache non-const attributes used more than once in
24586         a single case handling.
24587         (write_attr_get): Use find_attrs_to_cache, for caching candidates
24588         emit cached_* variables.  Adjust write_attr_set callers.
24589         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
24590         to find attributes that should be cached in this block.  Adjust
24591         write_test_expr callers.
24592         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
24593         callers.
24594         (make_automaton_attrs): Adjust write_test_expr caller.
24595
24596         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
24597         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
24598         (make_automaton_attrs): If find_tune_attr returns non-NULL,
24599         write separate internal_dfa_insn_code_* and insn_default_latency_*
24600         functions for each attribute's value and emit init_sched_attrs
24601         function and function pointers.
24602         * genattr.c (const_attrs, reservations): New variables.
24603         (gen_attr): Add const attributes to const_attrs vector.
24604         (check_tune_attr, find_tune_attr): New functions.
24605         (main): Add reservations to reservations vector.  If find_tune_attr
24606         returns true, add prototype for init_sched_attrs and make
24607         internal_dfa_insn_code and insn_default_latency function pointers,
24608         otherwise define init_sched_attrs as dummy macro.
24609         * cfgexpand.c: Include insn-attr.h.
24610         (gimple_expand_cfg): Call init_sched_attrs.
24611
24612         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
24613
24614         PR target/44575
24615         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
24616         va_arg from a set of register save slots into a temporary,
24617         if the container is bigger than type size, do the copying
24618         using smaller mode or using memcpy.
24619
24620         PR bootstrap/44426
24621         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
24622         prototype.
24623         (sel_print_to_dot): Remove macro.
24624         (sel_print): Likewise.  New prototype.
24625         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
24626         (sel_print): New function.
24627
24628 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24629
24630         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
24631         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
24632
24633 2010-06-21  Nick Clifton  <nickc@redhat.com>
24634
24635         * config/rx/rx.h (PTRDIFF_TYPE): Define.
24636         (SMALL_REGISTER_CLASS): Define (to zero).
24637         (PRINT_OPERAND): Delete.
24638         (PRINT_OPERAND_ADDRESS): Delete.
24639         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
24640         (rx_print_operand_address): Delete prototype.
24641         * config/rx/rx.c (rx_print_operand): Make static.
24642         Allow %H and %L to handle CONST_DOUBLEs.
24643         (rx_print_operand_address): Make static.
24644         (rx_gen_move_template): Rename local variable 'template' to
24645         out_template.
24646         (rx_function_arg): Do not pass unknown sized objects in registers.
24647         (TARGET_PRINT_OPERAND): Define.
24648         (TARGET_PRINT_OPERAND_ADDRESS): Define.
24649
24650 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
24651
24652         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
24653
24654 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
24655
24656         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
24657         stack-alignment for simple leaf-functions.
24658
24659 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
24660
24661         * doc/install.texi: Document bootstrap-lto.
24662
24663 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
24664
24665         PR debug/44248
24666         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
24667         (input_function): Drop them here, if VTA is disabled.
24668
24669 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
24670
24671         PR target/44546
24672         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
24673         New predicate.
24674         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
24675         ix86_swapped_fp_comparsion_operator instead of
24676         ix86_fp_comparison_operator.
24677
24678         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
24679         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
24680         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
24681         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
24682         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
24683         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
24684
24685 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
24686
24687         PR other/32998
24688         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
24689         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
24690         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
24691         (decode_cmdline_option): Update for this return value.  Set
24692         orig_option_with_args_text field.  Set arg field for unknown
24693         options.  Make static.
24694         (decode_cmdline_options_to_array): New.
24695         (prune_options): Update handling of find_opt return value.
24696         * opts.c (read_cmdline_option): Take decoded option.  Return void.
24697         (read_cmdline_options): Take decoded options.
24698         (decode_options): Add parameters for decoded options.  Use
24699         decode_cmdline_options_to_array.  Use decoded options for -O
24700         scan.  Use integral_argument for -O parameters.  Update call to
24701         read_cmdline_options.
24702         (enable_warning_as_error): Update handling of find_opt return value.
24703         * opts.h: Update comment on unknown options.
24704         (struct cl_decoded_option): Update comments on opt_index and arg.
24705         Add orig_option_with_args_text.
24706         (decode_cmdline_option): Remove.
24707         (decode_cmdline_options_to_array): Declare.
24708         (decode_options): Update prototype.
24709         * toplev.c (save_argv): Remove.
24710         (save_decoded_options, save_decoded_options_count): New.
24711         (read_integral_parameter): Remove.
24712         (print_switch_values): Use decoded options.
24713         (toplev_main): Don't set save_argv.  Update call to decode_options.
24714         * toplev.h (read_integral_parameter): Remove.
24715         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
24716
24717 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
24718
24719         PR target/44072
24720         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
24721         immediate.
24722         * constraints.md (Pw, Px): New constraints.
24723         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
24724
24725 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
24726
24727         * config/i386/sse.md (fma4modesuffixf4): Removed.
24728         (ssemodesuffixf2s): Likewise.
24729         (ssemodesuffixf4): Likewise.
24730         (ssemodesuffixf2c): Likewise.
24731         (ssescalarmodesuffix2s): Likewise.
24732         (avxmodesuffixf2c): Likewise.
24733         (ssemodesuffix): New.
24734         (ssescalarmodesuffix): Likewise.
24735         Update patterns with ssemodesuffix and ssescalarmodesuffix.
24736
24737 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
24738
24739         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
24740
24741 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
24742
24743         * stor-layout.c (debug_rli): Remove unused local variables.
24744
24745 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
24746
24747         PR rtl-optimization/40900
24748         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
24749         original expression for later reuse.
24750         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
24751         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
24752
24753 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
24754
24755         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
24756         double_int_fits_in_uhwi_p): Implement as static inline.
24757         (double_int_xor): New inline function.
24758         (double_int_lrotate, double_int_rrotate, double_int_max,
24759         double_int_umax, double_int_smax, double_int_min, double_int_umin,
24760         double_int_smin): Declare.
24761         (lrotate_double, rrotate_double): Remove declaration.
24762         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
24763         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
24764         (double_int_lrotate, double_int_rrotate, double_int_max,
24765         double_int_umax, double_int_smax, double_int_min, double_int_umin,
24766         double_int_smin): New function.
24767         * fold-const.c (int_const_binop): Clean up, use double_int_*
24768         functions.
24769         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
24770         double_int_* and immed_double_int_const functions.
24771
24772 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
24773
24774         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
24775         * function.c (types_used_by_cur_var_decl): Likewise.
24776         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
24777
24778 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
24779
24780         * tree.h (record_layout_info): Change type of pending_statics field
24781         to a VEC.
24782         * stor-layout.c (start_record_layout): Store NULL into
24783         pending_statics.
24784         (debug_rli): Call debug_vec_tree instead of debug_tree.
24785         (place_field): Likewise.
24786         (finish_record_layout): Likewise.
24787
24788 2010-06-18  Alan Modra  <amodra@gmail.com>
24789
24790         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
24791
24792 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24793
24794         PR target/43740
24795         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
24796         for SET source operand from SET destination operand.
24797
24798 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
24799
24800         PR rtl-optimization/39871
24801         * reload1.c (init_eliminable_invariants): For flag_pic, disable
24802         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
24803         (function_invariant_p): Rule out a plus of frame or arg pointer with
24804         a SYMBOL_REF.
24805         * ira.c (find_reg_equiv_invariant_const): Likewise.
24806
24807 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
24808
24809         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
24810         print_operand_address and puts to output the operand for CONST.
24811
24812 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
24813
24814         PR debug/44572
24815         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
24816         hook.
24817
24818 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
24819
24820         * v850-protos.h (print_operand): Delete.
24821         (print_operand_address): Delete.
24822         * v850.h (PRINT_OPERAND): Delete.
24823         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
24824         (PRINT_OPERAND_ADDRESS): Delete.
24825         * v850.c (print_operand_address): Rename to...
24826         (v850_print_operand_address): ...this.  Make static. Call
24827         v850_print_operand.
24828         (print_operand): Rename to...
24829         (v850_print_operand): ...this.  Make static.  Call
24830         v850_print_operand_address.
24831         (v850_print_operand_punct_valid_p): New function.
24832         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
24833         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
24834
24835 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
24836
24837         * config/sh/sh-protos.h (print_operand): Delete.
24838         (print_operand_address): Delete.
24839         * config/sh/sh.h (PRINT_OPERAND): Delete.
24840         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
24841         (PRINT_OPERAND_ADDRESS): Delete.
24842         * config/sh/sh.c (sh_print_operand_address): Make static.
24843         (sh_print_operand): Make static.  Call sh_print_operand_address
24844         and sh_print_operand.
24845         (sh_print_operand_punct_valid_p): New function.
24846         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
24847         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
24848
24849 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
24850
24851         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
24852         (mcore_print_operand_address): Delete.
24853         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
24854         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
24855         (PRINT_OPERAND_ADDRESS): Delete.
24856         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
24857         (mcore_print_operand): Make static.
24858         (mcore_print_operand_punct_valid_p): New function.
24859         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
24860         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
24861
24862 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
24863
24864         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
24865         (print_operand_address): Delete.
24866         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
24867         (PRINT_OPERAND_ADDRESS): Delete.
24868         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
24869         static.
24870         (m68hc11_print_operand): Make static.
24871         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
24872
24873 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
24874
24875         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
24876         (m32r_print_operand_address): Delete.
24877         * config/m32r/m32r.h (m32r_punct_chars): Delete.
24878         (PRINT_OPERAND): Delete.
24879         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
24880         (PRINT_OPERAND_ADDRESS): Delete.
24881         * config/m32r/m32r.c (m32r_punct_chars): Make static.
24882         (m32r_print_operand_address): Make static.
24883         (m32r_print_operand): Make static.
24884         (m32r_print_operand_punct_valid_p): New function.
24885         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
24886         (TARGET_PRINT_OPERAND_ADDRESS): Define.
24887
24888 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
24889
24890         * config/iq2000/iq2000-protos.h (print_operand): Delete.
24891         (print_operand_address): Delete.
24892         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
24893         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
24894         (PRINT_OPERAND_ADDRESS): Delete.
24895         (iq2000_print_operand_punct): Delete.
24896         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
24897         (iq2000_print_operand_address): Make static.
24898         (iq2000_print_operand): Make static.
24899         (iq2000_print_operand_punct_valid_p): New function.
24900         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
24901         (TARGET_PRINT_OPERAND_ADDRESS): Define.
24902
24903 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
24904
24905         * config/frv/frv-protos.h (frv_print_operand): Delete.
24906         (frv_print_operand_address): Delete.
24907         * config/frv/frv.h (PRINT_OPERAND): Delete.
24908         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
24909         (PRINT_OPERAND_ADDRESS): Delete.
24910         * config/frv/frv.c (frv_print_operand_address): Make static.
24911         (frv_print_operand): Make static.
24912         (frv_print_operand_punct_valid_p): New function.
24913         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
24914         (TARGET_PRINT_OPERAND_ADDRESS): Define.
24915
24916 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
24917
24918         * tree.h (vec_member): Declare.
24919         * tree.c (vec_member): Define.
24920
24921 2010-06-17  Richard Guenther  <rguenther@suse.de>
24922
24923         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
24924         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
24925
24926 2010-06-17  Richard Guenther  <rguenther@suse.de>
24927
24928         * tree-inline.c (declare_return_variable): Remove bogus code.
24929
24930 2010-06-17  Richard Guenther  <rguenther@suse.de>
24931
24932         * gimplify.c (gimplify_bind_expr): Always promote complex
24933         and vector variables to registers if possible.
24934
24935 2010-06-17  Richard Guenther  <rguenther@suse.de>
24936
24937         * expr.c (get_inner_reference): Use double_int for bit_offset
24938         calculation.
24939
24940 2010-06-16  DJ Delorie  <dj@redhat.com>
24941
24942         * common.opt (-fstrict-volatile-bitfields): new.
24943         * doc/invoke.texi: Document it.
24944         * fold-const.c (optimize_bit_field_compare): For volatile
24945         bitfields, use the field's type to determine the mode, not the
24946         field's size.
24947         * expr.c (expand_assignment): Likewise.
24948         (get_inner_reference): Likewise.
24949         (expand_expr_real_1): Likewise.
24950         * expmed.c (store_fixed_bit_field): Likewise.
24951         (extract_bit_field_1): Likewise.
24952         (extract_fixed_bit_field): Likewise.
24953
24954 2010-06-16  Richard Guenther  <rguenther@suse.de>
24955
24956         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
24957
24958 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
24959
24960         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
24961         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
24962         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
24963         * debug.c: Likewise.
24964         * sdbout.c: Likewise.
24965         * vmsdbgout.c: Likewise.
24966         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
24967         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
24968         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
24969         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
24970         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
24971         * dwarf2out.c (dw_fde_struct): New fields
24972         dw_fde_vms_{end,begin}_prologue.
24973         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
24974         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
24975         (dwarf2out_vms_end_prologue): New function.
24976         (dwarf2out_vms_begin_epilogue): New function.
24977         (dw_val_struct): New value dw_val_class_vms_delta.
24978         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
24979         begin_epilogue for VMS.
24980         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
24981         new static functions.
24982         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
24983         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
24984         static functions.
24985         (print_die): New case dw_val_class_vms_delta.
24986         (attr_checksum): Likewise.
24987         (same_dw_val_p: Likewise.
24988         (size_of_die): Likewise.
24989         (value_format): Likewise.
24990         (output_die): Likewise.
24991         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
24992         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
24993         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
24994         dwarf2out_cfi_begin_epilogue
24995         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
24996
24997 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
24998
24999         * config/cris/cris-protos.h (cris_print_operand): Delete.
25000         (cris_print_operand_address): Delete.
25001         * config/cris/cris.h (PRINT_OPERAND): Delete.
25002         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25003         (PRINT_OPERAND_ADDRESS): Delete.
25004         * config/cris/cris.c (cris_print_operand_address): Make static.
25005         (cris_print_operand): Make static.
25006         (cris_print_operand_punct_valid_p): New function.
25007         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
25008         (TARGET_PRINT_OPERAND_ADDRESS): Define.
25009
25010 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
25011
25012         * config/arm/arm-protos.h (arm_print_operand): Delete.
25013         (arm_print_operand_address): Delete.
25014         * config/arm/arm.h (PRINT_OPERAND): Delete.
25015         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25016         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
25017         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
25018         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
25019         (arm_print_operand): Make static.
25020         (arm_print_operand_punct_valid_p): New function.
25021         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
25022         (TARGET_PRINT_OPERAND_ADDRESS): Define.
25023
25024 2010-06-16  Nick Clifton  <nickc@redhat.com>
25025
25026         * config/rx/constraints.md (NEGint4): New constraint.
25027         * config/rx/rx.md (attr cc): Add set_zsc.
25028         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
25029         initialised.
25030         (cmpsf): Likewise.
25031         (call_internal): Clobber the cc0 register.
25032         (call_value_internal): Likewise.
25033         (cstoresi4): Likewise.
25034         (movsieq): Likewise.
25035         (movsine): Likewise.
25036         (addsi3): Add alternative to handle small negative constants.
25037         (sunsi3): Likewise.
25038         (addsi3): Do not set the O bit in the cc0 register.
25039         (adddi3): Likewise.
25040         (subsi3): Likewise.
25041         (subdi3): Likewise.
25042         (andsi3): Reorder alternatives to prefer shorter forms.
25043         (mulsi3): Likewise.
25044         (iorsi3): Likewise.
25045         (negsi2): Note that the cc0 flags are set.
25046         (rotlsi3): Note that only the Z and S bits are set in cc0.
25047         (lshrsi3): Likewise.
25048         (ashlsi3): Likewise.
25049         (subsf3): Use %Q for the MEM operand.
25050         (fix_truncsfsi2): Likewise.
25051         (floatsisf2): Likewise.
25052         (bitset): Remove early clobber from destination.
25053         (bitset_in_memory): Likewise.
25054         (lrintsf2): Clobber the cc0 register.
25055         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
25056         (rx_print_operand): Handle %N.
25057
25058 2010-06-16  Jan Hubicka  <jh@suse.cz>
25059
25060         * df-core.c (df_compact_blocks): Free problem_temps vector.
25061
25062 2010-06-16  Martin Jambor  <mjambor@suse.cz>
25063
25064         PR tree-optimization/43905
25065         * tree-sra.c: Include tree-inline.h.
25066         (create_abstract_origin): Removed.
25067         (modify_function): Version the call graph node instead of creating
25068         abstract origins and dealing with same_body aliases.
25069         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
25070         function is versionable.
25071         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
25072
25073 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
25074
25075         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
25076         (CHOOSE_DYNAMIC_LINKER): Update.
25077
25078 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
25079
25080         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
25081         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
25082         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
25083         *prefetch_3dnow_rex.
25084
25085 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
25086
25087         * target.h (struct asm_out):Add declare_constant_name field.
25088         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
25089         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
25090         * output.h (default_asm_declare_constant_name): Declare.
25091         (assemble_label): Update prototype.
25092         * varasm.c (assemble_constant_contents): Use
25093         targetm.asm_out.declare_constant_name target hook.
25094         (assemble_label): Add 'file' argument.
25095         (default_asm_declare_constant_name): New function.
25096         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
25097         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
25098         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
25099
25100         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
25101         * config/darwin.c (darwin_asm_declare_constant_name): New function.
25102         (machopic_output_indirection): Update assemble_label argument list.
25103         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
25104         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
25105
25106 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
25107
25108         PR middle-end/44391
25109         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
25110         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
25111
25112 2010-06-15  Richard Guenther  <rguenther@suse.de>
25113
25114         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
25115
25116 2010-06-15  Paul Brook  <paul@codesourcery.com>
25117
25118         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
25119         hard-float ABI.
25120
25121 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
25122
25123         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
25124         don't get a vector type for output.
25125
25126 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
25127
25128         PR fortran/44536
25129         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
25130         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
25131         (LANG_HOOKS_DECLS): Add it.
25132         * gimplify.c (omp_notice_variable): Call
25133         lang_hooks.decls.omp_report_decl.
25134
25135 2010-06-15  Martin Jambor  <mjambor@suse.cz>
25136
25137         PR lto/44464
25138         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
25139         on the newly dead SSA name.
25140
25141 2010-06-15  Alan Modra  <amodra@gmail.com>
25142
25143         * doc/invoke.texi: Add mcmodel to powerpc options.
25144         * configure.ac: Add HAVE_LD_LARGE_TOC test.
25145         * configure: Regenerate.
25146         * config.in: Regenerate.
25147         * config/rs6000/linux64.opt (mcmodel): New.
25148         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
25149         (TARGET_CMODEL, SET_CMODEL): Define.
25150         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
25151         select CMODEL_MEDIUM default.
25152         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
25153         (TARGET_CMODEL): Define default.
25154         * config/rs6000/rs6000.c (cmodel): New variable.
25155         (rs6000_explicit_options): Add cmodel field.
25156         (rs6000_handle_option): Handle -mcmodel.
25157         (create_TOC_reference): Add largetoc_reg param.  Generate high,
25158         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
25159         (rs6000_delegitimize_address): Recognise new toc reference rtl
25160         and minimal-toc rtl.
25161         (rs6000_legitimize_reload_address): Handle new toc references.
25162         (print_operand_address): Handle legitimate_constant_pool_address_p
25163         match before lo_sum.
25164         (rs6000_eliminate_indexed_memrefs): Tidy.
25165         (rs6000_emit_move): Tweak threshold for inlining constants.
25166         Keep rs6000_emit_allocate_stack large stack frame offsets
25167         loaded into r0 inline.
25168         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
25169         (tocrel_base, tocrel_offset): New variables.
25170         (toc_relative_expr_p): Set them here.
25171         (print_operand_address): Skip over any offset on constant pool address.
25172         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
25173         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
25174         (offsettable_ok_by_alignment): New function.
25175         (rs6000_emit_move): Address suitably aligned local symbol_refs
25176         relative to the toc pointer for -mcmodel=medium.
25177         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
25178         strict param.  Allow lo_sum version of addressing.  Verify reg
25179         used for -mminimal-toc and -mcmodel != small.  Update all callers.
25180         * config/rs6000/constraints.md: Update for above change.
25181         * config/rs6000/predicates.md: Likewise.
25182         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
25183         code.
25184         (tls_gd): Split for -mcmodel=medium/large.
25185         (tls_gd_high, tls_gd_low): New.
25186         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
25187         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
25188         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
25189         (largetoc_high, largetoc_low): New.
25190         (cmptf_internal2): Add clobber.
25191         * config/rs6000/rs6000-protos.h: Update.
25192
25193 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
25194
25195         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
25196         true if no prefetch is going to be generated for a given group.
25197         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
25198         estimate the prefetch_count.
25199         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
25200         prefetch count by considering the unroll_factor and prefetch_mod
25201         for is_loop_prefetching_profitable.
25202
25203 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
25204
25205         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
25206         anything if the argument is not a MEM.
25207
25208 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
25209
25210         PR debug/43650
25211         PR debug/44181
25212         PR debug/44247
25213         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
25214         debug stmts.
25215         (canonicalize_loop_ivs): Likewise.
25216
25217 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
25218
25219         PR debug/43656
25220         * haifa-sched.c (setup_insn_reg_pressure_info,
25221         update_register_pressure): Reject debug insns.
25222         (ready_sort): Don't setup reg pressure for debug insns.
25223         (schedule_insn): Don't update reg pressure for debug insns.
25224
25225 2010-06-14  Richard Guenther  <rguenther@suse.de>
25226
25227         * lto-streamer.c (cached_bp): Remove.
25228         (bitpack_delete): Likewise.
25229         (bitpack_create): Likewise.
25230         (bp_get_next_word): Likewise.
25231         (bp_pack_value, bp_unpack_value): Move ...
25232         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
25233         Re-implement.
25234         (struct bitpack_d): Likewise.
25235         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
25236         New inline functions.
25237         * lto-streamer-out.c (lto_output_bitpack): Remove.
25238         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
25239         (pack_value_fields): Adjust.
25240         (lto_write_tree): Likewise.
25241         (output_gimple_stmt): Likewise.
25242         (output_function): Likewise.
25243         * lto-streamer-in.c (input_gimple_stmt): Adjust.
25244         (input_function): Likewise.
25245         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
25246         (lto_input_bitpack): Remove.
25247         (lto_materialize_tree): Adjust.
25248         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
25249         * lto-cgraph.c (lto_output_edge): Adjust.
25250         (lto_output_node): Likewise.
25251         (lto_output_varpool_node): Likewise.
25252         (lto_output_ref): Likewise.
25253         (input_node): Likewise.
25254         (input_varpool_node): Likewise.
25255         (input_ref): Likewise.
25256         (input_edge): Likewise.
25257         (output_node_opt_summary): Likewise.
25258         (input_node_opt_summary): Likewise.
25259         * ipa-pure-const.c (pure_const_write_summary): Likewise.
25260         (pure_const_read_summary): Likewise.
25261         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
25262         (ipa_read_indirect_edge_info): Likewise.
25263         (ipa_write_node_info): Likewise.
25264         (ipa_read_node_info): Likewise.
25265
25266 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
25267
25268         PR target/44534
25269         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
25270         (vec_extract_lo_v16hi): Likewise.
25271         (vec_extract_lo_v32qi): Likewise.
25272
25273 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
25274
25275         PR bootstrap/44426
25276         * tree.h (build_call_expr): Don't define as vararg macro, instead
25277         add a prototype.
25278         * builtins.c (build_call_nofold): Remove.
25279         (expand_builtin_int_roundingfn, expand_builtin_pow,
25280         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
25281         expand_builtin_memset_args, expand_builtin_strcmp,
25282         expand_builtin_strncmp, expand_builtin_memory_chk): Use
25283         build_call_nofold_loc instead of build_call_nofold.
25284         (build_call_expr): New function.
25285
25286         PR tree-optimization/44508
25287         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
25288         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
25289         don't eliminate trivially dead stmts.
25290         * tree-vrp.c (vrp_finalize): Pass false as last argument
25291         to substitute_and_fold.
25292         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
25293         to substitute_and_fold.
25294         * tree-ssa-ccp.c (ccp_finalize): Likewise.
25295
25296         PR bootstrap/44509
25297         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
25298
25299 2010-06-14  Ira Rosen  <irar@il.ibm.com>
25300
25301         PR tree-optimization/44507
25302         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
25303         to build initial vector for BIT_AND_EXPR.
25304         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
25305
25306 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
25307
25308         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
25309         adjust z10prop set_attr.
25310
25311 2010-06-13  Jan Hubicka  <jh@suse.cz>
25312
25313         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
25314         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
25315         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
25316         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
25317         datastructure checks into checking asserts.
25318         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
25319         * tree-ssa-sccvn.c (VN_INFO): Likewise.
25320         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
25321         df_ref_create_structure): Likewise.
25322         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
25323         pool_free): Use gcc_checking_assert.
25324         * alias.c (get_alias_set): Likewise.
25325         * var-tracking.c (variable_htab_free, shared_hash_copy,
25326         canonicalize_values_mark, variable_merge_over_cur): Likewise.
25327         * lto-streamer.c (bp_unpack_value): Likewise.
25328
25329 2010-06-13  Richard Guenther  <rguenther@suse.de>
25330
25331         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
25332         Do not stream but initialize TYPE_CANONICAL to NULL.
25333         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
25334         * gimple.c (gimple_types_compatible_p): Disregard
25335         TYPE_STRUCTURAL_EQUALITY_P.
25336         (gimple_register_type): Use TYPE_CANONICAL as cache.
25337         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
25338         before registering common types.
25339         * config/i386/i386.c (ix86_function_arg_boundary): Do not
25340         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
25341         * tree.h (TYPE_CANONICAL): Clarify documentation.
25342
25343 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
25344
25345         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
25346         LIBCALL_VALUE): Remove macros.
25347         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
25348         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
25349         TARGET_FUNCTION_VALUE_REGNO_P): Define.
25350         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
25351         (ia64_function_value): Make static. Handle receiving the function
25352         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
25353
25354 2010-06-12  Jan Hubicka  <jh@suse.cz>
25355
25356         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
25357         at correct place.
25358
25359 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
25360
25361         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
25362
25363 2010-06-12  Jan Hubicka  <jh@suse.cz>
25364
25365         * df-core.c (df_clear_bb_info): New function.
25366         (df_set_blocks): bb_info is always allocated.
25367         (df_get_bb_info): Use block_info_elt_size.
25368         (df_set_bb_info): Likewise.
25369         (df_compact_blocks): Update for new block_info.
25370         (grow_bb_info): New function.
25371         * df-problems.c (df_grow_bb_info): Move to df-core.c
25372         (df_rd_set_bb_info): Remove.
25373         (df_rd_free_bb_info): Do not free block pool.
25374         (df_rd_alloc): Do not create pool, use check for
25375         obstack presence instead of NULL pointer for new blocks.
25376         (df_rd_free): DO not free alloc pool; clear block_info.
25377         (problem_RD): Add size of block info structure.
25378         (df_lr_set_bb_info): Remove.
25379         (df_lr_free_bb_info): Do not free block pool.
25380         (df_lr_alloc): Do not create pool, use check for
25381         obstack presence instead of NULL pointer for new blocks.
25382         (df_lr_free): DO not free alloc pool; clear block_info.
25383         (problem_LR): Add size of block info structure.
25384         (df_live_set_bb_info): Remove.
25385         (df_live_free_bb_info): Do not free block pool.
25386         (df_live_alloc): Do not create pool, use check for
25387         obstack presence instead of NULL pointer for new blocks.
25388         (df_live_free): DO not free alloc pool; clear block_info.
25389         (problem_LIVE): Add size of block info structure.
25390         (problem_CHAIN): Add size of block info structure.
25391         (df_byte_lr_set_bb_info): Remove.
25392         (df_byte_lr_free_bb_info): Do not free block pool.
25393         (df_byte_lr_alloc): Do not create pool, use check for
25394         obstack presence instead of NULL pointer for new blocks.
25395         (df_byte_lr_free): DO not free alloc pool; clear block_info.
25396         (problem_BYTE_LR): Add size of block info structure.
25397         (problem_NOTE): Add size of block info structure.
25398         (df_byte_MD_set_bb_info): Remove.
25399         (df_byte_MD_free_bb_info): Do not free block pool.
25400         (df_byte_MD_alloc): Do not create pool, use check for
25401         obstack presence instead of NULL pointer for new blocks.
25402         (df_byte_MD_free): DO not free alloc pool; clear block_info.
25403         (problem_BD): Add size of block info structure.
25404         * df-scan.c (df_scan_free_internal): Free block pool.
25405         (df_scan_set_bb_info): Remove.
25406         (df_scan_free_bb_info): Check for artificial_defs instead
25407         of bb_info being non-NULL.
25408         (df_scan_alloc): DO not create df_scan_block pool.
25409         (problem_SCAN): Set size of block info.
25410         (df_bb_refs_record): Do not allocate bb_info.
25411         * df.h (df_problem): Add block_info_elt_size.
25412         (struct dataflow): Change block_info to void *.
25413         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
25414         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
25415         in-line structures.
25416
25417 2010-06-12  Jan Hubicka  <jh@suse.cz>
25418
25419         PR tree-optimize/44485
25420         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
25421         containing use of return value of noreturn function.
25422
25423 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
25424
25425         * targhooks.c (default_function_value): Don't use
25426         FUNCTION_OUTGOING_VALUE.
25427         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
25428         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
25429
25430 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
25431
25432         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
25433         Add crtfastmath.o to extra_parts.
25434         * config/mips/crtfastmath.c: New.
25435         * config/mips/linux.h (ENDFILE_SPEC): New.
25436
25437 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
25438
25439         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
25440         old_type in parameter.
25441         (gcc_type_for_value): Update call to gcc_type_for_interval.
25442         (compute_type_for_level_1): Renamed compute_type_for_level.
25443         Update call to gcc_type_for_interval.
25444
25445 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
25446
25447         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
25448         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
25449
25450 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
25451
25452         * opts-common.c: Include options.h.
25453         (integral_argument): Move from opts.c.
25454         (decode_cmdline_option): New.  Based on read_cmdline_option.
25455         * opts.c (integral_argument): Move to opts-common.c.
25456         (read_cmdline_option): Move most contents to
25457         decode_cmdline_option.  Use %qs in diagnostics.
25458         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
25459         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
25460         decode_cmdline_option): New.
25461
25462 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
25463
25464         PR target/44481
25465         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
25466         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
25467         (partiysi2_cmp): Ditto.
25468         (*partiyhi2_cmp): Ditto.
25469         (*parityqi2_cmp): Remove.
25470
25471 2010-06-11  Jan Hubicka  <jh@suse.cz>
25472
25473         * bitmap.h (bmp_iter_next_bit): New.
25474         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
25475
25476 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
25477             Eric Botcazou  <ebotcazou@adacore.com>
25478
25479         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
25480         computed cost.
25481
25482 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
25483
25484         * config/i386/i386.md (unspec): New define_c_enum.
25485         (unspecv): Ditto.
25486
25487 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
25488
25489         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
25490
25491 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
25492
25493         PR middle-end/44483
25494         * tree-if-conv.c (bb_predicate_s): New struct.
25495         (bb_predicate_p): New.
25496         (bb_has_predicate): New.
25497         (bb_predicate): New.
25498         (set_bb_predicate): New.
25499         (bb_predicate_gimplified_stmts): New.
25500         (set_bb_predicate_gimplified_stmts): New.
25501         (add_bb_predicate_gimplified_stmts): New.
25502         (init_bb_predicate): New.
25503         (free_bb_predicate): New.
25504         (is_predicated): Use bb_predicate.
25505         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
25506         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
25507         before processing their successors.
25508         (clean_predicate_lists): Removed.
25509         (find_phi_replacement_condition): Use bb_predicate.
25510         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
25511         computations.
25512         (insert_gimplified_predicates): New.
25513         (combine_blocks): Call insert_gimplified_predicates.
25514         (tree_if_conversion): Call free_bb_predicate instead of
25515         clean_predicate_lists.
25516
25517 2010-10-11  Paul Brook  <paul@codesourcery.com>
25518
25519         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
25520         * config/arm/arm.c (all_architectures): Change v7e-m default to
25521         cortexm4.
25522         * config/arm/arm-cores.def: Add cortex-m4.
25523         * config/arm/arm-tune.md: Regenerate.
25524
25525 2010-06-11  Jan Hubicka  <jh@suse.cz>
25526
25527         * ipa-pure-const.c (special_builtlin_state): New function.
25528         (check_call): Use it instead of special casign BUILT_IN_RETURN.
25529         (propagate_pure_const): Use it.
25530
25531 2010-06-11  Jan Hubicka  <jh@suse.cz>
25532
25533         * df-problems.c (df_live_scratch): Convert to bitmap_head.
25534         (df_live_alloc): Initialize df_live_scratch when initializing
25535         problem_data.
25536         (df_live_transfer_function): Update uses of df_live_scratch.
25537         (df_live_free): Free problem_data; clear df_live_scratch before
25538         releasing the obstack.
25539         (df_md_free): Free problem data.
25540
25541 2010-06-11  Jan Hubicka  <jh@suse.cz>
25542
25543         * doc/invoke.texi (Wsuggest-attribute): Document.
25544         (Wmissing-noreturn): Remove.
25545         * ipa-pure-const.c (warn_function_noreturn): New function.
25546         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
25547         warn_missing_noreturn.
25548         * common.opt (Wsuggest-attribute=noreturn): New.
25549         * tree-flow.h (warn_function_noreturn): Declare.
25550         * tree-cfg.c (execute_warn_function_noreturn): Use
25551         warn_function_noreturn.
25552         (gate_warn_function_noreturn): New.
25553         (pass_warn_function_noreturn): Update.
25554
25555 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25556
25557         * c-typeck.c (handle_warn_cast_qual): Add loc
25558         parameter. Improve warning message.
25559         (build_c_cast): Pass location to handle_warn_cast_qual.
25560
25561 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
25562
25563         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
25564         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
25565         insn mnemonic.
25566         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
25567
25568 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
25569
25570         Fix bootstap on mips
25571         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
25572         be naming typedefs.
25573
25574 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
25575
25576         * system.h (helper_const_non_const_cast): New inline for
25577         gcc version <= 4.0.
25578         (CONST_CAST2): For gcc version <= 4.0 use
25579         new helper to do const/non-const casting.
25580
25581 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
25582
25583         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
25584         * Makefile.in (OBJS-common): Include insn-enums.o.
25585         (insn-enums.o): New rule.
25586         (simple_generated_c): Add insn-enums.c.
25587         (build/genenums.o): New rule.
25588         (genprogmd): Add "enums".
25589         * genconstants.c (print_enum_type): Declare a C string array
25590         for each enum.
25591         * genenums.c: New file.
25592         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
25593         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
25594         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
25595
25596 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
25597
25598         * doc/md.texi (define_enum_attr): Document.
25599         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
25600         * read-md.h (lookup_enum_type): Declare.
25601         * read-md.c (lookup_enum_type): New function.
25602         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
25603         * genattrtab.c (attr_desc): Add an enum_name field.
25604         (evaluate_eq_attr): Take the associated attribute as argument.
25605         Get the enum prefix from the enum_name field, if defined.
25606         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
25607         (simplify_test_exp): Pass attr to evaluate_eq_attr.
25608         (add_attr_value): New function, split out from...
25609         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
25610         (write_test_expr): Pass attr to evaluate_eq_attr.
25611         (write_attr_get): Use the enum_name as the enum tag, if defined.
25612         (write_attr_valueq): Use the enum_name as a prefix, if defined.
25613         (find_attr): Initialize enum_name.
25614         (main): Handle DEFINE_ENUM_ATTR.
25615         * gensupport.c (process_rtx): Likewise.
25616         * config/mips/mips.h (mips_tune_attr): Delete.
25617         * config/mips/mips.md (cpu): Use define_attr_enum.
25618
25619 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
25620
25621         * doc/md.texi (define_c_enum, define_enum): Document.
25622         * read-md.h (md_constant): Add a parent_enum field.
25623         (enum_value, enum_type): New structures.
25624         (upcase_string, traverse_enum_types): Declare.
25625         * read-md.c (enum_types): New variable.
25626         (upcase_string, add_constant): New functions.
25627         (handle_constants): Don't create the hash table here.
25628         Use add_constant.
25629         (traverse_md_constants): Don't check for a null md_constants.
25630         (decimal_string, handle_enum, traverse_enum_types): New functions.
25631         (read_md_files): Initialize md_constants and md_enums.
25632         * genconstants.c (print_md_constant): Ignore info argument.
25633         Only print constants that belong to no enum.
25634         (print_enum_type): New function.
25635         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
25636         for each defined enum type.
25637         * config/mips/mips.md (processor): New define_enum.
25638         (unspec): New define_c_enum.
25639         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
25640         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
25641         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
25642         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
25643         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
25644         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
25645         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
25646         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
25647         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
25648         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
25649         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
25650         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
25651         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
25652         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
25653         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
25654         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
25655         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
25656         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
25657         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
25658         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
25659         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
25660         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
25661         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
25662         (UNSPEC_RDDSP): Move to mips-dsp.md.
25663         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
25664         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
25665         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
25666         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
25667         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
25668         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
25669         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
25670         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
25671         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
25672         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
25673         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
25674         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
25675         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
25676         Moved to mips-dspr2.md.
25677         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
25678         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
25679         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
25680         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
25681         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
25682         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
25683         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
25684         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
25685         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
25686         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
25687         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
25688         UNSPEC_LOONGSON_PSADBH)
25689         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
25690         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
25691         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
25692         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
25693         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
25694         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
25695         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
25696         (cpu): Update comment.
25697         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
25698         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
25699         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
25700         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
25701         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
25702         UNSPEC_LOONGSON_PCMPEQ)
25703         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
25704         UNSPEC_LOONGSON_PINSR_0)
25705         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
25706         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
25707         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
25708         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
25709         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
25710         UNSPEC_LOONGSON_PSADBH)
25711         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
25712         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
25713         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
25714         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
25715         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
25716         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
25717         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
25718         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
25719         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
25720         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
25721         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
25722         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
25723         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
25724         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
25725         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
25726         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
25727         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
25728         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
25729         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
25730         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
25731         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
25732         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
25733         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
25734         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
25735         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
25736         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
25737         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
25738         (UNSPEC_RDDSP): Moved from mips.md.
25739         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
25740         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
25741         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
25742         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
25743         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
25744         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
25745         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
25746         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
25747         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
25748         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
25749         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
25750         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
25751         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
25752         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
25753         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
25754         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
25755         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
25756         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
25757         (UNSPEC_SCC): Moved from mips.md.
25758         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
25759         "processor_type" to "processor".
25760         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
25761         * config/mips/mips.h (processor_type): Delete.
25762         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
25763         "processor_type" to "processor".
25764
25765 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
25766
25767         * configure.ac (tm_include_list): Add insn-constants.h.
25768         * configure: Regenerate.
25769         * Makefile.in (GTM_H): Move insn-constants.h here from...
25770         (TM_H): ...here.
25771         * mkconfig.sh: Remove special handling for insn-constants.h.
25772
25773 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
25774
25775         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
25776         (BUILD_MD): ...this new variable.
25777         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
25778         that include the old contents of simple_generated_h and
25779         simple_generated_c.
25780         (simple_generated_h, simple_generated_c): Include them.  Add
25781         insn-constants.h.
25782         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
25783         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
25784         Remove these dependencies from the main rule and include
25785         insn-conditions.md in the command line only if it appears
25786         in the dependency list.
25787         (insn-constants.h, s-constants): Delete.
25788         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
25789         or gensupport.h.
25790         (build/genmddeps.o): Likewise.
25791         (genprogrtl): New variable that contains everything from genprogmd
25792         except mddeps and constants.
25793         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
25794         depend on $(BUILD_MD)
25795         (genprog): New variable.  Make these programs depend on
25796         $(BUILD_ERRORS).
25797         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
25798         (main): Use read_md_files instead of init_rtx_reader_args.
25799         * genconstants.c: As for genmddeps.c.
25800         * read-md.h (read_skip_construct): Declare.
25801         * read-md.c (read_skip_construct): New function.
25802         (handle_file): Allow a null handle_directive, skipping the
25803         construct if so.
25804         (parse_include): Update the comment accordingly.
25805
25806 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
25807
25808         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
25809         * genmddeps.c: Include read-md.h.
25810         (main): Call init_rtx_reader_args instead of init_md_reader_args.
25811         * genattr.c (main): Likewise.
25812         * genattrtab.c (main): Likewise.
25813         * genautomata.c (main): Likewise.
25814         * gencodes.c (main): Likewise.
25815         * genconditions.c (main): Likewise.
25816         * genconfig.c (main): Likewise.
25817         * genconstants.c (main): Likewise.
25818         * genemit.c (main): Likewise.
25819         * genextract.c (main): Likewise.
25820         * genflags.c (main): Likewise.
25821         * genopinit.c (main): Likewise.
25822         * genoutput.c (main): Likewise.
25823         * genpeep.c (main): Likewise.
25824         * genrecog.c (main): Likewise.
25825         * genpreds.c (main): Likewise.
25826         * gensupport.h (in_fname): Move to read-md.h.
25827         (init_md_reader_args_cb): Rename to...
25828         (init_rtx_reader_args_cb): ...this and return a bool.
25829         (init_md_reader_args): Rename to...
25830         (init_rtx_reader_args): ...this and return a bool.
25831         (include_callback): Move to read-md.h.
25832         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
25833         (file_name_list, first_dir_md_include): Move to read-md.c
25834         (first_bracket_include): Delete unused variable.
25835         (last_dir_md_include): Move to read-md.c.
25836         (process_include): Delete, moving code to read-md.c:handle_include.
25837         (process_rtx): Don't handle INCLUDE.
25838         (save_string): Delete.
25839         (rtx_handle_directive): New function.
25840         (init_md_reader_args_cb): Rename to...
25841         (init_rtx_reader_args_cb): ...this and return a boolean success value.
25842         Use read_md_args.
25843         (init_md_reader_args): Rename to...
25844         (init_rtx_reader_args): ...this and return a boolean success value.
25845         * rtl.def (INCLUDE): Delete.
25846         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
25847         argument.
25848         * read-rtl.c (read_conditions): Don't gobble ')' here.
25849         (read_mapping): Likewise.
25850         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
25851         Handle top-level non-rtx constructs here rather than in read_rtx_1.
25852         Store the whole queue in *X.  Remove call to init_md_reader.
25853         (read_rtx_1): Rename to...
25854         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
25855         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
25856         here.
25857         (read_nested_rtx): New function.  Handle (nil) here rather than
25858         in read_rtx_code.
25859         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
25860         gobble ')' here.
25861         * read-md.h (directive_handler_t): New type.
25862         (in_fname, include_callback): Moved from read-md.h.
25863         (read_constants, init_md_reader): Delete.
25864         (read_md_files): Declare.
25865         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
25866         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
25867         from gensupport.c.
25868         (read_constants): Rename to...
25869         (handle_constants): ...this.  Don't gobble ')' here.
25870         (handle_include, handle_file, handle_toplevel_file)
25871         (parse_include): New functions, mostly taken from gensupport.c.
25872         (init_md_reader): Subsume into...
25873         (read_md_files): ...this new function.
25874
25875 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
25876
25877         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
25878         (unread_char): Decrement read_md_lineno after putting back '\n'.
25879         * read-md.c (fatal_with_file_and_line): Push back any characters
25880         that we decide not to add to the context.
25881         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
25882         fatal_expected_char in cases where '/' ends a line (for example).
25883         (read_name): Don't increment read_md_lineno here.
25884         (read_escape): Likewise.
25885         (read_quoted_string): Likewise.
25886         (read_braced_string): Likewise.
25887
25888 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
25889
25890         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
25891         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
25892         * genconstants.c: Include read-md.h.
25893         * read-rtl.c (md_constants): Move to read-md.c.
25894         (md_name): Move to read-md.h.
25895         (initialize_iterators): Use leading_string_hash instead of def_hash
25896         and leading_string_eq_p instead of def_name_eq_p.
25897         (read_name): Move to read-md.c.
25898         (def_hash, def_name_eq_p): Delete.
25899         (read_constants, traverse_md_constants): Move to read-md.c.
25900         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
25901         * read-md.h: Include hashtab.h.
25902         (md_name): Moved from read-rtl.c.
25903         (md_constant): Moved from read-md.h.
25904         (leading_string_hash, leading_string_eq_p, read_name)
25905         (read_constants, traverse_md_constants): Declare.
25906         * read-md.c (md_constants): Moved from read-rtl.c.
25907         (leading_string_hash, leading_string_eq_p): New functions.
25908         (read_name, read_constants, traverse_md_constants): Moved from
25909         read-rtl.c.
25910
25911 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
25912
25913         * read-rtl.c (md_name): New structure.
25914         (read_name): Take an md_name instead of a buffer pointer.
25915         Use the "string" field instead of strcpy when expanding constants.
25916         (read_constants): Remove the tmp_char argument.  Update the calls
25917         to read_name, using two local name buffers instead of the tmp_char
25918         argument.  Merge the constant-creation code.
25919         (read_conditions): Remove the tmp_char argument.  Update the calls
25920         to read_name, using a local name buffer instead of the tmp_char
25921         argument.
25922         (read_mapping): Replace tmp_char variable with a local name buffer.
25923         Update the calls to read_name.
25924         (read_rtx_1): Likewise.  Update the calls to read_constants and
25925         read_conditions.
25926
25927 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
25928
25929         * Makefile.in (build/read-md.o): Depend on errors.h.
25930         * read-md.h (error_with_line): Declare.
25931         * read-md.c: Include errors.h.
25932         (message_with_line_1): New function, extracted from...
25933         (message_with_line): ...here.
25934         (error_with_line): New function.
25935         * genattrtab.c: If a call to message_with_line is followed by
25936         "have_error = 1;", replace both statements with a call to
25937         error_with_line.
25938         * genoutput.c: Likewise.
25939         * genpreds.c: Likewise.
25940         * genrecog.c: If a call to message_with_line is followed by
25941         "error_count++;", replace both statements with a call to
25942         error_with_line.
25943         (errorcount): Delete.
25944         (main): Don't check it.
25945         * gensupport.c: If a call to message_with_line is followed by
25946         "errors = 1;", replace both statements with a call to error_with_line.
25947         (errors): Delete.
25948         (process_define_cond_exec): Check have_error instead of errors.
25949         (init_md_reader_args_cb): Likewise.  Don't set errors.
25950
25951 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
25952
25953         * read-md.h (read_md_file): Declare.
25954         (read_char, unread_char): New functions.
25955         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
25956         (read_quoted_string, read_string): Remove FILE * argument.
25957         * read-md.c (read_md_file): New variable.
25958         (read_md_filename, read_md_lineno): Update comments and remove
25959         unnecessary initialization.
25960         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
25961         (read_escape, read_quoted_string, read_braced_string, read_string):
25962         Remove FILE * argument.  Update calls accordingly, using read_char
25963         and unread_char instead of getc and ungetc.
25964         * rtl.h (read_rtx): Remove FILE * argument.
25965         * read-rtl.c (iterator_group): Remove FILE * argument from
25966         "find_builtin".
25967         (iterator_traverse_data): Remove "infile" field.
25968         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
25969         (add_mapping, read_name, read_constants, read_conditions)
25970         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
25971         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
25972         Remove file arguments from all calls, using read_char and unread_char
25973         instead of getc and ungetc.
25974         * gensupport.c (process_include): Preserve read_md_file around
25975         the include.  Set read_md_file to the handle of the included file.
25976         Update call to read_rtx.
25977         (init_md_reader_args_cb): Set read_md_file to the handle of the file
25978         and remove local FILE *.  Update calls to read_rtx.
25979
25980 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
25981
25982         * read-md.h (read_rtx_lineno): Rename to...
25983         (read_md_lineno): ...this.
25984         (read_rtx_filename): Rename to...
25985         (read_md_filename): ...this.
25986         (copy_rtx_ptr_loc): Rename to...
25987         (copy_md_ptr_loc): ...this.
25988         (print_rtx_ptr_loc): Rename to...
25989         (print_md_ptr_loc): ...this.
25990         * read-md.c: Likewise.  Update references after renaming.
25991         (string_obstack): Replace RTL with MD in comment.
25992         (set_rtx_ptr_loc): Rename to...
25993         (set_md_ptr_loc): ...this.
25994         (get_rtx_ptr_loc): Rename to...
25995         (get_md_ptr_loc): ...this.
25996         * genconditions.c: Update references after renaming.
25997         * genemit.c: Likewise.
25998         * genoutput.c: Likewise.
25999         * genpreds.c: Likewise.
26000         * gensupport.c: Likewise.
26001         * read-rtl.c: Likewise.
26002
26003 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26004
26005         * Makefile.in (READ_MD_H): New variable.
26006         (BUILD_RTL): Add build/read-md.o.
26007         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
26008         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
26009         (build/genattrtab.o, build/genconditions.o build/genemit.o)
26010         (build/genextract.o, build/genflags.o, build/genoutput.o)
26011         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
26012         (build/read-md.o): New rule.
26013         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
26014         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
26015         * coretypes.h: ...here.
26016         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
26017         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
26018         * genattr.c: Include read-md.h.
26019         * genattrtab.c: Likewise.
26020         * genconditions.c: Likewise.
26021         * genemit.c: Likewise.
26022         * genextract.c: Likewise.
26023         * genflags.c: Likewise.
26024         * genoutput.c: Likewise.
26025         * genpreds.c: Likewise.
26026         * genrecog.c: Likewise.
26027         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
26028         (join_c_conditions, print_c_condition, read_rtx_filename)
26029         (read_rtx_lineno): Move to read-md.h.
26030         * read-rtl.c: Include read-md.h.
26031         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
26032         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
26033         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
26034         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
26035         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
26036         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
26037         (read_braced_string, read_string): Move to read-md.c.
26038         (read_rtx): Move some initialization to init_md_reader and call
26039         init_md_reader here.
26040         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
26041         Move to read-md.h.
26042         * gensupport.c: Include read-md.h.
26043         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
26044         * read-md.h, read-md.c: New files.
26045
26046 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
26047
26048         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
26049         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
26050         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
26051         * config/moxie/moxie.c (moxie_function_value): Make static.
26052         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
26053         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
26054
26055 2010-06-10  Martin Jambor  <mjambor@suse.cz>
26056
26057         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
26058         * dbgcnt.def (tree_sra): New counter.
26059         * tree-sra.c: Include dbgcnt.h.
26060         (gate_intra_sra): Check tree_sra debug counter.
26061
26062 2010-06-10  Martin Jambor  <mjambor@suse.cz>
26063
26064         PR tree-optimization/44258
26065         * tree-sra.c (build_access_subtree): Return false iff there is a
26066         partial overlap.
26067         (build_access_trees): Likewise.
26068         (analyze_all_variable_accesses): Disqualify candidates if
26069         build_access_trees returns true for them.
26070
26071 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
26072
26073         PR debug/41371
26074         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
26075         tail-recurse into canonical node.  Fast-forward over
26076         non-canonical VALUEs.
26077
26078 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
26079
26080         PR boostrap/44470
26081         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
26082         (*addsi_1_zext) <TYPE_LEA>: Likewise.
26083         (add lea splitter): Likewise.
26084         (add_zext lea splitter): Likewise.
26085
26086 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
26087
26088         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
26089
26090 2010-06-10  Jan Hubicka  <jh@suse.cz>
26091
26092         * df-problems.c (df_live_problem_data): Add live_bitmaps.
26093         (df_live_alloc): Initialize problem data and live_osbtacks.
26094         (df_live_finalize): Remove obstack, problem data; do not
26095         clear all bitmaps.
26096         (df_live_top_dump, df_live_bottom_dump): Do not dump old
26097         data when not allocated.
26098         (df_live_verify_solution_start): Do not allocate problem data.
26099         (df_live_verify_solution_end): Check if out is allocated.
26100         (struct df_md_problem_data): New structure.
26101         (df_md_alloc): Allocate problem data.
26102         (df_md_free): Free problem data; do not clear bitmaps.
26103
26104 2010-06-10  Jan Beulich  <jbeulich@novell.com>
26105
26106         PR bootstrap/37304
26107         * configure.ac: Replace $() with ${} when intending to expand
26108         variables rather than invoking commands.
26109         * configure: Re-generate.
26110
26111 2010-06-10  Jan Hubicka  <jh@suse.cz>
26112
26113         PR rtl-optimization/44460
26114         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
26115         TYPE_NEEDS_CONSTRUCTING sanity check.
26116
26117 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
26118
26119         * doc/include/fdl.texi: Move to GFDL version 1.3.
26120
26121         * doc/cpp.texi: Move to GFDL version 1.3.
26122         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
26123         * doc/gccint.texi: Move to GFDL version 1.3.
26124         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
26125         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
26126         * doc/invoke.texi: Move to GFDL version 1.3.
26127
26128 2010-06-09  Jan Hubicka  <jh@suse.cz>
26129
26130         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
26131         Break out from ...
26132         (propagate) ... here; swap the order.
26133
26134 2010-06-09  Jan Hubicka  <jh@suse.cz>
26135
26136         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
26137         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
26138         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
26139         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
26140
26141 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
26142
26143         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
26144         Do not the gather memory reference in the outer loop if the step
26145         is not a constant.
26146
26147 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
26148
26149         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
26150         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
26151         8 to 4.  Minor change of the related comments.
26152
26153 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
26154
26155         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
26156         the scev analysis when the variable is not used outside the loop
26157         in a close phi node: call compute_overall_effect_of_inner_loop.
26158
26159 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
26160
26161         * graphite-sese-to-poly.c (single_pred_cond): Renamed
26162         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
26163         (build_sese_conditions_before): Renamed call to single_pred_cond.
26164         (build_sese_conditions_after): Same.
26165
26166 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
26167
26168         * graphite-poly.h: Fix comments and indentation.
26169         * graphite-sese-to-poly.c: Same.
26170         (build_sese_conditions_before): Compute stmt and gbb only when needed.
26171         * tree-chrec.c: Fix comments and indentation.
26172         (tree-ssa-loop-niter.c): Same.
26173
26174 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
26175
26176         PR rtl-optimization/42461
26177         * dce.c (deletable_insn_p): Return true for const or pure calls again.
26178         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
26179
26180 2010-06-09  Jan Hubicka  <jh@suse.cz>
26181
26182         * bitmap.c (bitmap_and): Walk array forward.
26183         (bitmap_and_compl_into): Likewise.
26184         (bitmap_xor): Likewise.
26185         (bitmap_xor_into):  Likewise.
26186         (bitmap_equal_p): Likewise.
26187         (bitmap_intersect_p): Likewise.
26188         (bitmap_intersect_compl_p): Likewise.
26189         (bitmap_ior_and_into): Likewise.
26190         (bitmap_elt_copy): Likewise.
26191         (bitmap_and_compl): Likewise.
26192         (bitmap_elt_ior): Likewise.
26193
26194 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
26195
26196         * opts-common.c (prune_options): Ensure replacement argv array
26197         is correctly terminated by a NULL entry.
26198
26199 2010-06-09  Jan Hubicka  <jh@suse.cz>
26200
26201         * cgraph.h (varpool_first_static_initializer,
26202         varpool_next_static_initializer): Make checking only when
26203         checking enabled.
26204         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
26205         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
26206         gcc_assert to gcc_checking_assert.
26207         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
26208         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
26209         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
26210         op_iter_init_phiuse, op_iter_init_phidef,
26211         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
26212         gcc_checking_assert.
26213         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
26214         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
26215         partition_is_global, live_on_entry, live_on_exit,
26216         live_merge_and_clear): Likewise.
26217         * system.h (gcc_checking_assert): New macro.
26218         * gimple.h (set_bb_seq): Use gcc_checking_assert.
26219
26220 2010-06-09  Jason Merrill  <jason@redhat.com>
26221
26222         * Makefile.in (TAGS): Collect tags info from c-family.
26223
26224 2010-06-09  Jan Hubicka  <jh@suse.cz>
26225
26226         * gimple.h (gcc_gimple_checking_assert): New macro.
26227         (gimple_set_def_ops, gimple_set_use_ops,
26228         gimple_set_vuse, gimple_set_vdef,
26229         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
26230         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
26231         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
26232         gimple_asm_output_op, gimple_asm_output_op_ptr,
26233         gimple_asm_set_output_op, gimple_asm_clobber_op,
26234         gimple_asm_set_clobber_op, gimple_asm_label_op,
26235         gimple_asm_set_label_op, gimple_try_set_kind,
26236         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
26237         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
26238         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
26239         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
26240         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
26241         gimple_omp_for_set_initial, gimple_omp_for_final,
26242         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
26243         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
26244         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
26245         conditional with ENABLE_GIMPLE_CHECKING.
26246         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
26247
26248 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
26249
26250         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
26251         (get_computation_cost_at): Use it.
26252         (determine_use_iv_cost_condition): Likewise.
26253         (determine_iv_cost): Likewise.
26254
26255 2010-06-09  Richard Guenther  <rguenther@suse.de>
26256
26257         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
26258         replace constants.
26259
26260 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
26261
26262         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
26263
26264 2010-06-09  Martin Jambor  <mjambor@suse.cz>
26265
26266         PR tree-optimization/44423
26267         * tree-sra.c (dump_access): Dump also grp_assignment_read.
26268         (analyze_access_subtree): Pass negative allow_replacements to children
26269         if the current type is scalar.
26270
26271 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
26272
26273         PR testsuite/42843
26274         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
26275         * doc/plugins.texi (Plugin license check): Update information
26276         on type of plugin_is_GPL_compatible.
26277         * Makefile.in (PLUGINCC): Define as $(COMPILER).
26278         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
26279
26280 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
26281
26282         * config/arm/arm.c (thumb2_reorg): New function.
26283         (arm_reorg): Call it.
26284         * config/arm/thumb2.md (define_peephole2 for flag clobbering
26285         arithmetic operations): Delete.
26286
26287 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
26288
26289         PR target/44067
26290         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
26291         e500v2 target.
26292
26293 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
26294
26295         PR plugins/44459
26296         * gcc-plugin.h: Encapsulate all declarations in extern "C".
26297
26298 2010-06-08  Jan Hubicka  <jh@suse.cz>
26299
26300         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
26301         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
26302
26303 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
26304
26305         PR tree-optimization/39874
26306         PR middle-end/28685
26307         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
26308         Declare.
26309         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
26310         same_bool_result_p): New.
26311         (and_var_with_comparison, and_var_with_comparison_1,
26312         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
26313         (or_var_with_comparison, or_var_with_comparison_1,
26314         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
26315         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
26316         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
26317         of combine_comparisons.
26318         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
26319
26320 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
26321
26322         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
26323         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
26324         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
26325         pdp11_function_value_regno_p): New functions.
26326         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
26327         TARGET_FUNCTION_VALUE_REGNO_P): Define.
26328
26329 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
26330
26331         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
26332         Thumb-2 in the MINUS case.
26333
26334 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
26335
26336         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
26337
26338         * doc/gty.texi (GTY Options): Document typed GC allocation and
26339         variable_size GTY option.
26340
26341         * ggc-internal.h: New.
26342
26343         * ggc.h: Update copyright year.
26344         (digit_string): Move to stringpool.c.
26345         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
26346         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
26347         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
26348         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
26349         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
26350         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
26351         (ggc_force_collect, ggc_get_size, ggc_statistics)
26352         (ggc_print_common_statistics): Move to ggc-internal.h.
26353         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
26354         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
26355         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
26356         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
26357         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
26358         (ggc_alloc_zone_pass_stat): Remove.
26359         (ggc_internal_alloc_stat, ggc_internal_alloc)
26360         (ggc_internal_cleared_alloc_stat): New.
26361         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
26362         (ggc_internal_vec_alloc_stat)
26363         (ggc_internal_cleared_vec_alloc_stat)
26364         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
26365         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
26366         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
26367         (ggc_cleared_alloc_ptr_array_two_args): New.
26368         (htab_create_ggc, splay_tree_new_ggc): Redefine.
26369         (ggc_splay_alloc): Change the type of the first argument to
26370         enum gt_types_enum.
26371         (ggc_alloc_string): Make macro.
26372         (ggc_alloc_string_stat): New.
26373         (ggc_strdup): Redefine.
26374         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
26375         (ggc_alloc_rtvec_sized): New.
26376         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
26377         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
26378         (ggc_internal_cleared_alloc_zone_stat)
26379         (ggc_internal_zone_alloc_stat)
26380         (ggc_internal_zone_cleared_alloc_stat)
26381         (ggc_internal_zone_vec_alloc_stat)
26382         (ggc_alloc_zone_rtx_def_stat)
26383         (ggc_alloc_zone_tree_node_stat)
26384         (ggc_alloc_zone_cleared_tree_node_stat)
26385         (ggc_alloc_cleared_gimple_statement_d_stat): New.
26386
26387         * ggc-common.c: Include ggc-internal.h.
26388         (ggc_internal_cleared_alloc_stat): Rename from
26389         ggc_alloc_cleared_stat.
26390         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
26391         (ggc_calloc): Remove.
26392         (ggc_cleared_alloc_htab_ignore_args): New.
26393         (ggc_cleared_alloc_ptr_array_two_args): New.
26394         (ggc_splay_alloc): Add obj_type parameter.
26395         (init_ggc_heuristics): Formatting fixes.
26396
26397         * ggc-none.c: Update copyright year.
26398         (ggc_alloc_stat): Rename to ggc_alloc_stat.
26399         (ggc_alloc_cleared_stat): Rename to
26400         ggc_internal_cleared_alloc_stat.
26401         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
26402
26403         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
26404         Remove references to ggc_alloc in comments.
26405         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
26406         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
26407         (new_ggc_zone, destroy_ggc_zone): Remove.
26408         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
26409
26410         * ggc-zone.c: Include ggc-internal.h.  Remove references to
26411         ggc_alloc in comments.
26412         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
26413         (ggc_internal_alloc_zone_pass_stat): New.
26414         (ggc_internal_cleared_alloc_zone_stat): New.
26415         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
26416         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
26417         (new_ggc_zone, destroy_ggc_zone): Remove.
26418
26419         * stringpool.c: Update copyright year.  Include ggc-internal.h
26420         (digit_vector): Make static.
26421         (digit_string): Moved from ggc.h.
26422         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
26423         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
26424
26425         * Makefile.in (GGC_INTERNAL_H): New.
26426         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
26427         $(GGC_INTERNAL_H) to dependencies.
26428
26429         * gengtype.c: Update copyright year.
26430         (walk_type): Accept variable_size GTY option.
26431         (USED_BY_TYPED_GC_P): New macro.
26432         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
26433         whitespace at the end of strings.
26434         (get_type_specifier, variable_size_p): New functions.
26435         (alloc_quantity, alloc_zone): New enums.
26436         (write_typed_alloc_def): New function.
26437         (write_typed_struct_alloc_def): Likewise.
26438         (write_typed_typed_typedef_alloc_def): Likewise.
26439         (write_typed_alloc_defns): Likewise.
26440         (output_typename, write_splay_tree_allocator_def): Likewise.
26441         (write_splay_tree_allocators): Likewise.
26442         (main): Call write_typed_alloc_defns and
26443         write_splay_tree_allocators.
26444
26445         * lto-streamer.h (lto_file_decl_data_ptr): New.
26446
26447         * passes.c (order): Define using cgraph_node_ptr.
26448
26449         * strinpool.c (struct string_pool_data): Declare nested_ptr using
26450         ht_identifier_ptr.
26451
26452         * gimple.h (union gimple_statement_d): Likewise.
26453
26454         * rtl.h (struct rtx_def): Likewise.
26455         (struct rtvec_def): Likewise.
26456
26457         * tree.h (union tree_node): Likewise.
26458
26459         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
26460
26461         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
26462
26463         * tree-scalar-evolution.c (scev_initialize): Likewise.
26464
26465         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
26466
26467         * dwarf2asm.c (dw2_force_const_mem): Likewise.
26468
26469         * omp-low.c (lower_omp_critical): Likewise.
26470
26471         * bitmap.h (struct bitmap_head_def): Update comment to not
26472         reference ggc_alloc.
26473
26474         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
26475
26476         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
26477
26478         * ipa-prop.c (duplicate_ggc_array): Rename to
26479         duplicate_ipa_jump_func_array.  Use typed GC allocation.
26480         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
26481
26482         * gimple.c (gimple_alloc_stat): Use
26483         ggc_alloc_cleared_gimple_statement_d_stat.
26484
26485         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
26486
26487         * tree.c (make_node_stat): Use
26488         ggc_alloc_zone_cleared_tree_node_stat.
26489         (make_tree_vec_stat): Likewise.
26490         (build_vl_exp_stat): Likewise.
26491         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
26492         (make_tree_binfo_stat): Likewise.
26493         (tree_cons_stat): Likewise.
26494
26495         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
26496         (shallow_copy_rtx_stat): Likewise.
26497         (make_node_stat): Likewise.
26498
26499         * lto-symtab.c: Fix comment.
26500
26501         * tree-cfg.c (create_bb): Update comment to not reference
26502         ggc_alloc_cleared.
26503         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
26504
26505         * varpool.c (varpool_node): Use typed GC allocation.
26506         (varpool_extra_name_alias): Likewise.
26507
26508         * varasm.c (emutls_decl): Likewise.
26509         (get_unnamed_section): Likewise.
26510         (get_noswitch_section): Likewise.
26511         (get_section): Likewise.
26512         (get_block_for_section): Likewise.
26513         (build_constant_desc): Likewise.
26514         (create_constant_pool): Likewise.
26515         (force_const_mem): Likewise.
26516
26517         * tree.c (build_vl_exp_stat): Likewise.
26518         (build_real): Likewise.
26519         (build_string): Likewise.
26520         (decl_debug_expr_insert): Likewise.
26521         (decl_value_expr_insert): Likewise.
26522         (type_hash_add): Likewise.
26523         (build_omp_clause): Likewise.
26524
26525         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
26526
26527         * tree-ssa.c (init_tree_ssa): Likewise.
26528
26529         * tree-ssa-structalias.c (heapvar_insert): Likewise.
26530
26531         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
26532
26533         * tree-ssa-loop-niter.c (record_estimate): Likewise.
26534
26535         * tree-ssa-alias.c (get_ptr_info): Likewise.
26536
26537         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
26538
26539         * tree-phinodes.c (allocate_phi_node): Likewise.
26540
26541         * tree-iterator.c (tsi_link_before): Likewise.
26542         (tsi_link_after): Likewise.
26543
26544         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
26545
26546         * tree-dfa.c (create_var_ann): Likewise.
26547
26548         * tree-cfg.c (create_bb): Likewise.
26549
26550         * toplev.c (alloc_for_identifier_to_locale): Likewise.
26551         (general_init): Likewise.
26552
26553         * stringpool.c (stringpool_ggc_alloc): Likewise.
26554         (gt_pch_save_stringpool): Likewise.
26555
26556         * sese.c (if_region_set_false_region): Likewise.
26557
26558         * passes.c (do_per_function_toporder): Likewise.
26559
26560         * optabs.c (set_optab_libfunc): Likewise.
26561         (set_conv_libfunc): Likewise.
26562
26563         * lto-symtab.c (lto_symtab_register_decl): Likewise.
26564
26565         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
26566         (input_eh_region): Likewise.
26567         (input_eh_lp): Likewise.
26568         (make_new_block): Likewise.
26569         (unpack_ts_real_cst_value_fields): Likewise.
26570
26571         * lto-section-in.c (lto_new_in_decl_state): Likewise.
26572
26573         * lto-cgraph.c (input_node_opt_summary): Likewise.
26574
26575         * loop-init.c (loop_optimizer_init): Likewise.
26576
26577         * lambda.h (lambda_vector_new): Likewise.
26578
26579         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
26580
26581         * ira.c (update_equiv_regs): Likewise.
26582
26583         * ipa.c (cgraph_node_set_new): Likewise.
26584         (cgraph_node_set_add): Likewise.
26585         (varpool_node_set_new): Likewise.
26586         (varpool_node_set_add): Likewise.
26587
26588         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
26589         (duplicate_ipa_jump_func_array): Likewise.
26590         (ipa_read_node_info): Likewise.
26591
26592         * ipa-cp.c (ipcp_create_replace_map): Likewise.
26593
26594         * integrate.c (get_hard_reg_initial_val): Likewise.
26595
26596         * gimple.c (gimple_alloc_stat): Likewise.
26597         (gimple_build_omp_for): Likewise.
26598         (gimple_seq_alloc): Likewise.
26599         (gimple_copy): Likewise.
26600
26601         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
26602         (gsi_insert_after_without_update): Likewise.
26603
26604         * function.c (add_frame_space): Likewise.
26605         (insert_temp_slot_address): Likewise.
26606         (assign_stack_temp_for_type): Likewise.
26607         (allocate_struct_function): Likewise.
26608         (types_used_by_var_decl_insert): Likewise.
26609
26610         * except.c (init_eh_for_function): Likewise.
26611         (gen_eh_region): Likewise.
26612         (gen_eh_region_catch): Likewise.
26613         (gen_eh_landing_pad): Likewise.
26614         (add_call_site): Likewise.
26615
26616         * emit-rtl.c (get_mem_attrs): Likewise.
26617         (get_reg_attrs): Likewise.
26618         (start_sequence): Likewise.
26619         (init_emit): Likewise.
26620
26621         * dwarf2out.c (new_cfi): Likewise.
26622         (queue_reg_save): Likewise.
26623         (dwarf2out_frame_init): Likewise.
26624         (new_loc_descr): Likewise.
26625         (find_AT_string): Likewise.
26626         (new_die): Likewise.
26627         (add_var_loc_to_decl): Likewise.
26628         (clone_die): Likewise.
26629         (clone_as_declaration): Likewise.
26630         (break_out_comdat_types): Likewise.
26631         (new_loc_list): Likewise.
26632         (loc_descriptor): Likewise.
26633         (add_loc_descr_to_each): Likewise.
26634         (add_const_value_attribute): Likewise.
26635         (tree_add_const_value_attribute): Likewise.
26636         (add_comp_dir_attribute): Likewise.
26637         (add_name_and_src_coords_attributes): Likewise.
26638         (lookup_filename): Likewise.
26639         (store_vcall_insn): Likewise.
26640         (dwarf2out_init): Likewise.
26641
26642         * dbxout.c (dbxout_init): Likewise.
26643
26644         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
26645
26646         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
26647
26648         * config/score/score7.c (score7_output_external): Likewise.
26649
26650         * config/score/score3.c (score3_output_external): Likewise.
26651
26652         * config/s390/s390.c (s390_init_machine_status): Likewise.
26653
26654         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
26655         (rs6000_init_machine_status): Likewise.
26656         (output_toc): Likewise.
26657
26658         * config/pa/pa.c (pa_init_machine_status): Likewise.
26659         (get_deferred_plabel): Likewise.
26660
26661         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
26662
26663         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
26664
26665         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
26666
26667         * config/mep/mep.c (mep_init_machine_status): Likewise.
26668         (mep_note_pragma_flag): Likewise.
26669
26670         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
26671
26672         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
26673
26674         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
26675
26676         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
26677         (i386_pe_maybe_record_exported_symbol): Likewise.
26678
26679         * config/i386/i386.c (get_dllimport_decl): Likewise.
26680         (ix86_init_machine_status): Likewise.
26681         (assign_386_stack_local): Likewise.
26682
26683         * config/frv/frv.c (frv_init_machine_status): Likewise.
26684
26685         * config/darwin.c (machopic_indirection_name): Likewise.
26686
26687         * config/cris/cris.c (cris_init_machine_status): Likewise.
26688
26689         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
26690
26691         * config/avr/avr.c (avr_init_machine_status): Likewise.
26692
26693         * config/arm/arm.c (arm_init_machine_status): Likewise.
26694
26695         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
26696         (alpha_need_linkage): Likewise.
26697         (alpha_use_linkage): Likewise.
26698
26699         * cgraph.c (cgraph_allocate_node): Likewise.
26700         (cgraph_create_edge_1): Likewise.
26701         (cgraph_create_indirect_edge): Likewise.
26702         (cgraph_add_asm_node): Likewise.
26703
26704         * cfgrtl.c (init_rtl_bb_info): Likewise.
26705
26706         * cfgloop.c (alloc_loop): Likewise.
26707         (rescan_loop_exit): Likewise.
26708
26709         * cfg.c (init_flow): Likewise.
26710         (alloc_block): Likewise.
26711         (unchecked_make_edge): Likewise.
26712
26713         * c-parser.c (c_parse_init): Likewise.
26714         (c_parse_file): Likewise.
26715
26716         * c-decl.c (bind): Likewise.
26717         (record_inline_static): Likewise.
26718         (push_scope): Likewise.
26719         (make_label): Likewise.
26720         (lookup_label_for_goto): Likewise.
26721         (finish_struct): Likewise.
26722         (finish_enum): Likewise.
26723         (c_push_function_context): Likewise.
26724
26725         * bitmap.c (bitmap_element_allocate): Likewise.
26726         (bitmap_gc_alloc_stat): Likewise.
26727
26728         * alias.c (record_alias_subset): Likewise.
26729         (init_alias_analysis): Likewise.
26730
26731 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
26732
26733         * fold-const.c (fold_comparison): Remove redundant parenthesis.
26734         * tree-inline.c (expand_call_inline): Pass translated return value of
26735         cgraph_inline_failed_string to diagnostic function.
26736
26737 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
26738             Shujing Zhao  <pearly.zhao@oracle.com>
26739
26740         PR c/37724
26741         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
26742         implicit bad conversions is initialization.
26743         (error_init): Use gmsgid instead of msgid for argument name and change
26744         the call for error.
26745         (pedwarn_init): Use gmsgid instead of msgid for argument name and
26746         change the call for pedwarn.
26747         (warning_init): Use gmsgid instead of msgid for argument name and
26748         change the call for warning.
26749
26750 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
26751
26752         * config/mips/mips-protos.h (mips_print_operand): Delete.
26753         (mips_print_operand_address): Delete.
26754         * config/mips/mips.h (mips_print_operand_punct): Delete.
26755         (PRINT_OPERAND): Delete.
26756         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
26757         (PRINT_OPERAND_ADDRESS): Delete.
26758         * config/mips/mips.c (mips_print_operand_punct): Make static.
26759         (mips_print_operand_address): Make static.
26760         (mips_print_operand): Make static.  Call
26761         mips_print_operand_punct_valid_p.
26762         (mips_print_operand_punct_valid_p): New function.
26763         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
26764         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
26765
26766 2010-06-07  Jan Hubicka  <jh@suse.cz>
26767
26768         PR middle-end/44454
26769         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
26770         are allocated.
26771
26772 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
26773
26774         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
26775         name of RECORD.
26776
26777 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26778
26779         * doc/sourcebuild.texi (Effective-Target Keywords, Other
26780         attributes): Document gas.
26781
26782 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
26783
26784         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
26785         <TYPE_LEA>: Split instruction.
26786         <default>: Remove alternative 2 handling.
26787         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
26788         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
26789         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
26790
26791         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
26792         (ashift_zext lea splitter): Use DImode for multiplication.
26793
26794         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
26795         to generate addition.
26796
26797 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
26798
26799         * common.opt (fira-verbose): Use Var.
26800         (fpcc-struct-return): Use Init instead of VarExists.
26801         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
26802         toplev.c.
26803         * flags.h (flag_signed_char, flag_short_enums,
26804         flag_pcc_struct_return, flag_ira_verbose,
26805         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
26806         * toplev.c (flag_detailed_statistics, flag_signed_char,
26807         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
26808         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
26809         * toplev.h (flag_crossjumping, flag_if_conversion,
26810         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
26811         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
26812         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
26813         flag_cprop_registers, time_report, flag_ira_loop_pressure,
26814         flag_ira_coalesce, flag_ira_move_spills,
26815         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
26816
26817 2010-06-07  Jan Hubicka  <jh@suse.cz>
26818
26819         * df-core.c (df_analyze_problem): Do verification after allocation.
26820
26821         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
26822         (df_lr_alloc): Initialize problem data; move bitmaps to
26823         lr_bitmaps obstack.
26824         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
26825         (df_lr_verify_solution_start): Do not initialize problem data;
26826         allocate bitmaps in lr_bitmaps.
26827         (df_lr_verify_solution_end): Do not free problem data.
26828
26829 2010-06-07  Jan Hubicka  <jh@suse.cz>
26830
26831         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
26832         if caller is noreturn.
26833         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
26834         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
26835         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
26836         * ipa-pure-const.c (check_decl): Add IPA parameter.
26837         (state_from_flags): New function.
26838         (better_state, worse_state): New functions.
26839         (check_call): When in IPA mode, do not care about callees.
26840         (check_load, check_store): Update.
26841         (check_ipa_load, check_ipa_store): New.
26842         (check_stmt): When in IPA mode, use IPA checkers.
26843         (analyze_function): Use state_from_flags.
26844         (propagate): Check indirect edges and references.
26845
26846 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
26847
26848         PR rtl-optimization/44404
26849         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
26850         of count_occurrences to see if it's safe to modify mem_insn.
26851
26852 2010-06-07  Richard Guenther  <rguenther@suse.de>
26853
26854         * gimplify.c (gimplify_cleanup_point_expr): For empty body
26855         and EH-only cleanup drop the cleanup instead of inserting it
26856         unconditionally.
26857
26858 2010-06-07  Ira Rosen  <irar@il.ibm.com>
26859
26860         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
26861         documentation.
26862         * targhooks.c (default_builtin_vectorization_cost): New function.
26863         * targhooks.h (default_builtin_vectorization_cost): Declare.
26864         * target.h (enum vect_cost_for_stmt): Define.
26865         (builtin_vectorization_cost): Change argument and comment.
26866         * tree-vectorizer.h: Remove cost model macros.
26867         * tree-vect-loop.c: Include target.h.
26868         (vect_get_cost): New function.
26869         (vect_estimate_min_profitable_iters): Replace cost model macros with
26870         calls to vect_get_cost.
26871         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
26872         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
26873         default implementation.
26874         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
26875         calls to target hook builtin_vectorization_cost.
26876         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
26877         Likewise.
26878         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
26879         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
26880         implementation to return costs.
26881         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
26882         * config/spu/spu.h: Remove vectorizer cost model macros.
26883         * config/i386/i386.h: Likewise.
26884         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
26885         a call to target hook builtin_vectorization_cost.
26886
26887 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
26888
26889         PR target/44319
26890         * config/i386/i386.c (override_options): Turn zee pass on for level 2
26891         and above and defer till target is known.
26892         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
26893         turn off otherwise.
26894
26895 2010-05-25  Jan Hubicka  <jh@suse.cz>
26896
26897         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
26898         (df_compact_blocks): Likewise.
26899         * df.h (struct df): Turn hardware_regs_used,
26900         regular_block_artificial_uses, eh_block_artificial_uses,
26901         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
26902         bitmap_head.
26903         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
26904         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
26905         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
26906         df_scan_blocks, df_insn_delete, df_insn_rescan,
26907         df_insn_rescan_debug_internal, df_insn_rescan_all,
26908         df_process_deferred_rescans, df_process_deferred_rescans,
26909         df_notes_rescan, df_get_call_refs, df_get_call_refs,
26910         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
26911         df_record_entry_block_defs, df_record_exit_block_uses,
26912         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
26913         df_scan_verify): Update.
26914
26915 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
26916
26917         PR c++/44188
26918         * c-common.c (is_typedef_decl): Move this definition ...
26919         * tree.c (is_typedef_decl): ... here.
26920         (typdef_variant_p): Move definition here from cp/tree.c.
26921         * c-common.h (is_typedef_decl): Move this declaration ...
26922         * tree.h (is_typedef_decl): ... here.
26923         (typedef_variant_p): Move declaration here from cp/cp-tree.h
26924         * dwarf2out.c (is_naming_typedef_decl): New function.
26925         (gen_tagged_type_die): Split out of ...
26926         (gen_type_die_with_usage): ... this function. When an anonymous
26927         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
26928         is emitted for the typedef.
26929         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
26930         anonymous tagged types.
26931
26932 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26933
26934         PR c/20000
26935         * c-decl.c (grokdeclarator): Delete warning.
26936
26937 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
26938
26939         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
26940         newly built CALL_EXPR.
26941         * tree-profile.c (tree_profiling): Don't profile functions produced
26942         for built-in stuff.
26943
26944 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
26945
26946         PR bootstrap/44427
26947         PR bootstrap/44428
26948         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
26949         endianness-independent.
26950
26951 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
26952
26953         * c-common.c: Move to c-family/.
26954         * c-common.def: Likewise.
26955         * c-common.h: Likewise.
26956         * c-cppbuiltin.c: Likewise.
26957         * c-dump.c: Likewise.
26958         * c-format.c: Likewise.
26959         * c-format.h : Likewise.
26960         * c-gimplify.c: Likewise.
26961         * c-lex.c: Likewise.
26962         * c-omp.c: Likewise.
26963         * c.opt: Likewise.
26964         * c-opts.c: Likewise.
26965         * c-pch.c: Likewise.
26966         * c-ppoutput.c: Likewise.
26967         * c-pragma.c: Likewise.
26968         * c-pragma.h: Likewise.
26969         * c-pretty-print.c: Likewise.
26970         * c-pretty-print.h: Likewise.
26971         * c-semantics.c: Likewise.
26972         * stub-objc.c: Likewise.
26973
26974         * gengtype.c (get_file_langdir): Special-case files in c-family/.
26975         (get_output_file_with_visibility): Fix name for c-common.h.
26976         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
26977
26978         * c-tree.h: Update include path for moved files.
26979         * c-lang.c: Likewise.
26980         * c-lang.h: Likewise.
26981         * c-parser.c: Likewise.
26982         * c-convert.c: Likewise.
26983         * c-decl.c: Likewise.
26984         * c-objc-common.c: Likewise.
26985         * configure.ac: Make sure c-family/ exists in the build directory.
26986         * configure: Regenerate.
26987         * Makefile.in: Update paths for moved files.  Regroup files per
26988         location and update dependencies.  Move generated_files down after
26989         ALL_GTFILES_H.
26990
26991         * config/spu/spu-c.c: Update paths for moved files.
26992         * config/mep/mep-pragma.c: Likewise.
26993         * config/darwin-c.c: Likewise.
26994         * config/i386/msformat-c.c: Likewise.
26995         * config/i386/i386-c.c: Likewise.
26996         * config/avr/avr-c.c: Likewise.
26997         * config/sol2-c.c: Likewise.
26998         * config/ia64/ia64-c.c: Likewise.
26999         * config/rs6000/rs6000-c.c: Likewise.
27000         * config/arm/arm.c: Likewise.
27001         * config/arm/arm-c.c: Likewise.
27002         * config/h8300/h8300.c: Likewise.
27003         * config/v850/v850-c.c: Likewise.
27004
27005         * config/t-darwin: Fix dependencies for moved files.
27006         * config/t-sol2: Fix dependencies for moved files.
27007         * config/mep/t-mep: Fix dependencies for moved files.
27008         * config/ia64/t-ia64: Fix dependencies for moved files.
27009         * config/rs6000/t-rs6000: Fix dependencies for moved files.
27010         * config/v850/t-v850: Fix dependencies for moved files.
27011         * config/v850/t-v850e: Fix dependencies for moved files.
27012
27013         * config/m32c/m32c-pragma.c
27014
27015         * po/exgettext: Look in c-family/ also.
27016
27017 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
27018
27019         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
27020         (mark_control_dependent_edges_necessary): Call it instead of marking
27021         the last statement manually.
27022         (propagate_necessity): Likewise.
27023
27024 2010-06-05  Jan Hubicka  <jh@suse.cz>
27025
27026         * basic-block.h (compute_dominance_frontiers): Updated.
27027         (compute_idf): Likewise.
27028
27029         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
27030         for dominance frontiers.
27031         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
27032         (insert_updated_phi_nodes_for): Likewise.
27033         (update_ssa): Likewise.
27034         * cfganal.c (compute_dominance_frontiers_1): Likewise.
27035         (compute_dominance_frontiers): Likewise.
27036         (compute_idf): Likewise.
27037         * df-problems.c (df_md_local_compute): Likewise.
27038
27039 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
27040
27041         * target.h (struct gcc_target): Add memory_move_cost field.
27042         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
27043         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
27044         * targhooks.c (default_memory_move_cost): New function.
27045         * targhooks.h (default_memory_move_cost): Declare function.
27046         * reload.h (memory_move_cost): Declare.
27047         (memory_move_secondary_cost): Change type of 'in' argument to bool.
27048         * reginfo.c (memory_move_cost): New function.
27049         (memory_move_secondary_cost): Change type of 'in' argument to bool.
27050         * ira.h (ira_memory_move_cost): Update comment.
27051         * ira.c (ira_memory_move_cost): Update comment.
27052         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
27053         with memory_move_cost.
27054         * postreload.c (reload_cse_simplify_set): (Ditto.).
27055         * reload1.c (choose_reload_regs): (Ditto.).
27056         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
27057         (MEMORY_MOVE_COST):  Revise documentation.
27058
27059         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
27060         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
27061         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
27062         type of 'in' argument to bool.
27063         (TARGET_MEMORY_MOVE_COST): Define.
27064
27065 2010-06-05  Jan Hubicka  <jh@suse.cz>
27066
27067         * ipa-pure-const.c (propagate): Fix typo in handling of functions
27068         that cannot return.  Be more careful when merging the results with
27069         previously known ones.
27070
27071 2010-06-05  Matthias Klose  <doko@ubuntu.com>
27072
27073         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
27074         function to add the -iplugindir option.
27075         (find_plugindir_spec_function): Add new declaration and function.
27076         (static_spec_func): Use it for "find-plugindir".
27077
27078 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
27079
27080         PR c++/44361
27081         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
27082         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
27083         statement expression.
27084
27085 2010-06-05  Jan Hubicka  <jh@suse.cz>
27086
27087         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
27088         (df_rd_problem_data): Convert sparse_invalidated_by_call,
27089         dense_invalidated_by_call to bitmap head.
27090         (df_rd_alloc, df_rd_bb_local_compute_process_def,
27091         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
27092         df_rd_start_dump, df_lr_verify_transfer_functions,
27093         df_live_verify_transfer_functions, df_chain_create_bb,
27094         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
27095         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
27096         df_simulate_one_insn_forwards, df_md_alloc,
27097         df_md_bb_local_compute_process_def,
27098         df_md_bb_local_compute_process_def, df_md_local_compute,
27099         df_md_transfer_function df_md_free): Update.
27100
27101 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
27102
27103         PR c/44322
27104         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
27105         target type for ADDR_EXPR; require no changes to qualifiers except
27106         for function types.
27107         * c-tree.h (c_build_type_variant): Remove.
27108
27109 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
27110
27111         * genautomata.c (get_excl_set): Do work per element, not per char.
27112         (check_presence_pattern_sets): Similar.
27113         (check_absence_pattern_sets): Similar.
27114
27115 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
27116
27117         * genautomata.c (curr_state_pass_num): Delete.
27118         (min_issue_delay_pass_states): Delete.
27119         (min_issue_delay): Delete.
27120         (initiate_min_issue_delay_pass_states): Delete.
27121         (output_min_issue_delay_table): Compute min_issue_delay_vect
27122         using a breadth-first search variant.
27123         (output_tables): Don't call initiate_min_issue_delay_pass_states.
27124
27125 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
27126
27127         PR boostrap/44421
27128         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
27129         (df_byte_lr_bb_local_compute): Likewise.
27130
27131 2010-06-03  Jason Merrill  <jason@redhat.com>
27132
27133         Implement noexcept operator (5.3.7)
27134         * c-common.c (c_common_reswords): Add noexcept.
27135         * c-common.h (enum rid): Add RID_NOEXCEPT.
27136
27137 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
27138
27139         * config/darwin-driver.c (darwin_default_min_version): Use
27140         GCC-specific formats in diagnostics.
27141         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
27142         diagnostics.
27143         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
27144         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
27145         eval_spec_function, handle_braces, process_brace_body, main,
27146         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
27147         getenv_spec_function, compare_version_strings,
27148         version_compare_spec_function): Use GCC-specific formats in
27149         diagnostics.
27150
27151 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
27152
27153         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
27154         that operand 0 and operand 1 are equal.
27155         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
27156         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
27157         and operand 1 are equal.
27158         <default>: Ditto.  Remove ??? comment.
27159         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
27160         and operand 1 are equal.
27161         <default>: Ditto.  Remove ??? comment.
27162         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
27163         are equal.
27164         (*add<mode>_4) <default>: Ditto.
27165         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
27166
27167 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
27168
27169         * config/i386/i386-protos.h (ix86_print_operand): Declare.
27170         * config/i386/i386.c (ix86_print_operand): Make non-static.
27171         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
27172         * output.h (output_operand): Declare.
27173         * final.c (output_operand): Make non-static.
27174
27175 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
27176
27177         PR rtl-optimization/44013
27178         * sched-deps.c (add_dependence_list_and_free): Don't free lists
27179         when processing debug insns.
27180
27181         PR debug/41371
27182         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
27183         recursing.  Check that recursion is bounded.  Rename inner var
27184         to avoid hiding incoming argument.
27185
27186 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
27187
27188         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
27189         operands[2] == 255.
27190         (*addqi_3): Ditto.
27191         (*addqi_4): Ditto.
27192         (*addqi_5): Ditto.
27193         (*addqi_ext_1_rex64): Ditto.
27194         (*addqi_ext_1): Ditto.
27195
27196         (*addqi_4): Check for incdec_operand in QImode.
27197
27198         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
27199         using SWI mode iterator.
27200         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
27201         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
27202         mode iterator.
27203         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
27204         using SWI mode iterator.
27205
27206 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27207
27208         PR c/25880
27209         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
27210         * c-format.c (gcc_diag_flag_specs): Add hash.
27211         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
27212         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
27213         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
27214         pp_c_cv_qualifiers. Handle qualifiers spelling here.
27215         (pp_c_type_qualifier_list): Call the function above.
27216         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
27217         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
27218         (WARN_FOR_QUALIFIERS): New macro.
27219         (convert_for_assignment): Use it.
27220
27221 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
27222
27223         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
27224
27225 2010-06-04  Jan Hubicka  <jh@suse.cz>
27226
27227         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
27228         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
27229         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
27230         DF_BYTE_LR_OUT): Update for embedded bitmaps.
27231         * fwprop.c (single_def_use_enter_block): Likewise.
27232         * ddg.c (create_ddg_dep_from_intra_loop_link,
27233         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
27234         * loop-iv.c (latch_dominating_def): Likewise.
27235         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
27236         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
27237         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
27238         df_rd_transfer_function, df_rd_top_dump,
27239         df_rd_bottom_dump): Update.
27240         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
27241         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
27242         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
27243         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
27244         df_lr_verify_solution_start, df_lr_verify_solution_end,
27245         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
27246         df_live_free_bb_info, df_live_alloc, df_live_reset,
27247         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
27248         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
27249         df_live_verify_solution_start, df_live_verify_solution_end,
27250         df_live_verify_transfer_functions, df_chain_create_bb,
27251         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
27252         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
27253         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
27254         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
27255         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
27256         df_byte_lr_transfer_function, df_byte_lr_top_dump,
27257         df_byte_lr_bottom_dump, df_create_unused_note,
27258         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
27259         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
27260         df_md_transfer_function, df_md_init, df_md_confluence_0,
27261         df_md_confluence_n,
27262         df_md_top_dump, df_md_bottom_dump): Update.
27263         (struct df_lr_problem_data): Embedd bitmap headers.
27264
27265 2010-06-04  Jan Hubicka  <jh@suse.cz>
27266
27267         * dce.c (dce_process_block): Do not re-scan already marked
27268         instructions.
27269
27270 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
27271
27272         PR rtl-optimization/39871
27273         PR rtl-optimization/40615
27274         PR rtl-optimization/42500
27275         PR rtl-optimization/42502
27276         * ira.c (init_reg_equiv_memory_loc: New function.
27277         (ira): Call it twice.
27278         * reload.h (calculate_elim_costs_all_insns): Declare.
27279         * ira-costs.c: Include "reload.h".
27280         (regno_equiv_gains): New static variable.
27281         (init_costs): Allocate it.
27282         (finish_costs): Free it.
27283         (ira_costs): Call calculate_elim_costs_all_insns.
27284         (find_costs_and_classes): Take estimated elimination costs
27285         into account.
27286         (ira_adjust_equiv_reg_cost): New function.
27287         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
27288         * reload1.c (init_eliminable_invariants, free_reg_equiv,
27289         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
27290         (elim_bb): New static variable.
27291         (reload): Move code out of here into init_eliminable_invariants and
27292         free_reg_equiv.  Call them.
27293         (calculate_elim_costs_all_insns): New function.
27294         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
27295         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
27296         but call note_reg_elim_costly if we turned a valid memory address
27297         into an invalid one.
27298         * Makefile.in (ira-costs.o): Depend on reload.h.
27299
27300 2010-06-04  Julian Brown  <julian@codesourcery.com>
27301
27302         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
27303         for pool ranges.
27304
27305 2010-06-04  Richard Guenther  <rguenther@suse.de>
27306
27307         PR lto/41584
27308         * cgraph.h (struct varpool_node): Add lto_file_data field.
27309         * lto-cgraph.c (input_varpool_node): Initialize it.
27310
27311 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
27312
27313         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
27314         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
27315         predicate in "type" attribute calculation.
27316         (*addsi_1_zext): Ditto.
27317         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
27318         (*addsi_2_zext): Ditto.
27319         (*add<mode>_3): Ditto.
27320         (*addsi_3_zext): Ditto.
27321         (*add<mode>_5): Ditto.
27322
27323 2010-06-03  Jan Hubicka  <jh@suse.cz>
27324
27325         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
27326         of bitmap_bit_p.
27327         * cfganal.c (compute_dominance_frontiers_1): Likewise.
27328
27329 2010-06-03  Jan Hubicka  <jh@suse.cz>
27330
27331         * df-problems.c (df_create_unused_note, df_note_bb_compute):
27332         micro-optimize the checks when to add new note.
27333
27334 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
27335
27336         * final.c (output_asm_insn): Call
27337         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
27338         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
27339         (output_address): Call targetm.asm_out.print_operand_address.
27340         Update comments.
27341         * target.h (struct gcc_target): Add print_operand,
27342         print_operand_address, and print_operand_punct_valid_p fields.
27343         * targhooks.h (default_print_operand): Declare.
27344         (default_print_operand_address): Declare.
27345         (default_print_operand_punct_valid_p): Declare.
27346         * targhooks.c (default_print_operand): Define.
27347         (default_print_operand_address): Define.
27348         (default_print_operand_punct_valid_p): Define.
27349         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
27350         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
27351         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
27352         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
27353         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
27354         * vmsdbgout.c (addr_const_to_string): Update comment.
27355         * config/i386/i386.c (print_operand): Rename to...
27356         (ix86_print_operand): ...this.  Make static.
27357         (print_operand_address): Rename to...
27358         (ix86_print_operand_address): ...this.  Make static.  Call
27359         ix86_print_operand instead of PRINT_OPERAND.
27360         (ix86_print_operand_punct_valid_p): New function.
27361         (TARGET_PRINT_OPERAND): Define.
27362         (TARGET_PRINT_OPERAND_ADDRESS): Define.
27363         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
27364         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
27365         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
27366         (PRINT_OPERAND): Delete.
27367         (PRINT_OPERAND_ADDRESS): Delete.
27368         * config/i386/i386-protos.h (print_operand): Delete prototype.
27369         (print_operand_address): Delete prototype.
27370
27371 2010-06-03  Richard Guenther  <rguenther@suse.de>
27372
27373         PR tree-optimization/44403
27374         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
27375         Preserve pointer qualifiers.
27376         (vect_create_data_ref_ptr): Likewise.
27377
27378 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
27379
27380         PR c++/44294
27381         * defaults.h (MAX_FIXED_MODE_SIZE): New.
27382
27383         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
27384
27385 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
27386
27387         PR debug/44375
27388         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
27389         return false if merging the bbs would lead to goto_locus
27390         location being lost from the IL.
27391
27392 2010-06-03  Jan Hubicka  <jh@suse.cz>
27393             Jakub Jelinek  <jakub@redhat.com>
27394
27395         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
27396         set->regs[i] is NULL or has just one entry.
27397
27398 2010-06-03  Jan Hubicka  <jh@suse.cz>
27399
27400         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
27401         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
27402
27403 2010-06-03  Paul Brook  <paul@codesourcery.com>
27404
27405         * config/arm/arm.c (FL_TUNE): Define.
27406         (arm_default_cpu, arm_cpu_select): Remove.
27407         (all_cores): Populate core field.
27408         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
27409         (arm_find_cpu): New function.
27410         (arm_handle_option): Lookup cpu/architecture names.
27411         (arm_override_options): Cleanup mcpu/march/mtune handling.
27412         (arm_file_start): Ditto.
27413
27414 2010-06-03  Alan Modra  <amodra@gmail.com>
27415
27416         PR target/44169
27417         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
27418         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
27419         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
27420         (rs6000_emit_load_toc_table): Likewise.
27421
27422 2010-06-02  Jan Hubicka  <jh@suse.cz>
27423
27424         * passes.c (init_optimization_passes): Put ipa reference
27425         after ipa pure-const.
27426
27427 2010-06-02  Jan Hubicka  <jh@suse.cz>
27428
27429         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
27430         calls_read_all and calls_write_all.
27431         (get_reference_optimization_summary): Fix formatting.
27432         (is_proper_for_analysis): Check that decl is not readonly.
27433         (propagate_bits): Check CONST/PURE/noreturn flags.
27434         (ipa_init): Move all_module_statics to optimization_summary_obstack.
27435         (analyze_function): Ignore indirect edges.
27436         (copy_global_bitmap): For all module statics, do nothing.
27437         (generate_summary): Do not print calls_read_all/calls_write_all.
27438         (read_write_all_from_decl): Take node as argument; check
27439         cgraph_node_cannot_return.
27440         (propagate): Reorganize read_all/write_all computation;
27441         check indirect edges; check ecf flags; use all_module_statics
27442         in the results; do not free all_module_statics.
27443         (stream_out_bitmap): Handle all_module_statics.
27444         (ipa_reference_write_optimization_summary): Likewise; use
27445         varpool/cgraph encoders to get boundaries.
27446         (ipa_reference_read_optimization_summary): Read in all_module_statics;
27447         use it when possible.
27448
27449 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
27450
27451         PR target/44218
27452         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
27453         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
27454
27455         * doc/extend.texi (powerpc builtins): Document vec_recip,
27456         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
27457
27458         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
27459         (rs6000_emit_swrsqrt): Ditto.
27460         (rs6000_emit_swdivsf): Delete.
27461         (rs6000_emit_swdivdf): Ditto.
27462         (rs6000_emit_swrsqrtsf): Ditto.
27463
27464         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
27465         describe the reciprocal estimate support for each type.
27466         (recip_options): Map -mrecip=<opt> into option bits.
27467         (gen_2arg_fn_t): New typedef for binary rtx gen function.
27468         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
27469         reciprocal estimate instructions.
27470         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
27471         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
27472         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
27473         cost information if -mdebug=cost or -mdebug=reg.
27474         (rs6000_override_options): Set -mrecip-precision for power6, and
27475         power7 machines.  If -mvsx or -mdfp, enable various options that
27476         came in previous instruction set ISAs, unless the option was
27477         explicitly disabled by the command line option.  Parse
27478         -mrecip=<opt> options.
27479         (rs6000_builtin_vectorized_function): Add support for vectorizing
27480         the reciprocal estimate builtins and expansions.
27481         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
27482         (bdesc_2arg): Add reciprocal estimate builtins.
27483         (bdesc_1arg): Add reciprocal square root estimate builtins.
27484         (rs6000_expand_builtin): Rewrite to use a switch statement,
27485         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
27486         (rs6000_init_builtins): Create declarations for reciprocal
27487         estimate builtins.
27488         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
27489         sized, prefer traditional floating point registers, if integer
27490         vector types, prefer altivec registers.  Don't actually look at
27491         the memory address any more.
27492         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
27493         builtins.
27494         (rs6000_load_constant_and_splat): New helper function to load up
27495         the constant for reciprocal estimate instructions.
27496         (rs6000_emit_madd): New helper function for generating
27497         multiply/add type instructions, based on the current switches.
27498         (rs6000_emit_msub): Ditto.
27499         (rs6000_emit_mnsub): Ditto.
27500         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
27501         replace a divide with a reciprocal estimate and fixup, adding
27502         support for machines with high precision and vectors.
27503         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
27504         low precision machines.
27505         (rs6000_emit_swdiv): New common function to be called to replace a
27506         division with reciprocal estimate and fixup.
27507         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
27508         for double and vector types.  Add support for high precision machines.
27509
27510         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
27511         the reciprocal estimate instructions can be generated.
27512         (TARGET_FRE): Ditto.
27513         (TARGET_FRSQRTES): Ditto.
27514         (TARGET_FRSQRTE): Ditto.
27515         (RS6000_RECIP_*): New macros for reciprocal estimate support.
27516
27517         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
27518         square root estimate on vectors.
27519         (re<mode>2): New insn for reciprocal division estimate on vectors.
27520
27521         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
27522         New builtin.
27523         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
27524         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
27525         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
27526         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
27527         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
27528         (RS6000_BUILTIN_RSQRT): Ditto.
27529         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
27530         floating point builtin.
27531
27532         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
27533         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
27534         __RECIP_PRECISION__ based on the command line switches.
27535         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
27536
27537         * config/rs6000/rs6000.opt (-mrecip): Document add support for
27538         replacing division instructions with reciprocal estimate and fixup.
27539         (-mrecip=<opt>): New option.
27540         (-mrecip-precision): Ditto.
27541
27542         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
27543         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
27544         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
27545         precision scalar.
27546
27547         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
27548         (UNSPEC_VREFP): Ditto.
27549         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
27550         conterparts with regard to support of -mno-fused-madd and -ffast-math.
27551         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
27552         reciprocal estimate instructions to be generated.
27553         (altivec_vrefp): Ditto.
27554
27555         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
27556         estimate support.
27557         (rreg): New mode attribute for reciprocal estimate support.
27558         (recip<mode>3): New insn for division using reciprocal estimate
27559         and fixup builtins.
27560         (divide define_split): New define_split to convert floating point
27561         division to use reciprocal estimate if the user used the
27562         appropriate options and the split is run when we can add new
27563         pseudo registers for the fixup.
27564         (rsqrt<mode>2): New insn for reciprocal square root support.
27565         (recipsf3): Move into recip<mode>3.
27566         (recipdf3): Ditto.
27567         (fres): Use TARGET_FRES.
27568         (rsqrtsf2): Move into rsqrt<mode>2.
27569         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
27570         (copysignsf3): Add support for VSX.
27571         (fred): Use TARGET_FRE.
27572         (fred_fpr): Ditto.
27573         (rsqrtdf_internal1): New function for frsqrte instruciton.
27574
27575         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
27576         (vec_rsqrt): Ditto.
27577
27578 2010-06-03  Richard Guenther  <rguenther@suse.de>
27579
27580         PR middle-end/44291
27581         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
27582         (set_user_assembler_libfunc): Likewise.
27583
27584 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
27585
27586         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
27587         defaults.h.
27588         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
27589         to defaults.h
27590         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
27591         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
27592         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
27593         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
27594         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
27595         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
27596         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
27597         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
27598         * defaults.h: Updated for above mentioned changes.
27599
27600 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
27601
27602         * c-common.c: Remove header include of tm_p.h.
27603         * Makefile.in (c-common.o): Remove TM_P_H dependency.
27604
27605 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
27606
27607         * tree.h (struct tree_decl_map): New type.
27608         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
27609         (tree_decl_map_hash): New prototype.
27610         (debug_expr_for_decl, value_expr_for_decl): Change into
27611         tree_decl_map hashtab from tree_map.
27612         (init_ttree): Adjust initialization.
27613         (tree_decl_map_hash): New function.
27614         (decl_debug_expr_lookup, decl_debug_expr_insert,
27615         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
27616
27617 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27618
27619         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
27620         linker emulations.
27621         * configure: Regenerate.
27622         * config.in: Regenerate.
27623
27624         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
27625         (X86_64_EMULATION): Define.
27626         (TARGET_LD_EMULATION): Use them.
27627
27628         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
27629         (SPARC64_EMULATION): Define.
27630         (LINK_ARCH_SPEC): Use them.
27631
27632 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
27633
27634         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
27635         smallest_mode_for_size for computing the precision types of new
27636         graphite IVs.  Do not call lang_hooks.types.type_for_size.
27637
27638 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
27639
27640         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
27641         information.
27642         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
27643
27644 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
27645
27646         PR middle-end/44363
27647         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
27648         return false instead.
27649
27650 2010-06-02  Jan Hubicka  <jh@suse.cz>
27651
27652         PR middle-end/44295
27653         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
27654         create new cgraph node to check callee.
27655
27656 2010-06-02  Richard Guenther  <rguenther@suse.de>
27657
27658         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
27659
27660 2010-06-02  Richard Guenther  <rguenther@suse.de>
27661
27662         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
27663         (lto_wrapper_cleanup): ... this.  Do not exit.
27664         (fatal): Adjust.  Exit here.
27665         (fatal_perror): Likewise.
27666         (fatal_signal): New function.
27667         (main): Set up signal handlers to cleanup temporary files.
27668         * Makefile.in (lto-wrapper.o): Adjust dependencies.
27669
27670 2010-06-02  Richard Guenther  <rguenther@suse.de>
27671
27672         PR tree-optimization/44377
27673         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
27674
27675 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27676
27677         * config/s390/2097.md (z10_fhex): Remove insn reservation.
27678         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
27679         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
27680         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
27681         instruction.
27682         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
27683
27684 2010-06-02  Jan Hubicka  <jh@suse.cz>
27685
27686         * bitmap.c (bitmap_descriptor): Add search_iter.
27687         (bitmap_find_bit): Increment it.
27688         (print_statistics): Print it.
27689
27690 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
27691
27692         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
27693         instead of gimple_build_call_vec.  Delete unnecessary local variable.
27694
27695 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
27696
27697         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
27698         change from yesterday.
27699
27700 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
27701
27702         * c-ada-spec.c: Clean up redundant includes.
27703
27704 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
27705
27706         * gimplify.c: Do not include except.h and optabs.h.
27707         (gimplify_body): Do not initialize RTL profiling.
27708         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
27709         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
27710         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
27711         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
27712         langhooks.h.
27713
27714         * tree-pretty-print.h: Include pretty-print.h.
27715         * gimple-pretty-print.h: Include pretty-print.h.
27716
27717         * tree-pretty-print.c: Do not include diagnostic.h.
27718         * tree-vrp.c: Likewise.
27719         * tree-tailcall.c: Likewise
27720         * tree-scalar-evolution.c: Likewise
27721         * tree-ssa-dse.c: Likewise
27722         * tree-chrec.c: Likewise
27723         * tree-ssa-sccvn.c: Likewise
27724         * tree-ssa-copyrename.c: Likewise
27725         * tree-nomudflap.c: Likewise
27726         * tree-call-cdce.c: Likewise
27727         * tree-stdarg.c: Likewise
27728         * tree-ssa-math-opts.c: Likewise
27729         * tree-nrv.c: Likewise
27730         * tree-ssa-sink.c: Likewise
27731         * tree-browser.c: Likewise
27732         * tree-ssa-loop-ivcanon.c: Likewise
27733         * tree-ssa-loop.c: Likewise
27734         * tree-parloops.c: Likewise
27735         * tree-ssa-address.c: Likewise
27736         * tree-ssa-ifcombine.c: Likewise
27737         * tree-if-conv.c: Likewise
27738         * tree-data-ref.c: Likewise
27739         * tree-affine.c: Likewise
27740         * tree-ssa-phiopt.c: Likewise
27741         * tree-ssa-coalesce.c: Likewise
27742         * tree-ssa-pre.c: Likewise
27743         * tree-ssa-live.c: Likewise
27744         * tree-predcom.c: Likewise
27745         * tree-ssa-forwprop.c: Likewise
27746         * tree-ssa-dce.c: Likewise
27747         * tree-ssa-ter.c: Likewise
27748         * tree-ssa-loop-prefetch.c: Likewise
27749         * tree-optimize.c: Likewise
27750         * tree-ssa-phiprop.c: Likewise
27751         * tree-object-size.c: Likewise
27752         * tree-outof-ssa.c: Likewise
27753         * tree-ssa-structalias.c: Likewise
27754         * tree-switch-conversion.c: Likewise
27755         * tree-ssa-reassoc.c: Likewise
27756         * tree-ssa-operands.c: Likewise
27757         * tree-vectorizer.c: Likewise
27758         * tree-vect-data-refs.c: Likewise
27759         * tree-vect-generic.c: Likewise
27760         * tree-vect-stmts.c: Likewise
27761         * tree-vect-patterns.c: Likewise
27762         * tree-vect-slp.c: Likewise
27763         * tree-vect-loop.c: Likewise
27764         * tree-ssa-loop-ivopts.c: Likewise
27765         * tree-ssa-loop-im.c: Likewise
27766         * tree-ssa-loop-niter.c: Likewise
27767         * tree-ssa-loop-unswitch.c: Likewise
27768         * tree-ssa-loop-manip.c: Likewise
27769         * tree-ssa-loop-ch.c: Likewise
27770         * tree-dump.c: Likewise
27771         * tree-complex.c: Likewise
27772
27773         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
27774         * tree-ssa-uninit.c: Likewise
27775         * tree-ssa-threadupdate.c: Likewise
27776         * tree-ssa-uncprop.c: Likewise
27777         * tree-ssa-ccp.c: Likewise
27778         * tree-ssa-dom.c: Likewise
27779         * tree-ssa-propagate.c: Likewise
27780         * tree-ssa-alias.c: Likewise
27781         * tree-dfa.c: Likewise
27782         * tree-cfgcleanup.c: Likewise
27783         * tree-sra.c: Likewise
27784         * tree-ssa-copy.c: Likewise
27785         * tree-ssa.c: Likewise
27786         * tree-profile.c: Likewise
27787         * tree-cfg.c: Likewise
27788         * tree-ssa-threadedge.c: Likewise
27789         * tree-vect-loop-manip.c: Likewise
27790
27791         * tree-inline.c: Do not include diagnostic.h and expr.h.
27792         Include rtl.h.
27793         (copy_decl_for_dup_finish): Do not use NULL_RTX.
27794
27795         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
27796         * tree-loop-distribution.c: Likewise.
27797
27798 2010-06-01  Jan Hubicka  <jh@suse.cz>
27799
27800         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
27801
27802 2010-06-01  Jan Hubicka  <jh@suse.cz>
27803
27804         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
27805         remove return value.
27806         (split_bbs_on_noreturn_calls) .... here.
27807         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
27808         * tree-flow.h (fixup_noreturn_call): New.
27809
27810 2010-06-01  Jan Hubicka  <jh@suse.cz>
27811
27812         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
27813
27814 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
27815
27816         * tree.h (build_nt_call_list): Delete.
27817         * tree.c (build_nt_call_list): Delete.
27818
27819 2010-06-01  Jan Hubicka  <jh@suse.cz>
27820
27821         * fwprop.c: Make emit-rtl.h include last.
27822         * rtlanal.c: Include emit-rtl.h.
27823         * genautomata.c: Output emit-rtl include into insn-automata.c
27824         * df-scan.c: Include emit-rtl.h.
27825         * haifa-sched.c: Indlude emit-rtl.h.
27826         * mode-switching.c: Indlude emit-rtl.h.
27827         * graph.c: Indlude emit-rtl.h.
27828         * sel-sched.c: Include emit-rtl.h.
27829         * sel-sched-ir.c: Include emit-rtl.h.
27830         * ira-build.c: Include emit-rtl.h.
27831         * emit-rtl.c (first_insn, last_insn): Remove defines.
27832         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
27833         Move to emit-rtl.h.
27834         (set_new_first_and_last_insn, get_last_insn_anywhere,
27835         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
27836         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
27837         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
27838         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
27839         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
27840         Use accessor functions.
27841         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
27842          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
27843         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
27844         mem_expr_equal_p): Move here from rtl.h.
27845         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
27846         Move here from emit-rtl.c; make inline.
27847         * cfglayout.h: Include emit-rtl.h.
27848         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
27849          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
27850         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
27851         mem_expr_equal_p, get_insns, set_first-insn,
27852         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
27853         * reg-stack.c: Include emit-rtl.h.
27854         * dce.c: Likewise.
27855
27856 2010-06-01  Jan Hubicka  <jh@suse.cz>
27857
27858         * cgraph.h (tree_function_versioning): Update prototype.
27859         (cgraph_function_versioning): Update prototype.
27860         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
27861         bitmap.
27862         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
27863         (cgraph_materialize_clone, save_inline_function_body): Update use of
27864         tree_function_versioning.
27865         * tree-inline.c (copy_bb): Look for previous copied block to link
27866         after; fix debug output.
27867         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
27868         (copy_body): Likewise.
27869         (expand_call_inline): Update use of copy_body.
27870         (tree_function_versioning): Update use of copy body; accept
27871         blocks_to_copy and new_entry.
27872
27873 2010-06-01  Jan Hubicka  <jh@suse.cz>
27874
27875         * gegenrtl.c: Remove unnecesary prototypes.
27876         (gendecl): Remove.
27877         (gendef): Produce static inline.
27878         (gencode): Remove.
27879         (main): Do not decode parameters; generate header only.
27880         * Makefile.in (genrtl.c): Remove.
27881
27882 2010-06-01  Jan Hubicka  <jh@suse.cz>
27883
27884         * tree-switch-conversion.c (build_one_array): Make it readonly.
27885
27886 2010-06-01  Richard Guenther  <rguenther@suse.de>
27887
27888         * optabs.c (init_optabs): Guard all accesses to reinit.
27889         * ipa-pure-const.c (propagate): Fix another typo.
27890         * opts.c (common_handle_option): Split assignment to bool.
27891         * c-opts.c (c_common_handle_option): Likewise.
27892
27893 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
27894             Matthew Gingell  <gingell@adacore.com>
27895
27896         * doc/invoke.texi: Mention -fdump-ada-spec.
27897         * tree-dump.c (dump_files): Add ada-spec.
27898         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
27899         * tree-pass.h (tree_dump_index): Add TDI_ada.
27900         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
27901         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
27902         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
27903         * c-decl.c: Include c-ada-spec.h.
27904         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
27905         functions.
27906         (c_write_global_declarations): Add handling of -fdump-ada-spec.
27907         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
27908         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
27909         * c-ada-spec.h, c-ada-spec.c: New files.
27910
27911 2010-06-01  Richard Guenther  <rguenther@suse.de>
27912
27913         PR lto/43853
27914         * ipa-pure-const.c (get_function_state): Hand back varying state
27915         if we do not have one.
27916         (has_function_state): New function.
27917         (duplicate_node_data): Adjust.
27918         (remove_node_data): Likewise.
27919         (pure_const_write_summary): Likewise.
27920         (propagate): Likewise.  Fix typo.
27921
27922 2010-06-01  Jan Hubicka  <jh@suse.cz>
27923
27924         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
27925         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
27926         (execute_all_ipa_transforms): Do not play with the states.
27927
27928 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
27929
27930         * config/arm/t-linux-androideabi: New.
27931         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
27932
27933 2010-06-01  Jan Hubicka  <jh@suse.cz>
27934
27935         * tree-inline.c (estimate_num_insns): For stdarg functions look
27936         into call statement to count cost of argument passing.
27937
27938 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
27939
27940         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
27941         argument for fprintf.
27942         (ix86_output_addr_diff_elt): Likewise.
27943         (x86_function_profiler): Likewise.
27944         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
27945         (LPREFIX): Likewise.
27946         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
27947
27948 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
27949
27950         PR target/44338
27951         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
27952         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
27953         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
27954         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
27955         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
27956         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
27957         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
27958         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
27959         TARGET_FUSED_MADD.
27960
27961 2010-05-31  Jan Hubicka  <jh@suse.cz>
27962
27963         * tree.h (tree_range_check_failed): Declare noreturn.
27964
27965 2010-05-31  Jan Hubicka  <jh@suse.cz>
27966
27967         * gimple.c (gimple_call_builtin_p): New function.
27968         * gimple.h (gimple_call_builtin_p): Declare.
27969         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
27970         to exit.
27971         (execute_warn_function_return): BUILT_IN_RETURN is return.
27972         (split_critical_edges): Return edges are not critical.
27973         (is_ctrl_altering_stmt): Builtin_in_return is altering.
27974         (gimple_verify_flow_info): Handle built_in_return.
27975         (execute_warn_function_return): Handle built_in_return.
27976         * ipa-pure-const.c (check_call): Ignore builtin_return.
27977
27978 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
27979
27980         PR middle-end/44337
27981         * expr.c (expand_assignment): Don't store anything for out-of-bounds
27982         array accesses with non-MEM.
27983
27984         PR tree-optimization/44182
27985         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
27986         newly needs to end a bb is followed by debug stmts, instead return
27987         true from the function at the end.
27988         (maybe_move_debug_stmts_to_successors): New function.
27989         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
27990
27991 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
27992
27993         PR target/44161
27994         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
27995
27996 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
27997
27998         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
27999         for nested functions in non-optimized compilation.
28000
28001 2010-05-31  Richard Guenther  <rguenther@suse.de>
28002
28003         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
28004
28005 2010-05-30  Jan Hubicka  <jh@suse.cz>
28006
28007         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
28008
28009 2010-05-30  Richard Guenther  <rguenther@suse.de>
28010
28011         PR lto/42975
28012         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
28013         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
28014         no longer needed.
28015
28016 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
28017
28018         * config/darwin.c (output_objc_section_asm_op): Add comment.
28019         (name_needs_quotes): Add '_' to list of valid comment chars.
28020         (machopic_output_function_base_name): Remove unneeded quotes.
28021         (darwin_encode_section_info): Adjust asm whitespace.
28022         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
28023         (ASM_OUTPUT_LOCAL): Ditto.
28024         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
28025         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
28026         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
28027
28028 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
28029
28030         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
28031         RS6000_OUTPUT_BASENAME unconditionally.
28032         (rs6000_output_function_epilogue): Likewise.
28033
28034 2010-05-30  Jan Hubicka  <jh@suse.cz>
28035
28036         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
28037         nodes.
28038
28039 2010-05-30  Richard Guenther  <rguenther@suse.de>
28040
28041         * tree-cfg.c (verify_gimple_assign_single): Implement
28042         verification for COND_EXPR rhs.
28043
28044 2010-05-30  Jan Hubicka  <jh@suse.cz>
28045
28046         * cgraph.h (cgraph_dump_file): Declare.
28047         * cgraphunit.c (cgraph_dump_file): Export.
28048         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
28049
28050 2010-05-30  Jan Hubicka  <jh@suse.cz>
28051
28052         * dwarf2out.c (reference_to_unused,
28053         premark_types_used_by_global_vars_helper): Avoid creation of new
28054         varpool nodes.
28055
28056 2010-05-30  Jan Hubicka  <jh@suse.cz>
28057
28058         * cgraph.h (cgraph_node_cannot_return,
28059         cgraph_edge_cannot_lead_to_return): New functions.
28060         * cgraph.c (cgraph_node_cannot_return,
28061         cgraph_edge_cannot_lead_to_return): Use them.
28062         * ipa-pure-const.c (pure_const_names): New static var.
28063         (check_call): Handle calls not leading to return.
28064         (pure_const_read_summary): Dump info read.
28065         (propagate): Dump info about propagation process; ignore side effects
28066         of functions not leading to exit; fix handling of pure functions.
28067
28068 2010-05-30  Jan Hubicka  <jh@suse.cz>
28069
28070         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
28071         for tail call epilogues.
28072
28073 2010-05-30  Jan Hubicka  <jh@suse.cz>
28074
28075         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
28076         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
28077         dump files.
28078
28079 2010-05-29  Jan Hubicka  <jh@suse.cz>
28080
28081         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
28082         node; remove references in node we no longer keep in cgrpah but need
28083         body of.
28084
28085 2010-05-29  Jan Hubicka  <jh@suse.cz>
28086
28087         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
28088
28089 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
28090
28091         PR target/44165
28092         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
28093
28094 2010-05-29  Jan Hubicka  <jh@suse.cz>
28095
28096         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
28097         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
28098         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
28099         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
28100         debug_names_replaced_by, debug_update_ssa): Likewise.
28101         * sbitmap.c (debug_sbitmap): Likewise.
28102         * genrecog.c (debug_decision, debug_decision_list): Likewise.
28103         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
28104         debug_tree_chain): Likewise.
28105         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
28106         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
28107         * optabs.c (debug_optab_libfuncs): Likewise.
28108         (verify_loop_closed_ssa): Likewise.
28109         * value-prof.c (verify_histograms): Likewise.
28110         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
28111         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
28112         * cfghooks.c (verify_flow_info): Likewise.
28113         * fold-const.c (debug_fold_checksum): Likewise.
28114         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
28115         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
28116         Likewise.
28117         * omega.c (debug_omega_problem): Likewise.
28118         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
28119         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
28120         * dominance.c (verify_dominators, debug_dominance_info,
28121         debug_dominance_tree): Likewise.
28122         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
28123         * df_regno_debug, df_ref_debug,
28124         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
28125         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
28126         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
28127         * sel-sched.c (debug_state): Likewise.
28128         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
28129         Likewise.
28130         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
28131         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
28132         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
28133         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
28134         Likewise.
28135         * c-pretty-print.c (debug_c_tree): Likewise.
28136         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
28137         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
28138         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
28139         * ebitmap.c (debug_ebitmap): Likewise.
28140         * function.c (debug_find_var_in_block_tree): Likewise.
28141         * print-rtl.c (debug_rtx): Likewise.
28142         (debug_rtx_count): Likewise.
28143         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
28144         * stor-layout.c (debug_rli): Likewise.
28145         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
28146         * tree-data-ref.c (debug_data_references,
28147         debug_data_dependence_relations, debug_data_reference,
28148         debug_data_dependence_relation, debug_rdg_vertex,
28149         debug_rdg_component, debug_rdg): Likewise.
28150         * tree-affine.c (debug_aff): Likewise.
28151         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
28152         Likewise.
28153         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
28154         * emit-rtl.c (verify_rtl_sharing): Likewise.
28155         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
28156         debug_value_expressions): Likewise.
28157         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
28158         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
28159         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
28160         * cfglayout.c (verify_insn_chain): Likewise.
28161         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
28162         debug_clast_stmt, debug_generated_program): Likewise.
28163         * ggc-page.c (debug_print_page_list): Likewise.
28164         * tree-ssa-ter.c (debug_ter): Likewise.
28165         * graphite-dependences.c (debug_pddr): Likewise.
28166         * sched-deps.c (debug_ds): Likewise.
28167         * tree-ssa.c (verify_ssa): Likewise.
28168         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
28169         debug_scattering_functions, debug_iteration_domains, debug_pdr,
28170         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
28171         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
28172         * tree-inline.c (debug_find_tree): Likewise.
28173         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
28174         debug_ppl_powerset_matrix): Likewise.
28175         * var-tracking.c (debug_dv): Likewise.
28176         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
28177         * cfgloop.c (verify_loop_structure): Likewise.
28178         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
28179         * c-common.c (verify_sequence_points): Likewise.
28180         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
28181         debug_candidates, debug_rgn_dependencies): Likewise.
28182         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
28183         * debug_constraint_graph, debug_solution_for_var,
28184         debug_sa_points_to_info): Likewise.
28185         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
28186         Likewie.
28187         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
28188         debug_loops, debug_loop, debug_loop_num): Likewise.
28189         * passes.c (debug_pass): Likewise.
28190         (dump_properties): Likewise; add cfglayout property.
28191         (debug_properties): Likewise.
28192         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
28193         * varpool.c (debug_varpool): Likewise.
28194         * regcprop.c (debug_value_data): Likewise.
28195         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
28196         debug_immediate_uses_for): Likewise.
28197
28198 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
28199
28200         PR bootstrap/44315
28201         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
28202         Filter out insn-flags.h.
28203
28204 2010-05-29  Jan Hubicka  <jh@suse.cz>
28205
28206         * cgraph.h (struct varpool_node_set_def,
28207         struct cgraph_node_set_def): Remove unused AUX pointer.
28208         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
28209         VEC_empty macro.
28210
28211 2010-05-29  Jan Hubicka  <jh@suse.cz>
28212
28213         PR middle-end/44324
28214         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
28215
28216 2010-05-29  Richard Guenther  <rguenther@suse.de>
28217
28218         * lto-streamer.c (cached_bp): New global variable.
28219         (bitpack_create): Return the cached bitpack, if available.
28220         (bitpack_delete): Clear and cache the bitpack, if appropriate.
28221         (bp_pack_value): Remove redundant asserts.
28222
28223 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
28224
28225         PR middle-end/44306
28226         * tree-if-conv.c (is_true_predicate): New.
28227         (is_predicated): Use is_true_predicate.
28228         (add_to_predicate_list): Same.  Do not use unshare_expr.
28229         (add_to_dst_predicate_list): Same.
28230
28231 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
28232
28233         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
28234         field on edges.
28235         (predicate_bbs): Same.
28236         (clean_predicate_lists): Same.
28237         (find_phi_replacement_condition): Do not AND the predicate from
28238         edge->aux.
28239
28240 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
28241
28242         PR bootstrap/44315
28243         * Makefile.in (build/gencondmd.o): Add a missing `\'.
28244
28245 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
28246
28247         PR target/44261
28248         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
28249         (negdf2): Adjust expander pattern and use negdf2_slow.
28250         (negsf2): Likewise.
28251
28252 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
28253
28254         * basic-block.h (struct control_flow_graph): Move last_label_uid field
28255         up.
28256         * df.h (struct df_base_ref): Move regno field up.
28257         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
28258         * expr.h (struct separate_ops): Move location field up.
28259         * optabs.h (struct optab_d): Move libcall_basename field down.
28260         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
28261         * config/i386/i386.h (struct machine_function): Convert call_abi field
28262         into a bitfield.  Move cfa field to the end of the structure.
28263
28264 2010-05-29  Jan Hubicka  <jh@suse.cz>
28265
28266         * varpool.c (varpool_get_node): Fix lookup.
28267
28268 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
28269
28270         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
28271         RTL specific prototypes with #ifdef RTX_CODE.
28272         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
28273         * config/spu/t-spu-elf: Fix dependencies.
28274
28275         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
28276
28277 2010-05-29  Mike Stump  <mikestump@comcast.net>
28278
28279         PR bootstrap/44315
28280         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
28281         TM_H when building to avoid dependency loops.
28282
28283 2010-05-29  Jan Hubicka  <jh@suse.cz>
28284
28285         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
28286         refs and body; not the whole node for masters of materialized clones.
28287
28288 2010-05-29  Mike Stump  <mikestump@comcast.net>
28289
28290         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
28291
28292 2010-05-29  Jan Hubicka  <jh@suse.cz>
28293
28294         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
28295         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
28296         use of clone_function_name.
28297         * cgraph.h (cgraph_create_virtual_clone,
28298         cgraph_function_versioning): update prototypes.
28299         (clone_function_name): Declare.
28300         * ipa-cp.c (ipcp_insert_stage): Update call of
28301         cgraph_create_virtual_clone.
28302         * omp-low.c (create_omp_child_function_name): Use
28303         cgraph_create_virtual_clone.
28304         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
28305         (cgraph_function_versioning): Take SUFFIX argument; produce new name
28306         and make decl local.
28307
28308 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
28309
28310         * vec.h: Include statistics.h
28311         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
28312         with VEC_H.
28313
28314 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
28315
28316         * c-lex.c: Do not include c-tree.h.
28317         * c-pretty-print.c: Likewise.
28318         * c-opts.c: Likewise.
28319         * c-gimplify.c: Likewise.
28320         * c-common.c: Likewise.
28321         * c-dump.c: Likewise.  Include c-common.h.
28322
28323 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
28324
28325         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
28326         before including diagnostic-core.h.
28327         (c_cpp_error): New prototype moved from c-tree.h.
28328         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
28329         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
28330         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
28331         (c_cpp_error): Prototype moved to c-common.h.
28332         * Makefile.in: Update dependency for C_COMMON_H.
28333
28334 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
28335
28336         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
28337         * c-common.c (c_register_addr_space): Remove here.
28338         * c-decl.c (c_register_addr_space): Re-add here.
28339
28340 2010-05-28  Mike Stump  <mikestump@comcast.net>
28341
28342         * config/darwin-c.c: Remove c-tree.h include.
28343
28344 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
28345
28346         * gcc.c: Include diagnostic.h.
28347         (error_count): Remove.  All users changed to use errorcount.
28348         (programname): Remove.  All users changed to use progname.
28349         (fancy_abort, internal_error, fatal_error, error, warning, inform,
28350         fnotice): Remove.
28351         (execute): Don't include "Internal error" and bug reporting
28352         information in argument of internal_error call.
28353         (process_command): Don't increment error_count after calling
28354         perror_with_name.
28355         (input_filename): Rename to gcc_input_filename.  All users
28356         changed.
28357         (main): Call diagnostic_initialize.  Register delete_temp_files
28358         with atexit.  Use seen_error to test for errors.
28359         * gcc.h: Include diagnostic-core.h.
28360         (fatal_error, error, warning): Remove.
28361         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
28362         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
28363         (gcc.o): Update dependencies.
28364
28365 2010-05-28  Jeff Law  <law@redhat.com>
28366
28367         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
28368         functions.
28369         * ira.h (ira_bad_reload_regno): Declare
28370         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
28371
28372         * ira-color.c (update_curr_costs): Free updated hard reg costs.
28373         (ira_reassign_conflict_allocnos): Remove bogus asserts.
28374         (allocno_reload_assign): Likewise.
28375
28376 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
28377
28378         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
28379         build1_stat.
28380
28381 2010-05-28  Richard Guenther  <rguenther@suse.de>
28382
28383         PR lto/44312
28384         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
28385         Stream fixed-point constants mode.
28386         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
28387         and TYPE_PRECISION.
28388         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
28389         Stream fixed-point constants mode.
28390         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
28391         and TYPE_PRECISION.
28392
28393 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
28394
28395         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
28396         only place it was called from.
28397         (number_of_latch_executions): Do not return chrec_dont_know when the
28398         may_be_zero is a runtime condition: instead, return a COND_EXPR
28399         including the may_be_zero condition.
28400         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
28401         of nb_iterations.
28402         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
28403         COND_EXPRs.
28404
28405 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
28406
28407         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
28408         generate COND_EXPRs for degenerate_phi_result.
28409
28410 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
28411
28412         PR middle-end/44293
28413         * tree-if-conv.c (if_convertible_loop_p): Check the
28414         if-convertibility of phi nodes in non predicated BBs.
28415
28416 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
28417
28418         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
28419
28420 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
28421
28422         PR driver/15303
28423         * gcc.c (inform, warning, inform): New functions.
28424         (fatal_ice): Rename to internal_error; change cmsgid parameter to
28425         gmsgid.  All callers changed.
28426         (notice): Rename to fnotice; add parameter fp.  All callers changed.
28427         (fatal_error): Rename to fatal_signal.  All users changed.
28428         (fatal): Rename to fatal_error; change cmsgid parameter to
28429         gmsgid.  All callers changed.
28430         (process_command): Use warning instead of error for warnings.
28431         (end_going_arg): Don't use _() around argument of error.
28432         (do_spec_1): Use inform for message from %n specs.  Use warning
28433         instead of error for warnings.
28434         (main): Use inform for comparison messages.  Use warning for
28435         message about unused linker input.
28436         (error): Increment error_count.  Print "error: ".
28437         * gcc.h (fatal): Change to fatal_error.
28438         (warning): Declare.
28439         * config/darwin-driver.c (darwin_default_min_version): Use warning
28440         instead of fprintf for warnings.
28441         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
28442
28443 2010-05-28  Julian Brown  <julian@codesourcery.com>
28444
28445         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
28446         (*thumb2_addsi3_compare0_scratch): New.
28447         * config/arm/constraints.md (Pv): New.
28448         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
28449         for ARM mode only.
28450         (*addsi3_compare0_scratch): Likewise.
28451
28452 2010-05-28  Jan Hubicka  <jh@suse.cz>
28453
28454         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
28455         check.
28456         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
28457         only on local statics.
28458
28459 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
28460
28461         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
28462
28463 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
28464
28465         PR bootstrap/44314
28466         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
28467         (OPTION_GLIBC): Define.
28468
28469 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
28470
28471         PR debug/41048
28472         * dwarf2out.c (double_int_type_size_in_bits): New function.
28473         (round_up_to_align): Change first argument and return value to
28474         double_int.
28475         (field_byte_offset): Work internally on double_ints.
28476
28477         PR target/43636
28478         * builtins.c (expand_movstr): Use a temporary pseudo instead
28479         of target even when target is not NULL and not const0_rtx, but
28480         fails movstr predicate.
28481         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
28482
28483 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
28484
28485         * final.c (rest_of_clean_state): Use %m in errors instead of
28486         strerror (errno).
28487         * gengtype.c (read_input_list, close_output_files): Use xstrerror
28488         instead of strerror.
28489         * toplev.c (process_options): Use %m in errors instead of strerror
28490         (errno).
28491         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
28492         (errno).
28493
28494 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
28495
28496         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
28497         (ix86_canonical_va_list_type): Make static.  Add declaration.
28498         (ix86_enum_va_list): Make static.  Reindent.
28499         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
28500         (ix86_canonical_va_list_type): Ditto.
28501         (ix86_enum_va_list): Ditto.
28502
28503 2010-05-28  Richard Guenther  <rguenther@suse.de>
28504
28505         * lto-wrapper.c (run_gcc): With -save-temps generate a
28506         user-visible ltrans filename.  Fixup ltrans unit numbering.
28507
28508 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
28509
28510         * c-common.c (c_common_nodes_and_builtins): Replace use
28511         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
28512         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
28513         to ix86_enum_va_list.
28514         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
28515         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
28516         (TARGET_ENUM_VA_LIST_P): Add hook description.
28517         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
28518         * target.h (gcc_target): Add enum_va_list hook.
28519
28520         PR bootstrap/44299
28521         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
28522         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
28523         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
28524
28525 2010-05-28  Alan Modra  <amodra@gmail.com>
28526
28527         PR target/44266
28528         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
28529         emit_library_call machinery to set up __tls_get_addr calls.
28530
28531 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28532
28533         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
28534
28535 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
28536
28537         Revert fix for PR c++/44188
28538         * c-common.c (is_typedef_decl): Revert the moving of  this
28539         definition ...
28540         * tree.c (is_typedef_decl): ... here.
28541         (typdef_variant_p): Revert the moving of this  definition
28542         here from cp/tree.c.
28543         * c-common.h (is_typedef_decl): Revert the moving of this
28544         declaration ...
28545         * tree.h (is_typedef_decl): ... here.
28546         (typedef_variant_p): Revert the moving of this  declaration here
28547         from cp/cp-tree.h
28548         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
28549         (gen_tagged_type_die): Revert the splitting out of ...
28550         (gen_type_die_with_usage): ... this function. Revert the anonymous
28551         tagged type handling.
28552         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
28553         typedefs naming anonymous tagged types.
28554
28555 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
28556
28557         * config/rs6000/rs6000-modes.def (PSImode): Delete.
28558
28559 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
28560
28561         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
28562         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
28563         throughout.
28564         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
28565         "xer" to "ca".
28566         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
28567         XER_REGS to CA_REGS throughout.
28568         * config/rs6000/rs6000.h: Same.
28569         (ADDITIONAL_REGISTER_NAMES): Add "xer".
28570         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
28571         that mode_iterator "P" is the size for arithmetic carries as well.
28572         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
28573
28574 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
28575
28576         PR bootstrap/44255
28577         * combine.c (struct rtx_subst_pair): Define unconditionally.
28578         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
28579         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
28580         Call make_compound_operation on pair->to.
28581         (propagate_for_debug): Don't call make_compound_operation here.
28582         Always use simplify_replace_fn_rtx.
28583
28584 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
28585
28586         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
28587         * config/xtensa/xtensa.c (override_options): Check
28588           TARGET_FORCE_NO_PIC and set flag_pic.
28589         * config/xtensa/xtensa.opt: Document -mforce-no-pic
28590
28591 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
28592
28593         PR bootstrap/44299
28594         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
28595         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
28596
28597 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
28598
28599         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
28600         toplev.h.
28601         * diagnostic.c: Don't include toplev.h.
28602         (progname): Define.  Moved from toplev.c.
28603         (seen_error): New function.
28604         * diagnostic.h: Include diagnostic-core.h.
28605         (diagnostic_t, emit_diagnostic): Don't declare here.
28606         * toplev.c (progname): Move to toplev.c.
28607         (emit_debug_global_declarations, compile_file, finalize,
28608         do_compile, toplev_main): Use seen_error.
28609         * toplev.h: Include diagnostic-core.h.
28610         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
28611         internal_error, warning, warning_at, error, error_n, error_at,
28612         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
28613         verbatim, fnotice, progname): Move to diagnostic-core.h.
28614         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
28615         (expand_builtin_expect): Use seen_error.
28616         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
28617         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
28618         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
28619         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
28620         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
28621         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
28622         errorcount for errors.
28623         * c-opts.c (c_common_finish): Use seen_error.
28624         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
28625         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
28626         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
28627         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
28628         (get_coverage_counts): Use seen_error.
28629         * dwarf2out.c (dwarf2out_finish): Use seen_error.
28630         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
28631         gimplify_body): Use seen_error.
28632         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
28633         * ipa-pure-const.c (gate_pure_const): Use seen_error.
28634         * ipa-reference.c (gate_reference): Use seen_error.
28635         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
28636         * lambda-code.c: Include diagnostic-core.h instead of
28637         diagnostic.h.
28638         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
28639         * lto-compress.c: Include diagnostic-core.h instead of
28640         diagnostic.h.
28641         * lto-section-in.c: Include diagnostic-core.h instead of
28642         diagnostic.h.
28643         * lto-streamer-out.c: Include diagnostic-core.h instead of
28644         diagnostic.h.
28645         * lto-streamer.c: Include diagnostic-core.h instead of
28646         diagnostic.h.
28647         (gate_lto_out): Use seen_error.
28648         * matrix-reorg.c: Include diagnostic-core.h instead of
28649         diagnostic.h.
28650         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
28651         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
28652         (gate_expand_omp, lower_omp_1): Use seen_error.
28653         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
28654         (rest_of_decl_compilation, rest_of_type_compilation,
28655         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
28656         * tree-cfg.c (label_to_block_fn): Use seen_error.
28657         * tree-inline.c (optimize_inline_calls): Use seen_error.
28658         * tree-mudflap.c (mudflap_finish_file): Use
28659         seen_error.
28660         * tree-optimize.c (gate_all_optimizations,
28661         gate_all_early_local_passes, gate_all_early_optimizations): Use
28662         seen_error.
28663         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
28664         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
28665         (varpool_remove_unreferenced_decls,
28666         varpool_assemble_pending_decls): Use seen_error.
28667         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
28668         (TOPLEV_H, DIAGNOSTIC_H): Update.
28669         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
28670         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
28671         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
28672         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
28673         coverage.o, lambda-code.o): Update dependencies.
28674
28675 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
28676
28677         PR c++/44188
28678         * c-common.c (is_typedef_decl): Move this definition ...
28679         * tree.c (is_typedef_decl): ... here.
28680         (typdef_variant_p): Move definition here from cp/tree.c.
28681         * c-common.h (is_typedef_decl): Move this declaration ...
28682         * tree.h (is_typedef_decl): ... here.
28683         (typedef_variant_p): Move declaration here from cp/cp-tree.h
28684         * dwarf2out.c (is_naming_typedef_decl): New function.
28685         (gen_tagged_type_die): Split out of ...
28686         (gen_type_die_with_usage): ... this function. When an anonymous
28687         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
28688         is emitted for the typedef.
28689         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
28690         anonymous tagged types.
28691
28692 2010-05-27  Jason Merrill  <jason@redhat.com>
28693
28694         * print-tree.c (debug_vec_tree): New fn.
28695         (print_vec_tree): New fn.
28696         * tree.h: Declare them.
28697         * gdbinit.in (pvt): New command.
28698
28699         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
28700
28701         * gdbinit.in (pdd): New command.
28702
28703 2010-05-27  Jan Hubicka  <jh@suse.cz>
28704
28705         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
28706         (update_caller_keys): Return early if there are no callers;
28707         only update fibheap when decresing the key.
28708         (update_callee_keys): Avoid recursion.
28709         (decide_inlining_of_small_functions): When badness does not match;
28710         re-insert into fibheap.
28711
28712 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
28713
28714         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
28715         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
28716         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
28717         (ALL_HOST_OBJS): Now a union of the above two.
28718         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
28719         all files in ALL_HOST_FRONTEND_OBJS.
28720         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
28721
28722         * c-common.c: Pretend to be a backend file by undefining
28723         IN_GCC_FRONTEND (still need rtl.h here).
28724
28725 2010-05-27  Jan Hubicka  <jh@suse.cz>
28726
28727         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
28728         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
28729
28730 2010-05-27  Jan Hubicka  <jh@suse.cz>
28731
28732         * sched-ebb.c: Rename struct deps to struct deps_desc.
28733         * ddg.c: Likewise.
28734         * sel-sched-ir.c: Likewise.
28735         * sched-deps.c: Likewise.
28736         * sched-int.h: Likewise.
28737         * sched-rgn.c: Likewise.
28738
28739 2010-05-27  Jon Beniston  <jon@beniston.com>
28740
28741         PR 43726
28742         * config/lm32/lm32.h: Remove definition of
28743         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
28744
28745 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
28746
28747         PR lto/44230
28748         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
28749
28750 2010-05-27  Richard Guenther  <rguenther@suse.de>
28751
28752         PR tree-optimization/44284
28753         * tree-vect-stmts.c (vectorizable_assignment): Handle
28754         sign-changing conversions as simple copy.
28755
28756 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
28757
28758         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
28759         Bionic C library.
28760         (__gthread_active_p): Check for pthread_create if compiling against
28761         Bionic C library.
28762
28763 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
28764
28765         Support compilation for Android platform.  Reimplement -mandroid.
28766
28767         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
28768         (*android*): Set ANDROID_DEFAULT.
28769         (arm*-*-linux*): Include linux-android.h.
28770         (arm*-*-eabi*): Don't include previous -mandroid implementation.
28771         * config/arm/eabi.h: Remove, move Android-specific parts ...
28772         * config/linux-android.h: ... here.  New file.
28773         * config/arm/eabi.opt: Rename to ...
28774         * config/linux-android.opt: ... this.
28775         (mandroid): Allow -mno-android option.  Initialize based on
28776         ANDROID_DEFAULT.
28777         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
28778         Move logic to corresponding LINUX_TARGET_* macros.
28779         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
28780         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
28781         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
28782         Android definitions.
28783         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
28784         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
28785         Document.
28786
28787 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
28788
28789         Add support for Bionic C library
28790
28791         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
28792         macro.
28793         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
28794         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
28795
28796         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
28797         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
28798         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
28799         to support multiple C libraries.  Handle Bionic.
28800         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
28801         (BIONIC_DYNAMIC_LINKER64): Define.
28802         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
28803         Update.
28804         (TARGET_HAS_SINCOS): Enable for Bionic.
28805
28806         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
28807         the last option specified on command line take effect.
28808         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
28809         (mbionic): New.
28810         (mglibc, muclibc): Update.
28811
28812         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
28813         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
28814         DEFAULT_LIBC.
28815
28816         * doc/invoke.texi (-mglibc, -muclibc): Update.
28817         (-mbionic): Document.
28818
28819 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
28820
28821         * c-common.h (c_register_addr_space): Add prototype.
28822         (ADDR_SPACE_KEYWORD): Remove.
28823         * c-common.c (c_register_addr_space): New function.
28824         (c_addr_space_name): Reimplement.
28825         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
28826
28827         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
28828         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
28829
28830         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
28831         Remove TARGET_ADDR_SPACE_KEYWORDS.
28832
28833 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
28834
28835         * input.c: New file.
28836         * input.h (main_input_filename): Move declaration to toplev.h.
28837         * toplev.c (input_location, line_table): Move to input.c
28838         * toplev.h (main_input_filename): Move declaration from input.h.
28839         * tree.c (expand_location): Move to input.c.
28840         * Makefile.in (OBJS-common): Add input.o.
28841         (input.o): Add dependencies.
28842
28843 2010-05-27  Richard Guenther  <rguenther@suse.de>
28844
28845         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
28846         for non-existant files.
28847         (fork_execute): Mark args_name file as deleted.
28848
28849 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
28850
28851         PR bootstrp/44287
28852         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
28853         (narrow_signed_type): Likewise.
28854
28855 2010-05-26  Jan Hubicka  <jh@suse.cz>
28856
28857         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
28858         edge only when checking is enabled; check using former_clone_of;
28859         check inline clones too.
28860         (cgraph_materialize_clone): Record former_clone_of pointer.
28861         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
28862         combining redirections; dump args_to_skip bitmap
28863         (cgraph_materialize_all_clones): Do no redirection here.
28864         * ipa-inline.c (inline_transform): Do redirection here.
28865         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
28866         cheking only).
28867
28868 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
28869
28870         * config/avr/avr-c.c: Do not include regs.h.
28871         Include cpplib.h for cpp_define and tree.h for c-common.h.
28872         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
28873         * config/avr/t-avr: Fix dependencies for avr-c.o.
28874
28875 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
28876
28877         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
28878         string instead of SYMBOL_REF rtx.
28879         * rtl.h (set_stack_check_libfunc): Move prototype from here...
28880         * libfuncs.h: ...to here.  Adjust for explow.c change.
28881
28882 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
28883
28884         * pretty-print.c: Don't include ggc.h.
28885         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
28886         (identifier_to_locale): Use them for allocation.
28887         * pretty-print.h (identifier_to_locale_alloc,
28888         identifier_to_locale_free): Declare.
28889         * toplev.c (alloc_for_identifier_to_locale): New.
28890         (general_init): Set identifier_to_locale_alloc and
28891         identifier_to_locale_free.
28892         * Makefile.in (pretty-print.o): Update dependencies.
28893
28894 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
28895
28896         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
28897         pointer types if they have different alignment or mode.
28898
28899 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
28900
28901         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
28902         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
28903         * config/sparc/sparc-protos.h (function_value): Remove declaration.
28904         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
28905         sparc_function_value_regno_p): New functions.
28906         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
28907         TARGET_FUNCTION_VALUE_REGNO_P): Define.
28908         (function_value): Rename to...
28909         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
28910         argument to 'outgoing'.
28911         (function_arg_record_value, function_arg_union_value,
28912         function_arg_vector_value): Update comment.
28913
28914 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
28915
28916         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
28917         (fde_needed_for_eh_p): New predicate.
28918         (output_call_frame_info): Use it throughout to decide whether FDEs
28919         are needed for EH purpose.
28920         (dwarf2out_begin_prologue): Reorder assignments.
28921
28922 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
28923
28924         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
28925         special case loop->header.
28926         (is_predicated): New.
28927         (if_convertible_loop_p): Call it.
28928
28929 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
28930
28931         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
28932         iterator in parameter.  Do not generate code during the analysis.
28933         (tree_if_convert_cond_stmt): Removed.
28934         (tree_if_convert_stmt): Removed.
28935         (predicate_bbs): New.
28936         (if_convertible_loop_p): Call predicate_bbs.
28937         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
28938         now contains all the analysis part.
28939
28940 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
28941
28942         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
28943         statements in the analysis part.
28944         (tree_if_convert_stmt): Update comment.
28945         (remove_conditions_and_labels): New.
28946         (combine_blocks): Call remove_conditions_and_labels.
28947         (tree_if_conversion): Update comment.
28948
28949 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
28950
28951         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
28952         than 2 predecessors or more than 2 successors.
28953
28954 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
28955
28956         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
28957         of loops in which the data dependence analysis fails.
28958
28959 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
28960
28961         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
28962         CDI_POST_DOMINATORS.
28963         (tree_if_conversion): Same.
28964
28965 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
28966
28967         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
28968
28969 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
28970
28971         * tree-if-conv.c: Update copyright years.  Fix comments.
28972         Fix indentation.
28973
28974 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
28975
28976         * builtin-types.def (BT_INT128): New primitive type.
28977         (BT_UINT128): Likewise.
28978         * c-common.c (c_common_r): Add __int128 keyword.
28979         (c_common_type_for_size): Handle __int128.
28980         (c_common_type_for_mode): Likewise.
28981         (c_common_signed_or_unsigned_type): Likewise.
28982         (c_common_nodes_and_builtins): Add builtin type
28983         if target supports 128-bit integer scalar.
28984         * c-common.h (enum rid): Add RID_INT128.
28985         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
28986         if target supports 128-bit integer scalar.
28987         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
28988         (finish_declspecs): Likewise.
28989         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
28990         (c_token_starts_declspecs): Likewise.
28991         (c_parser_declspecs): Likewise.
28992         (c_parser_attributes): Likewise.
28993         (c_parser_objc_selector): Likewise.
28994         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
28995         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
28996         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
28997         * tree.c (make_or_reuse_type): Likewise.
28998         (make_unsigned_type): Likewise.
28999         (build_common_tree_nodes_2): Likewise.
29000         * tree.h (enum integer_type_kind): Add itk_int128 and
29001         itk_unsigned_int128.
29002         (int128_integer_type_node): New define.
29003         (int128_unsigned_type_node): New define.
29004         * doc/extend.texi: Add documentation about __int128 type.
29005
29006 2010-05-26  Richard Guenther  <rguenther@suse.de>
29007
29008         * tree-ssa-sccvn.c (copy_nary): Adjust.
29009         (copy_phis): Rename to ...
29010         (copy_phi): ... this.  Adjust.
29011         (copy_references): Rename to ...
29012         (copy_reference): ... this.  Adjust.
29013         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
29014         result into the valid table.
29015
29016 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
29017
29018         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
29019         insn-config.h, insn-codes.h, recog.h, and optabs.h.
29020
29021 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
29022
29023         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
29024
29025 2010-05-26  Richard Guenther  <rguenther@suse.de>
29026
29027         * opts.c (common_handle_option): Handle OPT_Ofast.
29028
29029 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
29030
29031         * diagnostic.c: Don't include opts.h.
29032         (permissive_error_option): Define.
29033         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
29034         for classify_diagnostic.  Don't use memset for
29035         classify_diagnostic.  Initialize new and recently added fields.
29036         (diagnostic_classify_diagnostic): Use context->n_opts instead of
29037         N_OPTS.
29038         (diagnostic_report_diagnostic): Pass context parameter to
29039         diagnostic_report_warnings_p.  Use option_enabled and option_name
29040         hooks from context.
29041         (emit_diagnostic): Use permissive_error_option.
29042         (permerror): Likewise.
29043         * diagnostic.h: Don't include options.h.
29044         (struct diagnostic_context): Add n_opts, opt_permissive,
29045         inhibit_warnings, warn_system_headers, option_enabled and
29046         option_name fields.  Change classify_diagnostic to a pointer.
29047         * opts-diagnostic.h: New file.
29048         * opts.c: Include opts-diagnostic.h.
29049         (common_handle_option): Set global_dc fields for -Wfatal-errors,
29050         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
29051         (option_name): New function.
29052         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
29053         (c_common_handle_option): Set global_dc->permissive for
29054         -fpermissive.
29055         * c-common.c (c_cpp_error): Save and restore
29056         global_dc->warn_system_headers, not variable warn_system_headers.
29057         * toplev.c: Include opts-diagnostic.h.
29058         (general_init): Update call to diagnostic_initialize.  Set
29059         global_dc->show_column, global_dc->option_enabled and
29060         global_dc->option_name.
29061         (process_options): Don't set global_dc fields here.
29062         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
29063         (diagnostic.o, opts.o, toplev.o): Update dependencies.
29064
29065 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
29066
29067         * config/picochip/picochip.md (movsi): Split a movsi from a
29068         const after reload.
29069
29070 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
29071
29072         * ggc-zone.c: Update copyright year.
29073         (poison_region): Mark memory for Valgrind as undefined before
29074         memset () call and inaccessible afterwards.
29075         (ggc_pch_total_size): Change type of i to int.
29076
29077 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
29078
29079         * ggc-common.c (ggc_free_overhead): Allow empty slot.
29080
29081 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
29082
29083         * ggc-common.c: Update copyright year.
29084         (ggc_rlimit_bound): Remove prototype.  Compile only if
29085         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
29086         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
29087         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
29088         (ggc_min_heapsize_heuristic): Likewise.
29089
29090 2010-05-26  Richard Guenther  <rguenther@suse.de>
29091
29092         PR rtl-optimization/44164
29093         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
29094         no-common access-path disambiguation.
29095         (indirect_ref_may_alias_decl_p): Adjust.
29096         (indirect_refs_may_alias_p): Likewise.
29097         (refs_may_alias_p_1): Likewise.
29098
29099 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
29100
29101         * c-typeck.c: Do not include expr.h.
29102
29103 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
29104
29105         * rtl.h (decl_default_tls_model): Move prototype from here...
29106         * output.h: ...to here.
29107         * c-decl.c: Do not include rtl.h.
29108         * c-pragma.c: Likewise.
29109         * c-parser.c: Likewise.
29110         * c-gimplify.c: Likewise.  And also not hard-reg-set.
29111         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
29112         FIXME note for it.  Add a FIXME note for expr.h.
29113         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
29114         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
29115         defined.
29116
29117 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
29118
29119         PR target/44199
29120         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
29121         or total_size is larger than red zone size for non-V4 ABI, emit a
29122         stack_tie resp. frame_tie insn before stack pointer restore.
29123         * config/rs6000/rs6000.md (frame_tie): New insn.
29124
29125 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
29126
29127         * function.h (struct function): Add can_throw_non_call_exceptions bit.
29128         * lto-streamer-in.c (input_function): Stream it in.
29129         * lto-streamer-out.c (output_function): Stream it out.
29130         * function.c (allocate_struct_function): Set it.
29131         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
29132         for flag_non_call_exceptions.
29133         * cfgbuild.c (control_flow_insn_p): Likewise.
29134         (make_edges): Likewise.
29135         * cfgexpand.c (expand_stack_alignment): Likewise.
29136         * combine.c (distribute_notes): Likewise.
29137         * cse.c (cse_extended_basic_block): Likewise.
29138         * except.c (insn_could_throw_p): Likewise.
29139         * gcse.c (simple_mem): Likewise.
29140         * ipa-pure-const.c (check_call): Likewise.
29141         (check_stmt ): Likewise.
29142         * lower-subreg.c (lower-subreg.c): Likewise.
29143         * optabs.c (emit_libcall_block): Likewise.
29144         (prepare_cmp_insn): Likewise.
29145         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
29146         * postreload.c (rest_of_handle_postreload): Likewise.
29147         * reload1.c (reload_as_needed): Likewise.
29148         (emit_input_reload_insns): Likewise.
29149         (emit_output_reload_insns): Likewise.
29150         (fixup_abnormal_edges): Likewise.
29151         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
29152         * store-motion.c (find_moveable_store): Likewise.
29153         * tree-eh.c (stmt_could_throw_p): Likewise.
29154         (tree_could_throw_p): Likewise.
29155         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
29156         * config/arm/arm.c (arm_expand_prologue): Likewise.
29157         (thumb1_expand_prologue): Likewise.
29158         * config/rx/rx.md (cbranchsf4): Likewise.
29159         (cmpsf): Likewise.
29160         * config/s390/s390.c (s390_emit_prologue): Likewise.
29161         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
29162         (inline_forbidden_into_p): New predicate.
29163         (expand_call_inline): Use it to forbid inlining.
29164         (tree_can_inline_p): Likewise.
29165
29166 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
29167
29168         * config/i386/i386-c.c: Do not include rtl.h.
29169         * config/i386/t-i386: Update dependencies.
29170
29171 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
29172
29173         * attribs.c: Do not include rtl.h.
29174         * Makefile.in: Update dependencies.
29175
29176 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
29177
29178         * double-int.h (double_int_and): New.
29179         * combine.c (try_combine): Clean up, use double_int_* and
29180         immed_double_int_const functions.
29181
29182 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29183
29184         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
29185         stderr to /dev/null instead of grep -q.
29186         * configure: Regenerate.
29187
29188 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
29189
29190         * Makefile.in (EXCEPT_H): Fix typo.
29191
29192 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
29193
29194         * ira-build.c (update_conflict_hard_reg_costs): New.
29195         (ira_build): Call update_conflict_hard_reg_costs.
29196
29197 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
29198
29199         PR debug/41371
29200         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
29201         ENABLE_CHECKING.
29202         (intersect_loc_chains): Walk the s2var's loc_chain together
29203         with s1node chain as long as the locations are equal, don't
29204         call find_loc_in_1pdv in that case.
29205
29206         PR debug/42801
29207         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
29208         (copy_bind_expr): ... instead of here.
29209         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
29210         if the block hasn't been remapped.
29211         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
29212         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
29213
29214 2010-05-25  Richard Guenther  <rguenther@suse.de>
29215
29216         PR middle-end/44069
29217         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
29218         out-of-bounds array accesses.
29219
29220 2010-05-25  Richard Guenther  <rguenther@suse.de>
29221
29222         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
29223         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
29224         (run_gcc): Re-organize to make cleanup easier.
29225
29226 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
29227
29228         * config/s390/s390.c (optimization_options): Fix and move the
29229         flag_prefetch_loop_arrays override ...
29230         (override_options): ... here.
29231
29232 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
29233
29234         * diagnostic.c: Don't include plugin.h.
29235         (diagnostic_report_diagnostic): Don't handle plugins specially
29236         here.  Pass context to internal_error callback.
29237         * diagnostic.h (struct diagnostic_context): Add context parameter
29238         to internal_error callback.
29239         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
29240         * plugin.h (struct diagnostic_context): Declare.
29241         (warn_if_plugins, plugins_internal_error_function): Declare.
29242         * toplev.c (general_init): Set global_dc->internal_error.
29243         * Makefile.in (diagnostic.o): Update dependencies.
29244
29245 2010-05-25  Iain Sandoe  <iains@gcc.gnu.org>
29246
29247         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
29248         * config/rs6000/t-darwin64: New.
29249         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
29250         build crt2.
29251
29252 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
29253
29254         PR 44203
29255         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
29256         match the original (and intended) behaviour before r159557.  This
29257         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
29258         in two ways.
29259
29260 2010-05-25  Richard Guenther  <rguenther@suse.de>
29261
29262         * doc/invoke.texi: Document -Ofast.
29263         * target.h (struct gcc_target): Add handle_ofast.
29264         * target-def.h (TARGET_HANDLE_OFAST): Add.
29265         (TARGET_INITIALIZER): Adjust.
29266         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
29267         * common.opt (Ofast): Add.
29268
29269 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
29270
29271         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
29272         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
29273
29274 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
29275
29276         PR target/43610
29277         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
29278         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
29279         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
29280         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
29281
29282 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
29283
29284         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
29285         DW_OP_minus with negated offset instead of DW_OP_plus.
29286         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
29287
29288 2010-05-25  Wei Guozhi  <carrot@google.com>
29289
29290         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
29291         tst instruction and a new alternative.
29292         * config/arm/constraints.md (Pu): New constraint.
29293
29294 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
29295
29296         * function.c (assign_stack_local_1): Initialize variable
29297         to avoid warning when bootstrapping at -O3.
29298
29299 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
29300
29301         * configure.ac (all_lang_makefiles): Remove everything related to it.
29302         * configure: Regenerate.
29303         * Makefile.in: Fix reference to ada Make-lang.in.
29304         Remove support for LANG_MAKEFILES.
29305
29306 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
29307             Sandra Loosemore  <sandra@codesourcery.com>
29308
29309         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
29310         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
29311         description.  Add arm_neon_fp16_ok.
29312         (Add Options): Add arm_neon and arm_neon_fp16.
29313
29314 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
29315
29316         * diagnostic.c: Don't include flags.h.
29317         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
29318         context parameters.  Check flags in the context passed as a parameter.
29319         (diagnostic_build_prefix): Add context parameter.  Check
29320         show_column flag in context.
29321         (diagnostic_action_after_output): Check fatal_errors flag in context.
29322         (diagnostic_report_current_module): Check show_column flag in context.
29323         (default_diagnostic_starter): Update call to
29324         diagnostic_build_prefix.
29325         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
29326         (emit_diagnostic): Pass context to permissive_error_kind.
29327         (permerror): Pass context to permissive_error_kind.
29328         * diagnostic.h (struct diagnostic_context): Add show_column,
29329         pedantic_errors, permissive and fatal_errors fields.
29330         (diagnostic_build_prefix): Update prototype.
29331         * langhooks.c
29332         * toplev.c (process_options): Set flags in global_dc from
29333         flag_show_column, flag_pedantic_errors, flag_permissive,
29334         flag_fatal_errors.
29335         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
29336         to diagnostic_build_prefix.
29337         * Makefile.in (diagnostic.o): Update dependencies.
29338
29339 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
29340
29341         * config/i386/ia32intrin.h (__crc32q): Define only if
29342         __SSE4_2__ is defined.
29343
29344 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
29345
29346         PR target/44132
29347         PR middle-end/43602
29348         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
29349         DECL_VISIBILITY_SPECIFIED.
29350         (emutls_decl): Set DECL_PRESERVE_P and copy
29351         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
29352         (emutls_finalize_control_var): New callback.
29353         (emutls_finish): Finalize emutls control variables.
29354         * toplev.c (compile_file): Move the call to emutls_finish ()
29355         before varpool_assemble_pending_decls ().
29356
29357 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
29358
29359         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
29360         added to the preprocessor condition.
29361
29362 2010-05-24  Paul Brook  <paul@codesourcery.com>
29363
29364         * gengtype-lex.l: Add HARD_REG_SET.
29365         * expr.c (expand_expr_real_1): Record writes to hard registers.
29366         * function.c (rtl_data): Add asm_clobbers.
29367         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
29368         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
29369         Use crtl->asm_clobbers.
29370
29371 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
29372
29373         * doc/makefile.texi (Makefile): Mention stages 'profile'
29374         and 'feedback' for profiledbootstrap.
29375
29376 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
29377
29378         PR target/44245
29379         * config/i386/i386.c (def_builtin): Properly check
29380         OPTION_MASK_ISA_64BIT.
29381
29382 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
29383
29384         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
29385         typedefs with different but compatible types.  Allow duplicate
29386         typedefs with the same type except for pedantic non-C1X, but give
29387         warning for variably modified types.
29388         * c-typeck.c (tagged_types_tu_compatible_p,
29389         function_types_compatible_p, type_lists_compatible_p,
29390         comptypes_internal): Add parameter different_types_p; set
29391         *different_types_p for different but compatible types.  All
29392         callers changed.
29393         (comptypes_check_different_types): New.
29394         * c-tree.h (comptypes_check_different_types): Declare.
29395
29396 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
29397
29398         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
29399         * jump.c: Include basic-block.h.
29400         * profile.c: Likewise.
29401         * tree-profile.c: Likewise.
29402         * coverage.c: Likewise.
29403         * basic-block.h (optimize_function_for_size_p): Move to function.h.
29404         (optimize_function_for_speed_p): Likewise.
29405         * function.h (optimize_function_for_size_p,
29406         optimize_function_for_speed_p): Moved here from basic-block.h.
29407         * Makefile.in: Update dependencies.
29408
29409 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
29410
29411         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
29412         before calling make; allow override through $MAKE.
29413         * doc/invoke.texi (Optimize Options): Document override.
29414
29415 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
29416
29417         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
29418         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
29419         (rs6000_mode_dependent_address_ptr): Make static.
29420         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
29421         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
29422         Remove.
29423
29424 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
29425
29426         PR target/43869
29427         * config/i386/i386.c: Make sure that the correct regparm is passed.
29428
29429 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
29430
29431         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
29432         * sbitmap.c: ...to here to internalize sbitmap element access.
29433         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
29434         Explain why basic-block.h is included.
29435         * function.h: Include tm.h for CUMULATIVE_ARGS.
29436         * Makefile.in: Update dependencies.
29437
29438 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
29439
29440         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
29441         New core types.
29442         * sbitmap.h (struct sbitmap_def): Do not typedef here.
29443         * sbitmap.c: Include sbitmap.h.
29444         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
29445         hard-reg-set.h.  Split everything related to regsets out from here...
29446         * regset.h: ...to here.  New file.
29447         * df.h: Include regset.h and sbitmap.h.
29448         * tree-flow.h: Likewise.
29449         * cfgloop.h: Likewise.
29450         * except.h: Do not include sbitmap.h.  Include hashtab.h.
29451         * cgraph.h: Include vec.h and function.h.
29452         * reload.h (struct insn_chain): Change types of live_throughout
29453         and dead_or_set from regset_head to bitmap_head.
29454         (compute_use_by_pseudos): Be defined also if regset.h is not included.
29455         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
29456         spilled_regs from regset_head to bitmap_head to avoid dependency
29457         in regset.h.
29458         * sel-sched-ir.h: Include regset.h.
29459         * reload.c: Include df.h before reload.h.
29460         * caller-save.c: Likewise.
29461         * reload1.c: Likewise.
29462         * ira.c: Likewise.
29463         (mark_elimination): Update type of r to bitmap, consistent with
29464         DF_LR_IN.
29465         * dominance.c: Include bitmap.h.
29466         * modulo-sched.c: Include df.h.
29467         * cfganal.c: Include bitmap.h and sbitmap.h.
29468         * cfgbuild.c: Include sbitmap.h.
29469         * lcm.c: Include sbitmap.h.
29470         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
29471         * domwalk.c: Include sbitmap.h, exclude ggc.h.
29472         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
29473         * cselib.c: Include bitmap.h.
29474         * tree-optimize.c: Include regset.h.
29475         * stmt.c: Include bitmap.h.
29476         * Makefile.in: Update dependencies.
29477
29478 2010-05-22  Jan Hubicka  <jh@suse.cz>
29479
29480         * cgraph.h (struct varpool_node): Add same_comdat_group.
29481         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
29482         pointer.
29483         (output_varpool): Update call of lto_output_varpool_node.
29484         (input_varpool): Read same_comdat_group pointer.
29485         (input_varpool_1): Fixup same_comdat_group pointer.
29486         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
29487         group is needed, all are.
29488         * varpool.c (varpool_remove_node): Remove node from same comdat group
29489         linklist too.
29490         (varpool_analyze_pending_decls): Walk same comdat groups.
29491
29492 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
29493
29494         * rtl.h (union rtunion_def): Remove rt_bit member.
29495         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
29496         * print-rtl (print_rtx): Do not print the member.
29497         * gengtype.c (adjust_field_rtx_def): Do not handle it.
29498         * gengenrtl.c (type_from_format): Likewise.
29499         (accessor_from_format): Likewise.
29500
29501 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
29502
29503         * dbgcnt.c: Include toplev.h instead of errors.h.
29504         * ira-emit.c: Don't include errors.h.
29505         * ira.c: Include toplev.h instead of errors.h.
29506         * lto-compress.c: Include toplev.h instead of errors.h.
29507         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
29508         ira.o, dbgcnt.o): Update dependencies.
29509
29510 2010-05-22  Richard Guenther  <rguenther@suse.de>
29511
29512         * gimple.c (gimple_types_compatible_p): Check type qualifications
29513         before merging pointer to complete and pointer to incomplete type.
29514         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
29515         we use our own resolution algorithm.  The gold linker plugin
29516         doesn't do the job we want it to do here.
29517
29518 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
29519
29520         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
29521         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
29522         (sparc_mode_dependent_address_p): New function.
29523
29524 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
29525
29526         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
29527
29528         * timevar.c: Do not include any core headers.
29529         (timevar_print): De-i18n-ize.
29530         (print_time): Likewise.
29531         * timevar.h (timevar_push, timevar_pop): Make inline functions.
29532
29533 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
29534
29535         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
29536         langhooks-def.h.
29537         (diagnostic_initialize): Initialize x_data not last_function.
29538         (diagnostic_report_current_function): Move to tree-diagnostic.c.
29539         (default_diagnostic_starter): Call
29540         diagnostic_report_current_module not
29541         diagnostic_report_current_function.
29542         (diagnostic_report_diagnostic): Initialize x_data not
29543         abstract_origin.
29544         (verbatim): Likewise.
29545         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
29546         x_data.
29547         (struct diagnostic_context): Change last_function to x_data.
29548         (diagnostic_auxiliary_data): Replace with
29549         diagnostic_context_auxiliary_data and
29550         diagnostic_info_auxiliary_data.
29551         (diagnostic_last_function_changed, diagnostic_set_last_function,
29552         diagnostic_report_current_function): Move to tree-diagnostic.h.
29553         (print_declaration, dump_generic_node, print_generic_stmt,
29554         print_generic_stmt_indented, print_generic_expr,
29555         print_generic_decl, debug_c_tree, dump_omp_clauses,
29556         print_call_name, debug_generic_expr, debug_generic_stmt,
29557         debug_tree_chain, default_tree_printer): Move to
29558         tree-pretty-print.h.
29559         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
29560         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
29561         gimple-pretty-print.h.
29562         * pretty-print.c: Don't include tree.h
29563         (pp_base_format): Don't handle %K here.
29564         (pp_base_tree_identifier): Move to tree-pretty-print.c.
29565         * pretty-print.h (text_info): Change abstract_origin to x_data.
29566         (pp_tree_identifier, pp_unsupported_tree,
29567         pp_base_tree_identifier): Move to tree-pretty-print.h.
29568         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
29569         tree-pretty-print.h: New files.
29570         * tree-pretty-print.c: Include tree-pretty-print.h.
29571         (percent_K_format): New.  Moved from pretty-print.c.
29572         (pp_base_tree_identifier): Move from pretty-print.c.
29573         * c-objc-common.c: Include tree-pretty-print.h.
29574         (c_tree_printer): Handle %K here.
29575         * langhooks.c: Include tree-diagnostic.h.
29576         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
29577         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
29578         (default_tree_printer): Handle %K using percent_K_format.
29579         (general_init): Use default_tree_diagnostic_starter.
29580         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
29581         (free_lang_data): Use default_tree_diagnostic_starter.
29582         * c-pretty-print.c: Include tree-pretty-print.h.
29583         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
29584         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
29585         * dwarf2out.c: Include tree-pretty-print.h.
29586         * except.c: Include tree-pretty-print.h.
29587         * gimple-pretty-print.c: Include tree-pretty-print.h and
29588         gimple-pretty-print.h.
29589         * gimplify.c: Include tree-pretty-print.h.
29590         * graphite-poly.c: Include tree-pretty-print.h and
29591         gimple-pretty-print.h.
29592         * ipa-cp.c: Include tree-pretty-print.h.
29593         * ipa-inline.c: Include gimple-pretty-print.h.
29594         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
29595         * ipa-pure-const.c: Include gimple-pretty-print.h.
29596         * ipa-struct-reorg.c: Include tree-pretty-print.h and
29597         gimple-pretty-print.h.
29598         * ipa-type-escape.c: Include tree-pretty-print.h.
29599         * print-rtl.c: Include tree-pretty-print.h.
29600         * print-tree.c: Include gimple-pretty-print.h.
29601         * sese.c: Include tree-pretty-print.h.
29602         * tree-affine.c: Include tree-pretty-print.h.
29603         * tree-browser.c: Include tree-pretty-print.h.
29604         * tree-call-cdce.c: Include gimple-pretty-print.h.
29605         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
29606         * tree-chrec.c: Include tree-pretty-print.h.
29607         * tree-data-ref.c: Include tree-pretty-print.h and
29608         gimple-pretty-print.h.
29609         * tree-dfa.c: Include tree-pretty-print.h.
29610         * tree-if-conv.c: Include tree-pretty-print.h and
29611         gimple-pretty-print.h.
29612         * tree-inline.c: Include tree-pretty-print.h.
29613         * tree-into-ssa.c: Include tree-pretty-print.h and
29614         gimple-pretty-print.h.
29615         * tree-nrv.c: Include tree-pretty-print.h.
29616         * tree-object-size.c: Include tree-pretty-print.h and
29617         gimple-pretty-print.h.
29618         * tree-outof-ssa.c: Include tree-pretty-print.h and
29619         gimple-pretty-print.h.
29620         * tree-parloops.c: Include tree-pretty-print.h and
29621         gimple-pretty-print.h.
29622         * tree-predcom.c: Include tree-pretty-print.h and
29623         gimple-pretty-print.h.
29624         * tree-scalar-evolution.c: Include tree-pretty-print.h and
29625         gimple-pretty-print.h.
29626         * tree-sra.c: Include tree-pretty-print.h.
29627         * tree-ssa-address.c: Include tree-pretty-print.h.
29628         * tree-ssa-alias.c: Include tree-pretty-print.h.
29629         * tree-ssa-ccp.c: Include tree-pretty-print.h and
29630         gimple-pretty-print.h.
29631         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
29632         * tree-ssa-copy.c: Include tree-pretty-print.h and
29633         gimple-pretty-print.h.
29634         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
29635         * tree-ssa-dce.c: Include tree-pretty-print.h and
29636         gimple-pretty-print.h.
29637         * tree-ssa-dom.c: Include tree-pretty-print.h and
29638         gimple-pretty-print.h.
29639         * tree-ssa-dse.c: Include gimple-pretty-print.h.
29640         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
29641         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
29642         * tree-ssa-live.c: Include tree-pretty-print.h and
29643         gimple-pretty-print.h.
29644         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
29645         gimple-pretty-print.h.
29646         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
29647         gimple-pretty-print.h.
29648         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
29649         gimple-pretty-print.h.
29650         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
29651         gimple-pretty-print.h.
29652         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
29653         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
29654         * tree-ssa-operands.c: Include tree-pretty-print.h and
29655         gimple-pretty-print.h.
29656         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
29657         gimple-pretty-print.h.
29658         * tree-ssa-pre.c: Include tree-pretty-print.h and
29659         gimple-pretty-print.h.
29660         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
29661         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
29662         gimple-pretty-print.h.
29663         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
29664         gimple-pretty-print.h.
29665         * tree-ssa-sink.c: Include gimple-pretty-print.h.
29666         * tree-ssa-ter.c: Include tree-pretty-print.h and
29667         gimple-pretty-print.h.
29668         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
29669         * tree-ssa.c: Include tree-pretty-print.h and
29670         gimple-pretty-print.h.
29671         * tree-stdarg.c: Include gimple-pretty-print.h.
29672         * tree-switch-conversion.c: Include gimple-pretty-print.h.
29673         * tree-tailcall.c: Include tree-pretty-print.h and
29674         gimple-pretty-print.h.
29675         * tree-vect-data-refs.c: Include tree-pretty-print.h and
29676         gimple-pretty-print.h.
29677         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
29678         gimple-pretty-print.h.
29679         * tree-vect-loop.c: Include tree-pretty-print.h and
29680         gimple-pretty-print.h.
29681         * tree-vect-patterns.c: Include gimple-pretty-print.h.
29682         * tree-vect-slp.c: Include tree-pretty-print.h and
29683         gimple-pretty-print.h.
29684         * tree-vect-stmts.c: Include tree-pretty-print.h and
29685         gimple-pretty-print.h.
29686         * tree-vectorizer.c: Include tree-pretty-print.h.
29687         * tree-vrp.c: Include tree-pretty-print.h and
29688         gimple-pretty-print.h.
29689         * value-prof.c: Include tree-pretty-print.h and
29690         gimple-pretty-print.h.
29691         * var-tracking.c: Include tree-pretty-print.h.
29692         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
29693         (tree-diagnostic.o): New dependencies.
29694         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
29695         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
29696         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
29697         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
29698         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
29699         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
29700         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
29701         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
29702         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
29703         tree-ssa-address.o, tree-ssa-loop-niter.o,
29704         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
29705         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
29706         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
29707         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
29708         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
29709         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
29710         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
29711         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
29712         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
29713         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
29714         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
29715         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
29716         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
29717         tree-switch-conversion.o, var-tracking.o, value-prof.o,
29718         cfgexpand.o, pretty-print.o): Update dependencies.
29719
29720 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
29721
29722         * tree-ssa-structalias.c: Remove tm_p.h from include.
29723
29724 2010-05-21  Jeff Law  <law@redhat.com>
29725
29726         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
29727
29728 2010-05-21  Jason Merrill  <jason@redhat.com>
29729
29730         * tree-eh.c (cleanup_is_dead_in): New.
29731         (lower_try_finally): Don't generate a dead cleanup region.
29732         (lower_cleanup): Likewise.
29733
29734 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
29735
29736         PR debug/44223
29737         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
29738         unchain each use from the cyclic next_regno_use chain first.
29739
29740 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
29741
29742         * real: Do not include gmp.h, mpfr.h, and mpc.h.
29743         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
29744         (real_value_negate, real_value_abs): New prototypes.
29745         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
29746         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
29747         new include file for interface between MPFR and REAL_VALUE_TYPE.
29748         * real.c: Include realmpfr.h.
29749         (real_arithmetic2): Remove legacy function.
29750         (real_value_negate): New.
29751         (real_value_abs): New.
29752         (mfpr_from_real, real_from_mpfr): Move from here...
29753         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
29754         * builtins.c: Include realmpfr.h.
29755         * fold-const.c: Include realmpfr.h.
29756         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
29757         (fold_negate_const): Likewise.
29758         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
29759         * toplev.c: Include realmpfr.h.
29760         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
29761         and real_value_negate.
29762         * fixed-value.c (check_real_for_fixed_mode): Likewise.
29763         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
29764         (vfp3_const_double_index): Likewise.
29765         (arm_print_operand): Likewise.
29766         * Makefile.in: Update dependencies.
29767
29768 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
29769
29770         * config/s390/s390.c (override_options): Increase the default
29771         of max-completely-peel-times.
29772
29773 2010-05-21  Julian Brown  <julian@codesourcery.com>
29774             Mark Mitchell  <mark@codesourcery.com>
29775
29776         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
29777         sibling calls for Thumb-1.
29778         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
29779         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
29780         Thumb-2.
29781         (*call_insn, *call_value_insn): Don't use for Thumb-2.
29782         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
29783         for Thumb-2.
29784         (return): New expander.
29785         (*arm_return): New name for ARM return insn.
29786         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
29787
29788 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
29789
29790         * config.gcc (sparc64-*-rtems*): New target.
29791
29792 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
29793
29794         * tree.c (build_function_decl_skip_args): Fix grammar.
29795         (build_function_type_list_1): Fix typos, adjust formatting.
29796
29797 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
29798
29799         * tree.h: Include real.h and fixed-value.h as basic datatypes.
29800         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
29801         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
29802         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
29803         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
29804         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
29805         tree-pretty-print.c, tree-loop-distribution.c,
29806         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
29807         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
29808         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
29809         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
29810         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
29811         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
29812         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
29813         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
29814         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
29815         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
29816         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
29817         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
29818         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
29819         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
29820         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
29821         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
29822         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
29823         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
29824         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
29825         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
29826         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
29827         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
29828         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
29829         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
29830         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
29831         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
29832         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
29833         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
29834         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
29835         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
29836         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
29837         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
29838         config/score/score7.c, config/score/score.c, config/arm/arm.c,
29839         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
29840         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
29841         config/bfin/bfin.c: Clean up redundant includes.
29842         * Makefile.in: Update accordingly.
29843
29844 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
29845
29846         PR middle-end/44204
29847         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
29848         statement has no arguments.
29849
29850 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
29851
29852         PR/44139
29853         * varasm.c (emutls_decl): Merge attributes to new decl.
29854
29855 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
29856
29857         PR middle-end/44101
29858         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
29859         around the uniquized constructor if its type requires a conversion.
29860
29861 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
29862
29863         PR debug/44205
29864         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
29865         at -O0 goto_locus of any of the incoming edges differs from
29866         goto_locus of outgoing edge, or gimple_location of any of the
29867         labels differs.
29868
29869 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
29870
29871         * ira.c (ira_non_ordered_class_hard_regs): Define.
29872         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
29873         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
29874         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
29875         cost of unaligned hard regs when allocating multi-reg pseudos.
29876
29877 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
29878
29879         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
29880         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
29881         for TARGET_NO_FLOAT.
29882         * config/mips/mips.c (mips_file_start): Expand conditional expression
29883         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
29884         (mips_override_options): Move -mno-float override -msoft-float and
29885         -mhard-float.
29886         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
29887         Condition(TARGET_SUPPORTS_NO_FLOAT).
29888         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
29889         __mips_no_float here.
29890         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
29891         (TARGET_SUPPORTS_NO_FLOAT): Define.
29892         * config/mips/sdemtk.opt: Delete.
29893
29894 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
29895
29896         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
29897
29898 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
29899
29900         PR target/43733
29901         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
29902         * configure: Regenerate.
29903         * config.in: Regenerate.
29904         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
29905         instead of sahf only for 64bit targets.
29906
29907 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
29908
29909         PR debug/44178
29910         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
29911         setup_ref_regs for DEBUG_INSNs.
29912
29913 2010-05-20  Jan Hubicka  <jh@suse.cz>
29914
29915         PR middle-end/44197
29916         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
29917
29918 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
29919
29920         PR bootstrap/43870
29921         * df-scan.c (df_ref_compare): Stabilize sort.
29922
29923 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
29924
29925         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
29926         argument.  Don't use DW_OP_piece if offset is non-zero,
29927         put offset into second DW_OP_bit_piece argument.
29928         (dw_sra_loc_expr): Adjust callers.  For memory expressions
29929         compute offset.
29930
29931 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
29932
29933         PR target/44202
29934         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
29935         settings for 16-bit-constant "addo" alternative.
29936
29937 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
29938
29939         * config/mips/mips-dsp.md (add<DSPV:mode>3,
29940         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
29941
29942         PR target/43764
29943         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
29944         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
29945         Use it.
29946
29947 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
29948
29949         * diagnostic.c (FLOAT, FFS): Don't undefine.
29950         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
29951         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
29952         include ordering.
29953
29954 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
29955
29956         * combine.c (propagate_for_debug): Call make_compound_operation
29957         on the source value.
29958         (try_combine): When implementing a split chosen by find_split_point,
29959         either copy i2src or set it to null.  Assert that i2src is not null
29960         before substituting into CALL_INSN_FUNCTION_USAGE.
29961
29962 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
29963
29964         * double-int.h (double_int_ior): New function.
29965         * tree.h (build_int_cst_wide_type): Remove.
29966         * tree.c (build_int_cst_wide_type): Remove.
29967         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
29968         of build_int_cst_wide_type.
29969         * stor-layout.c (set_sizetype): (Ditto.).
29970         * dojump.c (do_jump): Use build_int_cstu instead of
29971         build_int_cst_wide_type.
29972
29973 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
29974
29975         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
29976         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
29977         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
29978         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
29979         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
29980         propagate the 'data' argument to copy_tree_r.
29981         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
29982         Propagate 'data' argument to walk_tree.
29983         (copy_if_shared): New function.
29984         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
29985         (unmark_visited): New function.
29986         (unshare_body): Call copy_if_shared instead of doing it manually.
29987         (unvisit_body): Call unmark_visited instead of doing it manually.
29988
29989 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
29990
29991         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
29992         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
29993         * hooks.c: Likewise.
29994         * target-def.h (TARGET_FOLD_BUILTIN): Define to
29995         hook_tree_tree_int_treep_bool_null.
29996         * target.h (struct gcc_target): Update signature of fold_builtin
29997         field.
29998         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
29999         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
30000         instead of the call expression.
30001         (fold_builtin_call_array): Pass n and argarray directly.
30002         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
30003         consing a list.
30004         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
30005         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
30006         `i' and use it in place of `arity'.
30007         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
30008         Dereference `args' directly.
30009         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
30010
30011 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30012
30013         * doc/sourcebuild.texi (Effective-Target Keywords): Document
30014         3dnow, sse3, sse2.
30015         (Directives): Document optional dg-require-effective-target
30016         selector.
30017
30018 2010-05-19  Richard Guenther  <rguenther@suse.de>
30019
30020         PR lto/44196
30021         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
30022
30023 2010-05-19  Richard Guenther  <rguenther@suse.de>
30024
30025         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
30026         * common.opt (fwhopr=): New.
30027         * opts.c (common_handle_option): Handle OPT_fwhopr.
30028         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
30029         * collect2.c (main): Match -fwhopr*.
30030         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
30031         Execute ltrans stage in parallel when jobs is bigger than 1.
30032
30033 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30034
30035         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
30036         pentiumpro on Solaris 8/x86 with Sun as.
30037         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
30038         hidden alias bug.
30039         (gcc_cv_as_ix86_quad): Check for .quad directive.
30040         * configure: Regenerate.
30041         * config.in: Regenerate.
30042         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
30043
30044 2010-05-19  Martin Jambor  <mjambor@suse.cz>
30045
30046         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
30047         also for indirect edges.  Actual printing moved...
30048         (ipa_print_node_jump_functions_for_edge): ...here.
30049         (ipa_compute_jump_functions): Renamed to
30050         ipa_compute_jump_functions_for_edge and made static.
30051         (ipa_compute_jump_functions): New function.
30052         (make_edge_direct_to_target): Check if the number of arguments on
30053         the newly direct edge is the same as the number of parametrs of
30054         the callee.
30055         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
30056         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
30057         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
30058         analysis functions unconditionally, call the new
30059         ipa_analyze_params_uses on the node instead of every edge.
30060
30061 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
30062
30063         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
30064         to tree.
30065         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
30066         also checks for a constant int vs.  non-constant but
30067         loop-invariant steps.
30068         (find_or_create_group): Change the sort algorithm to only consider
30069         steps that are constant ints.
30070         (idx_analyze_ref): Adopt code to handle a tree instead of a
30071         HOST_WIDE_INT for step.
30072         (gather_memory_references_ref): Handle tree instead of int and be
30073         prepared to see a NULL_TREE.
30074         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
30075         prefetches if the step cannot be calculated at compile time.
30076         (issue_prefetch_ref): Issue prefetches for non-constant but
30077         loop-invariant steps.
30078
30079 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
30080
30081         Revert:
30082         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
30083
30084         * tree.h (build_call_list): Remove.
30085         * tree.c (build_call_list): Remove.
30086
30087 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
30088
30089         * tree.h (build_call_list): Remove.
30090         * tree.c (build_call_list): Remove.
30091
30092 2010-05-18  Jan Hubicka  <jh@suse.cz>
30093
30094         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
30095
30096 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
30097
30098         PR rtl-optimization/43332
30099         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
30100
30101 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
30102
30103         * tree.h (build_int_cstu): Implement as static inline.
30104         * tree.c (build_int_cstu): Remove function.
30105         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
30106         sign extended.
30107
30108 2010-05-18  Richard Guenther  <rguenther@suse.de>
30109
30110         PR lto/44143
30111         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
30112         (debug): Initialize from -save-temps.
30113         (collect_execute): Print command-line when verbose.
30114         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
30115         for ltrans invocation.  Produce -dumpbase flag again.
30116         (process_args): Remove.
30117         (main): Simplify.
30118         * collect2.c (maybe_run_lto_and_relink): Only pass object
30119         files to lto-wrapper.
30120         * gcc.c (LINK_COMMAND_SPEC): Likewise.
30121
30122 2010-05-18  Jan Hubicka  <jh@suse.cz>
30123
30124         * opts.c (decode_options): Do not disable whopr at ipa_cp.
30125         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
30126
30127 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
30128
30129         PR lto/44184
30130         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
30131         in a GIMPLE_ASM.
30132         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
30133         in a GIMPLE_ASM.
30134
30135 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
30136
30137         PR debug/41371
30138         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
30139         rtx_equal_p inline.
30140
30141 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
30142
30143         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
30144         lto-macho as lto_binary_reader.
30145
30146         * darwin.c (darwin_asm_named_section): Do not add assembler comment
30147         after .section directive; just print it before the directive instead.
30148
30149 2010-05-17  Jan Hubicka  <jh@suse.cz>
30150
30151         * cgraph.c (cgraph_create_virtual_clone): Only check
30152         versionable_function_p when not in wpa and checking is enabled.
30153         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
30154         there are no more functions to materialize.
30155
30156 2010-05-17  Jan Hubicka  <jh@suse.cz>
30157
30158         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
30159         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
30160         New functions.
30161         (output_cgraph): Call output_cgraph_opt_summary.
30162         (input_cgrpah): Call input_cgraph_opt_summary.
30163         (output_cgraph_opt_summary_p, output_node_opt_summary,
30164         input_node_opt_summary, input_cgraph_opt_section): New functions.
30165         * lto-section-in.c (lto_section_name): Add cgraphopt.
30166         * tree-inline.c (tree_function_versioning): Handle parm_num.
30167         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
30168         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
30169
30170 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
30171
30172         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
30173         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
30174         the insn to prefetch ratio heuristic to loops with known trip count.
30175
30176 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
30177
30178         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
30179         (schedule_prefetches): Do not generate a prefetch if the unroll factor
30180         is far from what is required by the prefetch.
30181
30182 2010-05-17  Jan Hubicka  <jh@suse.cz>
30183
30184         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
30185         (ipcp_estimate_growth): Likewise.
30186         (ipcp_const_param_count): Likewise.
30187         (ipcp_insert_stage): Likewise.
30188         * ipa-prop.c (visit_load_for_mod_analysis): New function.
30189         (visit_store_addr_for_mod_analysis): Set used flag.
30190         (ipa_detect_param_modifications): Set used flag for SSE params;
30191         update use of walk_stmt_load_store_addr_ops.
30192         (ipa_print_node_params): Print used flag.
30193         (ipa_write_node_info): Stream used flag.
30194         (ipa_read_node_info): Likewise.
30195         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
30196         (ipa_is_param_used): New function.
30197         (lto_ipa_fixup_call_notes): Remove unused declaration.
30198
30199 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30200
30201         PR target/44074
30202         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
30203         * configure: Regenerate.
30204         * config.in: Regenerate.
30205         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
30206         !HAVE_AS_IX86_REP_LOCK_PREFIX.
30207         Don't emit whitespace.
30208         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
30209         (*rep_movsi): Likewise.
30210         (*rep_movsi_rex64): Likewise.
30211         (*rep_movqi): Likewise.
30212         (*rep_movqi_rex64): Likewise.
30213         (*rep_stosdi_rex64): Likewise.
30214         (*rep_stossi): Likewise.
30215         (*rep_stossi_rex64): Likewise.
30216         (*rep_stosqi): Likewise.
30217         (*rep_stosqi_rex64): Likewise.
30218         (*cmpstrnqi_nz_1): Use {%;} after repz.
30219         (*cmpstrnqi_nz_rex_1): Likewise.
30220         (*cmpstrnqi_1): Likewise.
30221         (*cmpstrnqi_rex_1): Likewise.
30222         (*strlenqi_1): Use {%;} after repnz.
30223         (*strlenqi_rex_1): Likewise.
30224         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
30225         (*sync_compare_and_swap<mode>): Likewise.
30226         (sync_double_compare_and_swap<mode>): Likewise.
30227         (*sync_double_compare_and_swapdi_pic): Likewise.
30228         (sync_old_add<mode>): Likewise.
30229         (sync_add<mode>): Likewise.
30230         (sync_sub<mode>): Likewise.
30231         (sync_<code><mode>): Likewise.
30232
30233 2010-05-17  Martin Jambor  <mjambor@suse.cz>
30234
30235         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
30236         otr_token and polymorphic.
30237         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
30238         (cgraph_clone_edge): Copy the above fields.
30239         * tree.c (get_binfo_at_offset): New function.
30240         * tree.h (get_binfo_at_offset): Declare.
30241         * ipa-prop.h (enum jump_func_type): Added known_type jump function
30242         type, reordered items, updated comments.
30243         (union jump_func_value): Added base_type field, reordered fields.
30244         (enum ipa_lattice_type): Moved down in the file.
30245         (struct ipa_param_descriptor): New field polymorphic.
30246         (ipa_is_param_polymorphic): New function.
30247         * ipa-prop.c: Include gimple.h and gimple-fold.h.
30248         (ipa_print_node_jump_functions): Print known type jump functions.
30249         (compute_complex_pass_through): Renamed to...
30250         (compute_complex_assign_jump_func): this.
30251         (compute_complex_ancestor_jump_func): New function.
30252         (compute_known_type_jump_func): Likewise.
30253         (compute_scalar_jump_functions): Create known type and complex ancestor
30254         jump functions.
30255         (ipa_note_param_call): New parameter polymorphic, set the corresponding
30256         flag in the call note accordingly.
30257         (ipa_analyze_call_uses): Renamed to...
30258         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
30259         variable var only in the block where it is used.
30260         (ipa_analyze_virtual_call_uses): New function.
30261         (ipa_analyze_call_uses): Likewise.
30262         (combine_known_type_and_ancestor_jfs): Likewise.
30263         (update_jump_functions_after_inlining): Implemented handling of a
30264         number of new jump function types combination.
30265         (print_edge_addition_message): Removed.
30266         (make_edge_direct_to_target): New function.
30267         (try_make_edge_direct_simple_call): Likewise.
30268         (try_make_edge_direct_virtual_call): Likewise.
30269         (update_call_notes_after_inlining): Renamed to...
30270         (update_indirect_edges_after_inlining): this.  Moved edge creation for
30271         indirect calls to try_make_edge_direct_simple_call, also calls
30272         try_make_edge_direct_virtual_call for virtual calls.
30273         (ipa_print_node_params): Changed the header message.
30274         (ipa_write_jump_function): Stream also known type jump functions.
30275         (ipa_read_jump_function): Likewise.
30276         (ipa_write_indirect_edge_info): Stream new fields in
30277         cgraph_indirect_call_info.
30278         (ipa_read_indirect_edge_info): Likewise.
30279         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
30280         GIMPLE_FOLD_H.
30281
30282 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30283
30284         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
30285
30286 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
30287
30288         * tree.h (CALL_EXPR_ARGS): Delete.
30289         (call_expr_arglist): Delete.
30290         * tree.c (call_expr_arglist): Delete.
30291         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
30292         targetm.fold_builtin.
30293         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
30294         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
30295         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
30296         arglist parameter.  Use CALL_EXPR_ARG.
30297         (picochip_expand_builtin_3op): Likewise.
30298         (picochip_expand_builtin_2opvoid): Likewise.
30299         (picochip_expand_array_get): Likewise.
30300         (picochip_expand_array_put): Likewise.
30301         (picochip_expand_array_testport): Likewise.
30302         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
30303         rather than arglist.
30304         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
30305         CALL_EXPR_ARGS.
30306         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
30307         than TREE_VALUE and TREE_CHAIN.
30308         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
30309         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
30310         the arglist.
30311
30312 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
30313
30314         PR bootstrap/42347
30315         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
30316         to have no fallthru edge.
30317
30318         PR middle-end/44102
30319         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
30320         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
30321         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
30322         add BARRIER after previous bb if needed.
30323
30324 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
30325
30326         * tree.c (build_function_type_list_1): Remove bogus assert condition.
30327
30328 2010-05-17  Alan Modra  <amodra@gmail.com>
30329
30330         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
30331         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
30332         with copy_reg rtx param.
30333         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
30334         Correct cases where code for ABI_V4 did not initialise the reg
30335         used to access frame.  Also leave frame_reg_rtx as sp for large
30336         frames that save no regs.
30337
30338 2010-05-17  Martin Jambor  <mjambor@suse.cz>
30339
30340         PR middle-end/44133
30341         * tree-sra.c (create_access_replacement): New parameter rename, mark
30342         the replaement for renaming only when it is true.
30343         (get_access_replacement): Pass true in the rename parameter of
30344         create_access_replacement.
30345         (get_unrenamed_access_replacement): New function.
30346         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
30347         replacement declaration from it.
30348
30349 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
30350
30351         * function.c (try_fit_stack_local, add_frame_space): New static
30352         functions.
30353         (assign_stack_local_1): Use them.  Look for opportunities to use
30354         space previously wasted on alignment.
30355         * function.h (struct frame_space): New.
30356         (struct rtl_data): Add FRAME_SPACE_LIST member.
30357         * reload1.c (something_was_spilled): New static variable.
30358         (alter_reg): Set it.
30359         (reload): Test it in addition to testing if the frame size changed.
30360
30361 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
30362
30363         * config/s390/s390.c: Define sane prefetch settings and activate
30364         flag_prefetch_loop_arrays on -O3.
30365         * config/s390/s390.h: Declare that read can use write prefetch.
30366
30367 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
30368
30369         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
30370         build.
30371
30372 2010-05-16  Jan Hubicka  <jh@suse.cz>
30373
30374         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
30375         function body; do not check stdarg field of struct function.
30376
30377 2010-05-16  Jan Hubicka  <jh@suse.cz>
30378
30379         * cgraph.c (dump_cgraph_node): Dump versionable flag.
30380         * cgraph.h (cgraph_local_info): Add versionable flag.
30381         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
30382         (ipcp_versionable_function_p): Use it.
30383         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
30384         versionable flag.
30385
30386 2010-05-16  Jan Hubicka  <jh@suse.cz>
30387
30388         * cgraph.c (cgraph_clone_node): Take decl argument and insert
30389         clone into hash when it is different from orig.
30390         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
30391         * cgraph.h (cgraph_clone_node): Update prototype.
30392         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
30393         (lto_cgraph_encoder_delete): Delete body map.
30394         (lto_cgraph_encoder_size): Move to header.
30395         (lto_cgraph_encoder_encode_body_p,
30396         lto_set_cgraph_encoder_encode_body): New.
30397         (lto_output_node): Do not take written_decls argument; output clone_of
30398         pointer.
30399         (add_node_to): Add include_body_argument; call
30400         lto_set_cgraph_encoder_encode_body on master of the clone.
30401         (add_references): Update use of add_node_to.
30402         (compute_ltrans_boundary): Likewise.
30403         (output_cgraph): Do not create written_decls bitmap.
30404         (input_node): Take nodes argument; stream in clone_of correctly.
30405         (input_cgraph_1): Update use of input_node.
30406         * lto-streamer-out.c (lto_output): Use encoder info to decide
30407         what bodies to output.
30408         * ipa-inline.c (cgraph_clone_inlined_nodes,
30409         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
30410         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
30411         (lto_cgraph_encoder_size): Define here.
30412         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
30413         Declare.
30414
30415 2010-05-16  Richard Guenther  <rguenther@suse.de>
30416
30417         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
30418         -fipa-type-escape.
30419         * ipa-type-escape.c (gate_type_escape_vars): Run when
30420         -fipa-struct-reorg runs.
30421         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
30422         * common.opt (fipa-type-escape): Remove.
30423
30424 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
30425
30426         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
30427         (decode_options): Likewise.
30428         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
30429
30430 2010-05-16  Jan Hubicka  <jh@suse.cz>
30431
30432         * ipa.c (function_and_variable_visibility): Also bring local all
30433         aliases.
30434
30435 2010-05-16  Richard Guenther  <rguenther@suse.de>
30436
30437         * alias.c (nonoverlapping_memrefs_p): Remove use of
30438         IPA type-escape information.
30439
30440 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
30441
30442         * c-common.c (c_common_reswords): Add _Static_assert for C.
30443         * c-parser.c (c_token_starts_declaration,
30444         c_parser_next_token_starts_declaration,
30445         c_parser_static_assert_declaration_no_semi,
30446         c_parser_static_assert_declaration): New.
30447         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
30448         Handle static assertions if static_assert_ok.
30449         (c_parser_external_declaration, c_parser_declaration_or_fndef,
30450         c_parser_compound_statement_nostart, c_parser_label,
30451         c_parser_for_statement, c_parser_objc_methodprotolist,
30452         c_parser_omp_for_loop): All callers of
30453         c_parser_declaration_or_fndef changed.
30454         (c_parser_struct_declaration): Handle static assertions.
30455         (c_parser_compound_statement_nostart): Use
30456         c_parser_next_token_starts_declaration and
30457         c_token_starts_declaration to detect start of declarations.
30458         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
30459         Likewise.
30460
30461 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
30462
30463         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
30464         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
30465         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
30466         TARGET_FUNCTION_VALUE_REGNO_P): Define.
30467         (mmix_function_outgoing_value): Rename to...
30468         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
30469         (mmix_function_value_regno_p): Make static.
30470         (mmix_libcall_value): New function.
30471         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
30472         mmix_function_value_regno_p): Remove declaration.
30473
30474 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
30475
30476         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
30477         BUILT_IN_ALLOCA if stack checking is enabled.
30478
30479 2010-05-16  Richard Guenther  <rguenther@suse.de>
30480
30481         * var-tracking.c (vars_copy_1): Inline ...
30482         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
30483         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
30484         (variable_merge_over_cur): Adjust.  Merge asserts.
30485         (variable_merge_over_src): Likewise.
30486         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
30487         (variable_post_merge_new_vals): Merge asserts.
30488         (variable_post_merge_perm_vals): Likewise.
30489         (find_mem_expr_in_1pdv): Likewise.
30490         (dataflow_set_different_value): Remove.
30491         (onepart_variable_different_p): Merge asserts.
30492         (variable_different_p): Likewise.
30493         (dataflow_set_different_1): Inline ...
30494         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
30495         (emit_notes_for_differences_1): Merge asserts.
30496
30497 2010-05-16  Richard Guenther  <rguenther@suse.de>
30498
30499         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
30500         * optabs.c (libfunc_decl_hash): Likewise.
30501         * varasm.c (emutls_decl): Likewise.
30502
30503 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
30504
30505         * c-decl.c: Don't include gimple.h.
30506         (merge_decls): Do not copy gimple_body.
30507
30508 2010-05-15  Jason Merrill  <jason@redhat.com>
30509
30510         * c.opt: Add -fnothrow-opt.
30511
30512 2010-05-15  Jan Hubicka  <jh@suse.cz>
30513
30514         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
30515         analyzed.
30516         * passes.c (ipa_write_summaries): Write all analyzed nodes.
30517
30518 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
30519
30520         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
30521         * Makefile.in: Add it.
30522         Fix all other Makefile dependencies for changes below.
30523         * tree.h: Include it instead of defining VEC primitives here.
30524         * gimple.h: Likewise.
30525         * rtl.h: Likewise.
30526         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
30527         * except.h: Include vecir.h, break dependence on tree.h.
30528
30529         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
30530         Move from here...
30531         * tree-iterator.c: ...to here.
30532         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
30533
30534         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
30535         tm_p.h.
30536         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
30537         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
30538         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
30539         tree-mudflap.h, and target.h.
30540         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
30541         predict.h, tree-inline.h, gimple.h, and langhooks.h.
30542         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
30543         Add FIXME for why gimple.h is still included (should be unnecessary
30544         since GCC 4.5 gimplification unit-at-a-time).
30545         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
30546         * c-pragma.c: Add FIXME for why function.h needs to be included just
30547         for cfun, at front-end level.
30548         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
30549         Do not include ggc.h, but include vecprim.h for VEC(char).
30550         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
30551         Explain why target.h is included.
30552         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
30553         Explain why gimple.h is included.
30554         * c-ppoutput.c: Do not include tm.h.
30555         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
30556         * c-parses.c: Explain why rtl.h is included, and that this (and only
30557         this) is also why tm.h must be included.
30558         Do not include except.h.
30559         * c-lang.c: Do not include ggc.h.
30560
30561 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
30562
30563         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
30564
30565 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
30566
30567         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
30568         unions by default if those structs and unions have no tags.  Do
30569         not condition anonymous struct and unions handling on flag_iso.
30570         Allow anonymous structs and unions for C1X.
30571         (finish_struct): Do not diagnose lack of named fields when
30572         anonymous structs and unions present for C1X.  Accept flexible
30573         array members in structure with anonymous structs or unions but no
30574         directly named fields.
30575         * doc/extend.texi (Unnamed Fields): Update.
30576
30577 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
30578
30579         * gimple.h (compare_field_offset): Rename into...
30580         (gimple_compare_field_offset): ...this.
30581         * gimple.c (compare_field_offset): Rename into...
30582         (gimple_compare_field_offset): ...this.  Compare the full access if
30583         the offset is self-referential.
30584         (gimple_types_compatible_p): Adjust for above renaming.
30585         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
30586         DECL_NONADDRESSABLE_P flag of fields before merging them.
30587
30588 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
30589
30590         * tree.h (ctor_to_list): Delete.
30591         * tree.c (ctor_to_list): Delete.
30592
30593 2010-05-15  Jan Hubicka  <jh@suse.cz>
30594
30595         * ipa-reference.c: Include toplev.h
30596         (is_proper_for_analysis): Only add to all_module_statics
30597         if it is allocated.
30598         (write_node_summary_p, stream_out_bitmap,
30599         ipa_reference_write_optimization_summary,
30600         ipa_reference_read_optimization_summary): New.
30601         (struct ipa_opt_pass_d pass_ipa_reference): Add
30602         optimization summary streaming.
30603         * lto-cgraph.c (referenced_from_this_partition_p,
30604         reachable_from_this_partition_p): New functions.
30605         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
30606         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
30607         * opts.c (decode_options): Enable ipa_reference.
30608         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
30609         * lto-streamer.h (referenced_from_this_partition_p,
30610         reachable_from_this_partition_p): Declare.
30611
30612 2010-05-15  Richard Guenther  <rguenther@suse.de>
30613
30614         PR tree-optimization/44038
30615         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
30616         taking the address of a V_C_E of a constant.
30617
30618 2010-05-14  Jan Hubicka  <jh@suse.cz>
30619
30620         * tree.h (memory_identifier_string): Remove.
30621         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
30622         (ipa_reference_global_vars_info_d): Remove statics_not_read and
30623         statics_not_written.
30624         (ipa_reference_optimization_summary_d): New structure.
30625         (ipa_reference_optimization_summary_t): New type and vector.
30626         (ipa_reference_vars_info_d): Embedd structures instead of using
30627         pointers.
30628         (reference_vars_to_consider): Remove out of GGC space.
30629         (module_statics_escape): Remove.
30630         (global_info_obstack): Rename to ...
30631         (optimization_summary_obstack): ... this one.
30632         (initialization_status_t): Remove.
30633         (memory_identifier_string): Remove.
30634         (get_reference_vars_info): Fix indenting.
30635         (set_reference_vars_info): Likewise.
30636         (get_reference_optimization_summary): New.
30637         (set_reference_optimization_summary): New.
30638         (get_global_reference_vars_info): Remove.
30639         (ipa_reference_get_read_global): Remove.
30640         (ipa_reference_get_written_global): Remove.
30641         (ipa_reference_get_not_read_global): Update.
30642         (ipa_reference_get_not_written_global): Update.
30643         (is_proper_for_analysis): Outlaw addressable.
30644         (propagate_bits): Update for new datastructures.
30645         (analyze_variable): Remove.
30646         (init_function_info): Update for new datastructures.
30647         (clean_function_local_data): Remove.
30648         (clean_function): Remove.
30649         (copy_global_bitmap): Use optimizations_summary_obstack.
30650         (duplicate_node_data): Duplicate optimization summary only.
30651         (remove_node_data): Remove optimization summary only.
30652         (generate_summary): Do not analyze variables; do not compute
30653         module_statics_escape; do not prune solutions by it.
30654         (read_write_all_from_decl): Fix typos in comments.
30655         (propagate): Doscover readonly and nonaddressable first;
30656         update for new datastructures; share global bitmaps.
30657         * ipa-reference.h (ipa_reference_get_read_global,
30658         ipa_reference_get_written_global): Remove.
30659         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
30660         * Makefile.in: Remove ipa-refereference from GT files.
30661
30662 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
30663
30664         PR debug/44112
30665         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
30666         for all SYMBOL_REF_DECLs.
30667
30668 2010-05-14  Jan Hubicka  <jh@suse.cz>
30669
30670         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
30671         (varpool_all_refs_explicit_p): New inline function.
30672         * ipa-reference.c: Update comment.
30673         (module_statics_written): Remove.
30674         (get_static_decl): Remove.
30675         (ipa_init): Do not initialize module_statics_written.
30676         (analyze_function): Likewise.
30677         (generate_summary): Likewise; do not compute module_statics_readonly
30678         and do not update variable flags.
30679         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
30680         * ipa.c: Inlucde flags.h
30681         (cgraph_local_node_p): New.
30682         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
30683         promote functions to local.
30684         (ipa_discover_readonly_nonaddressable_vars): New function.
30685         (function_and_variable_visibility): Use cgraph_local_node_p.
30686         * varpool.c (varpool_finalize_decl): Set force_output for
30687         DECL_PRESERVE_P vars.
30688
30689 2010-05-14  Jan Hubicka  <jh@suse.cz>
30690
30691         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
30692
30693 2010-05-14  Richard Guenther  <rguenther@suse.de>
30694
30695         PR tree-optimization/44119
30696         * tree-ssa-pre.c (eliminate): Properly mark replacement of
30697         a PHI node necessary.
30698
30699 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
30700
30701         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
30702
30703 2010-05-14  Jason Merrill  <jason@redhat.com>
30704
30705         PR c++/44127
30706         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
30707         (gimple_call_set_nothrow): New.
30708         * gimple.c (gimple_build_call_from_tree): Call it.
30709         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
30710
30711         PR c++/44127
30712         * gimplify.c (gimplify_seq_add_stmt): No longer static.
30713         * gimple.h: Declare it.
30714         * gimple.c (gimple_build_eh_filter): No ops.
30715
30716 2010-05-14  Jan Hubicka  <jh@suse.cz>
30717
30718         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
30719         nodes already in queue.
30720         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
30721         re-enqueueing node.
30722
30723 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
30724
30725         PR debug/44136
30726         * cfgexpand.c (expand_debug_expr): If non-memory op0
30727         has BLKmode, return NULL.
30728
30729 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
30730
30731         * config.gcc: Add support for --with-cpu option for bdver1.
30732         * config/i386/i386.h (TARGET_BDVER1): New macro.
30733         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
30734         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
30735         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
30736         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
30737         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
30738         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
30739         (processor_type): Add PROCESSOR_BDVER1.
30740         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
30741         processor_type in config/i386/i386.h.
30742         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
30743         movaps <reg, reg> instead of movapd <reg, reg> when replacing
30744         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
30745         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
30746         to emit packed xor instead of packed double/packed integer
30747         xor for SSE and AVX when moving a zero value.
30748         * config/i386/sse.md: Add check for
30749         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
30750         movapd/movdqa for SSE and AVX.
30751         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
30752         single logical operations i.e and, or and xor instead of packed double
30753         logical operations for SSE and AVX.
30754         * config/i386/i386-c.c (ix86_target_macros_internal):
30755         Add PROCESSOR_BDVER1.
30756         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
30757         (has_fma4, has_xop): New.
30758         * config/i386/i386.c (bdver1_cost): New variable.
30759         (m_BDVER1): New macro.
30760         (m_AMD_MULTIPLE): Add m_BDVER1.
30761         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
30762         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
30763         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
30764         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
30765         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
30766         x86_tune_sse_partial_reg_dependency,
30767         x86_tune_sse_unaligned_load_optimal,
30768         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
30769         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
30770         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
30771         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
30772         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
30773         Enable/disable for bdver1.
30774         (processor_target_table): Add bdver1_cost.
30775         (cpu_names): Add bdver1.
30776         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
30777          processor_alias_table.
30778         (ix86_expand_vector_move_misalign): Change.
30779         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
30780         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
30781         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
30782         of movupd/movdqu for SSE and AVX.
30783         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
30784         (ix86_tune_adjust_cost): Add code for bdver1.
30785         (standard_sse_constant_opcode): Add check for
30786         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
30787         of packed double xor for SSE and AVX.
30788
30789 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
30790
30791         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
30792         result to unsigned.
30793
30794 2010-05-14  Tristan Gingold  <gingold@adacore.com>
30795
30796         * toplev.c (default_debug_hooks): Remove this variable.
30797         (process_options): Remove assignments to default_debug_hooks.
30798
30799 2010-05-14  Martin Jambor  <mjambor@suse.cz>
30800
30801         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
30802         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
30803         * langhooks.h (struct lang_hooks_for_decls): Removed field
30804         fold_obj_type_ref.
30805         * tree.c (free_lang_data): Remove assignment to
30806         lang_hooks.fold_obj_type_ref.
30807         * tree.def (OBJ_TYPE_REF): Update comment.
30808
30809 2010-05-14  Richard Guenther  <rguenther@suse.de>
30810
30811         PR tree-optimization/44124
30812         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
30813
30814 2010-05-14  Alan Modra  <amodra@gmail.com>
30815
30816         PR target/44075
30817         * config/rs6000/rs6000.c (struct machine_function): Reorder
30818         fields for better packing.  Add lr_save_state.
30819         (rs6000_ra_ever_killed): Return lr_save_state if set.
30820         (rs6000_emit_eh_reg_restore): Set lr_save_state.
30821
30822 2010-05-13  Jan Hubicka  <jh@suse.cz>
30823
30824         * varpool.c (decide_is_variable_needed): Drop code checking
30825         TREE_SYMBOL_REFERENCED.
30826
30827 2010-05-13  Jan Hubicka  <jh@suse.cz>
30828
30829         * final.c (output_addr_const): Do not call mark_decl_referenced.
30830         * cgraphunit.c (process_function_and_variable_attributes): Use
30831         mark_needed_node dirrectly.
30832         (assemble_thunk): Do not call mark_decl_referenced.
30833
30834 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
30835
30836         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
30837
30838 2010-05-13  Jeff Law  <law@redhat.com>
30839
30840         * ira-conflicts.c (print_allocno_conflicts): New function broken out
30841         from...
30842         (print_conflicts): Call print_allocno_conflicts.
30843
30844 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
30845
30846         PR debug/44104
30847         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
30848         if it is NULL.
30849
30850 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
30851
30852         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
30853         t-mingw-w64 or t-mingw-w32 for multilib configuration.
30854         * config/i386/t-mingw-w32: New.
30855         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
30856
30857 2010-05-13  Martin Jambor  <mjambor@suse.cz>
30858
30859         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
30860         gimple-fold.c).
30861         * gimple-fold.c (get_base_binfo_for_type): New function.
30862         (gimple_get_relevant_ref_binfo): Likewise.
30863         (gimple_fold_obj_type_ref_known_binfo): Likewise.
30864         (gimple_fold_obj_type_ref): Likewise.
30865         (fold_gimple_call): Simplify condition for folding virtual calls
30866         and call gimple_fold_obj_type_ref.
30867         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
30868         (gimple_fold_obj_type_ref_known_binfo): Likewise.
30869
30870 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
30871
30872         * config/rs6000/rs6000-protos.h
30873         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
30874         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
30875         (rs6000_debug_mode_dependent_address)
30876         (rs6000_mode_dependent_address_ptr): Likewise.
30877
30878 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
30879
30880         PR debug/43983
30881         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
30882         by SRA.
30883         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
30884         * tree-sra.c (create_access_replacement): Call unshare_expr before
30885         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
30886         * dwarf2out.c: Include tree-flow.h.
30887         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
30888         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
30889         Handle DW_OP_bit_piece.
30890         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
30891         construct_piece_list, adjust_piece_list): New functions.
30892         (add_var_loc_to_decl): Handle SRA optimized variables.
30893         Adjust for var_loc_note to loc field renaming.
30894         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
30895         in VAR_LOCATION note.
30896         (new_loc_descr_op_bit_piece): New function.
30897         (dw_sra_loc_expr): New function.
30898         (dw_loc_list): Use it.  Don't handle the last range after the
30899         loop, handle it inside of the loop.  Adjust for var_loc_note
30900         to loc field renaming.
30901         (add_location_or_const_value_attribute): Only special case
30902         single entry loc lists if loc is NOTE_P.  Adjust for
30903         var_loc_note to loc field renaming.
30904         (dwarf2out_var_location): Don't set newloc->var_loc_note
30905         and newloc->next here.
30906
30907 2010-05-12  Jan Hubicka  <jh@suse.cz>
30908
30909         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
30910         flag.
30911         * cgraph.h (cgraph_only_called_directly_p,
30912         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
30913         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
30914         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
30915         (assemble
30916         * ipa.c (cgraph_remove_unreachable_nodes): Use
30917         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
30918         flags.
30919         * tree-inline.c (copy_bb): Check address_taken flag.
30920         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
30921         externally_visible flag.
30922
30923 2010-05-12  Jason Merrill  <jason@redhat.com>
30924
30925         PR bootstrap/44048
30926         PR target/44099
30927         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
30928         * sdbout.c (plain_type_1): Likewise.
30929         * dwarf2out.c (is_base_type): Likewise.
30930         (gen_type_die_with_usage): Likewise.  Generate
30931         DW_TAG_unspecified_type for any LANG_TYPE.
30932
30933 2010-05-12  Jan Hubicka  <jh@suse.cz>
30934
30935         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
30936         indrect edges too.
30937         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
30938         (cgraph_clone_edge): Update.
30939         (cgraph_node_remove_callees): Remove indirect calls too.
30940         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
30941         (cgraph_create_indirect_edge): Update prototype.
30942         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
30943         is_proper_for_analysis.
30944         (add_new_function, visited_nodes, function_insertion_hook_holder,
30945         get_local_reference_vars_info, mark_address_taken, mark_address,
30946         mark_load, mark_store, check_asm_memory_clobber, check_call,
30947         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
30948         (ipa_init): Do not initialize visited_nodes;
30949         function_insertion_hook_holder.
30950         (analyze_variable): Rewrite.
30951         (analyze_function): Rewrite.
30952         (copy_local_bitmap): Remove.
30953         (duplicate_node_dat): Do not duplicate local info.
30954         (generate_summary): Simplify to only walk cgraph.
30955         (write_node_summary_p, ipa_reference_write_summary,
30956         ipa_reference_read_summary): Remove.
30957         (propagate): Do not remove function insertion;
30958         generate summary.
30959         (pass_ipa_reference): NULLify summary handling fields.
30960         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
30961         (input_edge): Input ecf_flags.
30962         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
30963         (update_indirect_edges_after_inlining): Ignore edges with unknown
30964         param.
30965
30966 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
30967
30968         * implicit-zee.c: New file.
30969         * tree-pass.h (pass_implicit_zee): Declare.
30970         * passes.c (init_optimization_passes): Add zee pass.
30971         * common.opt (fzee): New flag.
30972         * timevar.def (TV_ZEE): Define.
30973         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
30974         and beyond.
30975         * Makefile.in (implicit-zee.o): Add new build file.
30976
30977 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
30978             Nathan Froyd  <froydnj@codesourcery.com>
30979
30980         * c-common.c (sync_resolve_params): Remove write-only variable.
30981
30982 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
30983
30984         * target.h (struct gcc_target): Add mode_dependent_address_p field.
30985         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
30986         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
30987         * targhooks.c (default_mode_dependent_address_p): New function.
30988         * targhooks.h (default_mode_dependent_address_p): Declare function.
30989         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
30990         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
30991         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
30992         target hook. Change return type to bool.
30993         * recog.h (mode_dependent_address_p): Change return type to bool.
30994
30995 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
30996             Nathan Froyd  <froydnj@codesourcery.com>
30997
30998         * tree-mudflap.c (build_function_type_0, build_function_type_1,
30999         build_function_type_2, build_function_type_3): Remove.
31000         (mudflap_init): Use build_function_type_list.
31001
31002 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
31003             Nathan Froyd  <froydnj@codesourcery.com>
31004
31005         * coverage.c (build_fn_info_value): Call build_constructor instead of
31006         build_constructor_from_list.
31007         (build_ctr_info_value): Likewise.
31008         (build_gcov_info): Likewise.
31009
31010 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
31011
31012         * tree.c (build_constructor): Compute TREE_CONSTANT for the
31013         resultant constructor.
31014         (build_constructor_single): Don't set TREE_CONSTANT.
31015         (build_constructor_from_list): Don't compute TREE_CONSTANT.
31016
31017 2010-05-12  Jan Hubicka  <jh@suse.cz>
31018
31019         * cgraph.h (struct varpool_node): Add aux.
31020         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
31021         * varpool.c (varpool_remove_node): Do not remove initializer.
31022         (varpool_reset_queue): Export.
31023         (varpool_finalize_decl): Volatile vars are forced to be output.
31024         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
31025         replaced decl.
31026         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
31027         process_references, varpool_can_remove_if_no_refs): New functions.
31028         (cgraph_remove_unreachable_nodes): Handle variables too.
31029
31030 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
31031
31032         PR target/44088
31033         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
31034
31035 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
31036
31037         PR middle-end/44085
31038         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
31039         change value of ORT_TASK.
31040         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
31041         (omp_notice_threadprivate_variable): New function.
31042         (omp_notice_variable): Call it for threadprivate variables.
31043         If enclosing ctx is a task, print enclosing task rather than
31044         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
31045         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
31046         if task has untied clause.
31047
31048         PR debug/42278
31049         * dwarf2out.c (base_type_die): Don't add name attribute here.
31050         (modified_type_die): Instead of sizetype use
31051         its underlying original type.  If a DW_TAG_base_type doesn't
31052         have name added, add __unknown__.
31053         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
31054         always call force_type_die instead.
31055
31056 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
31057
31058         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
31059         for __stack_chk_guard.
31060
31061 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
31062
31063         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
31064         don't call start_source_file debug hook here...
31065         (finish_options): ... but here, after outputting predefined and
31066         command line defines and undefs.
31067
31068         PR middle-end/44071
31069         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
31070         no fallthru edge.
31071         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
31072         optimizing away empty bb with no successors, move over its
31073         footer chain to fallthru predecessor.
31074         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
31075         (rtl_split_edge): For asm goto call patch_jump_insn even if
31076         splitting fallthru edge.
31077
31078         PR c++/44059
31079         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
31080         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
31081         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
31082         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
31083         on DW.ref.* decls.
31084
31085         PR c++/44062
31086         * c-parser.c (c_parser_expression): Mark LHS of a comma
31087         expression as read if it is a decl, handled component or
31088         COMPOUND_EXPR with that on the RHS.
31089         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
31090         if it is a decl or handled component.
31091
31092 2010-05-11  Jan Hubicka  <jh@suse.cz>
31093
31094         * lto-symtab.c (lto_symtab_free): New function.
31095         * lto-streamer.h (lto_symtab_free): Declare.
31096
31097 2010-05-11  Jan Hubicka  <jh@suse.cz>
31098
31099         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
31100         that if function is needed it is reachable.
31101         (lto_output_node): See if it the function is reachable or referenced.
31102         (output_cgraph): Update call of lto_output_node.
31103         * lto-streamer.h (reachable_from_other_partition_p): Declare.
31104
31105 2010-05-11  Jan Hubicka  <jh@suse.cz>
31106
31107         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
31108         Mark as used.
31109
31110 2010-05-11  Jan Hubicka  <jh@suse.cz>
31111
31112         PR tree-optimize/44063
31113         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
31114         queue.
31115         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
31116         limits.
31117         (estimate_function_body_sizes): Compute sizes even when disregarding.
31118
31119 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
31120
31121         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
31122
31123 2010-05-11  Jan Hubicka  <jh@suse.cz>
31124
31125         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
31126         into every boundary.
31127
31128 2010-05-11  Jan Hubicka  <jh@suse.cz>
31129
31130         * matrix-reorg.c (matrix_reorg): Rebuild edges.
31131
31132 2010-05-11  Jan Hubicka  <jh@suse.cz>
31133
31134         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
31135         lto_streamer_cache_delete): Put nodes into heap.
31136         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
31137         heap.
31138
31139 2010-05-11  Jan Hubicka  <jh@suse.cz>
31140
31141         * cgraphbuild.c (cgraph_rebuild_references): New.
31142         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
31143         out extern inlines.
31144         * cgraph.h (cgraph_rebuild_references): Declare.
31145         * tree-inline.c (tree_function_versioning): Use it.
31146         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
31147
31148 2010-05-11  Jan Hubicka  <jh@suse.cz>
31149
31150         * cgraph.c: Include ipa-utils.h
31151         (cgraph_create_virtual_clone): Update references.
31152         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
31153
31154 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
31155
31156         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
31157         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
31158         cache size.
31159
31160 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
31161
31162         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
31163
31164 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
31165
31166         * gcc.c (execute): For -### don't quote arguments that
31167         contain just alphanumerics and _/-. characters.
31168         * doc/invoke.texi: Document that change for -###.
31169
31170         PR debug/44023
31171         * df-problems.c (struct dead_debug): Add to_rescan field.
31172         (dead_debug_init): Clear to_rescan field.
31173         (dead_debug_finish): Rescan all debug insns in to_rescan
31174         bitmap and free the bitmap.
31175         (dead_debug_insert_before): Instead of rescanning debug insns
31176         immediately queue their rescanning until dead_debug_finish.
31177         (df_note_bb_compute): After dead_debug_add do continue instead
31178         of break.
31179
31180 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
31181
31182         PR debug/44028
31183         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
31184         clear also INSN_REG_USE_LIST.
31185
31186 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31187
31188         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
31189
31190 2010-05-10  Jan Hubicka  <jh@suse.cz>
31191
31192         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
31193         commited change.
31194
31195 2010-05-10  Jan Hubicka  <jh@suse.cz>
31196
31197         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
31198         Allocate encoders.
31199         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
31200         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
31201         (lto_streamer_cache_create): Init alloc pool.
31202         (lto_streamer_cache_delete): Free alloc pool.
31203         * lto-streamer.h: Include alloc pool.
31204         (lto_streamer_cache_d): Use alloc pool.
31205         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
31206
31207 2010-05-10  Jan Hubicka  <jh@suse.cz>
31208
31209         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
31210         * cgraphbuild.c: Include except.h
31211         (record_type_list, record_eh_tables): New function.
31212         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
31213
31214 2010-05-10  Jan Hubicka  <jh@suse.cz>
31215
31216         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
31217         __frame_dummy_init_array_entry, force_to_data): Attribute as used
31218         rather than unused.
31219
31220 2010-05-10  Michael Matz  <matz@suse.de>
31221
31222         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
31223         (can_reassociate_p): Use FLOAT_TYPE_P.
31224         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
31225         (vect_force_simple_reduction): ... this.
31226         * tree-parloops.c (gather_scalar_reductions): Use
31227         vect_force_simple_reduction.
31228         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
31229         vect_is_simple_reduction, add modify argument, if true rewrite
31230         "a-b" into "a+(-b)".
31231         (vect_is_simple_reduction, vect_force_simple_reduction): New
31232         functions.
31233         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
31234
31235 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
31236             Vladimir Makarov  <vmakarov@redhat.com>
31237
31238         PR rtl-optimization/44012
31239         * ira-build.c (remove_unnecessary_allocnos): Nullify
31240         regno_allocno_map of the removed allocno.
31241
31242 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31243
31244         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
31245         to /dev/null.
31246         * configure: Regenerate.
31247
31248 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31249
31250         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
31251         unused.
31252         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
31253         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
31254         support in Sun ld.
31255         * configure: Regenerate.
31256
31257 2010-05-10  Richard Guenther  <rguenther@suse.de>
31258
31259         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
31260         marked if the entry identifier is marked.
31261
31262 2010-05-10  Richard Guenther  <rguenther@suse.de>
31263
31264         * c-common.c (struct c_common_attributes): Add fnspec attribute.
31265         (handle_fnspec_attribute): New function.
31266         * gimple.h (gimple_call_return_flags): Declare.
31267         (gimple_call_arg_flags): Likewise.
31268         * gimple.c (gimple_call_arg_flags): New function.
31269         (gimple_call_return_flags): Likewise.
31270         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
31271         New argument flags.
31272         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
31273         return value flags.
31274         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
31275         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
31276         main work to ...
31277         (make_heapvar_for): ... this new function.
31278         (handle_rhs_call): Handle fnspec attribute argument specifiers.
31279         (handle_lhs_call): Likewise.
31280         (find_func_aliases): Adjust.
31281
31282 2010-05-10  Richard Guenther  <rguenther@suse.de>
31283
31284         PR tree-optimization/44050
31285         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
31286
31287 2010-05-10  Wei Guozhi  <carrot@google.com>
31288
31289         PR target/42879
31290         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
31291
31292 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
31293
31294         PR c/10676
31295         * c-typeck.c (lookup_field): Take a type directly.  Update
31296         recursive calls.
31297         (build_component_ref): Update call to lookup_field.
31298         (set_init_label): Use lookup_field to find initialized field.
31299         Handle returned list of fields like a sequence of designators.
31300
31301 2010-05-09  Richard Guenther  <rguenther@suse.de>
31302
31303         PR middle-end/44024
31304         * fold-const.c (tree_single_nonzero_warnv_p): Properly
31305         handle &FUNCTION_DECL.
31306
31307 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
31308
31309         PR c/4784
31310         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
31311         structures and unions recursively.
31312         (detect_field_duplicates): Move duplicate detection with a hash to
31313         detect_field_duplicates_hash.  Always use a hash if anonymous
31314         structures or unions are present.
31315         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
31316         give errors.
31317
31318 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
31319
31320         PR target/44046
31321         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
31322         detect Atom, Core 2 and Core i7.
31323
31324 2010-05-09  Richard Guenther  <rguenther@suse.de>
31325
31326         * gcc.c (store_arg): Handle temporary file deletion for
31327         joined arguments.
31328
31329 2010-05-09  Richard Guenther  <rguenther@suse.de>
31330
31331         PR middle-end/44043
31332         * ipa-inline.c (estimate_function_body_sizes): Return after
31333         disregarding inline limits.
31334
31335 2010-05-09  Richard Guenther  <rguenther@suse.de>
31336
31337         * gcc.c (store_arg): Revert last change.
31338
31339 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
31340
31341         PR middle-end/28685
31342         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
31343         (optimize_ops_list): Call it.
31344
31345 2010-05-08  Richard Guenther  <rguenther@suse.de>
31346
31347         PR tree-optimization/44030
31348         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
31349         NECESSARY flag if we propagate from a inserted expression.
31350
31351 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
31352
31353         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
31354         domain types as equal if they are both PLACEHOLDER_EXPRs.
31355
31356 2010-05-08  Richard Guenther  <rguenther@suse.de>
31357
31358         * lto-wrapper.c (run_gcc): Remove linker output from
31359         command line for LTRANS invocation.
31360
31361 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
31362
31363         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
31364         lto-macho as lto_binary_reader.
31365         * target.h (struct gcc_target): New hooks lto_start and lto_end.
31366         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
31367         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
31368         in lto_start and lto_end calls.
31369         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
31370         magic numbers.
31371         (scan_prog_file): Update is_elf_or_coff call.
31372         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
31373
31374         * collect2.c (main): Fix enum comparison.
31375
31376         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
31377         Add prototypes.
31378         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
31379         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
31380         and TARGET_ASM_LTO_END.
31381         * darwin.c: Include obstack.h and lto-streamer.h.
31382         (lto_section_names_offset, lto_section_names_obstack,
31383         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
31384         global variables.
31385         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
31386         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
31387         to a temporary file.
31388         (darwin_asm_lto_end): New function.  Restore asm_out_file.
31389         (darwin_asm_named_section): For LTO sections, replace the name with
31390         the offset of the section name in a string table, and build this
31391         table.
31392         (darwin_file_start): Initialize global vars for LTO support.
31393         (darwin_file_end): If output to asm_out_file was redirected, append it
31394         to the proper asm_out_file here.  Add the section names section.
31395
31396 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
31397
31398         * c-pragma.c (pending_weak_d, pending_weak): New.
31399         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
31400         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
31401         handle_pragma_weak): Update the uses of pending_weaks.
31402
31403 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
31404
31405         PR documentation/44016
31406         * doc/standards.texi (Standards): Link to unversioned
31407         cxx0x_status.html page.
31408
31409 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
31410
31411         PR target/43708
31412         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
31413         in addition to TREE_USED, to avoid "set but unused" warnings.
31414
31415 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
31416
31417         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
31418         (is_loop_prefetching_profitable): Do not insert prefetches
31419         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
31420         times the prefetch ahead distance.
31421
31422 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
31423
31424         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
31425         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
31426         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
31427         the unroll_factor.
31428
31429 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
31430
31431         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
31432         a diagnostic info when the insn-to-mem ratio is too small.
31433
31434 2010-05-07  Richard Guenther  <rguenther@suse.de>
31435
31436         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
31437         the linker plugin.
31438         (store_arg): Queue temp_filename for deletion instead of
31439         the whole argument.
31440
31441 2010-05-07  Richard Guenther  <rguenther@suse.de>
31442
31443         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
31444         (run_gcc): Handle LTRANS phase invocation.
31445         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
31446
31447 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
31448
31449         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
31450         this is also meaningful on PARM_DECLs and RESULT_DECLs.
31451
31452 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31453
31454         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
31455
31456 2010-05-07  Richard Guenther  <rguenther@suse.de>
31457
31458         PR tree-optimization/44020
31459         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
31460         code when PRE is not yet initialized.
31461
31462 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31463
31464         * config/mips/dbxmdebug.h: Remove.
31465         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
31466
31467 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
31468
31469         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
31470         with null pointer and also warn about ordered comparison of zero with
31471         pointer if -Wextra.
31472
31473 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
31474
31475         * graphite-blocking.c
31476         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
31477         * graphite-clast-to-gimple.c
31478         (clast_to_gcc_expression): Same.
31479         (precision_for_value): Same.
31480         (precision_for_interval): Same.
31481         (gcc_type_for_interval): Same.
31482         (graphite_create_new_guard): Same.
31483         (compute_bounds_for_level): Same.
31484         (graphite_create_new_loop_guard): Same.
31485         * graphite-interchange.c
31486         (build_linearized_memory_access): Same.
31487         (pdr_stride_in_loop): Same.
31488         (memory_strides_in_loop_1): Same.
31489         (memory_strides_in_loop): Same.
31490         (extend_scattering): Same.
31491         (psct_scattering_dim_for_loop_depth): Same.
31492         (pbb_number_of_iterations): Same.
31493         * graphite-poly.h
31494         (debug_iteration_domains): Same.
31495         * graphite-ppl.c
31496         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
31497         (ppl_set_inhomogeneous_gmp): Same.
31498         (ppl_strip_loop): Same.
31499         (ppl_lexico_compare_linear_expressions): Same.
31500         (ppl_read_polyhedron_matrix): Same.
31501         (ppl_max_for_le_pointset): Same.
31502         * graphite-ppl.h
31503         (ppl_read_polyhedron_matrix): Same.
31504         (tree_int_to_gmp): Same.
31505         (gmp_cst_to_tree): Same.
31506         (ppl_set_inhomogeneous): Same.
31507         (ppl_set_inhomogeneous_tree): Same.
31508         (ppl_set_coef): Same.
31509         (ppl_set_coef_tree): Same.
31510         * graphite-sese-to-poly.c
31511         (build_pbb_scattering_polyhedrons): Same.
31512         (build_scop_scattering): Same.
31513         (scan_tree_for_params_right_scev): Same.
31514         (scan_tree_for_params): Same.
31515         (find_params_in_bb): Same.
31516         (find_scop_parameters): Same.
31517         (add_upper_bounds_from_estimated_nit): Same.
31518         (build_loop_iteration_domains): Same.
31519         (add_condition_to_domain): Same.
31520         (pdr_add_memory_accesses): Same.
31521
31522 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
31523
31524         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
31525         CLooG's value_* macros to their respective mpz_* counterparts.
31526         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
31527         (graphite_create_new_loop_guard): Same.
31528         * graphite-interchange.c (build_linearized_memory_access): Same.
31529         (pdr_stride_in_loop): Same.
31530         (memory_strides_in_loop_1): Same.
31531         (1st_interchange_profitable_p): Same.
31532         * graphite-poly.c (extend_scattering): Same.
31533         (psct_scattering_dim_for_loop_depth): Same.
31534         (pbb_number_of_iterations): Same.
31535         (pbb_number_of_iterations_at_time): Same.
31536         * graphite-poly.h (new_1st_loop): Same.
31537         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
31538         (oppose_constraint): Same.
31539         (insert_constraint_into_matrix): Same.
31540         (ppl_set_inhomogeneous_gmp): Same.
31541         (ppl_set_coef_gmp): Same.
31542         (ppl_strip_loop): Same.
31543         (ppl_lexico_compare_linear_expressions): Same.
31544         (ppl_max_for_le_pointset): Same.
31545         (ppl_min_for_le_pointset): Same.
31546         (ppl_build_realtion): Same.
31547         * graphite-ppl.h (gmp_cst_to_tree): Same.
31548         (ppl_set_inhomogeneous): Same.
31549         (ppl_set_inhomogeneous_tree): Same.
31550         (ppl_set_coef): Same.
31551         (ppl_set_coef_tree): Same.
31552         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
31553         (build_scop_scattering): Same.
31554         (add_value_to_dim): Same.
31555         (scan_tree_for_params_right_scev): Same.
31556         (scan_tree_for_params_int): Same.
31557         (scan_tree_for_params): Same.
31558         (find_params_in_bb): Same.
31559         (find_scop_parameters): Same.
31560         (add_upper_bounds_from_estimated_nit): Same.
31561         (build_loop_iteration_domains): Same.
31562         (create_linear_expr_from_tree): Same.
31563         (add_condition_to_domain): Same.
31564         (pdr_add_memory_accesses): Same.
31565
31566 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
31567             Jason Merrill  <jason@redhat.com>
31568
31569         * c-common.c (c_common_reswords): Add nullptr.
31570         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
31571         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
31572         (gen_type_die_with_usage): Likewise.
31573         * dbxout.c (dbxout_type): Likewise.
31574         * sdbout.c (plain_type_1): Likewise.
31575
31576 2010-05-06  Jason Merrill  <jason@redhat.com>
31577
31578         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
31579         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
31580         ret appropriately.
31581         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
31582
31583         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
31584         stripping WITH_SIZE_EXPR.
31585         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
31586         change.
31587
31588 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31589
31590         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
31591         list of obsolete configurations.
31592         Disabled check for obsolete configurations.
31593         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
31594         Removed support for previous versions.
31595         * config/mips/iris.h: Removed.
31596         * config/mips/iris5.h: Removed.
31597         * config/mips/iris6.h: Merged old iris.h contents.
31598         (TARGET_IRIX): Removed.
31599         (DRIVER_SELF_SPECS): Removed mabi=32.
31600         (IDENT_ASM_OP): Removed undef.
31601         (STARTFILE_SPEC): Removed mabi=32.
31602         (ENDFILE_SPEC): Likewise.
31603         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
31604         (MACHINE_TYPE): Update for IRIX 6.5.
31605         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
31606         TARGET_IRIX by TARGET_IRIX6.
31607         (mips_file_start): Likewise.
31608         (mips_output_external): Remove IRIX 5/6 O32 support.
31609         (mips_output_function_prologue): Likewise.
31610         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
31611         TARGET_IRIX6.
31612         (TARGET_CPU_CPP_BUILTINS): Likewise.
31613         (TARGET_IRIX): Removed.
31614         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
31615         (MULTILIB_DIRNAMES): Removed 32.
31616         (MULTILIB_OSDIRNAMES): Removed ../lib.
31617         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
31618         (Specific, mips-sgi-irix5): Document removal.
31619         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
31620         Remove references to older IRIX 6 releases and the O32 ABI.
31621
31622 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
31623
31624         PR bootstrap/43994
31625         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
31626         instead of DF_REF_REAL_REG.
31627
31628 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
31629
31630         PR target/43888
31631         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
31632         handling to still return true for x64 targets.
31633
31634 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
31635
31636         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
31637
31638 2010-05-06  Jan Hubicka  <jh@suse.cz>
31639
31640         PR tree-optimization/43791
31641         * ipa-inline.c (update_caller_keys): Remove bogus
31642         disregard_inline_limits check.
31643
31644 2010-05-06  Michael Matz  <matz@suse.de>
31645
31646         PR tree-optimization/43984
31647         * tree-ssa-pre.c (inserted_phi_names): Remove.
31648         (inserted_exprs): Change to bitmap.
31649         (create_expression_by_pieces): Set bits, don't append to vector.
31650         (insert_into_preds_of_block): Don't handle inserted_phi_names.
31651         (eliminate): Don't look at inserted_phi_names, remove deleted
31652         insns from inserted_exprs.
31653         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
31654         (init_pre, fini_pre): Allocate and free bitmaps.
31655         (execute_pre): Insert insns on edges before elimination.
31656
31657 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
31658
31659         * tree.c (initializer_zerop): Handle STRING_CST.
31660
31661 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
31662
31663         PR 40989
31664         * doc/invoke.texi (Wimplicit): Document as C only.
31665         * opts.c (common_handle_option): Add argument kind.
31666         (handle_option): Rename as read_cmdline_option. Factor out code to...
31667         (handle_option): ... here. New.
31668         (handle_options): Rename as read_cmdline_options.
31669         (decode_options): Update call.
31670         (set_option): Use option index instead of option pointer. Classify
31671         diagnostics correctly.
31672         (enable_warning_as_error): Call handle_option.
31673         * opts.h (set_option): Update declaration.
31674         (handle_option): Declare.
31675         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
31676         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
31677         * c-opts.c (set_Wimplicit): Delete.
31678         (c_family_lang_mask): New static constant.
31679         (c_common_handle_option): Add argument kind. Use handle_option
31680         instead of set_Wimplicit.
31681         (c_common_post_options): warn_implicit and warn_implicit_int
31682         are disabled by default.
31683         * c-common.c (warn_implicit): Do not define here.
31684         * c-common.h (warn_implicit): Do not declare here.
31685         (c_common_handle_option): Update declaration.
31686         * lto-opts.c (lto_reissue_options): Update call to set_option.
31687
31688 2010-05-06  Richard Guenther  <rguenther@suse.de>
31689
31690         PR tree-optimization/43571
31691         * domwalk.c (walk_dominator_tree): Walk the dominator
31692         sons in more optimal order.
31693
31694 2010-05-06  Richard Guenther  <rguenther@suse.de>
31695
31696         PR tree-optimization/43934
31697         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
31698         (stmt_cost): Likewise.
31699         (extract_true_false_args_from_phi): New helper.
31700         (determine_max_movement): For PHI nodes verify we can hoist them
31701         and compute their cost.
31702         (determine_invariantness_stmt): Handle PHI nodes.
31703         (move_computations_stmt): Likewise.  Hoist PHI nodes in
31704         if-converted form using COND_EXPRs.
31705         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
31706         (tree_ssa_lim): Likewise.
31707         * tree-flow.h (tree_ssa_lim): Adjust prototype.
31708         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
31709
31710 2010-05-06  Richard Guenther  <rguenther@suse.de>
31711
31712         PR tree-optimization/43987
31713         * tree-ssa-structalias.c (could_have_pointers): For possibly
31714         address-taken variables force pointers to be recorded.
31715         (create_variable_info_for_1): Likewise.
31716         (push_fields_onto_fieldstack): Pass in wheter all fields
31717         must have pointers.
31718         (find_func_aliases): Query types instead of vars whether
31719         they contain pointers where appropriate.
31720
31721 2010-05-06  Jan Hubicka  <jh@suse.cz>
31722
31723         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
31724         (record_reference, mark_address, mark_load, mark_store): Record
31725         references.
31726         (record_references_in_initializer): Update call of record_references.
31727         (rebuild_cgraph_edges): Remove all references before rebuiding.
31728         * cgraph.c (cgraph_create_node): Clear ref list.
31729         (cgraph_remove_node): Remove references.
31730         (dump_cgraph_node): Dump references.
31731         (cgraph_clone_node): Clone references.
31732         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
31733         (struct cgraph_node, varpool_node): Add ref_lst.
31734         * ipa-ref.c: New file.
31735         * ipa-ref.h: New file.
31736         * ipa-ref-inline.h: New file.
31737         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
31738         (referenced_from_other_partition_p): New function.
31739         (lto_output_varpool_node): Take set arugment; call
31740         referenced_from_other_partition.
31741         (lto_output_ref): New.
31742         (add_references): New.
31743         (output_refs): New.
31744         (output_cgraph): Compute boundary based on references; output refs.
31745         (output_varpool): Accept cgraph_node_set argument.
31746         (input_ref): New.
31747         (input_refs): New.
31748         (input_cgraph): Call input_refs.
31749         * lto-section-in.c (lto_section_name): Add refs.
31750         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
31751         (ipa-ref.o): New file.
31752         * varpool.c (varpool_node): Clear ipa ref list.
31753         (varpool_remove_node): Remove references.
31754         (dump_varpool_node): Dump references.
31755         (varpool_assemble_decl): Only compile finalized ones.
31756         (varpool_extra_name_alias): Initialize ref list.
31757         * lto-streamer.c (lto-get_section_name): Add .refs section.
31758         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
31759         (referenced_from_other_partition_p): Declared.
31760
31761 2010-05-06  Ira Rosen  <irar@il.ibm.com>
31762
31763         PR tree-optimization/43901
31764         * tree-vect-stmts.c (vectorizable_call): Assert that vector
31765         type is not NULL if it's transformation phase, and return
31766         FALSE if it's analysis.
31767         (vectorizable_conversion, vectorizable_operation,
31768         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
31769
31770 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
31771
31772         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
31773         Delete.
31774         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
31775         New define.
31776         * config/mips/mips-protos.h
31777         (mips_small_register_classes_for_mode_p): Delete prototype.
31778
31779 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
31780
31781         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
31782         * config/arm/arm.c (multiple_operation_profitable_p,
31783         compute_offset_order): New static functions.
31784         (load_multiple_sequence, store_multiple_sequence): Use them.
31785         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
31786         memory offsets, not register numbers.
31787         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
31788
31789 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
31790
31791         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
31792         (get_pending_sizes, put_pending_size, put_pending_sizes):
31793         Update the uses of pending_sizes.
31794         * c-decl.c (store_parm_decls): Likewise.
31795         * c-tree.h (struct c_arg_info): Likewise.
31796         * tree.h: Update the prototype for get_pending_sizes and
31797         put_pending_sizes.
31798
31799 2010-05-05  Jason Merrill  <jason@redhat.com>
31800
31801         PR debug/43370
31802         * c-common.c (handle_aligned_attribute): Respect
31803         ATTR_FLAG_TYPE_IN_PLACE.
31804
31805         PR testsuite/43758
31806         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
31807         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
31808         (TARGET_INITIALIZER): Use it.
31809         * c-common.c (attribute_takes_identifier_p): Call it.
31810         * c-common.h: Update prototype.
31811         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
31812         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
31813
31814 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
31815
31816         PR debug/43950
31817         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
31818         DW_ID_down_case for Fortran compilation units.
31819
31820 2010-05-05  Jan Hubicka  <jh@suse.cz>
31821
31822         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
31823         handle aliases.
31824
31825 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
31826
31827         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
31828         a variable-sized RESULT_DECL.
31829
31830 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
31831
31832         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
31833
31834 2010-05-05  Jason Merrill  <jason@redhat.com>
31835
31836         PR c++/43787
31837         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
31838         returns GS_OK.
31839         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
31840
31841 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
31842             Jakub Jelinek  <jakub@redhat.com>
31843
31844         PR debug/43478
31845         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
31846         (dead_debug_init, dead_debug_finish): New functions.
31847         (dead_debug_add, dead_debug_insert_before): Likewise.
31848         (df_note_bb_compute): Initialize a dead_debug object, add dead
31849         debug uses to it, insert debug bind insns before death insns,
31850         reset debug insns that refer to pending uses at the end.
31851         * rtl.h (make_debug_expr_from_rtl): New prototype.
31852         * varasm.c (make_debug_expr_from_rtl): New function.
31853
31854 2010-05-05  Jan Hubicka  <jh@suse.cz>
31855
31856         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
31857         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
31858         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
31859         lto_varpool_encoder_deref, lto_varpool_encoder_size,
31860         lto_varpool_encoder_encode_initializer_p,
31861         lto_set_varpool_encoder_encode_initializer): New functions.
31862         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
31863         call output_varpool.
31864         (input_varpool_node): Do not always set analyzed.
31865         (input_cgraph_1): Return vector of cgraph nodes.
31866         (input_varpool_1): Return vector of varpools.
31867         (input_cgraph): Free the vectors.
31868         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
31869         output only initializers needed.
31870         (lto_output): Only call output_cgraph.
31871         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
31872         * lto-section-out.c (lto_new_out_decl_state): Initialize
31873         state->varpool_node_encoder.
31874         * lto-streamer.h (lto_varpool_encoder_d): New.
31875         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
31876         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
31877         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
31878         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
31879         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
31880         Declare.
31881         (output_varpool, input_varpool): Remove declarations.
31882
31883 2010-05-05  Jan Hubicka  <jh@suse.cz>
31884
31885         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
31886         with body can prevail.
31887
31888 2010-05-05  Jan Hubicka  <jh@suse.cz>
31889
31890         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
31891         size.
31892
31893 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
31894
31895         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
31896
31897         * gengtype.h (erro_at_line): Constify pos argument.
31898
31899         * gengtype.c: Include hashtab.h.
31900         (enum gc_used): Document GC_MAYBE_POINTED_TO.
31901         (error_at_line): Constify pos argument.
31902         (do_typedef): Initialize p->opt field.
31903         (get_file_gtfilename): Fix comment typo.
31904         (struct walk_type_data): Constify line field.
31905         (get_output_file_for_structure): New function.
31906         (write_local_func_for_structure): Constify orig_s argument.
31907         Use get_output_file_for_structure.
31908         (write_func_for_structure): Use get_output_file_for_structure.
31909         (INDENT): New define.
31910         (dump_pair, dump_type, dump_type_list, dump_typekind)
31911         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
31912         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
31913         functions.
31914         (seen_types): New variable.
31915         (main): New variable do_dump.  Process "-d" command line option.
31916         Call dump_everything if dump requested.
31917
31918 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
31919
31920         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
31921         in a temporary instead of invoking the macro multiple times.
31922         (track_expr_p): Likewise.
31923
31924 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
31925
31926         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
31927         per new semantics.
31928         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
31929         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
31930         conditions for printing notes.
31931         * common.opt (-Wcoverage-mismatch): Allow negative, default to
31932         true, update documentation.
31933         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
31934
31935 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
31936
31937         PR c/43981
31938         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
31939         on dimen.
31940
31941 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
31942
31943         PR target/43799
31944         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
31945         (*sse_prologue_save_insn1): Likewise.
31946         (SSE prologue save splitter): Likewise.
31947
31948 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
31949
31950         * tree.c (free_lang_data_in_one_sizepos): New inline function.
31951         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
31952         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
31953         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
31954         all decls.  Call it on DECL_FIELD_OFFSET of fields.
31955         (find_decls_types_r): Follow DECL_VALUE_EXPR.
31956         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
31957
31958 2010-05-04  Martin Jambor  <mjambor@suse.cz>
31959
31960         * tree-sra.c (build_access_from_expr_1): The first parameter type
31961         changed to simple tree.
31962         (build_access_from_expr): Likewise, gsi parameter was eliminated.
31963         (scan_assign_result): Renamed to assignment_mod_result, enum elements
31964         renamed as well.
31965         (build_accesses_from_assign): Removed all parameters except for a
31966         simple gimple statement.  Now returns a simple bool.
31967         (scan_function): All non-analysis parts moved to separate functions
31968         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
31969         parameters and updated both callers.
31970         (sra_modify_expr): Removed parameter data.
31971         (sra_modify_function_body): New function.
31972         (perform_intra_sra): Call sra_modify_function_body to modify the
31973         function body.
31974         (replace_removed_params_ssa_names): Parameter data changed into
31975         adjustments vector.
31976         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
31977         changed the parameter dont_convert to convert with the opposite
31978         meaning.
31979         (sra_ipa_modify_assign): Parameter data changed into adjustments
31980         vector, return value changed to bool.
31981         (ipa_sra_modify_function_body): New function.
31982         (sra_ipa_reset_debug_stmts): Updated a comment.
31983         (modify_function): Use ipa_sra_modify_function_body to modify function
31984         body.
31985
31986 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
31987
31988         PR middle-end/43671
31989         * alias.c (true_dependence): Handle the same VALUE in x and mem.
31990         (canon_true_dependence): Likewise.
31991         (write_dependence_p): Likewise.
31992
31993 2010-05-04  Jan Hubicka  <jh@suse.cz>
31994
31995         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
31996         * cgraphbuild.c: Include ipa-utils.h
31997         (record_reference_ctx): New struct.
31998         (record_reference): Simplify to work on initializers; not statements.
31999         (mark_address, mark_load, mark_store): New.
32000         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
32001         walk PHI nodes too.
32002         (record_references_in_initializer): Update use of record_reference.
32003         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
32004         walk PHI nodes too.
32005
32006 2010-05-04  Jan Hubicka  <jh@suse.cz>
32007
32008         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
32009         node will be removed anyway.
32010         (lto_varpool_replace_node): Allow also unanalyzed nodes;
32011         relink aliases of node into prevailing node.
32012         * varpool.c (varpool_remove_node): Remove aliases properly;
32013         when removing node, remove all its aliases too; remove DECL_INITIAL
32014         of removed node; ggc_free the varpool node.
32015
32016 2010-05-04  Richard Guenther  <rguenther@suse.de>
32017
32018         PR tree-optimization/43879
32019         * tree-ssa-structalias.c (alias_get_name): Use
32020         DECL_ASSEMBLER_NAME if available.
32021         (create_function_info_for): Return the varinfo node.
32022         (ipa_pta_execute): Associate same-body aliases and extra names
32023         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
32024
32025 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
32026
32027         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
32028
32029 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
32030
32031         PR bootstrap/43964
32032         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
32033         only if HONOR_REG_ALLOC_ORDER is not defined.
32034
32035 2010-05-04  Richard Guenther  <rguenther@suse.de>
32036
32037         PR tree-optimization/43949
32038         * tree-vrp.c (extract_range_from_binary_expr): Only handle
32039         TRUNC_MOD_EXPR.
32040
32041 2010-04-26  Jason Merrill  <jason@redhat.com>
32042
32043         * c.opt (-fstrict-enums): New.
32044         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
32045
32046 2010-05-03  David Ung  <davidu@mips.com>
32047             James E. Wilson  <wilson@codesourcery.com>
32048
32049         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
32050         emit the trap instruction before the divide for TUNE_74K.
32051
32052 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
32053
32054         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
32055         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
32056         based on the above, for new target hook.
32057
32058         * hooks.c (hook_bool_mode_true): New generic hook.
32059         * hooks.h (hook_bool_mode_true): Add prototype.
32060
32061         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
32062         target hook.
32063         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
32064         target hook, set to hook_bool_mode_false.
32065         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
32066         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
32067         with targetm.small_register_classes_for_mode_p.
32068         (find_reusable_reload): Likewise.
32069         (combine_reloads): Likewise.
32070         * reload1.c (reload_as_needed): Likewise.
32071         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
32072         * ifcvt.c (noce_process_if_block, check_cond_move_block,
32073         dead_or_predicable): Likewise.
32074         * regmove.c (optimize_reg_copy_1): Likewise.
32075         * calls.c (prepare_call_address): Likewise.
32076         (precompute_register_parameters): Likewise.
32077
32078         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
32079         hook definition.
32080         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
32081         implementation of the hook that considers all register classes
32082         small except for SH64.
32083         (sh_override_options): Use the new hook.
32084         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
32085         Add prototype.
32086
32087         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
32088         hook definition.
32089         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
32090         implementation of the hook that considers all register classes
32091         small for THUMB1.
32092         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
32093         Add prototype.
32094
32095         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
32096         hook definition.
32097         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
32098         implementation of the hook that considers all register classes
32099         small for MIPS16.
32100         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
32101         Add prototype.
32102
32103         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
32104         hook definition.
32105         * config/m32c/m32c.h: Likewise.
32106         * config/pdp11/pdp11.h: Likewise.
32107         * config/avr/avr.h: Likewise.
32108         * config/xtensa/xtensa.h: Likewise.
32109         * config/m68hc11/m68hc11.h: Likewise.
32110         * config/mn10300/mn10300.h: Likewise.
32111         * config/mcore/mcore.h: Likewise.
32112         * config/h8300/h8300.h: Likewise.
32113         * config/bfin/bfin.h: Likewise.
32114
32115         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
32116         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
32117
32118 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
32119
32120         * double-int.h (tree_to_double_int): Remove macro.
32121         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
32122         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
32123         (tree_to_double_int): New function.
32124         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
32125         Move ...
32126         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
32127
32128 2010-05-03  Richard Guenther  <rguenther@suse.de>
32129
32130         PR tree-optimization/43971
32131         * tree-ssa-structalias.c (get_constraint_for_1): Fix
32132         constraints in the !flag_delete_null_pointer_checks case.
32133
32134 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
32135
32136         PR debug/43972
32137         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
32138         result mode matches original rtl mode.
32139
32140 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
32141
32142         PR target/43888
32143         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
32144
32145 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
32146
32147         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
32148         when processing flag options.
32149
32150 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
32151
32152         * gcov-iov.c (main): Change format string placeholder
32153         from %#08x to 0x%08x.
32154         * genchecksum.c (dosum): Change format string placeholder
32155         from %#02x to 0x%02x.
32156
32157 2010-05-02  Richard Guenther  <rguenther@suse.de>
32158
32159         PR tree-optimization/43879
32160         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
32161
32162 2010-05-02  Bruno Haible  <bruno@clisp.org>
32163
32164         * doc/extend.texi (Function Attributes): Fix a typo.
32165
32166 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
32167
32168         Revert:
32169         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
32170         placeholder from 0x%x to %#x.
32171         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
32172         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
32173         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
32174         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
32175         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
32176         * config/i386/i386.c (ix86_target_string): Ditto.
32177         * config/i386/i386.c (output_pic_addr_const): Ditto.
32178         (print_operand): Ditto.
32179
32180 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
32181
32182         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
32183         placeholder from 0x%x to %#x.
32184         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
32185         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
32186         (ASM_OUTPUT_DEBUG_DATA): Ditto.
32187         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
32188         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
32189         * optc-gen.awk: Ditto.
32190         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
32191         (HOST_WIDE_INT_PRINT_HEX): Ditto.
32192         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
32193         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
32194
32195 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
32196
32197         * target.h (struct calls): Add function_value_regno_p field.
32198         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
32199         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
32200         * targhooks.c (default_function_value_regno_p): New function.
32201         * targhooks.h (default_function_value_regno_p): Declare function.
32202         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
32203         * builtins.c. (apply_result_size): (Ditto.).
32204         * combine.c. (likely_spilled_retval_p): (Ditto.).
32205         * mode-switching.c. Include 'target.h'.
32206         (create_pre_exit): Use function_value_regno_p hook.
32207         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
32208         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
32209         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
32210
32211         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
32212         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
32213         (ix86_function_value_regno_p): Declare as static, change argument
32214         type to const unsigned int.
32215         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
32216
32217 2010-05-01  Richard Guenther  <rguenther@suse.de>
32218
32219         PR tree-optimization/43949
32220         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
32221         types.
32222         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
32223
32224 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
32225
32226         * rtl.h (CONST_DOUBLE_P): Define.
32227         (rtx_to_double_int): Declare.
32228         * emit-rtl.c (rtx_to_double_int): New function.
32229         * dwarf2out.c (insert_double): New function.
32230         (loc_descriptor, add_const_value_attribute): Clean up, use
32231         rtx_to_double_int and insert_double functions.
32232
32233 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
32234
32235         * doc/extend.texi (Inline): Add missing return keyword to examples.
32236         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
32237         "command-line".
32238
32239 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
32240
32241         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
32242         the variable part of the offset as well.  Use highest_pow2_factor for
32243         all alignment checks.
32244
32245 2010-04-30  Richard Guenther  <rguenther@suse.de>
32246
32247         PR tree-optimization/43879
32248         * tree-ssa-structalias.c (type_could_have_pointers): Functions
32249         can have pointers.
32250
32251 2010-04-30  Jan Hubicka  <jh@suse.cz>
32252
32253         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
32254         varpool.
32255         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
32256
32257 2010-04-30  Jan Hubicka  <jh@suse.cz>
32258
32259         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
32260         New.
32261         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
32262         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
32263         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
32264         cgraph_node_set_needs_ltrans_p): Remove.
32265
32266 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
32267
32268         * sdbout.c: Include vec.h, do not include varray.h.
32269         (deferred_global_decls, sdbout_global_decl,
32270         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
32271         * toplev.c: Do not include varray.h.
32272         (dump_memory_report): Do not dump VARRAY statistics.
32273         * gengtype.c (open_base_file): Ignore varray.h.
32274         * Makefile.in: Update for abovementioned changes.
32275         Remove all traces of varray.c and varray.h.
32276         * varray.c: Remove file.
32277         * varray.h: Remove file.
32278
32279 2010-04-30  Jan Hubicka  <jh@suse.cz>
32280
32281         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
32282         references.
32283
32284 2010-04-30  Jan Hubicka  <jh@suse.cz>
32285
32286         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
32287         needed.
32288
32289 2010-04-30  Richard Guenther  <rguenther@suse.de>
32290
32291         * tree-ssa-structalias.c (get_constraint_for_1): Generate
32292         constraints for CONSTRUCTOR.
32293
32294 2010-04-30  Richard Guenther  <rguenther@suse.de>
32295
32296         PR lto/43946
32297         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
32298         first after all lowering passes.
32299
32300 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
32301
32302         * toplev.c: Include varray.h for statistics dumping.
32303         * tree.h: Do not declare varray_head_tag.
32304         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
32305         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
32306         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
32307         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
32308         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
32309         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
32310         c-common.c, c-common.h, reg-stack.c, basic-block.h,
32311         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
32312         include varray.h.
32313         * Makefile.in: Update for abovementioned changes.
32314
32315 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
32316
32317         PR debug/43942
32318         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
32319
32320 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
32321
32322         * config/picochip/picochip.c (picochip_legitimize_address): Define.
32323         Use this function to do machine-specific conversion.
32324         (picochip_legitimize_reload_address): Likewise.
32325         (picochip_legitimate_address_p): Check valid base register only if
32326         strict.
32327         (picochip_check_conditional_copy): Check for modw only if opnd is
32328         register.
32329         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
32330         to call the function in c.
32331         * config/picochip/picochip-protos.h
32332         (picochip_legitimize_reload_address): Define.
32333         * config/picochip/picochip.md (supported_compare1): Define.
32334
32335 2010-04-30  Jan Hubicka  <jh@suse.cz>
32336
32337         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
32338         (cgraph_global_info): Remove inlined.
32339         (LTO_cgraph_tag_names): Remove.
32340         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
32341         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
32342         simplify cgraph tags and document.
32343         (lto_output_node): Use only LTO_cgraph_unavail_node and
32344         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
32345         for_functions_valid, global info, process and output flags.
32346         (input_overwrite_node): Initialize estimated stack size and
32347         estimated growth.  Do not read flags we no longer store.
32348         (input_node): Likewise do not read info no longer stored.
32349         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
32350         flag.
32351
32352 2010-04-30  Richard Guenther  <rguenther@suse.de>
32353
32354         PR tree-optimization/43879
32355         * tree-ssa-structalias.c (get_constraint_for_1): Properly
32356         handle non-zero initializers.
32357
32358 2010-04-30  Richard Guenther  <rguenther@suse.de>
32359
32360         * builtins.c (fold_builtin_1): Delete free (0).
32361
32362 2010-04-29  Jan Hubicka  <jh@suse.cz>
32363
32364         * gengtype.c (open_base_files): Add lto-streamer.h
32365         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
32366         (pass_ipa_cp): GGC collect.
32367         * toplev. (compile_file): Do not output symbols.
32368         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
32369         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
32370         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
32371         * lto-section-in.c: Include ggc.h
32372         (lto_new_in_decl_state): Alloc in GGC.
32373         (lto_delete_in_decl_state): Likewise.
32374         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
32375         Collect.
32376
32377 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
32378
32379         PR target/42895
32380         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
32381         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
32382         (HONOR_REG_ALLOC_ORDER): Describe new macro.
32383         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
32384         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
32385         account only if HONOR_REG_ALLOC_ORDER is not defined.
32386         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
32387         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
32388
32389 2010-04-29  Jon Grant  <04@jguk.org>
32390
32391         * collect2.c (vflag): Change type from int to bool.
32392         (debug): Likewise.
32393         (helpflag): New global bool.
32394         (main): Set vflag and debug with boolean, not integer truth values.
32395         Accept new "--help" option and output usage text if found.
32396         * collect2.h (vflag): Update prototype.
32397         (debug): Likewise.
32398
32399 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
32400
32401         PR bootstrap/43936
32402         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
32403
32404 2010-04-29  Richard Guenther  <rguenther@suse.de>
32405
32406         PR bootstrap/43935
32407         * plugin.h (invoke_plugin_callbacks): Annotate arguments
32408         with ATTRIBUTE_UNUSED.
32409
32410 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
32411
32412         PR target/43921
32413         * config/i386/i386.c (get_some_local_dynamic_name): Replace
32414         INSN_P with NONDEBUG_INSN_P.
32415         (distance_non_agu_define): Likewise.
32416         (distance_agu_use): Likewise.
32417
32418 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
32419
32420         From Dominique d'Humieres  <dominiq@lps.ens.fr>
32421         PR bootstrap/43858
32422         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
32423         test_set.
32424
32425 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
32426
32427         * plugin.h (invoke_plugin_callbacks): New inline function.
32428         * plugin.c (flag_plugin_added): New global flag.
32429         (add_new_plugin): Initialize above flag.
32430         (invoke_plugin_callbacks): Rename to ...
32431         (invoke_plugin_callbacks_full): ... this.
32432
32433 2010-04-28  Jan Hubicka  <jh@suse.cz>
32434
32435         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
32436         (lto_varpool_replace_node): New.
32437         (lto_symtab_resolve_symbols): Resolve varpool nodes.
32438         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
32439         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
32440         * cgraph.h (varpool_node_ptr): New type.
32441         (varpool_node_ptr): New vector.
32442         (varpool_node_set_def): New structure.
32443         (varpool_node_set): New type.
32444         (varpool_node_set): New vector.
32445         (varpool_node_set_element_def): New structure.
32446         (varpool_node_set_element, const_varpool_node_set_element): New types.
32447         (varpool_node_set_iterator): New type.
32448         (varpool_node): Add prev pointers, add used_from_other_partition,
32449         in_other_partition.
32450         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
32451         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
32452         varpool_get_node, varpool_remove_node): Declare.
32453         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
32454         varpool_node_set_size): New inlines.
32455         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
32456         * tree-pass.h (varpool_node_set_def): Forward declare.
32457         (ipa_opt_pass_d): Summary writting takes vnode sets too.
32458         (ipa_write_optimization_summaries): Update prototype.
32459         * ipa-cp.c (ipcp_write_summary): Update.
32460         * ipa-reference.c (ipa_reference_write_summary): Update.
32461         * lto-cgraph.c (lto_output_varpool_node): New static function.
32462         (output_varpool): New function.
32463         (input_varpool_node): New static function.
32464         (input_varpool_1): New function.
32465         (input_cgraph): Input varpool.
32466         * ipa-pure-const.c (pure_const_write_summary): Update.
32467         * lto-streamer-out.c (lto_output): Update, output varpool too.
32468         (write_global_stream): Kill WPA hack.
32469         (produce_asm_for_decls): Update.
32470         (output_alias_pair_p): Handle variables.
32471         (output_unreferenced_globals): Output only needed partition of varpool.
32472         * ipa-inline.c (inline_write_summary): Update.
32473         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
32474         cgraph.
32475         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
32476         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
32477         varpool_node_set_new, varpool_node_set_add,
32478         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
32479         debug_varpool_node_set): New functions.
32480         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
32481         (execute_one_pass): Process new decls too.
32482         (ipa_write_summaries_2): Pass around vsets.
32483         (ipa_write_summaries_1): Likewise.
32484         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
32485         to add.
32486         (ipa_write_optimization_summaries_1): Pass around vsets.
32487         (ipa_write_optimization_summaries): Likewise.
32488         * varpool.c (varpool_get_node): New.
32489         (varpool_node): Update doubly linked lists.
32490         (varpool_remove_node): New.
32491         (dump_varpool_node): More dumping.
32492         (varpool_enqueue_needed_node): Update doubly linked lists.
32493         (decide_is_variable_needed): Kill ltrans hack.
32494         (varpool_finalize_decl): Kill lto hack.
32495         (varpool_assemble_decl): Skip decls in other partitions.
32496         (varpool_assemble_pending_decls): Update doubly linkes lists.
32497         (varpool_empty_needed_queue): Likewise.
32498         (varpool_extra_name_alias): Likewise.
32499         * lto-streamer.c (lto_get_section_name): Add vars section.
32500         * lto-streamer.h (lto_section_type): Update.
32501         (output_varpool, input_varpool): Declare.
32502
32503 2010-04-28  Mike Stump  <mikestump@comcast.net>
32504
32505         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
32506
32507 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
32508
32509         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
32510         record or union type with RECORD_OR_UNION_TYPE_P predicate.
32511         (lto_input_ts_type_tree_pointers): Likewise.
32512         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
32513         (lto_output_ts_type_tree_pointers): Likewise.
32514
32515 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
32516
32517         Uniquization of constants at the Tree level
32518         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
32519         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
32520         bit to the end.
32521         (tree_output_constant_def): Declare.
32522         * gimplify.c (gimplify_init_constructor): When using block copy, first
32523         uniquize the constant constructor on the RHS.
32524         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
32525         DECL_IN_CONSTANT_POOL flag.
32526         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
32527         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
32528         constant pool.
32529         (assemble_variable): Deal with symbols belonging to the tree constant
32530         pool.
32531         (get_constant_section): Add ALIGN parameter and simplify.
32532         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
32533         (assemble_constant_contents): Use the expression of the VAR_DECL.
32534         (output_constant_def_contents): Use the alignment of the VAR_DECL.
32535         (tree_output_constant_def): New global function.
32536         (mark_constant): Use the expression of the VAR_DECL.
32537         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
32538         its expression.
32539         (output_object_block): Likewise and assemble the expression.
32540
32541 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
32542
32543         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
32544         hash_tree, eq_tree): New tree hash table.
32545         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
32546         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
32547         lto_orig_address_remove): Reimplement.
32548
32549 2010-04-28  Xinliang David Li  <davidxl@google.com>
32550
32551         PR c/42643
32552         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
32553         (compute_uninit_opnds_pos): New function.
32554         (is_non_loop_exit_postdominating): New function.
32555         (compute_control_dep_chain): New function.
32556         (find_pdom): New function.
32557         (convert_control_dep_chain_into_preds): New function.
32558         (find_predicates): New function.
32559         (find_control_equiv_block): New function.
32560         (collect_phi_def_edges): New function.
32561         (find_def_preds): New function.
32562         (find_dom): New function.
32563         (dump_predicates): New function.
32564         (get_cmp_code): New function.
32565         (is_value_included_in): New function.
32566         (find_matching_predicate_in_rest_chains): New function.
32567         (use_pred_not_overlap_with_undef_path_pred): New function.
32568         (is_use_properly_guarded): New function.
32569         (normalize_cond_1): New function.
32570         (is_and_or_or): New function.
32571         (normalize_cond): New function.
32572         (is_gcond_subset_of): New function.
32573         (is_subset_of_any): New function.
32574         (is_or_set_subset_of): New function.
32575         (is_and_set_subset_of): New function.
32576         (is_norm_cond_subset_of): New function.
32577         (is_pred_expr_subset_of): New function.
32578         (is_pred_chain_subset_of): New function.
32579         (is_included_in): New function.
32580         (is_superset_of): New function.
32581         (find_uninit_use): New function.
32582         (warn_uninitialized_phi): New function.
32583         (compute_possibly_undefined_names): New function.
32584         (ssa_undefined_value_p): New function.
32585         (execute_late_warn_uninitialized): New function.
32586         * tree-ssa.c (ssa_undefined_value_p): Removed.
32587         (warn_uninit): Changed to extern.
32588         (warn_uninitialized_phi): Removed.
32589         (warn_uninitialized_vars): Changed to extern.
32590         (execute_late_warn_uninitialized): Removed
32591         * tree-flow.h: Add new prototypes.
32592         * timevar.def: Add new time variable.
32593         * Makefile.in: Add new build file.
32594
32595 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
32596
32597         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
32598         type if available.
32599
32600 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32601
32602         PR target/22224
32603         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
32604
32605 2010-04-28  Martin Jambor  <mjambor@suse.cz>
32606
32607         * cgraph.h (struct cgraph_node): New field indirect_calls.
32608         (struct cgraph_indirect_call_info): New type.
32609         (struct cgraph_edge): Removed field indirect_call. New fields
32610         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
32611         (cgraph_create_indirect_edge): Declare.
32612         (cgraph_make_edge_direct): Likewise.
32613         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
32614         * ipa-prop.h (struct ipa_param_call_note): Removed.
32615         (struct ipa_node_params): Removed field param_calls.
32616         (ipa_create_all_structures_for_iinln): Declare.
32617         * cgraph.c: Described indirect edges and uids in initial comment.
32618         (cgraph_add_edge_to_call_site_hash): New function.
32619         (cgraph_edge): Search also among the indirect edges, use
32620         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
32621         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
32622         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
32623         site hash.
32624         (initialize_inline_failed): Assign a reason to indirect edges.
32625         (cgraph_create_edge_1): New function.
32626         (cgraph_create_edge): Moved some functionality to
32627         cgraph_create_edge_1.
32628         (cgraph_create_indirect_edge): New function.
32629         (cgraph_edge_remove_callee): Add an assert checking for
32630         non-indirectness.
32631         (cgraph_edge_remove_caller): Special-case indirect edges.
32632         (cgraph_remove_edge): Likewise.
32633         (cgraph_set_edge_callee): New function.
32634         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
32635         (cgraph_make_edge_direct): New function.
32636         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
32637         the declaration of the call statement matches.
32638         (cgraph_node_remove_callees): Special-case indirect edges.
32639         (cgraph_clone_edge): Likewise.
32640         (cgraph_clone_node): Clone also the indirect edges.
32641         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
32642         indirect_call, dump count of indirect_calls edges.
32643         * ipa-prop.c (iinlining_processed_edges): New variable.
32644         (ipa_note_param_call): Create indirect edges instead of
32645         creating notes.  New parameter node.
32646         (ipa_analyze_call_uses): New parameter node, pass it on to
32647         ipa_note_param_call.
32648         (ipa_analyze_stmt_uses): Likewise.
32649         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
32650         (print_edge_addition_message): Work on edges rather than on notes.
32651         (update_call_notes_after_inlining): Likewise, renamed to
32652         update_indirect_edges_after_inlining.
32653         (ipa_create_all_structures_for_iinln): New function.
32654         (ipa_free_node_params_substructures): Do not free notes.
32655         (ipa_edge_duplication_hook): Propagate bits within
32656         iinlining_processed_edges bitmap.
32657         (ipa_node_duplication_hook): Do not duplicate notes.
32658         (free_all_ipa_structures_after_ipa_cp): Renamed to
32659         ipa_free_all_structures_after_ipa_cp.
32660         (free_all_ipa_structures_after_iinln): Renamed to
32661         ipa_free_all_structures_after_iinln.
32662         (ipa_write_param_call_note): Removed.
32663         (ipa_read_param_call_note): Removed.
32664         (ipa_write_indirect_edge_info): New function.
32665         (ipa_read_indirect_edge_info): Likewise.
32666         (ipa_write_node_info): Do not stream notes, do stream information
32667         in indirect edges.
32668         (ipa_read_node_info): Likewise.
32669         (lto_ipa_fixup_call_notes): Removed.
32670         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
32671         * ipa-inline.c (pass_ipa_inline): Likewise.
32672         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
32673         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
32674         * tree-inline.c (copy_bb): Removed an unnecessary double check for
32675         is_gimple_call.
32676         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
32677         edges.
32678         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
32679         (output_cgraph): Stream also indirect edges.
32680         (lto_output_edge): Added capability to stream indirect edges.
32681         (input_edge): Likewise.
32682         (input_cgraph_1): Likewise.
32683         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
32684         of indirect edges.
32685
32686 2010-04-28  Richard Guenther  <rguenther@suse.de>
32687
32688         PR tree-optimization/43879
32689         PR tree-optimization/43909
32690         * tree-ssa-structalias.c (struct variable_info): Add
32691         only_restrict_pointers flag.
32692         (new_var_info): Initialize it.  Increment stats.total_vars here.
32693         (create_function_info_for): Do not increment stats.total_vars here.
32694         (get_function_part_constraint): Fix build with C++.
32695         (insert_into_field_list): Remove.
32696         (push_fields_onto_fieldstack): Properly merge fields.
32697         (create_variable_info_for): Split and simplify.
32698         (create_variable_info_for_1): New piece.
32699         (intra_create_variable_infos): Properly make restrict constraints
32700         from parameters.
32701
32702 2010-04-28  Richard Guenther  <rguenther@suse.de>
32703
32704         PR c++/43880
32705         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
32706
32707 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32708             Jan Hubicka  <hubicka@ucw.cz>
32709
32710         * doc/invoke.texi (-Wsuggest-attribute=const,
32711         -Wsuggest-attribute=pure): Document.
32712         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
32713         (function_always_visible_to_compiler_p,
32714         suggest_attribute, warn_function_pure, warn_function_const):
32715         New functions.
32716         (check_call): Improve debug info.
32717         (analyze_function): Do not check availability.
32718         (add_new_function): Check availability.
32719         (propagate): Output warnings.
32720         (skip_function_for_local_pure_const): New function.
32721         (local_pure_const): Use it; output warnings.
32722         * common.opt (Wsuggest-attribute=const,
32723         Wsuggest-attribute=pure): New.
32724
32725 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
32726
32727         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
32728         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
32729         or DW_CFA_def_cfa_offset{,_sf}.
32730
32731 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
32732
32733         * tree.h: Fix truncated long macros.
32734
32735 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
32736
32737         * collect2.c (TARGET_64BIT): Redefine to target's default.
32738         * tlink.c: Likewise.
32739         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
32740         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
32741         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
32742         for underscoring __USER_LABEL_PREFIX__.
32743         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
32744         (SUB_LINK_ENTRY32): New.
32745         (SUB_LINK_ENTRY64): New.
32746         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
32747         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
32748         (SUB_LINK_ENTRY64): New.
32749         (SUB_LINK_ENTRY): New.
32750         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
32751         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
32752         x64 target is choosen.
32753         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
32754         * configure: Regenerated.
32755         * configure.ac (leading-mingw64-underscores): Option added.
32756
32757 2010-04-27  Jan Hubicka  <jh@suse.cz>
32758
32759         * doc/invoke.texi (-fipa-profile): Document.
32760         * opts.c (decode_options): Enable ipa-profile at -O1.
32761         * timevar.def (TV_IPA_PROFILE): Define.
32762         * common.opt (fipa-profile): Add.
32763         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
32764         flag for clones.
32765         (cgraph_propagate_frequency): Handle only local ones.
32766         * tree-pass.h (pass_ipa_profile): Declare.
32767         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
32768         (pass_ipa_profile): Use TV_IPA_PROFILE.
32769         * ipa.c (ipa_profile): New function.
32770         (gate_ipa_profile): Likewise.
32771         (pass_ipa_profile): New global variable.
32772         * passes.c (pass_ipa_profile): New.
32773
32774 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
32775
32776         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
32777
32778 2010-04-27  Martin Jambor  <mjambor@suse.cz>
32779
32780         PR middle-end/43812
32781         * ipa.c (dissolve_same_comdat_group_list): New function.
32782         (function_and_variable_visibility): Call
32783         dissolve_same_comdat_group_list when comdat group contains external or
32784         newly local nodes.
32785         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
32786         lists are circular and that they contain only DECL_ONE_ONLY nodes.
32787
32788 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
32789
32790         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
32791         (const_hash_1) <VECTOR_CST>: New case.
32792         (compare_constant) <VECTOR_CST>: Likewise.
32793         <ADDR_EXPR>: Deal with LABEL_REFs.
32794         (copy_constant) <VECTOR_CST>: New case.
32795
32796 2010-04-27  Jan Hubicka  <jh@suse.cz>
32797
32798         * cgraph.c (cgraph_propagate_frequency): New function.
32799         * cgraph.h (cgraph_propagate_frequency): Declare.
32800         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
32801         cgraph_propagate_frequency.
32802
32803 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
32804
32805         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
32806
32807 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
32808
32809         PR target/40657
32810         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
32811         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
32812         here to determine which regs to push and how much stack to reserve.
32813
32814 2010-04-27  Jie Zhang  <jie@codesourcery.com>
32815
32816         * doc/gimple.texi (gimple_statement_with_ops): Remove
32817         addresses_taken field.
32818         (gimple_statement_with_memory_ops): Likewise.
32819
32820 2010-04-27  Jan Hubicka  <jh@suse.cz>
32821
32822         * tree-inline.c (eni_inlining_weights): Remove.
32823         (estimate_num_insns): Special case more builtins.
32824
32825 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
32826
32827         PR c/32207
32828         * c-typeck.c (build_binary_op): Move forward check for comparison
32829         pointer with null pointer constant and adjust the diagnostic message.
32830
32831 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
32832
32833         PR lto/42776
32834         * configure.ac (gcc_cv_as_section_has_align): Set if installed
32835         binutils supports extended .section directive needed by LTO, or
32836         warn if older binutils found.
32837         (LTO_BINARY_READER): New AC_SUBST'd variable.
32838         (LTO_USE_LIBELF): Likewise.
32839         * config.gcc (lto_binary_reader): New target-specific configure
32840         variable.
32841         * Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
32842         (LTO_USE_LIBELF): Likewise.
32843         * configure: Regenerate.
32844
32845         * collect2.c (is_elf): Rename from this ...
32846         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
32847          object files in addition to ELF-formatted ones.
32848         (scan_prog_file): Caller updated.  Also allow for LTO info marker
32849         symbol to be prefixed or not by an extra underscore.
32850
32851         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
32852         * config/i386/winnt.c: Also #include lto-streamer.h
32853         (i386_pe_asm_named_section): Specify 1-byte section alignment for
32854         LTO named sections.
32855         (i386_pe_asm_output_aligned_decl_common): Add comment.
32856         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
32857
32858 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
32859
32860         PR target/43889
32861         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
32862         Add missing earlyclobber for second alternative.
32863
32864 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
32865
32866         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
32867         bits for artificial defs at the top of the block.
32868         * fwprop.c (single_def_use_enter_block): Don't call it.
32869
32870 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
32871
32872         PR 43715
32873         * configure.ac: Use "$gcc_cv_nm -g" on darwin
32874         instead of "$gcc_cv_objdump -T".
32875         Use "-undefined dynamic_lookup" on darwin.
32876         * configure: Regenerate.
32877
32878 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
32879
32880         PR c/43893
32881         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
32882
32883 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
32884
32885         * c-parser.c (struct c_token): Move location field up.
32886         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
32887         (struct c_declspecs): Convert typespec_word, storage_class, and
32888         default_int_p into bitfields.
32889         (struct c_declarator): Move loc field up.
32890
32891 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
32892
32893         * cfgloop.h (struct loop): Move can_be_parallel field up.
32894         * ipa-prop.h (struct ip_node_params): Move bitfields up.
32895         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
32896         down.
32897         (struct iv_cand): Convert pos field into a bitfield.
32898         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
32899         field up.
32900         (struct _stmt_vec_info): Shuffle fields for better packing.
32901
32902 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
32903
32904         * varasm.c (IN_NAMED_SECTION): Remove guard.
32905         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
32906         (IN_NAMED_SECTION_P): ...this.
32907         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
32908         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
32909
32910 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
32911
32912         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
32913         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
32914         of shadowing it.  Fix comments.
32915
32916 2010-04-26  Jan Hubicka  <jh@suse.cz>
32917
32918         * cgraph.c (cgraph_create_node): Set node frequency to normal.
32919         (cgraph_clone_node): Copy function frequency.
32920         * cgraph.h (node_frequency): New enum
32921         (struct cgraph_node): Add.
32922         * final.c (rest_of_clean_state): Update.
32923         * lto-cgraph.c (lto_output_node): Output node frequency.
32924         (input_overwrite_node): Input node frequency.
32925         * tre-ssa-loop-ivopts (computation_cost): Update.
32926         * lto-streamer-out.c (output_function): Do not output function
32927         frequency.
32928         * predict.c (maybe_hot_frequency_p): Update and handle functions
32929         executed once.
32930         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
32931         attribute lookup.
32932         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
32933         (compute_function_frequency): Set noreturn functions to be executed
32934         once.
32935         (choose_function_section): Update.
32936         * lto-streamer-in.c (input_function): Do not input function frequency.
32937         * function.c (allocate_struct_function): Do not initialize function
32938         frequency.
32939         * function.h (function_frequency): Remove.
32940         (struct function): Remove function frequency.
32941         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
32942         (try_update): Update.
32943         * tree-inline.c (initialize_cfun): Do not update function frequency.
32944         * passes.c (pass_init_dump_file): Update.
32945         * i386.c (ix86_compute_frame_layout): Update.
32946         (ix86_pad_returns): Update.
32947
32948 2010-04-26  Jie Zhang  <jie@codesourcery.com>
32949
32950         PR tree-optimization/43833
32951         * tree-vrp.c (range_int_cst_p): New.
32952         (range_int_cst_singleton_p): New.
32953         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
32954         when both operands are constants.  Use range_int_cst_p in
32955         BIT_IOR_EXPR case.
32956
32957 2010-04-26  Jan Hubicka  <jh@suse.cz>
32958
32959         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
32960
32961 2010-04-26  Richard Guenther  <rguenther@suse.de>
32962
32963         PR lto/43080
32964         * gimple.c (gimple_decl_printable_name): Deal gracefully
32965         with a NULL DECL_NAME.
32966
32967 2010-04-26  Richard Guenther  <rguenther@suse.de>
32968
32969         PR lto/42425
32970         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
32971         if emitting debug information and it is either a function
32972         or a namespace decl.
32973
32974 2010-04-26  Ira Rosen  <irar@il.ibm.com>
32975
32976         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
32977         determine if the statement is vectorizable, and a macro to access it.
32978         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
32979         Skip statements that can't be vectorized. If the analysis fails,
32980         mark the statement as unvectorizable if vectorizing basic block.
32981         (vect_compute_data_refs_alignment): Likewise.
32982         (vect_verify_datarefs_alignment): Skip statements marked as
32983         unvectorizable. Add print.
32984         (vect_analyze_group_access): Skip statements that can't be
32985         vectorized. If the analysis fails, mark the statement as
32986         unvectorizable if vectorizing basic block.
32987         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
32988         * tree-vect-stmts.c (vectorizable_store): Fix the number of
32989         generated stmts for SLP.
32990         (new_stmt_vec_info): Initialize the new field.
32991         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
32992         statements marked as unvectorizable.
32993
32994 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
32995
32996         * c-common.c (flag_isoc1x): New.
32997         (flag_isoc99): Update comment.
32998         * c-common.h (flag_isoc1x): New.
32999         (flag_isoc99): Update comment.
33000         * c-cppbuiltin.c (builtin_define_float_constants): Also define
33001         __<type>_DECIMAL_DIG__.
33002         * c-opts.c (set_std_c1x): New.
33003         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
33004         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
33005         * c.opt (-std=c1x, -std=gnu1x): New options.
33006         * doc/cpp.texi: Mention -std=c1x.
33007         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
33008         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
33009         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
33010         * doc/standards.texi: Mention C1X.
33011         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
33012         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
33013         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
33014         Define for C1X.
33015
33016 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
33017
33018         * config/i386/gmon-sol2.c (_mcleanup): Change format string
33019         placeholder from 0x%x to %#x.
33020         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
33021         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
33022         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
33023         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
33024         * config/i386/i386.c (ix86_target_string): Ditto.
33025         (output_pic_addr_const): Ditto.
33026         (print_operand): Ditto.
33027
33028 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
33029
33030         * combine.c (find_split_point): Add third argument.  Use it
33031         to find nested multiply-accumulate instructions.  Adjust calls.
33032         (try_combine): Adjust call to find_split_point.
33033
33034 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
33035
33036         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
33037
33038 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
33039
33040         PR tree-optimization/41442
33041         * fold-const.c (merge_truthop_with_opposite_arm): New function.
33042         (fold_binary_loc): Call it.
33043
33044 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33045
33046         * toplev.c (general_init): Set default for fdiagnostics-show-option.
33047         * opts.c (common_handle_option): Allow disabling it.
33048         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
33049
33050 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
33051
33052         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
33053         between modes if both types are integral.
33054
33055 2010-04-23  Richard Guenther  <rguenther@suse.de>
33056
33057         PR tree-optimization/43572
33058         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
33059
33060 2010-04-23  Richard Guenther  <rguenther@suse.de>
33061
33062         PR lto/43455
33063         * tree-inline.c (tree_can_inline_p): Also check compatibility
33064         of return types.
33065
33066 2010-04-23  Martin Jambor  <mjambor@suse.cz>
33067
33068         PR tree-optimization/43846
33069         * tree-sra.c (struct access): New flag grp_assignment_read.
33070         (build_accesses_from_assign): Set grp_assignment_read.
33071         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
33072         (enum mark_read_status): New type.
33073         (analyze_access_subtree): Propagate grp_assignment_read, create
33074         accesses also if both direct_read and root->grp_assignment_read.
33075
33076 2010-04-23  Martin Jambor  <mjambor@suse.cz>
33077
33078         PR middle-end/43835
33079         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
33080         function does not have type attributes.
33081
33082 2010-04-23  Richard Guenther  <rguenther@suse.de>
33083
33084         PR lto/42653
33085         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
33086         of FUNCTION_DECLs.
33087
33088 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
33089
33090         * sese.h (create_if_region_on_edge): Remove.
33091
33092         * sese.c (create_if_region_on_edge): Make static.
33093
33094         * tree-inline.c: Do not include ggc.h.
33095
33096         * expr.c: Do not include ggc.h.
33097
33098         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
33099         dependencies.
33100
33101 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
33102
33103         PR target/43744
33104         * config/sh/sh.c (find_barrier): Don't emit a constant pool
33105         in the middle of insns for casesi_worker_2.
33106
33107 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
33108
33109         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
33110
33111 2010-04-22  Ira Rosen  <irar@il.ibm.com>
33112
33113         PR tree-optimization/43842
33114         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
33115         loop unrolling in update of exit phis. Fix comment.
33116         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
33117         least two reduction statements in the loop before starting SLP
33118         analysis.
33119
33120 2010-04-22  Nick Clifton  <nickc@redhat.com>
33121
33122         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
33123
33124 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
33125
33126         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
33127         to simplify a + ~a.
33128
33129 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
33130
33131         * tree-parloops.c (loop_parallel_p): New argument
33132         parloop_obstack.  Pass it down.
33133         (parallelize_loops): New variable parloop_obstack.  Initialize it,
33134         pass it down, free it.
33135
33136         * tree-loop-linear.c (linear_transform_loops): Pass down
33137         lambda_obstack.
33138
33139         * tree-data-ref.h (lambda_compute_access_matrices): New argument
33140         of type struct obstack *.
33141
33142         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
33143         scratch_obstack.  Initialize it, pass down, free it.
33144
33145         * lambda.h (lambda_loop_new): Remove.
33146         (lambda_matrix_new, lambda_matrix_inverse)
33147         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
33148         argument of type struct obstack *.
33149
33150         * lambda-trans.c (lambda_trans_matrix_new): New argument
33151         lambda_obstack.  Pass it down, use obstack allocation for ret.
33152         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
33153         it down.
33154
33155         * lambda-mat.c (lambda_matrix_get_column)
33156         (lambda_matrix_project_to_null): Remove.
33157         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
33158         allocation for mat.
33159         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
33160         lambda_obstack.
33161
33162         * lambda-code.c (lambda_loop_new): New function.
33163         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
33164         (lambda_compute_auxillary_space, lambda_compute_target_space)
33165         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
33166         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
33167         (build_access_matrix): New argument lambda_obstack.  Use obstack
33168         allocation for am.
33169         (lambda_compute_step_signs, lambda_compute_access_matrices): New
33170         argument lambda_obstack.  Pass it down.
33171
33172 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
33173
33174         * optabs.h (expand_widening_mult): Declare.
33175
33176 2010-04-22  Richard Guenther  <rguenther@suse.de>
33177
33178         PR tree-optimization/43845
33179         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
33180         lookup the CALL_EXPR function and arguments.
33181
33182 2010-04-22  Nick Clifton  <nickc@redhat.com>
33183
33184         * config/stormy16/stormy16.c
33185         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
33186         * config/stormy16/stormy16.h: Tidy up formatting.
33187         (DONT_USE_BUILTIN_SETJMP): Remove definition.
33188         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
33189         (ineqbranchsi): Delete pattern.
33190         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
33191         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
33192         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
33193         stormy16-lib2-ucmpsi2.c.
33194
33195 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
33196
33197         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
33198         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
33199         extra set merge_set_noclobber, and use it to relax the final test
33200         slightly.
33201         * df.h (df_simulate_find_noclobber_defs): Declare.
33202         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
33203         conditional defs.
33204         (df_simulate_find_noclobber_defs): New function.
33205
33206 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
33207
33208         * config/i386/i386.md: Use {} around multi-line preparation statements.
33209
33210 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
33211
33212         * c-tree.h (push_init_level, pop_init_level, set_init_index)
33213         (process_init_element): New argument of type struct obstack *.
33214
33215         * c-typeck.c (push_init_level, pop_init_level, set_designator)
33216         (set_init_index, set_init_label, set_nonincremental_init)
33217         (set_nonincremental_init_from_string, find_init_member)
33218         (output_init_element, output_pending_init_elements)
33219         (process_init_element): New argument braced_init_obstack.  Pass it
33220         down.
33221         (push_range_stack, add_pending_init): New argument
33222         braced_init_obstack.  Use obstack allocation.
33223
33224         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
33225         braced_init_obstack.  Pass it down.
33226         (c_parser_braced_init): New variables ret, braced_init_obstack.
33227         Initialize obstack, pass it down and finally free it.
33228
33229 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
33230
33231         PR middle-end/29274
33232         * tree-pass.h (pass_optimize_widening_mul): Declare.
33233         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
33234         gate_optimize_widening_mul): New static functions.
33235         (pass_optimize_widening_mul): New.
33236         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
33237         <case MULT_EXPR>: Remove support for widening multiplies.
33238         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
33239         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
33240         simplify_gen_unary rather than directly building extensions.
33241         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
33242         WIDEN_MULT_EXPR.
33243         * expmed.c (expand_widening_mult): New function.
33244         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
33245
33246 2010-04-21  Jan Hubicka  <jh@suse.cz>
33247
33248         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
33249         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
33250         * lto-wpa-fixup.c: Remove.
33251         * Makefile.in (lto-wpa-fixup.o): Remove.
33252         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
33253         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
33254         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
33255
33256 2010-04-21  Jan Hubicka  <jh@suse.cz>
33257
33258         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
33259         add write_optimization_summary, read_optimization_summary.
33260         (ipa_write_summaries_of_cgraph_node_set): Remove.
33261         (ipa_write_optimization_summaries): Declare.
33262         (ipa_read_optimization_summaries): Declare.
33263         * ipa-cp.c (pass_ipa_cp): Update.
33264         * ipa-reference.c (pass_ipa_reference): Update.
33265         * ipa-pure-const.c (pass_ipa_pure_const): Update.
33266         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
33267         Update.
33268         * ipa-inline.c (pass_ipa_inline): Update.
33269         * ipa.c (pass_ipa_whole_program): Update.
33270         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
33271         * passes.c (ipa_write_summaries_1): Do not test wpa.
33272         (ipa_write_optimization_summaries_1): New.
33273         (ipa_write_optimization_summaries): New.
33274         (ipa_read_summaries): Do not test ltrans.
33275         (ipa_read_optimization_summaries_1): New.
33276         (ipa_read_optimization_summaries): New.
33277
33278 2010-04-21  Jan Hubicka  <jh@suse.cz>
33279
33280         * lto-cgraph.c (lto_output_node): Do not output comdat groups
33281         for boundary nodes.
33282         (output_cgraph): Do not arrange comdat groups for boundary nodes.
33283
33284 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
33285
33286         PR debug/40040
33287         * dwarf2out.c (add_name_and_src_coords_attributes): Add
33288         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
33289
33290 2010-04-21  Jan Hubicka  <jh@suse.cz>
33291
33292         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
33293
33294 2010-04-21  Jan Hubicka  <jh@suse.cz>
33295
33296         * varpool.c (decide_is_variable_needed): Variable is always needed
33297         during ltrans.
33298
33299 2010-04-21  Jan Hubicka  <jh@suse.cz>
33300
33301         * opts.c (decode_options): Enable pure-const pass for whopr.
33302
33303 2010-04-21  Jan Hubicka  <jh@suse.cz>
33304
33305         * cgraph.c (dump_cgraph_node): Dump also assembler name.
33306         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
33307         at WPA dumping.
33308         (cgraph_decide_inlining): Do not expect callee to be removed in all
33309         cases.
33310
33311 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
33312
33313         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
33314
33315 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
33316
33317         * config/i386/i386.md (x86_shrd): Add athlon_decode and
33318         amdfam10_decode attributes.
33319
33320 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
33321
33322         PR middle-end/43570
33323         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
33324         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
33325         (lower_copyprivate_clauses): Use private var in outer
33326         context instead of original var.  Make sure the types
33327         are correct for VLAs.
33328
33329 2010-04-21  Richard Guenther  <rguenther@suse.de>
33330
33331         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
33332         to non-pointer objects.
33333
33334 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
33335
33336         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
33337         last chain entry if it starts with the still current label.
33338         (add_location_or_const_value_attribute): Check that
33339         loc_list->first->next is NULL instead of comparing ->first with ->last.
33340         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
33341         to add_var_loc_to_decl.
33342
33343         * dwarf2out.c (output_call_frame_info): For dw_cie_version
33344         >= 4 add also address size and segment size fields into CIE header.
33345
33346         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
33347         long as address size is the same as sizeof (void *) and
33348         segment size is 0.
33349         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
33350         address size or segment size is unexpected, return DW_EH_PE_omit.
33351         (classify_object_over_fdes): If get_cie_encoding returned
33352         DW_EH_PE_omit, return -1.
33353         (init_object): If classify_object_over_fdes returned -1,
33354         pretend there were no FDEs at all.
33355
33356 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
33357
33358         * config/i386/i386.md (bswap<mode>2): Macroize expander from
33359         bswap{si,di}2 using SWI48 mode iterator.
33360         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
33361         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
33362         set modrm attribute of bswap insn to 0 and remove length attribute.
33363         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
33364         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
33365         set mode attribute to <MODE> and remove length attribute.
33366
33367 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
33368
33369         PR rtl-optimization/43520
33370         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
33371         zero available registers.
33372
33373 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
33374
33375         * builtins.c (fold_builtin_cproj): Fold more cases.
33376
33377 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
33378
33379         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
33380         (fold_builtin_1): Fold builtin cproj.
33381         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
33382         Use ATTR_CONST_NOTHROW_LIST.
33383
33384 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
33385
33386         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
33387         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
33388         ffsi2_no_cmove for !TARGET_CMOVE.
33389         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
33390         (ffssi2): Remove expander.
33391         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
33392         mode iterator.
33393         (ctz<mode>2): Ditto from ctz{si,di}2.
33394         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
33395         mode iterator.
33396         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
33397         mode iterator.
33398
33399 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
33400
33401         * dwarf2out.c (AT_linkage_name): Define.
33402         (clone_as_declaration): Handle DW_AT_linkage_name.
33403         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
33404         of DW_AT_MIPS_linkage_name.
33405         (move_linkage_attr): Likewise.
33406         (dwarf2out_finish): Likewise.
33407
33408 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
33409
33410         PR middle-end/41952
33411         * fold-const.c (fold_comparison): New folding rule.
33412
33413 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
33414
33415         * double-int.h (double_int_setbit): Declare.
33416         * double-int.c (double_int_setbit): New function.
33417         * rtl.h (immed_double_int_const): Declare.
33418         * emit-rtl.c (immed_double_int_const): New function.
33419         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
33420         and immed_double_int_const functions.
33421         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
33422         expand_copysign_bit): (Ditto.).
33423         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
33424         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
33425         * dojump.c (prefer_and_bit_test): (Ditto.).
33426         * expr.c (convert_modes, reduce_to_bit_field_precision,
33427         const_vector_from_tree): (Ditto.).
33428         * expmed.c (mask_rtx, lshift_value): (Ditto.).
33429
33430 2010-04-20  Jan Hubicka  <jh@suse.cz>
33431
33432         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
33433         (dump_cgraph_node): Dump new flags.
33434         * cgraph.h (struct cgraph_node): Add flags
33435         reachable_from_other_partition and in_other_partition.
33436         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
33437         other partition can not be removed.
33438         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
33439         the other partition must be output; silence sanity checking on
33440         leaking functions bodies from other paritition.
33441         * lto-cgraph.c (reachable_from_other_partition_p): New function.
33442         (lto_output_node): Output new flags; do not sanity check that inline
33443         clones are output; drop lto_forced_extern_inline_p code; do not mock
33444         visibility flags at partition boundaries.
33445         (add_node_to): New function.
33446         (output_cgraph): Use it to sort functions so masters appear before
33447         clones.
33448         (input_overwrite_node): Input new flags.
33449         * passes.c (ipa_write_summaries): Do not call
33450         lto_new_extern_inline_states.
33451         * lto-section-out.c (forced_extern_inline,
33452         lto_new_extern_inline_states lto_delete_extern_inline_states,
33453         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
33454         * lto-streamer.h (lto_new_extern_inline_states,
33455         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
33456         lto_forced_extern_inline_p): Kill.
33457
33458 2010-04-20  Richard Guenther  <rguenther@suse.de>
33459
33460         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
33461         from vars that can have pointers.
33462         (process_constraint): Dump useless constraints.
33463
33464 2010-04-20  Richard Guenther  <rguenther@suse.de>
33465
33466         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
33467         (dump_sa_points_to_info): Remove asserts.
33468         (init_base_vars): nothing_id isn't an escape point nor does it
33469         have pointers.
33470
33471 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
33472
33473         * tree.h (TYPE_REF_IS_RVALUE): Define.
33474         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
33475         should_move_die_to_comdat, prune_unused_types_walk): Handle
33476         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
33477         (modified_type_die, gen_reference_type_die): Emit
33478         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
33479         if TYPE_REF_IS_RVALUE and -gdwarf-4.
33480
33481 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33482
33483         PR target/43635
33484         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
33485         calls for -fpic -m31 if they have been sibcall optimized.
33486
33487 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
33488
33489         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
33490         ar.lc fixed and call-used.
33491
33492         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
33493
33494 2010-04-19  Jan Hubicka  <jh@suse.cz>
33495
33496         * opts.c (decode_options): Disable whpr incompatible passes.
33497         * lto/lto.c (lto_1_to_1_map): Skip clones.
33498         (read_cgraph_and_symbols): Do not mark everything as needed.
33499         (do_whole_program_analysis): Do map only after optimizing;
33500         set proper cgraph_state; use passmanager.
33501
33502 2010-04-19  DJ Delorie  <dj@redhat.com>
33503
33504         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
33505         POINTER_PLUS_EXPR and fix them.
33506
33507 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
33508
33509         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
33510         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
33511         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
33512         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
33513         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
33514         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
33515         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
33516         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
33517         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
33518         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
33519         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
33520
33521 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
33522
33523         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
33524         (check_cond_move_block): Likewise.
33525         (cond_move_process_if_block): Likewise.
33526         (noce_find_if_block): Improve formatting.
33527         (find_if_header): Pass 0 to memset and tweak conditions.
33528         (cond_exec_find_if_block): Fix long lines and tweak conditions.
33529
33530 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
33531
33532         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
33533         for -gdwarf-4.
33534
33535         PR middle-end/43337
33536         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
33537         with non-local decl doesn't need chain.
33538
33539 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
33540
33541         * ira-color.c (allocno_reload_assign): Avoid accumulating
33542         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
33543
33544 2010-04-19  Martin Jambor  <mjambor@suse.cz>
33545
33546         * gimple.h (create_tmp_reg): Declare.
33547         * gimplify.c (create_tmp_reg): New function.
33548         (gimplify_return_expr): Use create_tmp_reg.
33549         (gimplify_omp_atomic): Likewise.
33550         (gimple_regimplify_operands): Likewise.
33551         * tree-dfa.c (make_rename_temp): Likewise.
33552         * tree-predcom.c (predcom_tmp_var): Likewise.
33553         (reassociate_to_the_same_stmt): Likewise.
33554         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
33555         (get_replaced_param_substitute): Likewise.
33556         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
33557         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
33558         * tree-ssa-pre.c (get_representative_for): Likewise.
33559         (create_expression_by_pieces): Likewise.
33560         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
33561         (create_tailcall_accumulator): Likewise.
33562
33563 2010-04-19  Martin Jambor  <mjambor@suse.cz>
33564
33565         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
33566         new_stmt.
33567         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
33568
33569 2010-04-19  Richard Guenther  <rguenther@suse.de>
33570
33571         PR tree-optimization/43796
33572         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
33573         from SCEV in the lattice.
33574         (vrp_visit_phi_node): Dump change.
33575
33576 2010-04-19  Richard Guenther  <rguenther@suse.de>
33577
33578         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
33579         * configure: Re-generated.
33580
33581 2010-04-19  Richard Guenther  <rguenther@suse.de>
33582
33583         PR tree-optimization/43783
33584         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
33585         constant ARRAY_REF operands two and three if possible.
33586
33587 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
33588
33589         PR target/43766
33590         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
33591
33592 2010-04-19  Jie Zhang  <jie@codesourcery.com>
33593
33594         PR target/43662
33595         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
33596
33597 2010-04-19  Ira Rosen  <irar@il.ibm.com>
33598
33599         PR tree-optimization/37027
33600         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
33601         and macro to access it.
33602         (vectorizable_reduction): Add argument.
33603         (vect_get_slp_defs): Likewise.
33604         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
33605         statements for possible use in SLP.
33606         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
33607         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
33608         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
33609         add new argument.
33610         (vectorizable_reduction): Likewise.
33611         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
33612         vect_get_slp_defs.
33613         (vectorizable_type_demotion, vectorizable_type_promotion,
33614         vectorizable_store): Likewise.
33615         (vect_analyze_stmt): Update call to vectorizable_reduction.
33616         (vect_transform_stmt): Likewise.
33617         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
33618         (vect_build_slp_tree): Fix indentation. Check that there are no loads
33619         from different interleaving chains in same node.
33620         (vect_slp_rearrange_stmts): New function.
33621         (vect_supported_load_permutation_p): Allow load permutations for
33622         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
33623         inside SLP nodes if necessary.
33624         (vect_analyze_slp_instance): Handle reductions.
33625         (vect_analyze_slp): Try to build SLP instances originating from groups
33626         of reductions.
33627         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
33628         (vect_get_constant_vectors): Create initial vectors for reductions
33629         according to reduction code. Add new argument.
33630         (vect_get_slp_defs): Add new argument, pass it to
33631         vect_get_constant_vectors.
33632         (vect_schedule_slp_instance): Remove SLP tree root statements.
33633
33634 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
33635
33636         * tree.h (ENUM_IS_SCOPED): Define.
33637         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
33638         for ENUM_IS_SCOPED enums.
33639
33640 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
33641
33642         * fold-const.c (fold_comparison): Use ssizetype.
33643         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
33644         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
33645         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
33646         * tree-object-size.c (compute_object_sizes): Use size_type_node.
33647
33648         * tree.h (initialize_sizetypes): Remove parameter.
33649         (build_common_tree_nodes): Remove second parameter.
33650         * stor-layout.c (initialize_sizetypes): Remove parameter.
33651         Always create an unsigned type.
33652         (set_sizetype): Assert that the passed type is unsigned and simplify.
33653         * tree.c (build_common_tree_nodes): Remove second parameter.
33654         Adjust call to initialize_sizetypes.
33655         * c-decl.c (c_init_decl_processing): Remove second argument in call to
33656         build_common_tree_nodes.
33657
33658 2010-04-18  Matthias Klose  <doko@ubuntu.com>
33659
33660         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
33661
33662 2010-04-18  Ira Rosen  <irar@il.ibm.com>
33663
33664         PR tree-optimization/43771
33665         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
33666         load permutation doesn't have gaps.
33667
33668 2010-04-18  Jan Hubicka  <jh@suse.cz>
33669
33670         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
33671         (sse_prologue_save_insn expander): Use new pattern.
33672         (sse_prologue_save_insn1): New pattern and splitter.
33673         (sse_prologue_save_insn): Update to deal also with 64bit aligned
33674         blocks.
33675         * i386.c (setup_incoming_varargs_64): Do not compute jump
33676         destination here.
33677         (ix86_gimplify_va_arg): Update alignment needed.
33678         (ix86_local_alignment): Do not align all local arrays to 128bit.
33679
33680 2010-04-17  Jan Hubicka  <jh@suse.cz>
33681
33682         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
33683
33684 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
33685
33686         * arm.md (negdi2): Remove redundant code to force values into a
33687         register.
33688
33689 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
33690
33691         * arm/bpabi.S: Add EABI alignment attributes to objects.
33692         * arm/bpabi-v6m.S: Likewise.
33693         * arm/crti.asm: Likewise.
33694         * arm/crtn.asm: Likewise.
33695         * arm/lib1funcs.asm: Likewise.
33696         * arm/libunwind.S: Likewise.
33697
33698 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
33699
33700         * arm-protos.h (tune_params): New structure.
33701         * arm.c (current_tune): New variable.
33702         (arm_constant_limit): Delete.
33703         (struct processors): Add pointer to the tune parameters.
33704         (arm_slowmul_tune): New tuning option.
33705         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
33706         (all_cores): Adjust to pick up the tuning model.
33707         (arm_constant_limit): New function.
33708         (arm_override_options): Select the appropriate tuning model.  Delete
33709         initialization of arm_const_limit.
33710         (arm_split_constant): Use the new constant-limit model.
33711         (arm_rtx_costs): Pick up the current tuning model.
33712         * arm.md (is_strongarm, is_xscale): Delete.
33713         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
33714         for Xscale variant architectures.
33715         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
33716
33717 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
33718
33719         * config/arm/arm.c (arm_gen_constant): Remove unused variable
33720         can_shift.
33721         (arm_rtx_costs_1): Remove unused variable extra_cost.
33722         (arm_unwind_emit_set): Use variable offset.
33723         (thumb1_output_casesi): Remove unused variable flags.
33724
33725 2010-04-16  Jeff Law  <law@redhat.com>
33726
33727         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
33728         needing assignment rather than doing a two-phase assignment.  Remove
33729         unused variable 'm'.
33730
33731 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
33732
33733         PR bootstrap/43767
33734         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
33735
33736 2010-04-16  Doug Kwan  <dougkwan@google.com>
33737
33738         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
33739         (next_operand_entry_id): New static variable.
33740         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
33741         (add_to_ops_vec): Assigned unique ID to operand entry.
33742         (struct oecount_s): New field ID.
33743         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
33744         (undistribute_ops_list): Assign unique IDs to oecounts.
33745         (init_reassoc): reset next_operand_entry_id.
33746
33747 2010-04-16  Doug Kwan  <dougkwan@google.com>
33748
33749         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
33750         missing left parenthesis.
33751
33752 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
33753
33754         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
33755         *btdi_rex64 using SWI48 mode iterator.
33756         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
33757         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
33758         *jcc_btdi_mask_rex64.
33759
33760 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
33761
33762         * double-int.h (tree_to_double_int): Convert to macro.
33763         * double-int.c (tree_to_double_int): Remove.
33764
33765 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
33766
33767         PR debug/43762
33768         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
33769         with want_address 2 and in case a single element list might be
33770         possible, call it again with want_address 0.
33771
33772 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
33773
33774         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
33775         case 'W' print operands for HI mode.
33776         * config/h8300/h8300.h (Y0, Y2) : New constraints.
33777         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
33778         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
33779         * config/h8300/predicate.md (bit_register_indirect_operand): New.
33780
33781         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
33782
33783         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
33784         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
33785         #xx:3 and #xx:4 mode.
33786
33787         * config/h8300/h8300.md (inverted load with HImode dest): Add
33788         support for H8300SX.
33789
33790         * config/h8300/predicate.md (bit_operand): Allow immediate values that
33791         satisfy 'U' constraint.
33792
33793 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33794
33795         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
33796         * configure: Regenerate.
33797         * config.in: Regenerate.
33798         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
33799         works.
33800
33801 2010-04-16  Richard Guenther  <rguenther@suse.de>
33802
33803         * tree.h (struct tree_decl_minimal): Move pt_uid ...
33804         (struct tree_decl_common): ... here.
33805         (DECL_PT_UID): Adjust.
33806         (SET_DECL_PT_UID): Likewise.
33807         (DECL_PT_UID_SET_P): Likewise.
33808
33809 2010-04-16  Richard Guenther  <rguenther@suse.de>
33810
33811         PR tree-optimization/43572
33812         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
33813         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
33814         * tree-flow.h (is_call_clobbered): Remove.
33815         * tree-flow-inline.h (is_call_clobbered): Likewise.
33816         * tree-dfa.c (dump_variable): Do not dump call clobber state.
33817         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
33818         (execute_return_slot_opt): Adjust.
33819         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
33820         check for call clobbered vars here.
33821         (find_tail_calls): Move tailcall verification to the
33822         proper place.
33823
33824 2010-04-16  Diego Novillo  <dnovillo@google.com>
33825
33826         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
33827
33828 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
33829
33830         PR target/40603
33831         * config/arm/arm.md (cbranchqi4): New pattern.
33832         * config/arm/predicates.md (const0_operand,
33833         cbranchqi4_comparison_operator): New predicates.
33834
33835 2010-04-16  Richard Guenther  <rguenther@suse.de>
33836
33837         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
33838         (dump_gimple_stmt): Likewise.
33839
33840 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
33841
33842         * recog.h (struct recog_data): New field is_operator.
33843         (struct insn_operand_data): New field is_operator.
33844         * recog.c (extract_insn): Set recog_data.is_operator.
33845         * genoutput.c (output_operand_data): Emit code to set the
33846         is_operator field.
33847         * reload.c (find_reloads): Use it rather than testing for an
33848         empty constraint string.
33849
33850         PR target/41514
33851         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
33852         If the previous insn is a cbranchsi4_insn with the same arguments,
33853         omit the compare instruction.
33854
33855         * config/arm/arm.md (addsi3_cbranch): If destination is a high
33856         register, inputs must be low registers and we need a low register
33857         scratch.  Handle alternative 2 like alternative 3.
33858
33859 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
33860
33861         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
33862         don't call get_addr on both.  If one expression is a VALUE and
33863         the other a REG, check VALUE's locs if the REG isn't among them.
33864
33865 2010-04-16  Christian Bruel  <christian.bruel@st.com>
33866
33867         * config/sh/sh.h (sh_frame_pointer_required): New function.
33868         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
33869         (flag_omit_frame_pointer) Set.
33870         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
33871         (rounded_frame_size): Adjust size with outgoing_args_size.
33872         (sh_set_return_address): Must return from stack pointer.
33873         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
33874         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
33875         (ACCUMULATE_OUTGOING_ARGS): Define.
33876         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
33877         * config/sh/sh.opt (maccumulate-outgoing-args): New option.
33878
33879 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
33880
33881         PR target/43471
33882         * config/sh/sh.c (sh_legitimize_reload_address): Use
33883         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
33884         Remove a unneeded check for offset_base.
33885
33886 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
33887
33888         * configure: Regenerated.
33889
33890 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33891
33892         * config/s390/s390.c (s390_call_save_register_used): Switch back
33893         to HARD_REGNO_NREGS.
33894
33895 2010-04-15  Richard Guenther  <rguenther@suse.de>
33896
33897         * alias.c (alias_set_subset_of): Handle alias-set zero
33898         child properly.
33899
33900 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
33901             Julian Brown  <julian@codesourcery.com>
33902
33903         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
33904         alternatives according to use of high and low regs.
33905         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
33906         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
33907         optimizing for size on Thumb-2.
33908
33909 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
33910
33911         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
33912
33913 2010-04-15  Richard Guenther  <rguenther@suse.de>
33914
33915         * tree-ssa-structalias.c (struct variable_info): Add
33916         is_fn_info flag.
33917         (new_var_info): Initialize it.
33918         (dump_constraints): Support printing last added constraints.
33919         (debug_constraints): Adjust.
33920         (dump_constraint_graph): Likewise.
33921         (make_heapvar_for): Check for NULL cfun.
33922         (get_function_part_constraint): New function.
33923         (get_fi_for_callee): Likewise.
33924         (find_func_aliases): Properly implement IPA PTA constraints.
33925         (process_ipa_clobber): New function.
33926         (find_func_clobbers): Likewise.
33927         (insert_into_field_list_sorted): Remove.
33928         (create_function_info_for): Properly allocate vars for IPA mode.
33929         Do not use insert_into_field_list_sorted.
33930         (create_variable_info_for): Properly generate constraints for
33931         global vars in IPA mode.
33932         (dump_solution_for_var): Always dump the solution.
33933         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
33934         (find_what_var_points_to): Adjust.
33935         (pt_solution_set): Change.
33936         (pt_solution_ior_into): New function.
33937         (pt_solution_empty_p): Export.
33938         (pt_solution_includes_global): Adjust.
33939         (pt_solution_includes_1): Likewise.
33940         (pt_solutions_intersect_1): Likewise.
33941         (dump_sa_points_to_info): Check some invariants.
33942         (solve_constraints): Move constraint dumping ...
33943         (compute_points_to_sets): ... here.
33944         (ipa_pta_execute): ... and here.
33945         (compute_may_aliases): Do not re-compute points-to info
33946         locally if IPA info is available.
33947         (ipa_escaped_pt): New global var.
33948         (ipa_pta_execute): Properly implement IPA PTA.
33949         * tree-into-ssa.c (dump_decl_set): Support dumping
33950         decls not in referenced-vars.
33951         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
33952         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
33953         (dump_points_to_solution): Likewise.
33954         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
33955         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
33956         (remap_gimple_stmt): Reset call clobber/use information if necessary.
33957         (copy_decl_to_var): Copy DECL_PT_UID.
33958         (copy_result_decl_to_var): Likewise.
33959         * tree.c (make_node_stat): Initialize DECL_PT_UID.
33960         (copy_node_stat): Copy it.
33961         * tree.h (DECL_PT_UID): New macro.
33962         (SET_DECL_PT_UID): Likewise.
33963         (DECL_PT_UID_SET_P): Likewise.
33964         (struct tree_decl_minimal): Add pt_uid member.
33965         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
33966         (pt_solution_empty_p): Declare.
33967         (pt_solution_set): Adjust.
33968         (ipa_escaped_pt): Declare.
33969         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
33970         * gimple-pretty-print.c (pp_points_to_solution): New function.
33971         (dump_gimple_call): Dump call clobber/use information.
33972         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
33973         * tree-pass.h (TDF_ALIAS): New dump option.
33974         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
33975         * doc/invoke.texi (-fipa-pta): Update documentation.
33976
33977 2010-04-15  Richard Guenther  <rguenther@suse.de>
33978
33979         * Makefile.in (OBJS-common): Add gimple-fold.o.
33980         (gimple-fold.o): New rule.
33981         * tree.h (maybe_fold_offset_to_reference,
33982         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
33983         prototypes ...
33984         * gimple.h: ... here.
33985         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
33986         may_propagate_address_into_dereference): Move prototypes ...
33987         * gimple.h: ... here.
33988         * tree-ssa-ccp.c (get_symbol_constant_value,
33989         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
33990         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
33991         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
33992         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
33993         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
33994         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
33995         gimplify_and_update_call_from_tree): Move ...
33996         * gimple-fold.c: ... here.  New file.
33997         (ccp_fold_builtin): Rename to ...
33998         (gimple_fold_builtin): ... this.
33999         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
34000
34001 2010-04-15  Richard Guenther  <rguenther@suse.de>
34002
34003         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
34004         fit_double_type, force_fit_type_double, add_double_with_sign,
34005         neg_double, mul_double_with_sign, lshift_double, rshift_double,
34006         lrotate_double, rrotate_double, div_and_round_double): Move ...
34007         * double-int.c: ... here.
34008         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
34009         add_double, neg_double, mul_double_with_sign, mul_double,
34010         lshift_double, rshift_double, lrotate_double, rrotate_double,
34011         div_and_round_double): Move prototypes ...
34012         * double-int.h: ... here.
34013
34014 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
34015
34016         PR target/43742
34017         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
34018         matching constraints to ensure inputs match the output.
34019
34020 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
34021
34022         PR target/43742
34023         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
34024         in an input-only operand.
34025
34026 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
34027
34028         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
34029         (double_int_not, double_int_lshift, double_int_rshift): Declare.
34030         (double_int_negative_p): Convert to static inline function.
34031         * double-int.c (double_int_lshift, double_int_lshift): New functions.
34032         (double_int_negative_p): Remove.
34033         * tree.h (lshift_double, rshift_double):
34034         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
34035         * fold-const.c (fold_convert_const_int_from_real,
34036         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
34037         (lshift_double): Change type of arith argument to bool.
34038         (rshift_double): Change type of arith argument to bool. Correct
34039         comment.
34040         * expmed.c (mask_rtx, lshift_value): (Ditto.).
34041
34042 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
34043
34044         PR target/21803
34045         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
34046         at the start and end of the then/else blocks, and omit them from the
34047         conversion.
34048         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
34049         argument; all callers changed.  Pass zero to old_insns_match_p instead.
34050         (flow_find_head_matching_sequence): New function.
34051         (old_insns_match_p): Check REG_EH_REGION notes for calls.
34052         * basic-block.h (flow_find_cross_jump,
34053         flow_find_head_matching_sequence): Declare functions.
34054
34055 2010-04-14  Jason Merrill  <jason@redhat.com>
34056
34057         PR c++/36625
34058         * c-common.c (attribute_takes_identifier_p): New fn.
34059         * c-common.h: Declare it.
34060
34061 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
34062
34063         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
34064         splitter condition.
34065         (*udivmod<mode>4): Ditto.
34066
34067 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
34068
34069         * config/i386/i386.md (maxmin_int): Rename code attribute from
34070         maxminiprefix and update all users.
34071         (maxmin_float): Ditto from maxminfprefix.
34072         (logic): Ditto from logicprefix.
34073         (absneg_mnemonic): Ditto from absnegprefix.
34074         * config/i386/mmx.md: Update all users of maxminiprefix,
34075         maxminfprefix and logicprefix for rename.
34076         * config/i386/sse.md: Ditto.
34077         * config/i386/sync.md (sync_<code><mode>): Update for
34078         logicprefix rename.
34079
34080 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34081
34082         PR 42966
34083         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
34084         warnings converted to errors.
34085
34086 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
34087
34088         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
34089         used insn_type variable.
34090         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
34091         to avoid set-but-not-used warning.
34092
34093 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
34094
34095         * df-core.c (df_ref_debug): Change format string placeholder
34096         from 0x%x to %#x.
34097         * dwarf2asm.c (dw2_asm_output_data_raw,
34098         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
34099         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
34100         * dwarf2out.c (output_cfi, output_cfi_directive,
34101         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
34102         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
34103         Ditto.
34104         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
34105         * print-rtl.c (print_rtx): Ditto.
34106
34107 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
34108
34109         PR middle-end/42694
34110         * builtins.c (expand_builtin_pow_root): New function to expand pow
34111         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
34112         series of sqrt and cbrt calls under -ffast-math.
34113         (expand_builtin_pow): Call it.
34114
34115 2010-04-14  Michael Matz  <matz@suse.de>
34116
34117         PR tree-optimization/42963
34118         * tree-cfg.c (touched_switch_bbs): New static variable.
34119         (group_case_labels_stmt): New function broken out from ...
34120         (group_case_labels): ... here, use the above.
34121         (start_recording_case_labels): Allocate touched_switch_bbs.
34122         (end_recording_case_labels): Deallocate it, call
34123         group_case_labels_stmt.
34124         (gimple_redirect_edge_and_branch): Remember index of affected BB.
34125
34126 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
34127
34128         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
34129         from insn template.
34130
34131 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
34132
34133         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
34134
34135 2010-04-13  Jan Hubicka  <jh@suse.cz>
34136
34137         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
34138         of optimized out static functions.
34139         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
34140         cost computation.  Also sanity check for overflows.
34141         (update_caller_keys): Update cgraph_edge_badness call; properly
34142         update fibheap and sanity check that it is up to date.
34143         (add_new_edges_to_heap): Update cgraph_edge_badness.
34144         (cgraph_decide_inlining_of_small_function): Likewise;
34145         add sanity checking that badness in heap is up to date;
34146         improve dumping of reason; Update badness of calls to the
34147         offline copy of function currently inlined; dump badness
34148         of functions not inlined because of unit growth limits.
34149
34150 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
34151
34152         PR middle-end/32628
34153         * c-common.c (pointer_int_sum): Disregard overflow that occured only
34154         because of sign-extension change when converting to sizetype here...
34155         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
34156
34157         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
34158         the folding to constants.  Remove redundant final conversion.
34159         (fold_binary) <associate>: Do not associate if the re-association of
34160         constants alone overflows.
34161         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
34162         to the end of the list.
34163         (multiple_of_p) <COND_EXPR>: New case.
34164
34165 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34166
34167         * opt-functions.awk (opt_sanitized_name): New.
34168         (opt_enum): New.
34169         * optc-gen.awk: Use it
34170         * opth-gen.awk: Use it.
34171
34172 2010-04-13  Martin Jambor  <mjambor@suse.cz>
34173
34174         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
34175         (sra_modify_assign): Delete stmts loading dead data even if racc has no
34176         children.  Call replace_uses_with_default_def_ssa_name to handle
34177         SSA_NAES on lhs.
34178
34179 2010-04-13  Michael Matz  <matz@suse.de>
34180
34181         PR middle-end/43730
34182         * builtins.c (expand_builtin_interclass_mathfn): Also create
34183         a register if the predicate doesn't match.
34184
34185 2010-04-13  Diego Novillo  <dnovillo@google.com>
34186
34187         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
34188         * c-pch.c: Include timevar.h.
34189         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
34190         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
34191         * ggc-common.c: Include timevar.h.
34192         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
34193         * timevar.def (TV_PCH_SAVE): Define.
34194         (TV_PCH_CPP_SAVE): Define.
34195         (TV_PCH_PTR_REALLOC): Define.
34196         (TV_PCH_PTR_SORT): Define.
34197         (TV_PCH_RESTORE): Define.
34198         (TV_PCH_CPP_RESTORE): Define.
34199
34200 2010-04-13  Michael Matz  <matz@suse.de>
34201
34202         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
34203         into MINUS_EXPRs.
34204         (can_reassociate_p): New function.
34205         (break_up_subtract_bb, reassociate_bb): Use it.
34206
34207 2010-04-13  Richard Guenther  <rguenther@suse.de>
34208
34209         PR bootstrap/43737
34210         * builtins.c (c_readstr): Fix assert.
34211
34212 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
34213
34214         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
34215         when generating cltd insn.
34216
34217         (*ashl<mode>3_1): Remove special handling for register operand 2.
34218         (*ashlsi3_1_zext): Ditto.
34219         (*ashlhi3_1): Ditto.
34220         (*ashlhi3_1_lea): Ditto.
34221         (*ashlqi3_1): Ditto.
34222         (*ashlqi3_1_lea): Ditto.
34223         (*<shiftrt_insn><mode>3_1): Ditto.
34224         (*<shiftrt_insn>si3_1_zext): Ditto.
34225         (*<shiftrt_insn>qi3_1_slp): Ditto.
34226         (*<rotate_insn><mode>3_1): Ditto.
34227         (*<rotate_insn>si3_1_zext): Ditto.
34228         (*<rotate_insn>qi3_1_slp): Ditto.
34229
34230 2010-04-13  Richard Guenther  <rguenther@suse.de>
34231
34232         * tree-ssa-structalias.c (callused_id): Remove.
34233         (call_stmt_vars): New.
34234         (get_call_vi): Likewise.
34235         (lookup_call_use_vi): Likewise.
34236         (lookup_call_clobber_vi): Likewise.
34237         (get_call_use_vi): Likewise.
34238         (get_call_clobber_vi): Likewise.
34239         (make_transitive_closure_constraints): Likewise.
34240         (handle_const_call): Adjust to do per-call call-used handling.
34241         (handle_pure_call): Likewise.
34242         (find_what_var_points_to): Remove general callused handling.
34243         (init_base_vars): Likewise.
34244         (init_alias_vars): Initialize call_stmt_vars.
34245         (compute_points_to_sets): Process call-used and call-clobbered
34246         vars for call statements.
34247         (delete_points_to_sets): Free call_stmt_vars.
34248
34249 2010-04-13  Richard Guenther  <rguenther@suse.de>
34250
34251         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
34252         Only add RW dependence for dependence distance zero.
34253         Adjust maximal vectorization factor according to dependences.
34254         Move alignment handling ...
34255         (vect_find_same_alignment_drs): ... here.  New function.
34256         (vect_analyze_data_ref_dependences): Adjust.
34257         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
34258         (vect_analyze_data_refs): Adjust minimal vectorization factor
34259         according to data references.
34260         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
34261         dependences before determining the vectorization factor.
34262         Analyze alignment after determining the vectorization factor.
34263         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
34264         dependences before alignment.
34265         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
34266         Adjust prototype.
34267         (vect_analyze_data_refs): Likewise.
34268         (MAX_VECTORIZATION_FACTOR): New define.
34269
34270 2010-04-13  Duncan Sands  <baldrick@free.fr>
34271
34272         * except.h (lang_eh_type_covers): Remove.
34273         * except.c (lang_eh_type_covers): Likewise.
34274
34275 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34276             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
34277
34278         * config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
34279         * config/s390/s390.c: Replace UNTIS_PER_WORD with
34280         UNITS_PER_LONG where it is ABI relevant.
34281         (s390_return_addr_rtx): Likewise.
34282         (s390_back_chain_rtx): Likewise.
34283         (s390_frame_area): Likewise.
34284         (s390_frame_info): Likewise.
34285         (s390_initial_elimination_offset): Likewise.
34286         (save_gprs): Likewise.
34287         (s390_emit_prologue): Likewise.
34288         (s390_emit_epilogue): Likewise.
34289         (s390_function_arg_advance): Likewise.
34290         (s390_function_arg): Likewise.
34291         (s390_va_start): Likewise.
34292         (s390_gimplify_va_arg): Likewise.
34293         (s390_function_profiler): Likewise.
34294         (s390_optimize_prologue): Likewise.
34295         (s390_rtx_costs): Likewise.
34296         (s390_secondary_reload): Likewise.
34297         (s390_promote_function_mode): Likewise.
34298         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
34299         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
34300         registers available.
34301         (s390_unwind_word_mode): New function.
34302         (s390_function_value): Split 64 bit values into register pair if
34303         used as return value.
34304         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
34305         function call parameters.  Handle parallels.
34306         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
34307         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
34308         (DWARF_CIE_DATA_ALIGNMENT): New macro.
34309         (s390_expand_setmem): Remove unused variable src_addr.
34310         * longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
34311         deal with 64 bit registers.
34312         * config/s390/s390.h: Define __zarch__ predefined macro.
34313         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
34314         (UNITS_PER_LONG): New macro.
34315         * libjava/include/s390-signal.h: Define extended ucontext
34316         structure containing the upper halfs of the 64 bit registers.
34317
34318 2010-04-13  Simon Baldwin  <simonb@google.com>
34319
34320         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
34321
34322 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
34323
34324         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
34325         rvalue on the RHS if the LHS is of a non-renamable type.
34326         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
34327
34328 2010-04-13  Matthias Klose  <doko@ubuntu.com>
34329
34330         * gcc.c (cc1_options): Handle -iplugindir before processing
34331         the cc1 spec. Only add -iplugindir once.
34332         (cpp_unique_options): Add -iplugindir option if -fplugin* options
34333         found.
34334         * common.opt (iplugindir): Remove `Separate' property, initialize.
34335         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
34336         option.
34337         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
34338         (distclean): Remove plugin dir.
34339         * doc/invoke.texi: Document -iplugindir.
34340
34341 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
34342
34343         * doc/plugins.texi (Loading Plugins): Document short
34344         -fplugin=foo option.
34345         (Plugin API): Mention default_plugin_dir_name function.
34346
34347         * gcc.c (find_file_spec_function): Add new declaration.
34348         (static_spec_func): Use it for "find-file".
34349         (find_file_spec_function): Add new function.
34350         (cc1_options): Add -iplugindir option if -fplugin* options found.
34351
34352         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
34353
34354         * plugin.c (add_new_plugin): Updated comment, and handle short
34355         plugin name.
34356         (default_plugin_dir_name): Added new function.
34357
34358         * common.opt (iplugindir): New option to set the plugin directory.
34359
34360 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
34361
34362         * config/i386/i386.md (any_rotate): New code iterator.
34363         (rotate_insn): New code attribute.
34364         (rotate): Ditto.
34365         (SWIM124): New mode iterator.
34366         (<rotate_insn>ti3): New expander.
34367         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
34368         any_rotate code iterator.
34369         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
34370         using any_rotate code iterator and SWIM124 mode iterator.
34371         (ix86_rotlti3): New insn_and_split pattern.
34372         (ix86_rotrti3): Ditto.
34373         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
34374         ix86_rotl{di,ti}3 patterns.
34375         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
34376         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
34377         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
34378         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
34379         code iterator and SWI mode iterator.
34380         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
34381         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
34382         code iterator.
34383         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
34384         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
34385         (bswap rotatert splitter): Add splitter.
34386         (bswap splitter): Macroize splitter using any_rotate code iterator.
34387         Add insn predicate to split only for TARGET_USE_XCHGB or when
34388         optimizing function for size.
34389
34390 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
34391
34392         * config/pa/pa.c (emit_move_sequence): Remove use of
34393         deleted variable flag_argument_noalias.
34394
34395 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34396
34397         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
34398         configurations.
34399         Add to unsupported targets list.
34400         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
34401         sparc*-sun-solaris2.[567]* from target lists.
34402         * configure: Regenerate.
34403         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
34404         removal.
34405         Remove Solaris 7 patch references.
34406         (Specific, sparc-sun-solaris2.7): Removed.
34407         (sparc-sun-solaris2*): Update Solaris 7 example.
34408         (sparc64-*-solaris2*): Likewise.
34409
34410 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34411
34412         * config.build (alpha*-dec-osf4*): Remove.
34413         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
34414         of obsolete configurations.
34415         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
34416         support.
34417         * config/alpha/t-osf4: Renamed to ...
34418         * config/alpha/t-osf5: ... this.
34419         * config/alpha/osf.h: Renamed to ...
34420         * config/alpha/osf5.h: ... this.
34421         Merged old osf5.h contents.
34422         Update comments.
34423         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
34424         (EXTRA_SPECS): Removed.
34425         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
34426         reflect removal of Tru64 UNIX V4.0/V5.0 support.
34427         Document that.
34428
34429 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34430
34431         * doc/contrib.texi (Contributors, Rainer Orth): Update.
34432
34433 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
34434
34435         PR/43702
34436         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
34437         __thiscall convention.
34438
34439 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
34440
34441         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
34442         orig_base.
34443         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
34444
34445 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
34446
34447         * function.c (assign_parms_initialize_all): Add unused attribute
34448         to fntype.
34449
34450 2010-04-12  Richard Guenther  <rguenther@suse.de>
34451
34452         * gsstruct.def (GSS_CALL): New.
34453         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
34454         * gimple.h: Include tree-ssa-alias.h.
34455         (struct gimple_statement_call): New.
34456         (union gimple_statement_struct_d): Add gimple_call member.
34457         (gimple_call_reset_alias_info): Declare.
34458         (gimple_call_use_set): New function.
34459         (gimple_call_clobber_set): Likewise.
34460         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
34461         * gimple.c (gimple_call_reset_alias_info): New function.
34462         (gimple_build_call_1): Call it.
34463         * lto-streamer-in.c (input_gimple_stmt): Likewise.
34464         * tree-inline.c (remap_gimple_stmt): Likewise.
34465         (expand_call_inline): Remove callused handling.
34466         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
34467         * tree-dfa.c (dump_variable): Likewise.
34468         * tree-parloops.c (parallelize_loops): Likewise.
34469         * tree-ssa.c (init_tree_ssa): Likewise.
34470         (delete_tree_ssa): Likewise.
34471         * tree-flow-inline.h (is_call_used): Remove.
34472         * tree-flow.h (struct gimple_df): Remove callused member.
34473         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
34474         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
34475         (ref_maybe_used_by_call_p_1): Simplify.
34476         (call_may_clobber_ref_p_1): Likewise.
34477         * tree-ssa-structalias.c (compute_points_to_sets): Set
34478         the call stmt used and clobbered sets.
34479         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
34480         (find_tail_calls): Verify the tail call.
34481
34482 2010-04-12  Richard Guenther  <rguenther@suse.de>
34483
34484         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
34485         single-iteration always-inline inlining.
34486         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
34487         (cgraph_decide_inlining): Do not handle always-inline specially.
34488         (try_inline): Remove always-inline cycle detection special case.
34489         Do not recurse on always-inlines.
34490         (cgraph_early_inlining): Do not iterate if not optimizing.
34491         (cgraph_gate_early_inlining): remove.
34492         (pass_early_inline): Run unconditionally.
34493         (gate_cgraph_decide_inlining): New function.
34494         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
34495         not inlining or optimizing.
34496         (cgraph_decide_inlining_of_small_functions): Also consider
34497         always-inline functions.
34498         (cgraph_default_inline_p): Return true for nodes which should
34499         disregard inline limits.
34500         (estimate_function_body_sizes): Assume zero size and time for
34501         nodes which are marked as disregarding inline limits.
34502         (cgraph_decide_recursive_inlining): Do not perform recursive
34503         inlining on always-inline nodes.
34504
34505 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
34506
34507         PR bootstrap/43699
34508         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
34509         for exprs satisfying handled_component_p.
34510
34511 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
34512
34513         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
34514         non-constant aggregate elements.
34515
34516         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
34517         is a real initialization.
34518
34519 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
34520
34521         PR c/36774
34522         * c-decl.c (start_function): Move forward check for nested function.
34523
34524 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
34525
34526         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
34527         * config/sh/sh.c: Include reload.h.
34528         (sh_legitimize_reload_address): New.
34529         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
34530         sh_legitimize_reload_address.
34531
34532 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
34533
34534         * config/sh/sh.md (*movqi_pop): New insn pattern.
34535         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
34536
34537 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
34538
34539         * config/i386/i386.md (any_shiftrt): New code iterator.
34540         (shiftrt_insn): New code attribute.
34541         (shiftrt): Ditto.
34542         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
34543         using any_shiftrt code iterator.
34544         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
34545         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
34546         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
34547         pattern from corresponding peephole2 patterns.
34548         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
34549         using any_shiftrt code iterator.
34550         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
34551         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
34552         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
34553         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
34554         *{ashr,lshr}<mode>3_cmp_zext.
34555         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
34556
34557 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
34558
34559         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
34560         scratch register.
34561         (*lshr<mode>3_cconly): Ditto.
34562
34563 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
34564
34565         * config/i386/i386.md (lshr<mode>3): Macroize expander from
34566         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
34567         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
34568         pattern from *lshr{di,ti}3_1 and corresponding splitters using
34569         DWI mode iterator.
34570         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
34571         from corresponding peephole2 patterns.
34572         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
34573         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
34574         and *lshrdi3_1_rex64 using SWI mode iterator.
34575         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
34576         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
34577         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
34578         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
34579         and *lshrdi3_cmp_rex64 using SWI mode iterator.
34580         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
34581         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
34582         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
34583         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
34584         SWI mode iterator.
34585
34586 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
34587
34588         * config/i386/i386.md (ashr<mode>3): Macroize expander from
34589         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
34590         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
34591         pattern from *ashr{di,ti}3_1 and corresponding splitters using
34592         DWI mode iterator.
34593         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
34594         from corresponding peephole2 patterns.
34595         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
34596         (ashrsi3_cvt): Rename from ashrsi3_31.
34597         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
34598         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
34599         and x86_64_shift_adj_3 using SWI48 mode iterator.
34600         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
34601         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
34602         and *ashrdi3_1_rex64 using SWI mode iterator.
34603         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
34604         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
34605         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
34606         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
34607         and *ashrdi3_cmp_rex64 using SWI mode iterator.
34608         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
34609         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
34610         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
34611         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
34612         SWI mode iterator.
34613         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
34614         * config/i386/i386.c (ix86_split_ashr): Update for renamed
34615         x86_shift<mode>_adj_3 expanders.
34616
34617 2010-04-10  Wei Guozhi  <carrot@google.com>
34618
34619         PR target/42601
34620         * config/arm/arm.c (arm_pic_static_addr): New function.
34621         (legitimize_pic_address): Call arm_pic_static_addr when it detects
34622         a static symbol.
34623         (arm_output_addr_const_extra): Output expression for new pattern.
34624         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
34625
34626 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
34627
34628         * ira-costs.c (record_reg_classes): Ignore alternatives that are
34629         not enabled.
34630
34631         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
34632         * web.c: Include "insn-config.h" and "recog.h".
34633         (union_match_dups): New function.
34634         (web_main): Call it.
34635         (union_defs): Don't try to recognize match_dups.
34636
34637         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
34638         if doing so would replace the entire pattern.
34639
34640 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
34641
34642         PR target/43707
34643         PR target/43709
34644         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
34645         and splitter pattern.  Change splitter operand 1 predicate to
34646         nonmemory_operand.
34647
34648 2010-04-09  Martin Jambor  <mjambor@suse.cz>
34649
34650         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
34651         lattices are addresses of CONST_DECLs with the same initial value.
34652         (ipcp_print_all_lattices): Print values of CONST_DECLs.
34653         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
34654
34655 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
34656             Bernd Schmidt  <bernds@codesourcery.com>
34657
34658         * loop-invariant.c (replace_uses): New static function.
34659         (move_invariant_reg): Use it to ensure we can replace the uses.
34660
34661 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
34662
34663         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
34664         function template.
34665         (picochip_override_options): Enable section anchors only above -O1.
34666         (picochip_reorg): Fixed a couple of build warnings.
34667
34668 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34669
34670         * configure.ac (plugin -rdynamic test): Log result.
34671         * configure: Regenerate.
34672         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
34673         (RDYNAMIC_SPEC): Define.
34674         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
34675
34676 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34677
34678         * configure.ac: Determine Sun ld version numbers.
34679         (comdat_group): Restrict GNU ld version checks to gld.
34680         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
34681         (enable_comdat): Support --enable-comdat.
34682         * configure: Regenerate.
34683         * doc/install.texi (Configuration): Document --enable-comdat.
34684
34685 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34686
34687         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
34688         * config/sol2-gld.h: ... here.
34689         * config.gcc (sparc*-*-solaris2*): Reflect this.
34690         (i[34567]86-*-solaris2*): Use it.
34691
34692 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
34693
34694         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
34695         setup_clocks_p.
34696         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
34697
34698 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34699
34700         PR 42965
34701         * diagnostic.c (diagnostic_initialize): Initialize
34702         some_warnings_are_errors.
34703         (diagnostic_finish): New.
34704         (diagnostic_action_after_output): Call it before exiting.
34705         (diagnostic_report_diagnostic): Do not print message here. Set
34706         some_warnings_are_errors.
34707         * diagnostic.h (diagnostic_context): Delete
34708         issue_warnings_are_errors_message. Add some_warnings_are_errors.
34709         (diagnostic_finish): Declare.
34710         * toplev.c (toplev_main): Call it before exit.
34711
34712 2010-04-09  Jason Merrill  <jason@redhat.com>
34713
34714         PR c++/42623
34715         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
34716         for incomplete type.
34717
34718         PR c++/41788
34719         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
34720         based on a warning flag.
34721
34722 2010-04-09  Richard Guenther  <rguenther@suse.de>
34723
34724         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
34725
34726 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
34727
34728         PR bootstrap/43684
34729         * varasm.c (default_assemble_visibility): Wrap vars that are
34730         set, but unused, by targets without GAS.
34731         * config/rs6000/rs6000.c (paired_emit_vector_compare):
34732         Remove set, but unused, vars.
34733         (rs6000_legitimize_tls_address): Likewise.
34734         (altivec_expand_dst_builtin): Likewise.
34735         * config/darwin.c (machopic_classify_symbol): Likewise.
34736         (machopic_indirection_name): Likewise.
34737
34738 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
34739
34740         * config/i386/i386.md (DWI): New mode iterator.
34741         (S): New mode attribute.
34742         (shift_operand): Ditto.
34743         (shift_immediate_operand): Ditto.
34744         (ashl_input_operand): Ditto.
34745         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
34746         using SDWIM mode iterator.
34747         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
34748         pattern from *ashl{di,ti}3_1 and corresponding splitters using
34749         DWI mode iterator.
34750         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
34751         from corresponding peephole2 patterns.
34752         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
34753         and x86_64_shift_adj_1 using SWI48 mode iterator.
34754         (x86_shift<mode>_adj_2): Ditto.
34755         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
34756         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
34757         using SWI48 mode iterator.
34758         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
34759         *ashldi3_cmp_rex64 using SWI mode iterator.
34760         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
34761         *ashldi3_cconly_rex64 using SWI mode iterator.
34762         * config/i386/i386.c (ix86_split_ashl): Update for renamed
34763         x86_shift<mode>_adj_{1,2}.
34764         (ix86_split_ashr): Ditto.
34765         (ix86_split_lshr): Ditto.
34766
34767 2010-04-09  Richard Guenther  <rguenther@suse.de>
34768
34769         * target.h (builtin_conversion): Pass in input and output types.
34770         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
34771         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
34772         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
34773         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
34774
34775         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
34776         Handle AVX modes.
34777         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
34778
34779 2010-04-09  Richard Guenther  <rguenther@suse.de>
34780
34781         PR target/43152
34782         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
34783
34784 2010-04-09  Richard Guenther  <rguenther@suse.de>
34785
34786         * tree-vectorizer.h (struct _stmt_vec_info): Document
34787         that vectype is the type of the LHS.
34788         (supportable_widening_operation, supportable_narrowing_operation):
34789         Get both input and output vector types as arguments.
34790         (vect_is_simple_use_1): Declare.
34791         (get_same_sized_vectype): Likewise.
34792         * tree-vect-loop.c (vect_determine_vectorization_factor):
34793         Set STMT_VINFO_VECTYPE to the vector type of the def.
34794         (vectorizable_reduction): Adjust.
34795         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
34796         Adjust.  Specify the output vector type.
34797         (vect_pattern_recog_1): Adjust.
34798         * tree-vect-stmts.c (get_same_sized_vectype): New function.
34799         (vectorizable_call): Adjust.
34800         (vectorizable_conversion): Likewise.
34801         (vectorizable_operation): Likewise.
34802         (vectorizable_type_demotion): Likewise.
34803         (vectorizable_type_promotion): Likewise.
34804         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
34805         the def.
34806         (vect_is_simple_use_1): New function.
34807         (supportable_widening_operation): Get both input and output
34808         vector types.
34809         (supportable_narrowing_operation): Likewise.
34810         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
34811
34812 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
34813
34814         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
34815         __thiscall and _thiscall as predefined macros.
34816         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
34817         thiscall attribute handling.
34818         (ix86_comp_type_attributes): Likewise.
34819         (ix86_function_regparm): Likewise.
34820         (ix86_return_pops_args): Likewise.
34821         (init_cumulative_args): Likewise.
34822         (find_drap_reg): Likewise.
34823         (ix86_static_chain): Likewise.
34824         (x86_this_parameter): Likewise.
34825         (x86_output_mi_thunk): Likewise.
34826         (ix86_attribute_table): Add description for thiscall attribute.
34827         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
34828         * doc/extend.texi: Add documentation for thiscall.
34829
34830 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34831
34832         PR c++/28584
34833         * c.opt (Wint-to-pointer-cast): Available in C++.
34834         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
34835
34836 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
34837
34838         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
34839         * calls.c (expand_call): Pass the function type to aggregate_value_p.
34840         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
34841         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
34842         function type instead.  Reorder and simplify checks.
34843
34844         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
34845
34846 2010-04-08  Jing Yu  <jingyu@google.com>
34847             Zdenek Dvorak  <ook@ucw.cz>
34848
34849         PR tree-optimization/42720
34850         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
34851         loop unswitch conditions here from ...
34852         (tree_unswitch_single_loop): ... here.
34853
34854 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
34855
34856         * tree-if-conv.c: Fix comments and simplify logic.
34857
34858 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
34859
34860         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
34861         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
34862         (main_tree_if_conversion): Update call to tree_if_conversion.
34863
34864 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34865
34866         PR 42485
34867         * doc/invoke.texi (-b,-V): Delete.
34868         * doc/tm.texi: Do not mention -b.
34869         * gcc.c (display_help): Delete -b and -V.
34870         (process_command): Delete -b and -V.
34871         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
34872
34873 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
34874             Wolfgang Gellerich  <gellerich@de.ibm.com>
34875
34876         Implement target hook for loop unrolling
34877         * target.h (loop_unroll_adjust): Add a new target hook function.
34878         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
34879         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
34880         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
34881         (s390_loop_unroll_adjust): Implement the new target hook for s390.
34882         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
34883         target hook.
34884         (decide_unroll_stupid): Likewise.
34885
34886 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34887
34888         PR target/43643
34889         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
34890
34891 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34892
34893         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
34894         (Specific, *-*-solaris2*): Likewise.
34895         Don't prefer Sun as over GNU as.
34896
34897 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
34898
34899         * config/s390/s390.c (override_options): Adjust the z10 defaults
34900         for max-unroll-times, max-completely-peeled-insns
34901         and max-completely-peel-times.
34902
34903 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34904
34905         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
34906         instructions for z10.
34907         (s390_expand_setmem): Likewise.
34908         (s390_expand_cmpmem): Likewise.
34909
34910 2010-04-08  Richard Guenther  <rguenther@suse.de>
34911
34912         PR tree-optimization/43679
34913         * tree-ssa-pre.c (eliminate): Only propagate copies.
34914
34915 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
34916
34917         PR bootstrap/43681
34918         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
34919         set but not used variable warning.
34920
34921 2010-04-08  Wei Guozhi  <carrot@google.com>
34922
34923         PR target/41653
34924         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
34925         (arm_size_rtx_costs): Call the new function when optimized for size.
34926
34927 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
34928
34929         PR debug/43670
34930         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
34931         op0 is not a MEM, just return NULL instead of assertion
34932         failure.
34933         (discover_nonconstant_array_refs): Don't walk debug stmts.
34934
34935 2010-04-08  Doug Kwan  <dougkwan@google.com>
34936
34937         * configure.ac: Recognize gold and do not use its version number
34938         to test ld features.
34939         * configure: Regenerate.
34940
34941 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
34942
34943         PR middle-end/40815
34944         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
34945         (negate_value): Move code to push elements to broken_up_substracts ...
34946         (eliminate_plus_minus_pair): ... here.  Push operands that have no
34947         negative pair to plus_negates.
34948         (repropagate_negates, init_reassoc, fini_reassoc): Update.
34949
34950 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
34951
34952         * doc/install.texi (Configuration): Move description of
34953         --enable-lto, --with-libelf*, --enable-gold from Java section to
34954         general section.
34955
34956         * doc/generic.texi (Working with declarations)
34957         (Function Properties, C and C++ Trees): Fix typos.
34958         * doc/sourcebuild.texi (Top Level): Likewise.
34959
34960 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
34961
34962         PR c/18624
34963         * tree.h (DECL_READ_P): Define.
34964         (struct tree_decl_common): Add decl_read_flag.
34965         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
34966         a set but not used warning.
34967         (merge_decls): Merge DECL_READ_P flag.
34968         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
34969         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
34970         * c-common.c (handle_used_attribute, handle_unused_attribute):
34971         Likewise.
34972         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
34973         New prototypes.
34974         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
34975         New functions.
34976         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
34977         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
34978         c_parser_binary_expression, c_parser_cast_expression,
34979         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
34980         Call default_function_array_read_conversion instead of
34981         default_function_array_conversion where needed.
34982         (c_parser_unary_expression, c_parser_conditional_expression,
34983         c_parser_postfix_expression_after_primary, c_parser_initelt):
34984         Likewise.  Call mark_exp_read where needed.
34985         (c_parser_statement_after_labels, c_parser_asm_operands,
34986         c_parser_typeof_specifier, c_parser_sizeof_expression,
34987         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
34988         where needed.
34989         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
34990         New.
34991         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
34992         (warn_unused_but_set_parameter): Default to warn_unused
34993         && extra_warnings.
34994         * doc/invoke.texi: Document -Wunused-but-set-variable and
34995         -Wunused-but-set-parameter.
34996
34997         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
34998         used count variable.
34999         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
35000         when operandN variables aren't used in the body of the expander
35001         or splitter.
35002         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
35003         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
35004         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
35005         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
35006         FOR_EACH_IMM_USE_ON_STMT): Likewise.
35007         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
35008         * tree.c (PROCESS_ARG): Likewise.
35009
35010 2010-04-07  Simon Baldwin  <simonb@google.com>
35011
35012         * diagnostic.h (diagnostic_override_option_index): New macro to
35013         set a diagnostic's option_index.
35014         * c-tree.h (c_cpp_error): Add warning reason argument.
35015         * opts.c (_warning_as_error_callback): New.
35016         (register_warning_as_error_callback): Store callback for
35017         warnings enabled via enable_warning_as_error.
35018         (enable_warning_as_error): Call callback, minor code tidy.
35019         * opts.h (register_warning_as_error_callback): Declare.
35020         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
35021         response to -Werror=.
35022         (c_common_init_options): Register warning_as_error_callback in opts.c.
35023         * common.opt: Add -Wno-cpp option.
35024         * c-common.c (struct reason_option_codes_t): Map cpp warning
35025         reason codes to gcc option indexes.
35026         * (c_option_controlling_cpp_error): New function, lookup the gcc
35027         option index for a cpp warning reason code.
35028         * (c_cpp_error): Add warning reason argument, call
35029         c_option_controlling_cpp_error for diagnostic_override_option_index.
35030         * doc/invoke.texi: Document -Wno-cpp.
35031
35032 2010-04-07  Richard Guenther  <rguenther@suse.de>
35033
35034         * ipa-reference.c (mark_load): Use get_base_address.
35035         (mark_store): Likewise.
35036
35037         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
35038         inserting GIMPLE_NOPs into the IL.
35039         * tree-ssa-structalias.c (get_constraint_for_component_ref):
35040         Explicitly strip handled components and indirect references.
35041
35042         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
35043         folding address expressions.
35044         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
35045         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
35046         operand_equal_p to compare decls.
35047         (ptr_deref_may_alias_decl_p): Likewise.
35048         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
35049         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
35050         Handle reversed comparison ops.
35051         * tree-sra.c (asm_visit_addr): Use get_base_address.
35052         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
35053         * ipa-reference.c (mark_address): Use get_base_address.
35054
35055 2010-04-07  Richard Guenther  <rguenther@suse.de>
35056
35057         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
35058         Propagate constants everywhere.
35059
35060 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
35061
35062         PR debug/43516
35063         * tree.c (MAX_INT_CACHED_PREC): Define.
35064         (nonstandard_integer_type_cache): New array.
35065         (build_nonstandard_integer_type): Cache results for precision
35066         <= MAX_INT_CACHED_PREC.
35067
35068 2010-04-07  Richard Guenther  <rguenther@suse.de>
35069
35070         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
35071         -fargument-noalias-global, -fargument-noalias-anything): Remove.
35072         * common.opt: Likewise.
35073         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
35074         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
35075         (nonoverlapping_memrefs_p): Likewise.
35076         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
35077         * opts.c (common_handle_option): Handle OPT_fargument_alias,
35078         OPT_fargument_noalias, OPT_fargument_noalias_anything and
35079         OPT_fargument_noalias_global for backward compatibility.
35080
35081 2010-04-07  Richard Guenther  <rguenther@suse.de>
35082
35083         PR tree-optimization/43270
35084         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
35085         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
35086         * tree-ssa-pre.c (phi_translate_1): Adjust.
35087         (fully_constant_expression): Split out vn_reference handling to ...
35088         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
35089         Fold reads from constant strings.
35090         (vn_reference_lookup): Handle fully constant references.
35091         (vn_reference_lookup_pieces): Likewise.
35092         * Makefile.in (expmed.o-warn): Add -Wno-error.
35093
35094 2010-04-07  Martin Jambor  <mjambor@suse.cz>
35095
35096         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
35097
35098 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
35099
35100         PR driver/41594
35101         * gcc.c: Add -static-libstdc++ to list of recognized options.
35102
35103 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35104
35105         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
35106
35107 2010-04-07  Richard Guenther  <rguenther@suse.de>
35108
35109         PR middle-end/42617
35110         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
35111         bases build simple mem attributes to retain points-to information.
35112
35113 2010-04-07  Richard Guenther  <rguenther@suse.de>
35114
35115         PR middle-end/42617
35116         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
35117         preserve points-to related information.
35118
35119 2010-04-07  Richard Guenther  <rguenther@suse.de>
35120
35121         PR middle-end/42617
35122         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
35123         discard plain indirect references.
35124         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
35125         * tree.c (tree_nop_conversion): Likewise.
35126
35127 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
35128
35129         PR debug/43628
35130         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
35131
35132 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
35133
35134         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
35135         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
35136
35137 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
35138
35139         * tree-if-conv.c: Fix indentation and comments.
35140
35141 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
35142
35143         * tree-if-conv.c: Sort static functions in topological order.
35144
35145 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
35146
35147         * tree-if-conv.c: Fix indentation and comments.
35148
35149 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
35150
35151         PR middle-end/43519
35152         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
35153         lang_hooks.types.type_for_size instead of
35154         build_nonstandard_integer_type.
35155         When converting an unsigned type to signed, double its precision.
35156         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
35157         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
35158         (graphite_create_new_loop_guard): When ub + 1 wraps around,
35159         use lb <= ub.
35160
35161 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
35162
35163         PR middle-end/43519
35164         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
35165         POINTER_PLUS_EXPR for pointer types.
35166
35167 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
35168
35169         PR middle-end/43519
35170         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
35171         * graphite-clast-to-gimple.c: Include langhooks.h.
35172         (max_signed_precision_type): New.
35173         (max_precision_type): Takes two types as arguments.
35174         (precision_for_value): New.
35175         (precision_for_interval): New.
35176         (gcc_type_for_interval): New.
35177         (gcc_type_for_value): New.
35178         (gcc_type_for_clast_term): New.
35179         (gcc_type_for_clast_red): New.
35180         (gcc_type_for_clast_bin): New.
35181         (gcc_type_for_clast_expr): Split up into several functions.
35182         (gcc_type_for_clast_eq): Rewritten.
35183         (compute_bounds_for_level): New.
35184         (compute_type_for_level_1): New.
35185         (compute_type_for_level): New.
35186         (gcc_type_for_cloog_iv): Removed.
35187         (gcc_type_for_iv_of_clast_loop): Rewritten.
35188         (graphite_create_new_loop): Compute the lower and upper bound types
35189         with gcc_type_for_clast_expr.
35190         (graphite_create_new_loop_guard): Same.
35191         (find_cloog_iv_in_expr): Removed.
35192         (compute_cloog_iv_types_1): Removed.
35193         (compute_cloog_iv_types): Removed.
35194         (gloog): Do not call compute_cloog_iv_types.
35195         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
35196         GBB_CLOOG_IV_TYPES.
35197         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
35198         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
35199         (GBB_CLOOG_IV_TYPES): Removed.
35200
35201 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
35202
35203         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
35204         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
35205         (detect_commutative_reduction): Same.
35206
35207 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
35208
35209         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
35210         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
35211         argument.
35212         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
35213         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
35214         (rewrite_commutative_reductions_out_of_ssa): Same.
35215         * passes.c (execute_function_todo): Call verify_ssa for every pass
35216         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
35217         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
35218         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
35219         with an extra argument.
35220         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
35221         verify_ssa only when the extra argument is true.
35222         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
35223         with an extra argument.
35224         (tree_transform_and_unroll_loop): Same.
35225
35226 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
35227
35228         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
35229         for all the passes of the LNO having LOOP_CLOSED_SSA.
35230         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
35231         * tree-loop-distribution.c (pass_loop_distribution): Same.
35232         * tree-pass.h (TODO_verify_loops): Removed.
35233         * tree-ssa-loop.c (pass_tree_loop_init): Same.
35234         (pass_lim): Same.
35235         (pass_tree_unswitch): Same.
35236         (pass_predcom): Same.
35237         (pass_vectorize): Same.
35238         (pass_linear_transform): Same.
35239         (pass_graphite_transforms): Same.
35240         (pass_iv_canon): Same.
35241         (pass_complete_unroll): Same.
35242         (pass_complete_unrolli): Same.
35243         (pass_parallelize_loops): Same.
35244         (pass_loop_prefetch): Same.
35245         (pass_iv_optimize): Same.
35246
35247 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
35248
35249         PR middle-end/32824
35250         * passes.c (init_optimization_passes): Move pass_lim before
35251         pass_copy_prop and pass_dce_loop.
35252
35253 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
35254
35255         PR target/43667
35256         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
35257         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
35258         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
35259         MULTI_* defines for 4 argument vpermil2p* builtins.
35260
35261 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
35262
35263         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
35264         * config/i386/i386.c (x86_maybe_negate_const_int): New.
35265         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
35266         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
35267         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
35268         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
35269         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
35270         Use x86_maybe_negate_const_int to output insn mnemonic.
35271         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
35272         check from instruction predicate.  Update comments.
35273         * config/i386/sync.md (sync_add<mode>): Use
35274         x86_maybe_negate_const_int to output insn mnemonic.
35275
35276 2010-04-06  Jan Hubicka  <jh@suse.cz>
35277
35278         PR tree-optimization/42906
35279         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
35280         IGNORE_SELF argument.  Set visited_control_parents for fully
35281         processed BBs.
35282         (find_obviously_necessary_stmts): Update call of
35283         mark_control_dependent_edges_necessary.
35284         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
35285
35286 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
35287
35288         * config/i386/i386.md: Remove comment about 'e' and 'E'
35289         operand modifier.
35290
35291 2010-04-06  Richard Guenther  <rguenther@suse.de>
35292
35293         PR tree-optimization/43627
35294         * tree-vrp.c (extract_range_from_unary_expr): Widenings
35295         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
35296         not varying.
35297
35298 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
35299
35300         * BASE-VER: Change to 4.6.0.
35301
35302         PR target/43638
35303         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
35304         handling.
35305
35306 2010-04-06  Richard Guenther  <rguenther@suse.de>
35307
35308         PR middle-end/43661
35309         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
35310
35311 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35312
35313         * doc/invoke.texi (Optimize Options): Document that LTO
35314         won't remove object access purely due to incompatible
35315         declarations.
35316
35317 2010-04-04  Matthias Klose  <doko@ubuntu.com>
35318
35319         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
35320         Initialize variable.
35321
35322 2010-04-03  Richard Guenther  <rguenther@suse.de>
35323
35324         PR middle-end/42509
35325         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
35326         require a non-NULL MEM_OFFSET.
35327
35328 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
35329
35330         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
35331         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
35332         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
35333         config/alpha/predicates.md, config/arm/arm.md,
35334         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
35335         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
35336         config/darwin9.h, config/darwin.c, config/darwin.h,
35337         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
35338         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
35339         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
35340         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
35341         config/mips/mips.md, config/mn10300/mn10300.c,
35342         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
35343         config/rs6000/aix.h, config/rs6000/dfp.md,
35344         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
35345         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
35346         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
35347         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
35348         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
35349         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
35350         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
35351         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
35352         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
35353         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
35354         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
35355         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
35356         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
35357         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
35358         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
35359         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
35360         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
35361         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
35362         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
35363         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
35364         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
35365         opt-functions.awk, opth-gen.awk, params.def, passes.c,
35366         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
35367         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
35368         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
35369         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
35370         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
35371         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
35372         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
35373         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
35374         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
35375         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
35376         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
35377         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
35378         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
35379         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
35380
35381 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35382
35383         PR other/43620
35384         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
35385         * aclocal.m4: Regenerate.
35386
35387 2010-04-02  Richard Guenther  <rguenther@suse.de>
35388
35389         PR tree-optimization/43629
35390         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
35391         if we have seen a constant value.
35392
35393 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
35394
35395         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
35396
35397 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
35398
35399         PR target/43469
35400         * arm.c (legitimize_tls_address): Adjust call to
35401         gen_tls_load_dot_plus_four.
35402         (arm_note_pic_base): New function.
35403         (arm_cannot_copy_insn_p): Use it.
35404         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
35405         constraint.
35406
35407 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35408
35409         PR bootstrap/43531
35410
35411         Revert:
35412         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35413
35414         * Makefile.in ($(out_object_file)): Depend on
35415         gt-$(basename $(notdir $(out_file))).h.
35416
35417 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
35418
35419         * config.gcc (lm32-*-rtems*): Add t-lm32.
35420
35421 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
35422
35423         * config.gcc: Add lm32-*-rtems*.
35424         * config/lm32/rtems.h: New file.
35425
35426 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
35427
35428         PR target/42609
35429         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
35430
35431 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
35432
35433         * dwarf2out.c (output_compilation_unit_header): For
35434         -gdwarf-4 use version 4 instead of version 3.
35435         (output_line_info): For version 4 and above emit additional
35436         maximum ops per insn header field.
35437         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
35438
35439         * dwarf2out.c (is_c_family, is_java): Remove.
35440         (lower_bound_default): New function.
35441         (add_bound_info, gen_descr_array_type_die): Use it.
35442
35443 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
35444
35445         PR debug/43325
35446         * dwarf2out.c (gen_variable_die): Allow debug info for variable
35447         re-declaration when it happens in a function.
35448
35449 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
35450
35451         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
35452         (cgraph_remove_function_insertion_hook): Same.
35453         (cgraph_call_function_insertion_hooks): Same.
35454
35455 2010-04-01  Richard Guenther  <rguenther@suse.de>
35456
35457         PR middle-end/43614
35458         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
35459         and TREE_THIS_VOLATILE.
35460         (copy_ref_info): Likewise.
35461         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
35462         * tree.c (build6_stat): Ignore side-effects of all but arg5
35463         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
35464         TARGET_MEM_REF.
35465
35466 2010-04-01  Richard Guenther  <rguenther@suse.de>
35467
35468         PR tree-optimization/43607
35469         * ipa-type-escape.c (check_call): Do not access non-existing
35470         arguments.
35471
35472 2010-04-01  Richard Guenther  <rguenther@suse.de>
35473
35474         PR middle-end/43602
35475         Revert
35476         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
35477                     Jack Howarth  <howarth@bromo.med.uc.edu>
35478
35479         * tree-profile.c (tree_init_ic_make_global_vars): Make static
35480         variables TLS.
35481
35482 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35483
35484         * doc/install.texi (Prerequisites): Document libelf usability on
35485         IRIX 5/6 and Solaris 2.
35486         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
35487         Update GNU as, GNU ld requirements.
35488         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
35489         Document Sun Studio compiler download.
35490         Update and simplify as, ld recommendations.
35491         (Specific, *-*-solaris2.7): Note obsoletion, removal.
35492
35493 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35494
35495         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
35496         with_tune_32 to pentium4.
35497
35498 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
35499
35500         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
35501
35502 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35503
35504         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
35505         obsoletion, removal.
35506         Update IDO URL.
35507         Document GNU as requirement.
35508         Update configure requirements.
35509         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
35510         Recomment IRIX 6.5.18+.
35511         Document IDF/IDL requirement.
35512         Document GNU as requirement.
35513         Document GNU ld bootstrap failure.
35514         Remove freeware.sgi.com reference.
35515
35516 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35517
35518         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
35519         UNIX V4.0, V5.0 obsoletion, removal.
35520         Remove --with-gc=simple reference.
35521         Update VM requirements during bootstrap.
35522         Remove -oldas bootstrap description.
35523         Update binutils reference.
35524         Remove comparison failure note.
35525
35526 2010-03-31  Richard Guenther  <rguenther@suse.de>
35527             Zdenek Dvorak  <ook@ucw.cz>
35528             Sebastian Pop  <sebastian.pop@amd.com>
35529
35530         PR middle-end/43464
35531         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
35532         with multiple arguments.
35533         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
35534
35535 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
35536
35537         * graphite-dependences.c (print_pddr): Call print_pdr with an
35538         extra argument.
35539         * graphite-poly.c (debug_pdr): Add an extra argument for the
35540         verbosity level.
35541         (print_pdr): Same.
35542         (print_pbb_domain): Same.
35543         (print_pbb): Same.
35544         (print_scop_context): Same.
35545         (print_scop): Same.
35546         (print_cloog): Same.
35547         (debug_pbb_domain): Same.
35548         (debug_pbb): Same.
35549         (print_pdrs): Same.
35550         (debug_pdrs): Same.
35551         (debug_scop_context): Same.
35552         (debug_scop): Same.
35553         (debug_cloog): Same.
35554         (print_scop_params): Same.
35555         (debug_scop_params): Same.
35556         (print_iteration_domain): Same.
35557         (print_iteration_domains): Same.
35558         (debug_iteration_domain): Same.
35559         (debug_iteration_domains): Same.
35560         (print_scattering_function): Same.
35561         (print_scattering_functions): Same.
35562         (debug_scattering_function): Same.
35563         (debug_scattering_functions): Same.
35564         * graphite-poly.h (debug_pdr): Update declaration.
35565         (print_pdr): Same.
35566         (print_pbb_domain): Same.
35567         (print_pbb): Same.
35568         (print_scop_context): Same.
35569         (print_scop): Same.
35570         (print_cloog): Same.
35571         (debug_pbb_domain): Same.
35572         (debug_pbb): Same.
35573         (print_pdrs): Same.
35574         (debug_pdrs): Same.
35575         (debug_scop_context): Same.
35576         (debug_scop): Same.
35577         (debug_cloog): Same.
35578         (print_scop_params): Same.
35579         (debug_scop_params): Same.
35580         (print_iteration_domain): Same.
35581         (print_iteration_domains): Same.
35582         (debug_iteration_domain): Same.
35583         (debug_iteration_domains): Same.
35584         (print_scattering_function): Same.
35585         (print_scattering_functions): Same.
35586         (debug_scattering_function): Same.
35587         (debug_scattering_functions): Same.
35588
35589 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
35590
35591         * graphite-poly.c (print_scattering_function_1): New.
35592         (print_scattering_function): Call it.
35593         (print_scop_params): Remove spaces at the end of lines.
35594         (print_cloog): New.
35595         (debug_cloog): New.
35596         * graphite-poly.h (print_cloog): Declared.
35597         (debug_cloog): Declared.
35598
35599 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
35600
35601         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
35602         in loop->header.
35603         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
35604         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
35605         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
35606         to switch between adding the IV bump in loop->latch or in loop->header.
35607
35608 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
35609
35610         * graphite-poly.c (print_scattering_function): Pretty print following
35611         the scoplib format.
35612         (print_pdr): Same.
35613         (print_pbb_domain): Same.
35614         (dump_gbb_cases): Same.
35615         (dump_gbb_conditions): Same.
35616         (print_pdrs): Same.
35617         (print_pbb): Same.
35618         (print_scop_params): Same.
35619         (print_scop_context): Same.
35620         (print_scop): Same.
35621         (print_pbb_body): New.
35622         (lst_indent_to): New.
35623         (print_lst): Start new lines with a #.
35624         * graphite-poly.h (pbb_bb): New.
35625         (pbb_index): Use pbb_bb.
35626         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
35627         disjuncts.
35628         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
35629
35630 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
35631
35632         * dwarf2out.c (size_of_die): For -gdwarf-4 use
35633         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
35634         and 0 instead of 1 for dw_val_class_flag.
35635         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
35636         dw_val_class_range_list, dw_val_class_loc_list,
35637         dw_val_class_lineptr and dw_val_class_macptr, use
35638         DW_FORM_flag_present for dw_val_class_flag and
35639         DW_FORM_exprloc for dw_val_class_loc.
35640         (output_die): For -gdwarf-4 print dw_val_class_loc
35641         size as uleb128 instead of 1 or 2 bytes and don't print
35642         anything for dw_val_class_flag.
35643
35644         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
35645         instead of cselib_lookup following by tweaking locs->setting_insn.
35646
35647         PR bootstrap/43596
35648         * cselib.c (cselib_process_insn): Clear cselib_current_insn
35649         even before returning from label, setjmp call or volatile asm
35650         handling.
35651
35652 2010-03-31  Richard Guenther  <rguenther@suse.de>
35653
35654         PR middle-end/43600
35655         * cgraphunit.c (cgraph_output_in_order): Do not allocate
35656         temporary data on stack.
35657
35658 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35659
35660         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
35661         (PUSHSECTION_ASM_OP): Remove.
35662         (POPSECTION_ASM_OP): Remove.
35663         (PUSHSECTION_FORMAT): Remove.
35664         * config/sol2.h (PUSHSECTION_FORMAT): Define.
35665         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
35666         * config/sol2.c (solaris_output_init_fini): Use it.
35667
35668 2010-03-31  Jie Zhang  <jie@codesourcery.com>
35669
35670         PR 43574
35671         * opt-functions.awk (var_type_struct): Use signed char type
35672         for simple variables.
35673
35674 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35675
35676         * config/sol2.c: Include output.h.
35677         (solaris_assemble_visibility): New function.
35678         * config/t-sol2 (sol2.o): Add output.h dependency.
35679         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
35680         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
35681         Redefine.
35682
35683 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
35684
35685         PR target/43580
35686         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
35687         V2SImode or XFmode on PRE_DEC.
35688
35689         PR debug/43557
35690         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
35691         BLKmode.
35692
35693 2010-03-31  Jie Zhang  <jie@codesourcery.com>
35694
35695         PR 43562
35696         * reload.h (caller_save_initialized_p): Declare.
35697         * toplev.c (backend_init_target): Don't call
35698         init_caller_save but set caller_save_initialized_p to false.
35699         * caller-save.c (caller_save_initialized_p): Define.
35700         (init_caller_save): Check caller_save_initialized_p.
35701         * ira.c (ira): Call init_caller_save if flag_caller_saves.
35702
35703 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35704
35705         PR target/39048
35706         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
35707         and soft-fp/t-softfp to tmake_file.
35708         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
35709         (LIBGCC2_TF_CEXT): Define.
35710         (TF_SIZE): Define.
35711
35712 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
35713
35714         PR debug/42977
35715         * cselib.c (n_useless_values): Document handling of debug locs.
35716         (n_useless_debug_values, n_debug_values): New variables.
35717         (new_elt_loc_list): Don't add to debug values, keep count.
35718         (promote_debug_loc): New.
35719         (cselib_reset_table): Zero new variables.
35720         (entry_and_rtx_equal_p): Promote debug locs.
35721         (discard_useless_locs): Increment n_useless_debug_values for
35722         debug values.
35723         (remove_useless_values): Adjust n_useless_values and n_debug_values
35724         with n_useless_debug_values.
35725         (add_mem_for_addr): Promote debug locs.
35726         (cselib_lookup_mem): Likewise.
35727         (cselib_lookup_addr): Renamed to...
35728         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
35729         (cselib_log_lookup): ... this.  Turn into...
35730         (cselib_lookup_addr): ... new wrapper.
35731         (cselib_lookup_from_insn): New.
35732         (cselib_invalidate_regno): Increment n_useless_debug_values for
35733         debug values.
35734         (cselib_invalidate_mem): Likewise.
35735         (cselib_process_insn): Take n_deleted and n_debug_values into
35736         account to guard remove_useless_value call.
35737         (cselib_finish): Zero n_useless_debug_values.
35738         * cselib.h (cselib_lookup_from_insn): Declare.
35739         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
35740         (sched_analyze_2): Likewise.
35741
35742 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
35743
35744         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
35745         functions.
35746         (adjust_mems): Replace narrowing SUBREG of expression containing
35747         just PLUS, MINUS, MULT and ASHIFT of registers and constants
35748         with operations in the narrower mode.
35749
35750         PR debug/43593
35751         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
35752         regs_invalidated_by_call instead all call_used_reg_set registers.
35753
35754 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
35755
35756         PR middle-end/43430
35757         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
35758         pointer comparisons with types_compatible_p.
35759         * tree-vect-stmts.c (vectorizable_call): Same.
35760         (vectorizable_condition): Same.
35761
35762 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35763
35764         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
35765         stack check if the mask would be zero.
35766
35767 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
35768             Jack Howarth  <howarth@bromo.med.uc.edu>
35769
35770         * tree-profile.c (tree_init_ic_make_global_vars): Make static
35771         variables TLS.
35772
35773 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
35774
35775         PR other/25232
35776         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
35777         and __unordtf2.
35778         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
35779         Include ___unordxf2 and ___unordtf2.
35780         * config/i386/libgcc-glibc.ver: Do not define inheritance from
35781         GCC_4.4.0 here.
35782
35783 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
35784
35785         * config/lm32/t-lm32: New file.
35786         * config.gcc: Use the above file when targetting lm32.
35787
35788 2010-03-28  Duncan Sands  <baldrick@free.fr>
35789
35790         * Makefile.in (PLUGIN_HEADERS): Add except.h.
35791
35792 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
35793
35794         PR middle-end/43431
35795         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
35796         Improve vectorization cost model diagnostic.
35797
35798 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
35799
35800         PR middle-end/43436
35801         * tree-vect-data-refs.c (vect_analyze_data_refs): When
35802         compute_data_dependences_for_loop returns false, early exit
35803         and output an extra diagnostic for the failed data reference
35804         analysis.
35805
35806 2010-03-29  Richard Guenther  <rguenther@suse.de>
35807
35808         PR tree-optimization/43560
35809         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
35810         (can_sm_ref_p): Treat stores to readonly locations as trapping.
35811
35812 2010-03-29  Jie Zhang  <jie@codesourcery.com>
35813
35814         PR 43564
35815         * toplev.c (process_options): Set optimization_default_node
35816         and optimization_current_node.
35817         * opts.c (decode_options): Don't set optimization_default_node
35818         and optimization_current_node.
35819
35820 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
35821
35822         * config/rtems.h: Abandon -qrtems_debug.
35823
35824 2010-03-28  Jan Hubicka  <jh@suse.cz>
35825
35826         PR tree-optimization/43505
35827         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
35828         map should not be copied.
35829
35830 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
35831
35832         PR middle-end/41674
35833         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
35834         cdtors, set DECL_PRESERVE_P.
35835         * ipa.c (cgraph_externally_visible_p): Return true if declaration
35836         should be preseved.
35837
35838 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
35839
35840         PR tree-optimization/43528
35841         * stor-layout.c (place_field): Check that constant fits into
35842         unsigned HWI when skipping calculation of MS bitfield layout.
35843
35844 2010-03-27  Jan Hubicka  <jh@suse.cz>
35845
35846         PR middle-end/43391
35847         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
35848         notice_global_symbol work.
35849
35850 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
35851
35852         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
35853         instead of dwarf2out_decl.
35854         (struct var_loc_node): Remove section_label field.
35855         (dwarf2out_function_decl): New function.
35856         (dwarf2out_var_location): Don't set section_label field.
35857         (dwarf2out_begin_function): Don't empty decl_loc_table here.
35858
35859 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
35860
35861         PR tree-optimization/43544
35862         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
35863         First argument for builtin vectorized function hook is now a
35864         tree to be able to distinguish between machine specific and
35865         standard builtins.
35866         * targhooks.c (default_builtin_vectorized_function): Ditto.
35867         * targhooks.h (default_builtin_vectorized_function): Ditto.
35868         * target.h (struct gcc_target): Ditto.
35869         * tree-vect-stmts.c (vectorizable_function): Ditto.
35870         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
35871         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
35872         Ditto.
35873
35874 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
35875
35876         PR c/43381
35877         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
35878         nested binding iff it is a FUNCTION_DECL.
35879         (store_parm_decls_newstyle): Pass nested=true to bind for
35880         FUNCTION_DECLs amongst parameters.
35881
35882 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
35883
35884         * var-tracking.c (vt_expand_loc_callback): Don't run
35885         cselib_expand_value_rtx_cb in dummy mode if
35886         cselib_dummy_expand_value_rtx_cb returned false.
35887
35888         * var-tracking.c (emit_note_insn_var_location): For one part
35889         notes with offset 0, don't add EXPR_LIST around the location.
35890         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
35891         add_location_or_const_value_attribute): Adjust for that change.
35892
35893         PR debug/43540
35894         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
35895         into first operand and location into second.
35896         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
35897         dw_cfi_oprnd_loc for DW_CFA_expression.
35898         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
35899         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
35900         assume first argument is regnum and second argument is location.
35901
35902 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
35903
35904         PR target/42113
35905         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
35906         of scratch register to DImode.  Split to DImode comparison operator.
35907         Use SImode subreg of scratch register in the multiplication.
35908         (*cmp_sadd_sidi): Ditto.
35909         (*cmp_ssub_si): Ditto.
35910         (*cmp_ssub_sidi): Ditto.
35911
35912 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
35913
35914         PR target/43524
35915         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
35916         Remove invalid assert and wrong comment.
35917
35918 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
35919
35920         PR debug/43516
35921         * flags.h (final_insns_dump_p): New extern.
35922         * final.c (final_insns_dump_p): New variable.
35923         (rest_of_clean_state): Set it before -fdump-final-insns=
35924         dumping, clear afterwards.
35925         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
35926         MEM_ALIAS_SET on MEMs.
35927
35928 2010-03-26  David S. Miller  <davem@davemloft.net>
35929
35930         * configure.ac: Fix sparc GOTDATA_OP bug check.
35931         * configure: Rebuild.
35932
35933 2010-03-26  Alan Modra  <amodra@gmail.com>
35934
35935         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
35936
35937 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35938
35939         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
35940         TLS_SECTION_ASM_FLAG.
35941
35942 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
35943
35944         PR bootstrap/43511
35945         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
35946         Clear first_function_block_is_cold.
35947
35948         PR c/43385
35949         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
35950         argument if the argument is truth_value_p.
35951
35952 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
35953
35954         * config/rs6000/constraints.md: Update copyright year for my changes.
35955
35956         PR target/43484
35957         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
35958         used in reg+reg addressing, swap registers.
35959
35960 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
35961
35962         PR debug/43293
35963         * target.h (struct gcc_target): Add code_end hook.
35964         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
35965         if not yet defined.
35966         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
35967         * toplev.c (compile_file): Call targetm.asm_out.code_end
35968         hook before unwind info/debug info output.
35969         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
35970         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
35971         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
35972         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
35973         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
35974         * config/i386/i386.c (ix86_file_end): Renamed to...
35975         (ix86_code_end): ... this.  Make static.  Don't call
35976         file_end_indicate_exec_stack.  Emit unwind info using
35977         final_start_function/final_end_function.
35978         (darwin_x86_file_end): Remove.
35979         (TARGET_ASM_CODE_END): Define.
35980         * config/i386/i386.h (TARGET_ASM_FILE_END,
35981         NEED_INDICATE_EXEC_STACK): Don't define.
35982         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
35983         (TARGET_ASM_FILE_END): Define to darwin_file_end.
35984         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
35985         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
35986
35987         PR target/43498
35988         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
35989         at the beginning and final_end_function at the end.
35990         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
35991
35992 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35993
35994         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
35995         and Sun as TLS syntax.
35996         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
35997         * configure: Regenerate.
35998         * config.in: Regenerate.
35999         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
36000         (default_elf_asm_named_section): Use it.
36001         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
36002         (i386_output_dwarf_dtprel): Likewise.
36003         (output_addr_const_extra): Likewise.
36004         (output_pic_addr_const): Lowercase @GOTTPOFF.
36005         (output_addr_const_extra): Likewise.
36006         (output_pic_addr_const): Lowercase @GOTNTPOFF.
36007         (output_addr_const_extra): Likewise.
36008         (output_pic_addr_const): Lowercase @INDNTPOFF.
36009         (output_addr_const_extra): Likewise.
36010         (output_pic_addr_const): Lowercase @NTPOFF.
36011         (output_addr_const_extra): Likewise.
36012         (output_pic_addr_const): Lowercase @TPOFF.
36013         (output_addr_const_extra): Likewise.
36014         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
36015         (*tls_global_dynamic_64): Likewise.
36016         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
36017         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
36018
36019         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
36020         (ASM_OUTPUT_TLS_COMMON): Use it.
36021         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
36022
36023         PR target/38118
36024         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
36025         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
36026         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
36027         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
36028         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
36029         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
36030
36031 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36032
36033         * config/i386/i386.c (override_options): Don't accept
36034         -mtls-dialect=sun any longer.
36035         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
36036         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
36037         (*tls_local_dynamic_base_32_sun): Likewise.
36038         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
36039
36040 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
36041
36042         PR debug/43508
36043         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
36044         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
36045
36046         PR debug/43479
36047         * ira.c (adjust_cleared_regs): New function.
36048         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
36049
36050         PR debug/19192
36051         PR debug/43479
36052         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
36053         from gimple_block.
36054         * expr.c (expand_expr_real): Restore previous
36055         curr_insn_source_location and curr_insn_block after
36056         expand_expr_real_1 call.
36057         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
36058         instead of expand_expr_real_1.
36059
36060 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
36061
36062         PR rtl-optimization/43413
36063         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
36064         hard regs too.
36065
36066 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
36067
36068         PR target/43348
36069         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
36070         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
36071
36072 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
36073
36074         * config/i386/i386.c (ix86_target_string): Add -mfma.
36075         Fix a typo in comment.
36076
36077 2010-03-22  Mike Stump  <mikestump@comcast.net>
36078
36079         PR target/23071
36080         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
36081         Don't overly align based upon packed packed fields.
36082
36083 2010-03-22  Jason Merrill  <jason@redhat.com>
36084
36085         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
36086         Use () rather than [], and move before the element type.
36087
36088 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36089
36090         * doc/configfiles.texi (Configuration Files): Removed
36091         fixinc/Makefile*, intl/Makefile.*.
36092         * doc/makefile.texi: Fixed markup. Abstract from version
36093         control system used.
36094         (Makefile): Removed obsolete java/parse.y example.
36095         * doc/sourcebuild.texi: Likewise.
36096         (Top Level): Added config, gnattools, libdecnumber, libgcc,
36097         libgomp, libssp.  Removed fastjar.
36098         (Miscellaneous Docs): Clarify location.
36099         Added COPYING3, COPYING3.LIB.
36100         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
36101
36102 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36103
36104         PR target/38085
36105         * config/i386/i386.c (x86_function_profiler)
36106         [!NO_PROFILE_COUNTERS]: Fix typo.
36107         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
36108         instead of callq.
36109
36110 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
36111             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36112
36113         * doc/sourcebuild.texi (Test Directives): Split into six
36114         subsections, with most of the current text in new subsections
36115         Directives, Selectors, and Final Actions.
36116         (Directives): Split list of test directives into multiple
36117         subsubsections.
36118         (Selectors): Describe use and syntax of selectors.
36119         (Effective-Target Keywords): Describe all existing keywords.
36120         (Add Options): Describe features for dg-add-options.
36121         (Require Support): Describe variants of dg-require-support.
36122         (Final Actions): Describe commands to use in dg-final.
36123
36124 2010-03-22  Michael Matz  <matz@suse.de>
36125
36126         PR middle-end/43475
36127         * recog.c (validate_replace_rtx_group): Replace also in
36128         REG_EQUAL and REG_EQUIV notes.
36129
36130 2010-03-22  Richard Guenther  <rguenther@suse.de>
36131
36132         PR tree-optimization/43390
36133         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
36134         sure vector extracts are type correct.
36135
36136 2010-03-22  Richard Guenther  <rguenther@suse.de>
36137
36138         PR middle-end/40106
36139         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
36140         x * sqrt (x) even when optimizing for size if the target
36141         has native support for sqrt.
36142
36143 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
36144
36145         * varasm.c (make_decl_rtl_for_debug): Also clear
36146         flag_mudflap for the duration of make_decl_rtl call.
36147
36148         PR debug/43443
36149         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
36150         locs from preserved VALUEs.
36151
36152 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
36153
36154         PR middle-end/42718
36155         * pa.md (movmemsi): Set align to one if zero.
36156         (movmemdi): Likewise.
36157
36158 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
36159
36160         PR target/42321
36161         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
36162         with their corresponding prologue pushes.
36163
36164 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
36165
36166         PR target/43156
36167         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
36168         at the begining or end.
36169         (spu_expand_epilogue): Likewise.
36170
36171 2010-03-20  Richard Guenther  <rguenther@suse.de>
36172
36173         PR rtl-optimization/43438
36174         * combine.c (make_extraction): Properly zero-/sign-extend an
36175         extraction of the low part of a CONST_INT.  Also handle
36176         CONST_DOUBLE.
36177
36178 2010-03-19  Mike Stump  <mikestump@comcast.net>
36179
36180         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
36181         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
36182         (override_options): Use SUBTARGET32_DEFAULT_CPU.
36183
36184 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
36185
36186         PR c/43211
36187         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
36188         an error.
36189
36190 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
36191
36192         PR rtl-optimization/42258
36193         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
36194         use that may match DEF.
36195
36196         PR target/40697
36197         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
36198         the cost of loading the constant rather than assuming
36199         COSTS_N_INSNS (1).
36200         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
36201         outer code is AND, do the same tests as the andsi3 expander and
36202         return COSTS_N_INSNS (1) if and is cheap.
36203
36204         * optabs.c (avoid_expensive_constant): Fix formatting.
36205
36206 2010-03-19  Michael Matz  <matz@suse.de>
36207
36208         PR c++/43116
36209         * attribs.c (decl_attributes): When rebuilding a function pointer
36210         type use the same qualifiers as the original pointer type.
36211
36212 2010-03-19  Martin Jambor  <mjambor@suse.cz>
36213
36214         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
36215         and is_gimple_ip_invariant_address.
36216
36217 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
36218
36219         Revert
36220         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
36221
36222         * config/arm/arm.c (arm_override_options): Turn off
36223         flag_dwarf2_cfi_asm for AAPCS variants.
36224
36225 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
36226
36227         PR target/43399
36228         * config/arm/arm.c (emit_multi_reg_push): Update comments.
36229         Use PRE_MODIFY instead of PRE_DEC.
36230         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
36231         (vfp_emit_fstmd): Likewise.
36232
36233 2010-03-19  Michael Matz  <matz@suse.de>
36234
36235         PR target/43305
36236         * builtins.c (expand_builtin_interclass_mathfn,
36237         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
36238         if that fails.
36239
36240 2010-03-19  Richard Guenther  <rguenther@suse.de>
36241
36242         PR tree-optimization/43415
36243         * tree-ssa-pre.c (phi_translate): Split out worker to ...
36244         (phi_translate_1): ... this.
36245         (phi_translate): Move all caching here.  Cache all NARY
36246         and REFERENCE translations.
36247
36248 2010-03-19  David S. Miller  <davem@davemloft.net>
36249
36250         With help from Eric Botcazou.
36251         * config/sparc/sparc.c: Include dwarf2out.h.
36252         (emit_pic_helper): Delete.
36253         (pic_helper_symbol_name): Delete.
36254         (pic_helper_emitted_p): Delete.
36255         (pic_helper_needed): New.
36256         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
36257         (get_pc_thunk_name): New.
36258         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
36259         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
36260         Set pic_helper_needed to true.  Don't call emit_pic_helper.
36261         (sparc_expand_prologue): Update load_pic_register call.
36262         (sparc_output_mi_thunk): Likewise.
36263         (sparc_file_end): Emit a hidden comdat symbol for the PIC
36264         thunk if possible.  Output CFI information as needed.
36265
36266 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
36267             Jack Howarth  <howarth@bromo.med.uc.edu>
36268
36269         PR target/36399
36270         * config/i386/i386.h: Fix ABI on darwin x86-32.
36271
36272 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
36273
36274         * tree.h: Declare make_decl_rtl_for_debug.
36275         * varasm.c (make_decl_rtl_for_debug): New.
36276         * dwarf2out.c (rtl_for_decl_location): Call it.
36277         * cfgexpand.c (expand_debug_expr): Call it.
36278
36279 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
36280
36281         PR bootstrap/43399
36282         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
36283         mem_mode.
36284
36285         PR bootstrap/43403
36286         * var-tracking.c (vt_init_cfa_base): Do nothing if
36287         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
36288
36289 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
36290
36291         PR debug/42873
36292         * var-tracking.c (canonicalize_vars_star): New.
36293         (dataflow_post_merge_adjust): Use it.
36294
36295 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
36296
36297         PR debug/43058
36298         * var-tracking.c (non_suitable_const): New function.
36299         (add_uses): For DEBUG_INSNs with constants, don't record any
36300         value, instead just the constant value itself.
36301         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
36302         is not VAR_LOC_UNKNOWN_P, set var to the constant.
36303         (emit_notes_in_bb): Likewise.
36304         (emit_note_insn_var_location): For onepart variables if
36305         cur_loc is a VOIDmode constant, use DECL_MODE.
36306
36307 2010-03-18  Martin Jambor  <mjambor@suse.cz>
36308
36309         PR middle-end/42450
36310         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
36311         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
36312         all non-clones.  Moved call redirection...
36313         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
36314         (cgraph_materialize_all_clones): Dispose of all
36315         combined_args_to_skip bitmaps.
36316         (verify_cgraph_node): Do not check for edges pointing to wrong
36317         nodes in inline clones.
36318         * tree-inline.c (copy_bb): Call
36319         cgraph_redirect_edge_call_stmt_to_callee.
36320         * ipa.c (cgraph_remove_unreachable_nodes): Call
36321         cgraph_node_remove_callees even when there are used clones.
36322
36323 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
36324
36325         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
36326
36327 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
36328
36329         PR target/43383
36330         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
36331         for 32bit.
36332
36333 2010-03-18  Michael Matz  <matz@suse.de>
36334
36335         PR middle-end/43419
36336         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
36337         into sqrt(x) if we need to preserve signed zeros.
36338
36339 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
36340             Eric Botcazou  <ebotcazou@adacore.com>
36341
36342         PR rtl-optimization/43360
36343         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
36344         note if we don't know its invariant status.
36345
36346 2010-03-18  Michael Matz  <matz@suse.de>
36347
36348         PR tree-optimization/43402
36349         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
36350         PHI chains of ssa names registered for update.
36351
36352 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
36353
36354         PR target/42427
36355         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
36356         non-offsettable and pre_modify update addressing.
36357         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
36358         and "2" alternatives "#".
36359         (*movdd_softfloat32): Make all alternatives "#";
36360         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
36361         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
36362         (*movdf_softfloat32): Make all alternatives "#";
36363         (movdi): Use the new DIFD mode iterator to create a common splitter
36364         for movdi, movdf and movdd patterns.
36365
36366 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
36367
36368         * common.opt (dumpdir): Remove redundant tab.
36369
36370 2010-03-17  Martin Jambor  <mjambor@suse.cz>
36371
36372         PR tree-optimization/43347
36373         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
36374         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
36375
36376 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
36377
36378         PR rtl-optimization/42216
36379         * regrename.c (create_new_chain): New function, broken out from...
36380         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
36381         appending a use to an empty chain.
36382         (build_def_use): Remove previous changes that convert OP_INOUT to
36383         OP_OUT operands; instead detect the case where an OP_INOUT operand
36384         uses a previously untracked register and create an empty chain for it.
36385
36386 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
36387
36388         * doc/extend.texi (Function Attributes): Rewrite unfinished
36389         sentence in ms_abi documentation.
36390
36391 2010-03-17  Alan Modra  <amodra@gmail.com>
36392
36393         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
36394         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
36395         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
36396         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
36397
36398 2010-03-16  Richard Henderson  <rth@redhat.com>
36399
36400         PR middle-end/43365
36401         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
36402         (lower_try_finally): Save and restore eh_seq around the expansion
36403         of the try-finally.
36404
36405 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
36406
36407         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
36408         statements before splitting block.
36409
36410 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36411
36412         * doc/sourcebuild.texi (Testsuites): Fix markup.
36413         Use pathnames relative to gcc/testsuite.
36414         (Test Directives): Move description of how timeout is determined.
36415         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
36416         (C Tests): Correct gcc.misc-tests directory.
36417         Framework tests now live in gcc.test-framework.
36418
36419 2010-03-16  Richard Guenther  <rguenther@suse.de>
36420
36421         PR middle-end/43379
36422         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
36423         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
36424
36425 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
36426             Alexandre Oliva  <aoliva@redhat.com>
36427
36428         PR tree-optimization/42917
36429         * lambda-code.c (remove_iv): Skip debug statements.
36430         (lambda_loopnest_to_gcc_loopnest): Likewise.
36431         (not_interesting_stmt): Debug statements are not interesting.
36432
36433 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
36434
36435         PR debug/43051
36436         PR debug/43092
36437         * cselib.c (cselib_preserve_constants,
36438         cfa_base_preserved_val): New static variables.
36439         (preserve_only_constants): New function.
36440         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
36441         clear its REG_VALUES.  If cselib_preserve_constants, don't
36442         empty the whole hash table, but preserve there VALUEs with constants,
36443         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
36444         (cselib_preserve_cfa_base_value): New function.
36445         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
36446         (cselib_init): Change argument to int bitfield.  Set
36447         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
36448         is in it.
36449         (cselib_finish): Clear cselib_preserve_constants and
36450         cfa_base_preserved_val.
36451         * cselib.h (enum cselib_record_what): New enum.
36452         (cselib_init): Change argument to int.
36453         (cselib_preserve_cfa_base_value): New prototype.
36454         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
36455         * dse.c (dse_step1): Likewise.
36456         * cfgcleanup.c (thread_jump): Likewise.
36457         * sched-deps.c (sched_analyze): Likewise.
36458         * gcse.c (local_cprop_pass): Likewise.
36459         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
36460         If FN is non-NULL, call the callback always and whenever it returns
36461         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
36462         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
36463         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
36464         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
36465         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
36466         * var-tracking.c: Include recog.h.
36467         (bb_stack_adjust_offset): Remove.
36468         (vt_stack_adjustments): Don't call it, instead just gather the
36469         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
36470         (adjust_stack_reference): Remove.
36471         (compute_cfa_pointer): New function.
36472         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
36473         (struct adjust_mem_data): New type.
36474         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
36475         functions.
36476         (get_address_mode): New function.
36477         (replace_expr_with_values): Use it.
36478         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
36479         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
36480         (adjust_sets): Remove.
36481         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
36482         Use get_address_mode.
36483         (get_adjusted_src): Remove.
36484         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
36485         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
36486         (add_with_sets): Don't call adjust_sets.
36487         (fp_setter, vt_init_cfa_base): New functions.
36488         (vt_initialize): Change return type to bool.  Move most of pool etc.
36489         initialization to the beginning of the function from end.  Pass
36490         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
36491         If !frame_pointer_needed, call vt_stack_adjustment before mos
36492         vector is filled, call vt_init_cfa_base if argp/framep has been
36493         eliminated to sp.  If frame_pointer_needed and argp/framep has
36494         been eliminated to hard frame pointer, set
36495         hard_frame_pointer_adjustment and call vt_init_cfa_base after
36496         encountering fp setter in the prologue.  For MO_ADJUST, call
36497         log_op_type before pusing the op into mos vector, not afterwards.
36498         Call adjust_insn before cselib_process_insn/add_with_sets,
36499         call cancel_changes (0) afterwards.
36500         (variable_tracking_main_1): Adjust for vt_initialize calling
36501         vt_stack_adjustments and returning whether it succeeded or not.
36502
36503 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
36504
36505         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
36506         debug statements.
36507
36508 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
36509
36510         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
36511         has been set.
36512         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
36513         drap_reg has not been set.
36514
36515 2010-03-15  Michael Matz  <matz@suse.de>
36516
36517         PR middle-end/43300
36518         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
36519         use it to expand block copies.
36520         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
36521         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
36522         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
36523
36524 2010-03-15  Richard Guenther  <rguenther@suse.de>
36525
36526         PR tree-optimization/43367
36527         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
36528         elimination check.
36529
36530 2010-03-15  Richard Guenther  <rguenther@suse.de>
36531
36532         PR tree-optimization/43317
36533         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
36534
36535 2010-03-15  Martin Jambor  <mjambor@suse.cz>
36536
36537         PR tree-optimization/43141
36538         * tree-sra.c (create_abstract_origin): New function.
36539         (modify_function): Call create_abstract_origin.
36540
36541 2010-03-15  Chris Demetriou  <cgd@google.com>
36542
36543         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
36544         wasn't copied.
36545
36546 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
36547
36548         PR middle-end/43354
36549         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
36550         call insert_out_of_ssa_copy for default definitions.
36551
36552 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
36553
36554         * graphite-clast-to-gimple.c (my_long_long): Defined.
36555         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
36556         * graphite-sese-to-poly.c (my_long_long): Defined.
36557         (scop_ivs_can_be_represented): Use it.
36558
36559 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
36560
36561         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
36562         graphite-max-bbs-per-function, and loop-block-tile-size.
36563         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
36564         with "maximum".
36565         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
36566
36567 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
36568
36569         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
36570         forward declaration.
36571         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
36572         (add_upper_bounds_from_estimated_nit): New.
36573         (build_loop_iteration_domains): Use it.
36574
36575 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
36576
36577         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
36578
36579 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
36580
36581         PR middle-end/43306
36582         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
36583         should be an INTEGER_CST.  Also handle CASE_CONVERT.
36584
36585 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
36586
36587         * graphite.c (graphite_initialize): To bound the number of bbs per
36588         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
36589         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
36590         * doc/invoke.texi: Document it.
36591
36592 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
36593
36594         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
36595         * graphite-sese-to-poly.h (build_poly_scop): Same.
36596
36597 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
36598
36599         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
36600         the number of parameters in the scop.  Use as an upper bound
36601         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
36602         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
36603         * doc/invoke.texi: Document it.
36604
36605 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
36606
36607         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
36608         * doc/c-tree.texi: Remove.
36609         * doc/generic.texi: Merge c-tree.texi here.
36610         * doc/gccint.texi (Trees): Remove menu entry.
36611         (c-tree.texi): Remove @include.
36612         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
36613         * doc/languages.texi (Reading RTL): Ditto.
36614
36615 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
36616
36617         PR target/42869
36618         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
36619
36620 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
36621
36622         PR middle-end/42431
36623         * config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
36624         code added to work around reload clobbering CONST insns.
36625
36626 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
36627
36628         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
36629         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
36630         (cselib_preserve_only_values): Remove retain argument, don't
36631         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
36632         * cselib.h (cselib_preserve_only_values): Remove retain argument.
36633         * var-tracking.c (micro_operation): Move insn field before union.
36634         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
36635         (struct variable_tracking_info_def): Remove n_mos field, change
36636         mos into a vector of micro_operations.
36637         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
36638         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
36639         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
36640         changing into a vector.
36641         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
36642         come before all other uops generated by add_stores.
36643         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
36644         argument removal.
36645         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
36646         a vector.  Run just one pass over the bbs instead of separate counting
36647         and computation phase.
36648         (vt_finalize): Free VTI (bb)->mos vector instead of array.
36649
36650         PR debug/43329
36651         * tree-inline.c (remap_decls): Put old_var rather than origin_var
36652         into *nonlocalized_list vector.
36653         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
36654         even if origin is non-NULL.
36655         (gen_variable_die): Likewise.
36656         (process_scope_var): Don't change origin.
36657         (gen_decl_die): Likewise.
36658         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
36659         before adding new edges instead of after it, fix moving over
36660         debug stmts.
36661
36662 2010-03-11  David S. Miller  <davem@davemloft.net>
36663
36664         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
36665         of four.
36666         * configure: Rebuild.
36667
36668 2010-03-11  Martin Jambor  <mjambor@suse.cz>
36669
36670         PR tree-optimization/43257
36671         * tree.c (assign_assembler_name_if_neeeded): New function.
36672         (free_lang_data_in_cgraph): Assembler name assignment moved to the
36673         above new function.
36674         * tree.h (assign_assembler_name_if_neeeded): Declare.
36675         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
36676         the function if needed.
36677
36678 2010-03-11  Chris Demetriou  <cgd@google.com>
36679
36680         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
36681         include/stdint-gcc.h, and include/stdint.h world-readable.
36682
36683 2010-03-11  Richard Guenther  <rguenther@suse.de>
36684
36685         PR tree-optimization/43255
36686         * tree-vrp.c (process_assert_insertions_for): Do not insert
36687         asserts for trivial conditions.
36688
36689 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
36690
36691         PR tree-optimization/43280
36692         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
36693         generation.  Move calculation of size out of the if branch.
36694         (find_bswap): Modify compare number generation.
36695
36696 2010-03-11  Richard Guenther  <rguenther@suse.de>
36697
36698         PR lto/43200
36699         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
36700         (input_gimple_stmt): Fixup handled component types during
36701         operand read.  Also fix up decls in ADDR_EXPRs.
36702
36703 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
36704
36705         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
36706         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
36707
36708 2010-03-10  Jan Hubicka  <jh@suse.cz>
36709
36710         PR c/43288
36711         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
36712         * varasm.c (get_variable_section): Don't do that here...
36713         (make_decl_rtl): ... and here.
36714         (do_assemble_alias): Produce decl RTL.
36715         (assemble_alias): Likewise.
36716
36717 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
36718
36719         PR debug/43290
36720         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
36721         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
36722         of fde->vdrap_reg.
36723         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
36724         (based_loc_descr): Only express drap or vdrap regno based expressions
36725         using DW_OP_fbreg when not optimizing.
36726         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
36727         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
36728         REG_CFA_SET_VDRAP note.
36729
36730 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
36731
36732         PR tree-optimization/43236
36733         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
36734         error in calculation of base address in reverse iteration case.
36735         (generate_builtin): Take number of latch executions if the statement
36736         is in the latch.
36737
36738 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
36739
36740         PR middle-end/42859
36741         * tree-eh.c: Include pointer-set.h.
36742         (lower_eh_dispatch): Filter out duplicate case labels and
36743         remove the unneeded edge when the label is unused.  Return
36744         true when some edges are removed.
36745         (execute_lower_eh_dispatch): When any lowering resulted in
36746         removing an edge, also delete unreachable blocks.
36747
36748 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
36749
36750         PR bootstrap/43287
36751         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
36752         UNSPEC_MACHOPIC_OFFSET.
36753
36754 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
36755
36756         PR target/43294
36757         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
36758         (m68k_delegitimize_address): New function.
36759
36760 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
36761
36762         PR debug/43299
36763         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
36764
36765         PR debug/43299
36766         * var-tracking.c (adjust_sets): New function.
36767         (count_with_sets, add_with_sets): Use it.
36768         (get_adjusted_src): New inline function.
36769         (add_stores): Use it.
36770
36771         PR debug/43304
36772         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
36773         call cselib_dummy_expand_value_rtx_cb instead of
36774         cselib_expand_value_rtx_cb.
36775
36776         PR debug/43293
36777         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
36778         * config/i386/i386.c: Include debug.h and dwarf2out.h.
36779         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
36780         and .cfi_endproc around the pic thunks.
36781         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
36782         all queued unwind info register saves are saved before the call.
36783         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
36784         considered as sp-=4 for unwind info and the pop as sp+=4 which
36785         also clobbers dest, but doesn't actually restore it.
36786
36787         PR debug/43290
36788         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
36789         RTX_FRAME_RELATED_P.
36790
36791 2010-03-09  Jie Zhang  <jie@codesourcery.com>
36792
36793         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
36794         whitespaces in output template.
36795
36796 2010-03-09  Jie Zhang  <jie@codesourcery.com>
36797
36798         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
36799         out array boundary.
36800
36801 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
36802
36803         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
36804         builtins.exp in a separate job.
36805
36806 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
36807
36808         * graphite-sese-to-poly.c (add_param_constraints): Use
36809         lower_bound_in_type and upper_bound_in_type.
36810
36811 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
36812
36813         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
36814         instead of unsigned_type_node.
36815
36816 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
36817             Reza Yazdani  <reza.yazdani@amd.com>
36818
36819         PR middle-end/43065
36820         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
36821         on pointer type parameters.
36822
36823 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
36824
36825         PR middle-end/42644
36826         PR middle-end/42130
36827         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
36828         handle conversions from pointer to integers.
36829         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
36830         induction variable, to be able to work with code generated by CLooG.
36831         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
36832         (build_poly_scop): Bail out if we cannot codegen a loop.
36833
36834 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
36835
36836         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
36837         code generation with gloog_error.
36838
36839 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
36840
36841         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
36842         Call fold_convert on all the returned values.
36843         (expand_scalar_variables_expr): Pass to
36844         expand_scalar_variables_ssa_name the type of the resulting expression.
36845
36846 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
36847
36848         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
36849         ppl_min_for_le_pointset.
36850         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
36851         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
36852
36853 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
36854
36855         * graphite-dependences.c (map_into_dep_poly): Removed.
36856         (dependence_polyhedron_1): Use combine_context_id_scat.
36857
36858 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
36859
36860         * graphite-poly.h (struct poly_scattering): Add layout documentation.
36861         (struct poly_bb): Same.
36862         (combine_context_id_scat): New.
36863
36864 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
36865
36866         PR middle-end/42326
36867         * sese.c (name_defined_in_loop_p): Return false for default
36868         definitions.
36869
36870 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
36871
36872         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
36873         and clean up the logic.
36874
36875 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
36876
36877         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
36878         early return.
36879
36880 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
36881
36882         * var-tracking.c (remove_cselib_value_chains): Define only for
36883         ENABLE_CHECKING.
36884         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
36885         delete_slot_part, emit_notes_for_differences_1): Don't call
36886         remove_cselib_value_chains here.
36887         (set_slot_part, emit_notes_for_differences_2): Don't call
36888         add_cselib_value_chains here.
36889         (preserved_values): New vector.
36890         (preserve_value): New function.
36891         (add_uses, add_stores, vt_add_function_parameters): Use it
36892         instead of cselib_preserve_value.
36893         (changed_values_stack): New vector.
36894         (check_changed_vars_0): New function.
36895         (check_changed_vars_1, check_changed_vars_2): Use it.
36896         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
36897         changed_values_stack VALUEs.
36898         (vt_emit_notes): For all preserved_values call
36899         add_cselib_value_chains.  If ENABLE_CHECKING call
36900         remove_cselib_value_chains before verifying value_chains is empty.
36901         Initialize and free changed_values_stack.
36902         (vt_initialize): Initialize preserved_values.
36903         (vt_finalize): Free preserved_values.
36904
36905 2010-03-08  Richard Guenther  <rguenther@suse.de>
36906
36907         PR tree-optimization/43269
36908         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
36909         region detection.
36910
36911 2010-03-08  Martin Jambor  <mjambor@suse.cz>
36912
36913         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
36914         (ipa_is_param_called): Removed.
36915         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
36916         (ipa_print_node_params): Do not print the called flag.
36917         (ipa_write_node_info): Do not stream the called flag.
36918         (ipa_read_node_info): Likewise.
36919
36920 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
36921
36922         PR debug/43176
36923         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
36924         * cselib.c (struct expand_value_data): Add dummy field.
36925         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
36926         dummy to false.
36927         (cselib_dummy_expand_value_rtx_cb): New function.
36928         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
36929         any rtl.
36930         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
36931         * var-tracking.c: Include pointer-set.h.
36932         (variable): Change n_var_parts to char from int.  Add
36933         cur_loc_changed and in_changed_variables fields.
36934         (variable_canonicalize): Remove.
36935         (shared_var_p): New inline function.
36936         (unshare_variable): Maintain cur_loc_changed and
36937         in_changed_variables fields.  If var was in changed_variables,
36938         replace it there with new_var.  Just copy cur_loc instead of
36939         resetting it to something else.
36940         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
36941         (dataflow_set_union): Don't call variable_canonicalize.
36942         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
36943         of their DEBUG_EXPR_TREE_DECLs.
36944         (canonicalize_loc_order_check): Verify that cur_loc is NULL
36945         and in_changed_variables and cur_loc_changed is false.
36946         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
36947         and cur_loc_changed.  Don't update cur_loc here.
36948         (variable_merge_over_src): Don't call variable_canonicalize.
36949         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
36950         removing loc that is equal to cur_loc, clear cur_loc,
36951         set cur_loc_changed and ensure variable_was_changed is called.
36952         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
36953         compare pointers in cur_loc check, if it is equal to loc,
36954         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
36955         (variable_different_p): Remove compare_current_location argument,
36956         don't compare cur_loc.
36957         (dataflow_set_different_1): Adjust variable_different_p caller.
36958         (variable_was_changed): If dv had some var in changed_variables
36959         already, reset in_changed_variables flag for it and propagate
36960         cur_loc_changed over to the new variable.  On empty var
36961         always set cur_loc_changed.  Set in_changed_variables on whatever
36962         var is added to changed_variables.
36963         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
36964         Use shared_var_p.  When removing loc that is equal to cur_loc,
36965         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
36966         end, don't set it to something else, just call variable_was_changed.
36967         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
36968         loc being removed, clear cur_loc and set cur_loc_changed.
36969         Set cur_loc_changed if all locations have been removed.
36970         (struct expand_loc_callback_data): New type.
36971         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
36972         allocated.  Always create SUBREGs if simplify_subreg failed.
36973         Prefer to use cur_loc, when that fails and still in
36974         changed_variables (and seen first time) recompute it.  Set
36975         cur_loc_changed of variables which had to change cur_loc and
36976         compute elcd->cur_loc_changed if any of the subexpressions used
36977         had to change cur_loc.
36978         (vt_expand_loc): Adjust to pass arguments in
36979         expand_loc_callback_data structure.
36980         (vt_expand_loc_dummy): New function.
36981         (emitted_notes): New variable.
36982         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
36983         that weren't used for any other decl in current
36984         emit_notes_for_changes call call vt_expand_loc_dummy to update
36985         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
36986         first loc_chain location if NULL before.  Always use just
36987         cur_loc instead of first loc_chain location.  When cur_loc_changed
36988         is false, when not --enable-checking=rtl just don't emit any note.
36989         When rtl checking, compute the note and assert it is the same
36990         as previous note.  Clear cur_loc_changed and in_changed_variables
36991         at the end before removing from changed_variables.
36992         (check_changed_vars_3): New function.
36993         (emit_notes_for_changes): Traverse changed_vars to call
36994         check_changed_vars_3 on each changed var.
36995         (emit_notes_for_differences_1): Clear cur_loc_changed and
36996         in_changed_variables.  Recompute cur_loc of new_var.
36997         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
36998         (vt_emit_notes): Initialize and destroy emitted_notes.
36999
37000 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
37001
37002         PR rtl-optimization/42220
37003         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
37004         Use verify_reg_tracked to determine if we should use OP_OUT rather
37005         than OP_INOUT.
37006         (build_def_use): If we see an in-out operand for a register that we
37007         know nothing about, treat is an output if possible, fail the block if
37008         not.
37009
37010 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
37011
37012         PR debug/42897
37013         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
37014         permanently.
37015
37016 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
37017
37018         PR debug/42897
37019         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
37020         uses of relevant DEFs that are dead outside the loop too.
37021
37022 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
37023
37024         * var-tracking.c (dataflow_set_merge): Swap src and src2.
37025         Reverted:
37026         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
37027         PR debug/41371
37028         * var-tracking.c (values_to_unmark): New variable.
37029         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
37030         values_to_unmark vector.  Moved body to...
37031         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
37032         instead queue it into values_to_unmark vector.
37033         (vt_find_locations): Free values_to_unmark vector.
37034
37035 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
37036
37037         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
37038         (site.exp): Export them when plugins are enabled.
37039
37040 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
37041
37042         PR middle-end/42326
37043         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
37044         that contain scevs.
37045         (chrec_fold_multiply): Same.
37046
37047 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
37048
37049         PR c/43248
37050         * c-decl.c (build_compound_literal): Return early if init is
37051         an error_mark_node.
37052
37053 2010-03-04  Martin Jambor  <mjambor@suse.cz>
37054
37055         PR tree-optimization/43164
37056         PR tree-optimization/43191
37057         * tree-sra.c (type_consists_of_records_p): Reject records with
37058         zero-size bit-fields at the end.
37059
37060 2010-03-04  Mike Stump  <mikestump@comcast.net>
37061
37062         * Makefile.in (TAGS): Remove *.y.
37063
37064 2010-03-04  Richard Guenther  <rguenther@suse.de>
37065
37066         PR tree-optimization/40761
37067         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
37068         in reverse order.
37069         (my_rev_post_order_compute): New function.
37070         (init_pre): Call it.
37071
37072 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
37073
37074         PR middle-end/43209
37075         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
37076         decrease the cost of an IV candidate when the cost is infinite.
37077
37078 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
37079
37080         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
37081         Use '3DNow!' for the extension of that name, ensure normal space
37082         after the string.
37083         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
37084
37085 2010-03-03  Jeff Law  <law@redhat.com>
37086
37087         * PR middle-end/32693
37088         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
37089         than gen_rtx_SUBREG.
37090         (extract_bit_field_1): Likewise.
37091
37092 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
37093
37094         * doc/sourcebuild.texi (Test directives): Document that arguments
37095         include-opts and exclude-opts are now optional for dg-skip-if,
37096         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
37097
37098 2010-03-03  Jason Merrill  <jason@redhat.com>
37099
37100         PR c++/12909
37101         * cgraph.h (varpool_node): Add extra_name field.
37102         * varpool.c (varpool_extra_name_alias): New.
37103         (varpool_assemble_decl): Emit extra name aliases.
37104         (varpool_mark_needed_node): Look past an extra name alias.
37105         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
37106         * lto-streamer-in.c (lto_input_tree): Read it.
37107         * lto-streamer-out.c (output_unreferenced_globals): Write it.
37108
37109 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
37110
37111         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
37112         (sparc*-*-solaris2*): ...this.
37113
37114 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
37115
37116         PR debug/43229
37117         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
37118         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
37119         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
37120         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
37121
37122         PR debug/43237
37123         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
37124         fallthrough to default handling, just with want_address 0 instead of 2.
37125         For single element lists, add_AT_loc directly, otherwise create an
37126         artificial variable DIE and stick location list to it.
37127
37128         PR debug/43177
37129         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
37130         (VAL_EXPR_HAS_REVERSE): Define.
37131         (reverse_op): New function.
37132         (add_stores): For reversible operations add an extra MO_VAL_USE.
37133
37134 2010-03-02  Jason Merrill  <jason@redhat.com>
37135
37136         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
37137
37138 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
37139
37140         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
37141         (sparc64-*-linux*): Likewise.
37142         (sparc64-*-solaris2*): Include assembler files before linker ones.
37143         (sparc-*-solaris2*): Simplify and reorder to match previous case.
37144         * config/sparc/gas.h: Delete.
37145         * config/sparc/sol2-64.h: Add copyright notice.
37146         * config/sparc/sol2-gas-bi.h: Likewise.
37147         * config/sparc/sol2-gld.h: Likewise.
37148         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
37149         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
37150         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
37151         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
37152         (sparc_elf_asm_named_section): Rename into...
37153         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
37154
37155 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
37156
37157         * config/alpha/alpha.c (override_options): Fix -mtune error message.
37158
37159 2010-03-02  Jeff Law  <law@redhat.com>
37160
37161         PR middle-end/42431
37162         * reload1.c (rtx_p, substitute_stack): Declare.
37163         (substitute): Record addresses of changed rtxs.
37164         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
37165         Restore the original rtx when complete.
37166         (reload): Free subsitute_stack when complete.
37167
37168 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
37169
37170         * doc/gccint.texi (menu): Add Testsuites as a chapter.
37171         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
37172         new chapter.
37173         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
37174         LTO Testing, gcov Testing, profopt Testing, compat Testing,
37175         Torture Tests): Change from subsection to section.
37176
37177 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
37178             Steven Bosscher  <steven@gcc.gnu.org>
37179
37180         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
37181         instead of bb.
37182
37183 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
37184
37185         PR middle-end/42640
37186         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
37187         the assignment from the new induction variable to the assignment
37188         of the value from the original loop PHI function.
37189
37190 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
37191             Daniel Jacobowitz  <dan@codesourcery.com>
37192
37193         * doc/sourcebuild.texi (Test directives): Clarify options to
37194         dg-skip-if.
37195
37196 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37197
37198         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
37199         Disable cfi directives unless GCC and gas agree on using read-only
37200         .eh_frame sections for 64-bit.
37201         * configure: Regenerate.
37202
37203 2010-03-01  Richard Guenther  <rguenther@suse.de>
37204
37205         PR tree-optimization/43220
37206         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
37207         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
37208
37209 2010-03-01  Richard Guenther  <rguenther@suse.de>
37210             Martin Jambor  <mjambor@suse.cz>
37211
37212         PR middle-end/41250
37213         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
37214         gimplified parameters.
37215
37216 2010-03-01  Christian Bruel  <christian.bruel@st.com>
37217
37218         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
37219
37220 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
37221
37222         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
37223
37224 2010-03-01  Richard Guenther  <rguenther@suse.de>
37225
37226         PR middle-end/43213
37227         * expr.c (expand_assignment): Use the alias-oracle to tell
37228         if the rhs aliases the result decl.
37229
37230 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37231
37232         PR pch/14940
37233         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
37234         to sol_gt_pch_get_address.
37235         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
37236         64-bit, SPARC and x86.
37237         (sol_gt_pch_get_address): New function.
37238
37239 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
37240
37241         * toplev.h (inform_n, error_n): Declare.
37242         * diagnostic.c (inform_n, error_n): New function.
37243
37244 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
37245
37246         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
37247         has no rtl yet when processing local_decls, queue it and recheck
37248         if deferred stack allocation hasn't assigned it rtl.
37249
37250 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
37251
37252         * config/sh/sh.c (unspec_bbr_uid): New.
37253         (gen_block_redirect): Use it instead of INSN_UID.
37254         (gen_far_branch): Likewise.
37255
37256 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
37257
37258         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
37259         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
37260
37261 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
37262
37263         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
37264         (Warning Options): -Wno-conversion-null is valid for
37265         Objective-C++ as well.
37266         * doc/tm.texi (Named Address Spaces): Likewise.
37267         * doc/plugins.texi (Plugins): Replace TABs with spaces.
37268         * doc/tree-ssa.texi (Tree SSA): Likewise.
37269
37270 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
37271
37272         PR bootstrap/43202
37273         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
37274         by default.  Don't set the default arch for
37275         i[34567]86-*-darwin*|x86_64-*-darwin*.
37276
37277 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
37278
37279         PR bootstrap/43202
37280         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
37281         default.  Set the default 32bit/64bit archs with $with_arch
37282         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
37283
37284 2010-02-27  Richard Guenther  <rguenther@suse.de>
37285
37286         PR tree-optimization/43186
37287         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
37288         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
37289         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
37290         unroller iterations.
37291
37292 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
37293
37294         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
37295         required and i[34567]86-*-* targets don't support 64bit ISA.
37296
37297 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
37298
37299         PR ada/43096
37300         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
37301         the same alias set.
37302
37303 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
37304
37305         * config.gcc: Set the default arch at least to Prescott for
37306         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
37307         if SSE math is enabled.
37308
37309 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
37310
37311         * diagnostic.c (diagnostic_initialize): Update.
37312         (diagnostic_report_diagnostic): Test inhibit_notes_p for
37313         informative notes.
37314         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
37315         (diagnostic_inhibit_notes): New.
37316         * toplev.c (process_options): inhibit notes with -fcompare-debug.
37317
37318 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
37319
37320         PR c/20631
37321         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
37322         * doc/standards.texi: Likewise.
37323         * doc/extend.texi: Likewise.
37324         * doc/trouble.texi: Likewise.
37325         * doc/cppopts.texi: Likewise.
37326         * doc/install.texi: Likewise.
37327         * c.opt (std=c90,std=gnu90): New options.
37328         * c-opts.c (c_common_handle_option): Handle them.
37329
37330 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
37331
37332         PR c/24577
37333         * c-decl.c (undeclared_variable): Use an informative note.
37334
37335 2010-02-26  Richard Guenther  <rguenther@suse.de>
37336
37337         PR tree-optimization/43186
37338         * gimple.h (gimple_fold): Remove.
37339         * gimple.c (gimple_fold): Remove.  Inline into single user ...
37340         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
37341         Try harder for conditions.
37342
37343 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
37344
37345         PR debug/43190
37346         * function.c (used_types_insert): Don't skip through named pointer
37347         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
37348         and it is different from the main variant's type.
37349
37350 2010-02-26  Nick Clifton  <nickc@redhat.com>
37351
37352         * config/rx/rx.md (sminsi3): Remove bogus alternative.
37353
37354 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
37355
37356         * config.gcc: Support --with-fpmath=sse for x86.
37357
37358         * config/i386/ssemath.h: New.
37359
37360         * doc/install.texi (--with-fpmath=sse): Documented.
37361
37362 2010-02-26  Richard Guenther  <rguenther@suse.de>
37363
37364         PR tree-optimization/43188
37365         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
37366         vector types of over-aligned element type.
37367
37368 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
37369
37370         PR target/43175
37371         * config/i386/i386.c (expand_vec_perm_blend): Use correct
37372         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
37373
37374 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
37375
37376         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
37377
37378 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
37379
37380         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
37381         * var-tracking.c: Include diagnostic.h.
37382         (debug_dv): New function.
37383         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
37384
37385         PR debug/43160
37386         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
37387         (add_value_chain, add_value_chains, remove_value_chain,
37388         remove_value_chains): Handle DEBUG_EXPRs.
37389         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
37390
37391         PR debug/43161
37392         * regcprop.c (struct queued_debug_insn_change): New type.
37393         (struct value_data_entry): Add debug_insn_changes field.
37394         (struct value_data): Add n_debug_insn_changes field.
37395         (debug_insn_changes_pool): New variable.
37396         (free_debug_insn_changes, apply_debug_insn_changes,
37397         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
37398         (kill_value_one_regno): Call free_debug_insn_changes if needed.
37399         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
37400         fields.
37401         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
37402         changes for them.
37403         (copyprop_hardreg_forward_1): Don't call apply_change_group for
37404         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
37405         changes, call cprop_find_used_regs via note_stores.
37406         (copyprop_hardreg_forward): When copying vd from predecessor
37407         which has any queued DEBUG_INSN changes, make sure the pointers are
37408         cleared.  At the end call df_analyze and then if there are any
37409         DEBUG_INSN changes queued at the end of some basic block for still
37410         live registers, apply them.
37411         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
37412
37413 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
37414
37415         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
37416         (arm*-*-*): Ditto.
37417
37418 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
37419
37420         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
37421         targets.  Set the default with_cpu/with_arch from arch/cpu.
37422         Allow x86-64 and native for with_cpu/with_arch.
37423
37424 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
37425
37426         * ebitmap.c: Change calls to verify_popcount with calls to
37427         sbitmap_verify_popcount.
37428         (ebitmap_clear_bit): Fixed map->cacheindex test and
37429         map>cache update when bit clearing results in an empty
37430         element.
37431
37432 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
37433
37434         PR target/43154
37435         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
37436         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
37437         and support both V2DF and V2DI modes.
37438         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
37439         support both V2DF and V2DI modes.
37440         (general): Delete trailing whitespace from a few patterns.
37441
37442         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
37443         V2DF/V2DI interleave high/low builtins.
37444
37445         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
37446         new VSX builtins.
37447
37448         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
37449         interleave high/low functions.
37450
37451 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
37452
37453         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
37454         #pragma extern_prefix.
37455
37456 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
37457
37458         PR debug/43166
37459         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
37460         BLKmode, assert op0 is a MEM and just adjust its mode.
37461
37462         PR debug/43165
37463         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
37464         if bitpos isn't multiple of mode's bitsize.
37465
37466 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
37467
37468         * c.opt (-ftemplate-depth=): New.
37469         (-ftemplate-depth-): Deprecate.
37470         * optc-gen.awk: Handle -ftemplate-depth=.
37471         * opth-gen.awk: Likewise.
37472         * c-opts.c (c_common_handle_option): Likewise.
37473         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
37474
37475 2010-02-24  Jason Merrill  <jason@redhat.com>
37476
37477         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
37478
37479 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37480
37481         * cfg.c (alloc_aux_for_block): Remove inline.
37482         (alloc_aux_for_edge): Likewise.
37483
37484 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37485
37486         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
37487
37488 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37489
37490         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
37491         * config/i386/sol2-gas.h: New file.
37492         * config.gcc (i[34567]86-*-solaris2*): Use it.
37493
37494 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
37495
37496         PR c/43128
37497         * c-typeck.c (ep_convert_and_check): New.
37498         (build_conditional_expr): Use it.
37499         (build_binary_op): Likewise.
37500
37501 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
37502
37503         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
37504
37505         PR debug/43150
37506         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
37507         bounds even for -O+.
37508         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
37509         expr needs to have DECL_NAME set.
37510
37511 2010-02-24  Nick Clifton  <nickc@redhat.com>
37512
37513         * config/mep/mep.c: Include gimple.h.
37514         (mep_function_uses_sp): Delete unused function.
37515         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
37516         parameters.  Use unsigned integers to count args.  Return a
37517         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
37518
37519 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
37520
37521         PR target/43107
37522         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
37523         greater or equal to nelt instead of 2 * nelt.
37524         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
37525         with nelt - 1.
37526
37527 2010-02-23  Jason Merrill  <jason@redhat.com>
37528
37529         PR debug/42800
37530         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
37531         in cfun->local_decls even if they have register types.
37532
37533         PR c++/42837
37534         * stor-layout.c (place_field): Don't warn about unnecessary
37535         DECL_PACKED if the type is packed.
37536
37537 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
37538
37539         PR target/43139
37540         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
37541         GOTOFF relocs, even when the base reg isn't pic pointer.
37542
37543 2010-02-23  Michael Matz  <matz@suse.de>
37544
37545         PR debug/43077
37546         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
37547         (expand_gimple_basic_block): Generate and use debug temps if there
37548         are debug uses left after the last real use of TERed ssa names.
37549         Unlink debug immediate uses when they are expanded.
37550
37551 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
37552
37553         PR 43123
37554         * config/i386/i386.c (override_options): Reorganise to provide
37555         better error messages.
37556
37557 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
37558
37559         PR middle-end/43083
37560         * graphite-scop-detection.c (create_single_exit_edge): Move
37561         the call to find_single_exit_edge to....
37562         (create_sese_edges): ...here.  Don't handle multiple edges
37563         exiting the function.
37564         (build_graphite_scops): Don't handle multiple edges
37565         exiting the function.
37566
37567 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
37568
37569         PR middle-end/43097
37570         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
37571         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
37572
37573 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
37574
37575         PR middle-end/43026
37576         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
37577
37578 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
37579
37580         PR c++/43126
37581         * c-typeck.c (convert_arguments): Print declaration location.
37582         * c-common.c (validate_nargs): Rename as
37583         builtin_function_validate_nargs.
37584         (check_builtin_function_arguments): Update.
37585
37586 2010-02-22  Richard Guenther  <rguenther@suse.de>
37587
37588         PR lto/43045
37589         * tree-inline.c (declare_return_variable): Use the type of
37590         the call stmt lhs if available.
37591
37592 2010-02-22  Duncan Sands  <baldrick@free.fr>
37593
37594         * passes.c (register_pass): Always consider all pass lists when
37595         ref_pass_instance_number is zero.
37596
37597 2010-02-22  Richard Guenther  <rguenther@suse.de>
37598
37599         PR tree-optimization/42749
37600         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
37601         parameter.  Do arithmetic in the original type.
37602         (update_accumulator_with_ops): Likewise.
37603         (adjust_accumulator_values): Adjust.
37604
37605 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
37606
37607         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
37608         (QI to BLKmode splitter): New splitter.
37609
37610 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
37611
37612         * config/i386/i386.c (initial_ix86_tune_features): Turn on
37613         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
37614
37615 2010-02-22  Richard Guenther  <rguenther@suse.de>
37616
37617         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
37618
37619 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
37620
37621         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
37622         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
37623         ($(T)crti.o, $(T)crtn.o): Remove rules.
37624
37625 2010-02-21  Tobias Burnus  <burnus@net-b.de>
37626
37627         PR fortran/35259
37628         * doc/invoke.texi (-fassociative-math): Document that this
37629         option is automatically enabled for Fortran.
37630
37631 2010-02-20  David S. Miller  <davem@davemloft.net>
37632
37633         * configure.ac: Test if linker and assembler properly support
37634         GOTDATA_OP relocations.
37635         * configure: Rebuild.
37636         * config.in: Likewise.
37637         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
37638         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
37639         (movsi_high_pic): Likewise.
37640         (movdi_lo_sum_pic): Likewise.
37641         (movdi_high_pic): Likewise.
37642         (movsi_pic_gotdata_op): New pattern.
37643         (movdi_pic_gotdata_op): Likewise.
37644         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
37645         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
37646
37647 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
37648
37649         PR target/43067
37650         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
37651         attribute to ssemul.
37652         (xop_mulv2div2di3_high): Ditto.
37653
37654 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
37655
37656         PR c++/35669
37657         * c.opt (Wconversion-null): New option.
37658         * doc/invoke.texi (Wconversion-null): Document.
37659
37660 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
37661
37662         * common.opt (Wlarger-than-): Add Undocumented.
37663
37664 2010-02-19  Mike Stump  <mikestump@comcast.net>
37665
37666         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
37667
37668 2010-02-19  Jason Merrill  <jason@redhat.com>
37669
37670         PR target/40332
37671         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
37672         * configure: Likewise.
37673
37674 2010-02-20  Alan Modra  <amodra@gmail.com>
37675
37676         PR middle-end/42344
37677         * cgraph.h (cgraph_make_decl_local): Declare.
37678         * cgraph.c (cgraph_make_decl_local): New function.
37679         (cgraph_make_node_local): Use it.
37680         * cgraphunit.c (cgraph_function_versioning): Likewise.
37681         * ipa.c (function_and_variable_visibility): Likewise.
37682
37683 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
37684
37685         PR bootstrap/43121
37686         * except.c (sjlj_emit_function_enter): Don't call
37687         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
37688         directly.
37689         * rtl.h (add_reg_br_prob_note): Remove prototype.
37690
37691 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
37692
37693         PR 41779
37694         * c-common.c (conversion_warning): Remove widening conversions
37695         before checking the conversion of integers to reals.
37696
37697 2010-02-19  Mike Stump  <mikestump@comcast.net>
37698
37699         PR middle-end/43125
37700         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
37701
37702         PR objc/43061
37703         * cgraphunit.c (process_function_and_variable_attributes): Check
37704         DECL_PRESERVE_P instead of looking up attribute "used".
37705         * ipa-pure-const.c (check_decl): Likewise.
37706         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
37707         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
37708         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
37709         instead of attribute "used".
37710         * config/sol2-c.c (solaris_pragma_init): Likewise.
37711         (solaris_pragma_fini): Likewise.
37712
37713 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
37714
37715         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
37716         Use XCNEW instead of xcalloc.
37717         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
37718         XNEW instead of xmalloc.
37719         (get_fields): Use XNEWVEC instead of xmalloc.
37720
37721         PR debug/43084
37722         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
37723         populate vars array.
37724         (create_new_general_access): For debug stmts just reset value.
37725         (get_stmt_accesses): For accesses within debug stmts just record them
37726         using add_access_to_acc_sites instead of preventing the peeling or
37727         counting them as accesses.
37728
37729         PR middle-end/42233
37730         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
37731
37732 2010-02-19  Richard Guenther  <rguenther@suse.de>
37733
37734         PR tree-optimization/42916
37735         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
37736         instructions.
37737
37738 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
37739
37740         * configure.ac: Replace all uses of changequote in macro arguments
37741         with proper quoting.
37742
37743 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
37744
37745         PR middle-end/42233
37746         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
37747
37748 2010-02-19  Richard Guenther  <rguenther@suse.de>
37749
37750         PR tree-optimization/42944
37751         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
37752         test for aliasing with errno.
37753
37754 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
37755
37756         PR middle-end/42233
37757         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
37758         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
37759         * dojump.c: Include output.h.
37760         (inv): New inline function.
37761         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
37762         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
37763         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
37764         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
37765         argument, pass it down to other calls.
37766         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
37767         add REG_BR_PROB note to the conditional jump.
37768         * cfgexpand.c (add_reg_br_prob_note): Removed.
37769         (expand_gimple_cond): Don't call it, add the probability
37770         as last argument to jumpif_1/jumpifnot_1.
37771         * Makefile.in (dojump.o): Depend on output.h.
37772         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
37773         callers.
37774         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
37775         * stmt.c (do_jump_if_equal): Likewise.
37776         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
37777         * loop-unswitch.c (compare_and_jump_seq): Likewise.
37778         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
37779         Likewise.
37780         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
37781         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
37782         jumpifnot_1 callers.
37783         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
37784         callers.
37785         (store_expr): Adjust jumpifnot caller.
37786         (store_constructor): Adjust jumpif caller.
37787
37788         PR middle-end/42233
37789         * gimplify.c (gimple_boolify): For __builtin_expect call
37790         gimple_boolify also on its first argument.
37791
37792 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
37793
37794         * configure.ac (gnu-unique-object): Wrap regexps using [] in
37795         changequote block.
37796         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
37797         * configure: Regenerated.
37798
37799 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
37800
37801         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
37802         lang_hooks.types_compatible_p instead of comptypes.
37803
37804 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
37805
37806         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
37807         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
37808         if __prefer_thumb__ is defined.
37809
37810 2010-02-18  Martin Jambor  <mjambor@suse.cz>
37811
37812         PR tree-optimization/43066
37813         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
37814         array with zero-sized element type.
37815
37816 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
37817
37818         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
37819         rtx, allocate struct var_loc_node here and return it to the
37820         caller, and only if it is actually needed.
37821         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
37822         move it earlier and return immediately if it returns NULL.
37823
37824 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
37825
37826         * config/sparc/gas.h: New file.  Restore
37827         TARGET_ASM_NAMED_SECTION to its ELF default.
37828         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
37829         check !HAVE_GNU_AS.
37830         * config/sparc/sparc.c (sparc_elf_asm_named_section):
37831         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
37832         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
37833         after sparc/sysv4.h.
37834
37835 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
37836
37837         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
37838
37839 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
37840
37841         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
37842         patterns from predicated pattern.
37843
37844 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
37845
37846         PR target/43103
37847         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
37848         for insn mnemonic suffix.
37849
37850 2010-02-17  Richard Guenther  <rguenther@suse.de>
37851
37852         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
37853         to loop PHI nodes.
37854
37855 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
37856
37857         PR debug/42918
37858         * caller-save.c (save_call_clobbered_regs): If BB ends with
37859         a DEBUG_INSN, move any notes in between last real insn and the last
37860         DEBUG_INSN after the last DEBUG_INSN.
37861
37862 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
37863
37864         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
37865         Fix return type.  Fix argument type.  Explain meaning of return value.
37866
37867 2010-02-16  Richard Guenther  <rguenther@suse.de>
37868
37869         PR tree-optimization/41043
37870         * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
37871         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
37872         statements ...
37873         (vrp_visit_phi_node): ... but only for loop PHI nodes.
37874
37875 2010-02-16  Ira Rosen  <irar@il.ibm.com>
37876
37877         PR tree-optimization/43074
37878         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
37879         * tree-vect-loop.c (vect_analyze_loop_operations): Add
37880         vectorizable cycles in hybrid SLP check.
37881         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
37882
37883 2010-02-16  Richard Guenther  <rguenther@suse.de>
37884
37885         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
37886         (true_dependence): If memrefs_conflict_p computes must-alias
37887         trust it.  Move TBAA check after offset-based disambiguation.
37888         (canon_true_dependence): Likewise.
37889
37890 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
37891
37892         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
37893         * doc/invoke.texi: Document it.
37894         * var-tracking.c: Include toplev.h and params.h.
37895         (vt_find_locations): Return bool indicating success.  Compute
37896         hash sizes unconditionally.  Check new parameter, report.
37897         (variable_tracking_main_1): Check vt_find_locations results and
37898         retry.  Renamed from...
37899         (variable_tracking_main): ... this.  New wrapper to preserve
37900         flag_var_tracking_assignments.
37901         * Makefile.in (var-tracking.o): Adjust dependencies.
37902
37903 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
37904             Jakub Jelinek  <jakub@redhat.com>
37905
37906         PR target/42854
37907         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
37908         if weak_import attribute is present.
37909         * config/darwin.c (machopic_select_section): Likewise.
37910
37911 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
37912
37913         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
37914         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
37915         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
37916         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
37917
37918         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
37919         types.
37920
37921         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
37922         Fix argument types.
37923
37924         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
37925         Rewrite text to refer to the names.
37926
37927 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
37928
37929         * config/i386/i386-builtin-types.def
37930         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
37931         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
37932         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
37933         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
37934         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
37935         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
37936         IX86_BUILTIN_VPERMIL2PS256.
37937         (MULTI_ARG_4_DF2_DI_I): Defined.
37938         (MULTI_ARG_4_DF2_DI_I1): Defined.
37939         (MULTI_ARG_4_SF2_SI_I): Defined.
37940         (MULTI_ARG_4_SF2_SI_I1): Defined.
37941         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
37942         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
37943         __builtin_ia32_vpermil2ps256.
37944         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
37945         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
37946         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
37947         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
37948         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
37949         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
37950         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
37951         CODE_FOR_xop_vpermil2v8sf3.
37952         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
37953         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
37954         * config/i386/xopintrin.h (_mm_permute2_pd): New.
37955         (_mm256_permute2_pd): New.
37956         (_mm_permute2_ps): New.
37957         (_mm256_permute2_ps): New.
37958
37959 2010-02-15  Nick Clifton  <nickc@redhat.com>
37960
37961         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
37962         boolean parameters.  Use emit_jump_insn when emitting a pop
37963         instruction containing a return insn.
37964         (push): Use 'true' rather than '1' as second parameter to F.
37965         (h8300_expand_prologue): Likewise.
37966         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
37967         (h8300_expand_epilogue): Likewise.
37968
37969 2010-02-15  Richard Guenther  <rguenther@suse.de>
37970
37971         PR middle-end/43068
37972         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
37973         if that is zero.
37974
37975 2010-02-15  Nick Clifton  <nickc@redhat.com>
37976
37977         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
37978         delta.
37979
37980 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
37981
37982         * intl.c (fake_ngettext): New function.
37983         * intl.h (fake_ngettext): Declare.
37984         (ngettext): Define macro.
37985         * collect2.c (notice_translated): New function.
37986         (main): Use notice_translated and ngettext.
37987         * collect2.h (notice_translated): Declare.
37988
37989 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
37990
37991         * reorg.c (delete_computation): Comment fixes.
37992         * caller-save.c (setup_save_areas): Idem.
37993         * sel-sched-dump.c (dump_lv_set): Idem.
37994         * rtl.def: Idem.
37995
37996 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
37997
37998         * config/s390/s390.c (s390_sched_init): New function.
37999         (TARGET_SCHED_INIT): Target hook defined.
38000
38001 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
38002             Jack Howarth  <howarth@bromo.med.uc.edu>
38003             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
38004
38005         PR target/42982
38006         Partial revert of unintended change in fix for PR41605.
38007         * config/darwin.h: Fix typo.
38008         * config/darwin9.h: Same.
38009
38010 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
38011
38012         * c-pch.c (pch_init): Clear v.
38013
38014 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
38015
38016         PR middle-end/42930
38017         * graphite-scop-detection.c (graphite_can_represent_scev): Call
38018         graphite_can_represent_init for MULT_EXPR.
38019
38020 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
38021
38022         PR middle-end/42914
38023         PR middle-end/42530
38024         * graphite-sese-to-poly.c (remove_phi): New.
38025         (translate_scalar_reduction_to_array): Call remove_phi.
38026
38027 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
38028
38029         PR middle-end/42771
38030         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
38031         * graphite-clast-to-gimple.h (gloog): Update declaration.
38032         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
38033         * graphite-poly.h (struct poly_bb): Add missing comments.
38034         (struct scop): Add poly_scop_p field.
38035         (POLY_SCOP_P): New.
38036         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
38037         * graphite.c (graphite_transform_loops): Build the polyhedral
38038         representation for each scop before code generation.
38039         * sese.c (rename_variables_in_operand): Removed.
38040         (rename_variables_in_expr): Return the renamed expression.
38041         (rename_sese_parameters): New.
38042         * sese.h (rename_sese_parameters): Declared.
38043
38044 2010-02-11  Richard Guenther  <rguenther@suse.de>
38045
38046         PR tree-optimization/42998
38047         * tree-ssa-pre.c (create_expression_by_pieces): Treat
38048         POINTER_PLUS_EXPR properly.
38049
38050 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
38051             Changpeng Fang  <changpeng.fang@amd.com>
38052
38053         PR middle-end/40886
38054         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
38055         the cost of an IV candidate when the IV is used in a test against zero.
38056
38057         * gcc.dg/tree-ssa/ivopts-3.c: New.
38058
38059 2010-02-11  Richard Guenther  <rguenther@suse.de>
38060
38061         PR lto/41664
38062         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
38063         pointer-vs-decl case by swapping refs.  Handle some cases
38064         of pointer-vs-decl disambiguations more conservatively.
38065         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
38066         to false after expanding.
38067
38068 2010-02-11  Richard Guenther  <rguenther@suse.de>
38069
38070         PR driver/43021
38071         * gcc.c (process_command): Handle LTO file@offset case more
38072         appropriately.
38073
38074 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
38075
38076         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
38077         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
38078         of DEBUG_INSNs.
38079         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
38080
38081         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
38082         if MEM's mode size isn't DWARF2_ADDR_SIZE.
38083         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
38084         Optimize eq/ne comparisons when both arguments are known to be
38085         zero-extended.
38086         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
38087         Don't mask operands unnecessarily if they are known to be already
38088         zero-extended.
38089
38090 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
38091
38092         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
38093         instead of loop.
38094
38095 2010-02-10  Richard Guenther  <rguenther@suse.de>
38096
38097         PR tree-optimization/43017
38098         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
38099         for wrapping signed arithmetic.
38100
38101 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
38102
38103         PR debug/43010
38104         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
38105         if no debug info should be emitted for it.
38106
38107 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
38108
38109         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
38110         note when flag_exceptions is set.
38111
38112 2010-02-10  Duncan Sands  <baldrick@free.fr>
38113
38114         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
38115
38116 2010-02-10  Richard Guenther  <rguenther@suse.de>
38117
38118         PR c/43007
38119         * tree.c (get_unwidened): Handle constants.
38120         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
38121
38122 2010-02-10  Martin Jambor  <mjambor@suse.cz>
38123
38124         PR lto/42985
38125         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
38126         check for variable argument counts independently.
38127
38128 2010-02-10  Christian Bruel  <christian.bruel@st.com>
38129
38130         PR target/42841
38131         * config/sh/sh.c (find_barrier): Increase length for non delayed
38132         conditional branches.
38133
38134 2010-02-10  Christian Bruel  <christian.bruel@st.com>
38135
38136         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
38137
38138 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
38139
38140         * builtins.c (set_builtin_user_assembler_name): Also handle
38141         ffs if int is smaller than word.
38142
38143 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
38144
38145         PR middle-end/42973
38146         * ira-conflicts.c (get_dup): Remove.
38147         (process_reg_shuffles): Add new parameter.  Use it as an
38148         additional guard for copy generation.
38149         (add_insn_allocno_copies): Rewrite.
38150
38151 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
38152
38153         * common.opt (fsched2-use-traces): Preserved for backward
38154         compatibility.
38155         * doc/invoke.texi: Remove the documentation about option
38156         -fsched2-use-traces.
38157         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
38158         flag_sched2_use_traces.
38159         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
38160         the backward compatibility flag section.
38161
38162 2010-02-09  Richard Guenther  <rguenther@suse.de>
38163
38164         PR tree-optimization/43008
38165         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
38166         make HEAP variables initialized from global memory if they
38167         are not known builtin functions.
38168         (find_func_aliases): Adjust.
38169
38170 2010-02-09  Richard Guenther  <rguenther@suse.de>
38171
38172         PR tree-optimization/43000
38173         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
38174         arithmetic manually.
38175
38176 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
38177
38178         PR tree-optimization/42931
38179         * tree-loop-linear.c (try_interchange_loops): Don't call
38180         double_int_mul if estimated_loop_iterations failed.
38181
38182 2010-02-08  Martin Jambor  <mjambor@suse.cz>
38183
38184         PR middle-end/42898
38185         * tree-sra.c (build_accesses_from_assign): Do not mark in
38186         should_scalarize_away_bitmap if stmt has volatile ops.
38187         (sra_modify_assign): Do not process assigns piecemeal if if stmt
38188         has volatile ops.
38189
38190 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
38191
38192         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
38193
38194 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
38195
38196         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
38197         before the pattern.
38198
38199 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
38200
38201         PR middle-end/42946
38202         * df-core.c (df_finish_pass): Change type of saved_flags to int.
38203
38204 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
38205
38206         PR middle-end/42988
38207         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
38208         to unknown_dependence.
38209         (graphite_legal_transform_dr): Handle the unknown_dependence.
38210         (graphite_carried_dependence_level_k): Same.
38211
38212 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
38213
38214         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
38215
38216 2010-02-07  Richard Guenther  <rguenther@suse.de>
38217
38218         PR middle-end/42991
38219         * expr.c (get_inner_reference): Always initialize *pbitsize.
38220
38221 2010-02-07  Richard Guenther  <rguenther@suse.de>
38222
38223         PR middle-end/42956
38224         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
38225         new ARRAY_REFs on variable size element or minimal index arrays.
38226         Complete.
38227         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
38228         gimple_fold_indirect_ref.
38229
38230 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
38231
38232         PR target/42957
38233         * arm.c (arm_override_options): Just return if the user has specified
38234         an invalid fpu name.
38235
38236 2010-02-03  Jason Merrill  <jason@redhat.com>
38237
38238         PR c++/42870
38239         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
38240         i386_pe_maybe_record_exported_symbol.
38241
38242 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
38243
38244         PR target/42924
38245         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
38246         (pa_delegitimize_address): New function.
38247
38248 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
38249
38250         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
38251         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
38252
38253 2010-02-05  Richard Guenther  <rguenther@suse.de>
38254
38255         PR lto/42762
38256         * lto-streamer-in.c (get_resolution): Deal with references
38257         to undefined functions.
38258
38259 2010-02-05  Richard Guenther  <rguenther@suse.de>
38260
38261         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
38262         (fold_const_aggregate_ref): Likewise.
38263         (ccp_fold_stmt): Substitute loads.
38264         (maybe_fold_reference): Verify types before substituting.
38265         Unshare properly.
38266         (fold_gimple_assign): Unshare properly.
38267         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
38268
38269 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
38270
38271         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
38272         for rs6000_gen_cell_microcode.
38273
38274 2010-02-04  Richard Guenther  <rguenther@suse.de>
38275
38276         PR rtl-optimization/42952
38277         * dse.c (const_or_frame_p): Remove MEM handling.
38278
38279 2010-02-04  Nick Clifton  <nickc@redhat.com>
38280
38281         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
38282         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
38283         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
38284         (mn10300_asm_output_mi_thunk): New function.
38285         (mn10300_can_output_mu_thunk): New function.
38286         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
38287         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
38288         (FUNCTION_ARG): Delete incorrect comment.
38289
38290 2010-02-03  Jason Merrill  <jason@redhat.com>
38291
38292         PR c++/40138
38293         * fold-const.c (operand_equal_p): Handle erroneous types.
38294
38295 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
38296
38297         * config/h8300/h8300.md (can_delay): Fix attibute condition.
38298
38299 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
38300
38301         PR rtl-optimization/42941
38302         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
38303         of xmalloc.
38304
38305 2010-02-03  Jason Merrill  <jason@redhat.com>
38306
38307         PR c++/35652
38308         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
38309
38310 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
38311
38312         PR debug/42896
38313         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
38314         (cselib_reset_table): Renamed from...
38315         (cselib_reset_table_with_next_value): ... this.
38316         (cselib_get_next_uid): Renamed from...
38317         (cselib_get_next_unknown_value): ... this.
38318         * cselib.c (next_uid): Renamed from...
38319         (next_unknown_value): ... this.
38320         (cselib_clear_table): Adjust.
38321         (cselib_reset_table): Adjust.  Renamed from...
38322         (cselib_reset_table_with_next_value): ... this.
38323         (cselib_get_next_uid): Adjust.  Renamed from...
38324         (cselib_get_next_unknown_value): ... this.
38325         (get_value_hash): Use hash.
38326         (cselib_hash_rtx): Likewise.
38327         (new_cselib_val): Adjust.  Set and dump uid.
38328         (cselib_lookup_mem): Pass next_uid as hash.
38329         (cselib_subst_to_values): Likewise.
38330         (cselib_log_lookup): Dump uid.
38331         (cselib_lookup): Pass next_uid as hash.  Adjust.
38332         (cselib_process_insn): Adjust.
38333         (cselib_init): Initialize next_uid.
38334         (cselib_finish): Adjust.
38335         (dump_cselib_table): Likewise.
38336         * dse.c (canon_address): Dump value uid.
38337         * print-rtl.c (print_rtx): Print value uid.
38338         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
38339         (dvuid): New type.
38340         (dv_uid): New function, sort of renamed from...
38341         (dv_htab_hash): ... this, reimplemented in terms of it and...
38342         (dv_uid2hash): ... this.  New.
38343         (variable_htab_eq): Drop excess assertions.
38344         (tie_break_pointers): Removed.
38345         (canon_value_cmp): Compare uids.
38346         (variable_post_merge_New_vals): Print uids.
38347         (vt_add_function_parameters): Adjust.
38348         (vt_initialize): Reset table.  Adjust.
38349
38350 2010-02-03  Richard Guenther  <rguenther@suse.de>
38351
38352         PR tree-optimization/42944
38353         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
38354         (call_may_clobber_ref_p_1): Likewise.  Properly handle
38355         malloc and calloc clobbering errno.
38356
38357 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
38358
38359         * doc/invoke.texi: Fix name of sched1 dump.
38360
38361         * opts.c (decode_options): Set flag_tree_switch_conversion
38362         only conditionally on optimize >= 2.
38363
38364         * gcse.c: Assorted comment fixes in pass description.
38365
38366 2010-02-03  Anthony Green  <green@moxielogic.com>
38367
38368         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
38369         nop padding in order to maintain alignment of storage location of
38370         target function address.
38371         (moxie_trampoline_init): Store target function address at newly
38372         aligned location.
38373         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
38374         to 32.
38375         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
38376
38377 2010-02-03  Richard Guenther  <rguenther@suse.de>
38378
38379         PR middle-end/42927
38380         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
38381
38382 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38383
38384         * config.gcc: Reenable check for obsolete targets.
38385         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
38386         mips-sgi-irix6.[0-4]*.
38387
38388 2010-02-02  Nick Clifton  <nickc@redhat.com>
38389
38390         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
38391         constant size of 4 as being the same as 0.
38392         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
38393         can take values in the range 0..4.
38394
38395 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
38396
38397         PR java/41991
38398         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
38399         as _darwin10_Unwind_FindEnclosingFunction().
38400         * libgcc-libsystem.ver: New.
38401
38402 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
38403
38404         PR target/41399
38405         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
38406         implicitly set registers.
38407
38408 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
38409
38410         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
38411         (arm_override_options): Allow automatic selection of the thread
38412         pointer register if thumb2.
38413         (legitimize_pic_address): Improve code sequences for Thumb2.
38414         (arm_call_tls_get_addr): Likewise.
38415         (legitimize_tls_address): Likewise.
38416         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
38417         (pic_load_addr_32bit): ... this.  New named pattern.
38418         * thumb2.md (pic_load_addr_thumb2): Delete.
38419         (pic_load_dot_plus_four): Delete.
38420         (tls_load_dot_plus_four): New named pattern.
38421
38422 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38423
38424         PR libgomp/29986
38425         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
38426         Document fix for TLS bug.
38427
38428 2010-01-31  Richard Guenther  <rguenther@suse.de>
38429
38430         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
38431         conservatively correct.
38432
38433 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
38434
38435         PR target/42850
38436         Revert:
38437         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
38438
38439         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
38440
38441 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
38442
38443         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
38444
38445 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
38446
38447         * config.gcc: Adjust order of makefile fragments for mingw targets.
38448
38449 2010-01-31  Richard Guenther  <rguenther@suse.de>
38450
38451         PR middle-end/42898
38452         * gimplify.c (gimplify_init_constructor): For volatile LHS
38453         initialize a temporary.
38454
38455 2010-01-31  Matthias Klose  <doko@ubuntu.com>
38456
38457         * configure.ac: Fix __stack_chk_fail check for cross builds configured
38458         --with-headers
38459         * configure: Regenerate.
38460
38461 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
38462
38463         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
38464         the same alias set and their sizes different constantness.
38465         (aliasing_component_refs_p): Revert 2009-10-24 change.
38466
38467 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38468
38469         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
38470         unused.
38471
38472 2010-01-29  Richard Guenther  <rguenther@suse.de>
38473
38474         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
38475         Assert we successfully updated the call.
38476
38477 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
38478
38479         PR rtl-optimization/42889
38480         * df.h (df_set_bb_dirty_nonlr): New prototype.
38481         * df-core.c (df_set_bb_dirty_nonlr): New function.
38482         * df-scan.c (df_insn_rescan): Call it instead of
38483         df_set_bb_dirty for DEBUG_INSNs.
38484
38485 2010-01-29  Richard Guenther  <rguenther@suse.de>
38486
38487         PR middle-end/37448
38488         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
38489         quadratic behavior in most cases.
38490
38491 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
38492
38493         PR target/42891
38494         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
38495         in the call to gen_x86_movsicc_0_m1.
38496
38497 2010-01-28  Richard Guenther  <rguenther@suse.de>
38498
38499         PR tree-optimization/42871
38500         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
38501
38502 2010-01-28  Richard Guenther  <rguenther@suse.de>
38503
38504         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
38505         into call arguments.
38506
38507 2010-01-28  Richard Guenther  <rguenther@suse.de>
38508
38509         PR middle-end/42883
38510         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
38511         the forwarder if the destination is an EH landing pad.
38512
38513 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
38514
38515         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
38516         block list passed to gimple_duplicate_sese_tail.
38517         (parallelize_loops): Avoid parallelization when the function
38518         has_nonlocal_label.
38519         Avoid parallelization when the preheader is IRREDUCIBLE.
38520         Try to optimize when estimated_loop_iterations_int is unresolved.
38521         Add the loop's location to the dump file.
38522         * tree-cfg.c (add_phi_args_after_redirect): Remove.
38523         (gimple_duplicate_sese_tail): Remove the check for the latch.
38524         Redirect nexits to the exit block.
38525         Remove handling of the incoming edges to the latch.
38526         Redirect the backedge from the copied latch to the exit bb.
38527
38528 2010-01-28  Michael Matz  <matz@suse.de>
38529
38530         PR target/42881
38531         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
38532         Wrap force_reg into a sequence, emit it before user.
38533
38534 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
38535
38536         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
38537         (arm_rev): New.
38538         (arm_legacy_rev): Likewise.
38539         (thumb_legacy_rev): Likewise.
38540
38541 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
38542
38543         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
38544         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
38545         on MEM's address failed, try avoid_constant_pool_reference and
38546         recurse if it returned something different.
38547         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
38548         address, try avoid_constant_pool_reference and recurse if it
38549         returned something different.
38550         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
38551         address and avoid_constant_pool_reference returned something
38552         different, don't set have_address.
38553
38554 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
38555
38556         PR debug/42861
38557         * var-tracking.c (val_store): Add modified argument, obey it.
38558         Adjust callers.
38559         (count_uses): Move down logging of main.
38560         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
38561         don't need resolution.
38562         (emit_notes_in_bb): Likewise.
38563
38564 2010-01-27  Richard Guenther  <rguenther@suse.de>
38565
38566         PR middle-end/42878
38567         * tree-inline.c (remap_decl): Delay remapping of SSA name
38568         default definitions until we need them.
38569
38570 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
38571
38572         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
38573         (rs6000_delegitimize_address): New function.
38574
38575         * config/s390/s390.c (s390_delegitimize_address): Call
38576         delegitimize_mem_from_attrs.
38577
38578         PR middle-end/42874
38579         * tree-inline.c (cannot_copy_type_1): Removed.
38580         (copy_forbidden): Don't forbid copying of functions containing
38581         records/unions with variable length fields.
38582
38583 2010-01-27  Christian Bruel  <christian.bruel@st.com>
38584
38585         Revert:
38586         PR target/42841
38587         * config/sh/sh.c (find_barrier): Increase length for non delayed
38588         conditional branches.
38589
38590 2010-01-27  Matthias Klose  <doko@ubuntu.com>
38591
38592         * configure.ac (gnu-unique-object): Fix ldd version check.
38593         * configure: Regenerate.
38594
38595 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38596
38597         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
38598         HAVE_GNU_AS value.
38599         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
38600         Test for HAVE_GNU_AS value.
38601
38602 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38603
38604         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
38605         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
38606         INT64_TYPE): Define.
38607         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
38608         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
38609         INT_LEAST64_TYPE): Define.
38610         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
38611         UINT_LEAST64_TYPE): Define.
38612         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
38613         INT_FAST64_TYPE): Define.
38614         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
38615         UINT_FAST64_TYPE): Define.
38616         (INTMAX_TYPE, UINTMAX_TYPE): Define.
38617         (INTPTR_TYPE, UINTPTR_TYPE): Define.
38618         (SIG_ATOMIC_TYPE): Define.
38619
38620 2010-01-26  Richard Guenther  <rguenther@suse.de>
38621
38622         * df-scan.c (df_scan_set_bb_info): Remove assert.
38623         (df_insn_rescan_debug_internal): Merge asserts.
38624         (df_install_ref): Likewise.
38625         (df_mark_reg): Use bitmap_set_range.
38626         (df_hard_reg_used_p): Remove assert.
38627         (df_hard_reg_used_count): Likewise.
38628
38629 2010-01-26  Richard Guenther  <rguenther@suse.de>
38630
38631         PR rtl-optimization/42685
38632         * web.c (web_main): Ignore DEBUG_INSNs.
38633
38634 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
38635
38636         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
38637
38638         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
38639         Fix types of fndecl and arglist parameters.
38640
38641 2010-01-26  Richard Guenther  <rguenther@suse.de>
38642
38643         PR middle-end/42806
38644         * tree-eh.c (unsplit_eh): Skip debug insns.
38645
38646 2010-01-26  Richard Guenther  <rguenther@suse.de>
38647
38648         PR tree-optimization/42250
38649         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
38650
38651 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
38652
38653         PR fortran/42866
38654         * omp-low.c (expand_omp_sections): Only use single_pred if
38655         l2_bb is single_pred_p.
38656
38657 2010-01-25  Christian Bruel  <christian.bruel@st.com>
38658
38659         PR target/42841
38660         * config/sh/sh.c (find_barrier): Increase length for non delayed
38661         conditional branches.
38662         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
38663
38664 2010-01-24  David S. Miller  <davem@davemloft.net>
38665
38666         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
38667         define if not using GAS.
38668         * config/sparc/sparc.c (sparc_elf_asm_named_section):
38669         Likewise.  Delete SECTION_MERGE code, which is only applicable
38670         when using GAS.
38671
38672 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
38673
38674         PR c++/42748
38675         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
38676         mangling of va_list in system headers.
38677
38678 2010-01-23  Toon Moene  <toon@moene.org>
38679
38680         * tree-predcom.c (combine_chains): Return NULL, not false.
38681
38682 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
38683
38684         * tree-loop-distribution.c (distribute_loop): Fix declaration and
38685         initialization of variable res to agree with return type.
38686
38687 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
38688
38689         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
38690         * tree-sra.c: Add include of expr.h.
38691
38692 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
38693
38694         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
38695         insert the debug stmt on the single non-EH edge from the stmt.
38696
38697 2010-01-22  Richard Henderson  <rth@redhat.com>
38698
38699         PR tree-opt/42833
38700         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
38701         the RHS until after generate_subtree_copies has insertted its
38702         code before the current statement.
38703
38704 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
38705
38706         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
38707
38708         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
38709
38710 2010-01-21  Martin Jambor  <mjambor@suse.cz>
38711
38712         PR tree-optimization/42585
38713         * tree-sra.c (struct access): New field grp_total_scalarization.
38714         (dump_access): Dump the new field.
38715         (should_scalarize_away_bitmap): New variable.
38716         (cannot_scalarize_away_bitmap): Likewise.
38717         (sra_initialize): Allocate new bitmaps.
38718         (sra_deinitialize): Free new bitmaps.
38719         (create_access_1): New function.
38720         (create_access): Parts moved to create_access_1.
38721         (type_consists_of_records_p): New function.
38722         (completely_scalarize_record): Likewise.
38723         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
38724         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
38725         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
38726         access.
38727         (analyze_all_variable_accesses): Completely scalarize small eligible
38728         records.
38729
38730 2010-01-21  Martin Jambor  <mjambor@suse.cz>
38731
38732         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
38733
38734 2010-01-21  Andrew Haley  <aph@redhat.com>
38735
38736         * gcc.c (process_command): Move lang_specific_driver before
38737         setting cc_libexec_prefix.
38738
38739 2010-01-21  Richard Guenther  <rguenther@suse.de>
38740
38741         PR middle-end/19988
38742         * fold-const.c (negate_expr_p): Pretend only negative
38743         real constants are easily negatable.
38744
38745 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
38746             Jason Merrill  <jason@redhat.com>
38747
38748         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
38749         (TYPE_TRANSPARENT_AGGR): this, for union and record.
38750         * calls.c (initialize argument_information): Handle it.
38751         * c-common.c (handle_transparent_union_attribute): Use new name.
38752         * c-decl.c (finish_struct): Ditto.
38753         * c-typeck.c (type_lists_compatible_p): Ditto.
38754         (convert_for_assignment): Use new name and also handle record.
38755         * function.c (aggregate_value_p): Handle it.
38756         (pass_by_reference): Ditto.
38757         (assign_parm_data_types): Ditto.
38758         * print-tree.c (print_node): Ditto.
38759         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
38760         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
38761         * tree.c (first_field): New fn.
38762
38763 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
38764
38765         PR target/42818
38766         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
38767         even when linking statically, for now.
38768
38769 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
38770
38771         PR debug/42715
38772         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
38773         without a cselib val.
38774         (count_uses): Accept MO_VAL_SET with no val on stores.
38775         (add_stores): Likewise.
38776
38777 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
38778
38779         * var-tracking.c (check_value_val): Add a compile time assertion.
38780         (dv_is_decl_p): Simplify.
38781         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
38782         gcc_assert if ENABLE_CHECKING.
38783
38784 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
38785
38786         PR debug/42782
38787         * var-tracking.c: Include tree-flow.h.
38788         (mem_dies_at_call): New.
38789         (dataflow_set_preserve_mem_locs): Use it.
38790         (dataflow_set_remove_mem_locs): Likewise.
38791         (dump_var): Renamed from dump_variable.  Adjust all callers.
38792         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
38793         * Makefile.in (var-tracking.o): Adjust deps.
38794
38795 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
38796
38797         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
38798
38799 2010-01-20  Richard Guenther  <rguenther@suse.de>
38800
38801         PR tree-optimization/42717
38802         * tree-ssa-dce.c (get_live_post_dom): Remove.
38803         (forward_edge_to_pdom): Take an arbitrary edge to copy
38804         degenerate PHI args from.
38805         (remove_dead_stmt): Use the first post-dominator even if it
38806         does not contain live statements as redirection destination.
38807
38808 2010-01-20  Richard Guenther  <rguenther@suse.de>
38809
38810         * tree-inline.c (estimate_num_insns): Handle EH builtins.
38811
38812 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
38813
38814         * sel-sched.c (create_speculation_check): Remove set but not used
38815         variable twin.
38816         (try_transformation_cache): Remove set but not used variable ds.
38817         (calculate_privileged_insns): Remove set but not used variables
38818         cur_insn and min_spec_insn.
38819         (find_best_expr): Remove set but not used variable avail_n.
38820         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
38821         variable e.
38822         * cgraphunit.c (assemble_thunk): Remove set but not used variable
38823         false_label.
38824         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
38825         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
38826         new_scop_exit_edge.
38827
38828 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
38829
38830         PR bootstrap/42786
38831         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
38832         cpu types.  Add support for *-sse3 cpu types.
38833         (x86_64-*-*): Ditto.
38834
38835 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
38836
38837         PR middle-end/42803
38838         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
38839         argument, call initializer_constant_valid_p_1 instead of
38840         initializer_constant_valid_p, pass CACHE to it, return NULL
38841         immediately if first call returns NULL.
38842         (initializer_constant_valid_p_1): New function.
38843         (initializer_constant_valid_p): Use it.
38844
38845 2010-01-20  Thomas Quinot  <quinot@adacore.com>
38846
38847         * tree.def (PLACEHOLDER_EXPR): Fix comment.
38848
38849 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
38850
38851         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
38852         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
38853         (loc_list_from_tree): Don't handle unsigned division.  Handle
38854         signed modulo using DW_OP_{over,over,div,mul,minus}.
38855         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
38856         modulo instead of signed.
38857
38858 2010-01-20  DJ Delorie  <dj@redhat.com>
38859
38860         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
38861         (Fpa): Pass it
38862         (h8300_emit_stack_adjustment): Propogate it.
38863         (push): Pass it.
38864         (h8300_expand_prologue): Likewise.
38865         (h8300_expand_epilogue): Likewise.
38866
38867 2010-01-19  Michael Matz  <matz@suse.de>
38868
38869         PR tree-optimization/41783
38870         * tree-data-ref.c (toplevel): Include flags.h.
38871         (dump_data_dependence_relation):  Also dump the inputs if the
38872         result will be unknown.
38873         (split_constant_offset_1): Look through some conversions.
38874         * tree-predcom.c (determine_roots_comp): Restart a new chain if
38875         the offset from last element is too large.
38876         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
38877         (reassociate_to_the_same_stmt): Handle vector registers.
38878         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
38879         (e.g. conversions).
38880         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
38881         wide_prolog_niters argument, emit widening instructions.
38882         (vect_do_peeling_for_alignment): Adjust caller, use widened
38883         variant of the iteration cound.
38884         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
38885
38886 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
38887
38888         PR target/38697
38889         * config/arm/neon-testgen.m (emit_automatics): New parameter
38890         features. Adjust for Fixed_return_reg feature.
38891         (test_intrinsic): Call emit_automatics with new feature.
38892         * config/arm/neon.ml: Update copyright years.
38893         (features): New Fixed_return_reg feature.
38894         (ops): Update feature for Vget_low.
38895
38896 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
38897
38898         PR tree-optimization/42719
38899         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
38900         stmt uses.
38901
38902         PR debug/42728
38903         * fwprop.c (all_uses_available_at): Return false if def_set dest
38904         is a REG that is used in def_insn.
38905
38906 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
38907
38908         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
38909
38910         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
38911         Add argument names.
38912
38913         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
38914
38915         * target.h (struct gcc_target) <secondary_reload>: Change type
38916         of last argument to secondary_reload_info *.
38917
38918 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
38919
38920         PR target/42774
38921         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
38922         memory references with unaligned offsets.  Remove CQImode handling.
38923         (unaligned_memory_operand): Return 1 for memory references with
38924         unaligned offsets.  Remove CQImode handling.
38925
38926 2010-01-18  Richard Guenther  <rguenther@suse.de>
38927
38928         PR middle-end/39954
38929         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
38930         builtin calls.
38931
38932 2010-01-18  Richard Guenther  <rguenther@suse.de>
38933
38934         PR tree-optimization/42781
38935         * tree-ssa-structalias.c (find_what_var_points_to): Skip
38936         restrict processing only if the original variable was artificial.
38937
38938 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
38939
38940         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
38941         find number of popped argument bytes.
38942
38943         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
38944         Fix the text that describes the return value for invalid insns.
38945
38946         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
38947
38948         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
38949         Clarify what 'cost of the -dependence' is.  Fix quoting.
38950
38951         * toplev.c (default_get_pch_validity): Rename argument to "sz".
38952         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
38953
38954 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
38955
38956         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
38957         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
38958
38959 2010-01-17  Richard Guenther  <rguenther@suse.de>
38960
38961         PR middle-end/42248
38962         * function.c (split_complex_args): Take a VEC to modify.
38963         (assign_parms_augmented_arg_list): Build a VEC instead of
38964         a chain of PARM_DECLs.
38965         (assign_parms_unsplit_complex): Take a VEC of arguments.
38966         Do not fixup unmodified parms.
38967         (assign_parms): Deal with the VEC.
38968         (gimplify_parameters): Likewise.
38969
38970 2010-01-17  Richard Guenther  <rguenther@suse.de>
38971
38972         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
38973         node existence check.
38974         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
38975         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
38976         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
38977         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
38978         (gimple_execute_on_growing_pred): Likewise.
38979
38980 2010-01-17  Richard Guenther  <rguenther@suse.de>
38981
38982         PR tree-optimization/42773
38983         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
38984         (compute_antic_aux): Likewise.
38985         (compute_partial_antic_aux): Likewise.
38986
38987 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
38988
38989         PR debug/42767
38990         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
38991         and US_TRUNCATE.
38992
38993 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
38994
38995         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
38996         appearance.
38997
38998         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
38999         Fix markup for strict argument.
39000
39001         (TARGET_SCHED_REORDER2): Fix argument types.
39002
39003         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
39004         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
39005
39006         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
39007         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
39008
39009         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
39010         Add argument name.
39011
39012         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
39013         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
39014         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
39015         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
39016         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
39017
39018         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
39019
39020         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
39021
39022         (TARGET_ASM_RELOC_RW_MASK): Add return type.
39023         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
39024
39025         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
39026
39027         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
39028         Use prototype.
39029
39030         (TARGET_ASM_NAMED_SECTION): Fix argument list.
39031
39032         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
39033         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
39034
39035         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
39036
39037         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
39038
39039         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
39040         referring to it.  Fix language.
39041
39042         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
39043
39044         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
39045
39046         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
39047
39048         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
39049
39050         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
39051         '@var{stream}.  Remove stray 'and'.
39052
39053         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
39054
39055         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
39056
39057         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
39058
39059         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
39060         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
39061
39062         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
39063         Fix description of return value.
39064         Rename argument "sz" to "len."
39065
39066         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
39067         Clarify meaning of 'true' return value.
39068
39069         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
39070
39071         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
39072         rep_mode versus mode_rep.
39073
39074         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
39075
39076         (TARGET_BUILTIN_DECL): Fix name.
39077
39078         (TARGET_COMMUTATIVE_P): Fix type of first argument.
39079
39080         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
39081
39082         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
39083
39084         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
39085
39086         (TARGET_RELAXED_ORDERING): Use @deftypevr.
39087
39088         (TARGET_GET_DRAP_RTX): Note that this is a hook.
39089         Clarify language.
39090
39091         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
39092         Rename argument tm_fn to md_fn.
39093
39094         (TARGET_OPTION_PRINT): Fix argument list.
39095
39096 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
39097
39098         PR target/42664
39099         * config/i386/i386.c (ix86_fixup_binary_operands):
39100         Revert FMA4 fixup of operands.
39101
39102 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
39103
39104         PR other/42525
39105         * Makefile.in (write_entries_to_file, install-plugin):
39106         Use \012 instead of \n with tr.
39107
39108 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
39109
39110         * configure.ac (HAVE_AS_REF): New C macro.
39111         * configure: Regenerate.
39112         * config.in: Likewise.
39113         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
39114         if HAVE_AS_REF.
39115         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
39116         if HAVE_AS_REF.
39117
39118 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
39119
39120         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
39121
39122         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
39123
39124         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
39125
39126         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
39127
39128         (TARGET_IN_SMALL_DATA_P): Fix argument type.
39129
39130         (TARGET_BINDS_LOCAL_P): Fix argument type.
39131
39132         (TARGET_ASM_FILE_END): Use prototype.
39133
39134         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
39135
39136         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
39137
39138         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
39139
39140         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
39141
39142         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
39143         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
39144
39145         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
39146         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
39147
39148         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
39149         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
39150         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
39151         (TARGET_ADDR_SPACE_CONVERT): Likewise.
39152
39153         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
39154
39155         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
39156
39157         (TARGET_INIT_BUILTINS): Use prototype.
39158
39159         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
39160         Put 'const char *' in braces.  Fix parameter types.
39161         (TARGET_INVALID_CONVERSION): Fix parameter types.
39162         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
39163         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
39164
39165         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
39166         Fix argument type.
39167
39168         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
39169
39170         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
39171
39172 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
39173
39174         * doc/tm.texi (TARGET_HELP): Fix return type.
39175
39176         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
39177         in braces.  Fix argument types.
39178
39179         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
39180
39181         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
39182
39183         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
39184
39185         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
39186         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
39187
39188         (TARGET_MANGLE_TYPE): Fix argument types.
39189
39190         (TARGET_IRA_COVER_CLASSES): Use prototype.
39191
39192         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
39193
39194         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
39195
39196         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
39197
39198         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
39199
39200         (TARGET_CALLEE_COPIES): Fix argument types.
39201
39202         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
39203
39204         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
39205
39206         (TARGET_FUNCTION_VALUE): Fix argument types.
39207
39208         (TARGET_RETURN_IN_MSB): Fix argument type.
39209
39210         (TARGET_RETURN_IN_MEMORY): Fix argument types.
39211
39212         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
39213
39214         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
39215
39216         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
39217         agree with return type.
39218
39219         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
39220
39221 2010-01-15  Jing Yu  <jingyu@google.com>
39222
39223         PR rtl-optimization/42691
39224         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
39225         a pseudo to a constant and are merged, and adjust comments.
39226
39227 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
39228
39229         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
39230
39231 2010-01-15  Richard Guenther  <rguenther@suse.de>
39232
39233         PR middle-end/42739
39234         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
39235         labels of computed or non-local gotos to the destination.
39236         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
39237         landing pad label is the first label.
39238
39239 2010-01-15  Richard Guenther  <rguenther@suse.de>
39240
39241         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
39242
39243 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
39244
39245         PR target/42747
39246         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
39247         to allow generation of the xssqrtdp instruction on power7.
39248         (sqrtdf2_fpr): Ditto.
39249
39250 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
39251
39252         PR middle-end/42674
39253         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
39254         functions with noreturn attribute.
39255
39256         PR c++/42608
39257         * varasm.c (declare_weak): Add weak attribute to decl if it
39258         doesn't have one already.
39259         (assemble_external): Only add decls to weak_decls if they also
39260         have weak attribute.
39261
39262 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
39263
39264         * var-tracking.c (var_reg_delete): Don't delete the association
39265         between REGs and values or one-part variables if the register
39266         isn't clobbered.
39267
39268 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
39269
39270         PR debug/42657
39271         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
39272         because its first operand is a non-localized variable.
39273
39274 2010-01-14  Martin Jambor  <mjambor@suse.cz>
39275
39276         PR tree-optimization/42706
39277         * tree-sra.c (encountered_recursive_call): New variable.
39278         (encountered_unchangable_recursive_call): Likewise.
39279         (sra_initialize): Initialize both new variables.
39280         (callsite_has_enough_arguments_p): New function.
39281         (scan_function): Call decl and flags check only for IPA-SRA, check
39282         whether there is a recursive call and whether it has enough arguments.
39283         (all_callers_have_enough_arguments_p): New function.
39284         (convert_callers): Look for recursive calls only when
39285         encountered_recursive_call is set.
39286         (ipa_early_sra): Bail out either if
39287         !all_callers_have_enough_arguments_p or
39288         encountered_unchangable_recursive_call.
39289
39290 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
39291
39292         * sel-sched.c: Add 2010 to copyright years.
39293         * sel-sched-ir.c: Likewise.
39294         * sel-sched-ir.h: Likewise.
39295
39296 2010-01-14  Martin Jambor  <mjambor@suse.cz>
39297
39298         PR tree-optimization/42714
39299         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
39300         constructors specially.
39301
39302 2010-01-14  Andi Kleen  <ak@linux.intel.com>
39303
39304         * config/i386/drivers-i386.c (detect_caches_intel):
39305         Add l2sizekb parameter and fill in.
39306         (host_detect_local_cpu): Add l2sizekb, fill in.
39307         Add Atom small cache heuristic.
39308
39309 2010-01-14  Andi Kleen  <ak@linux.intel.com>
39310
39311         * config/i386/drivers-i386.c (detect_caches_cpuid4):
39312         Add level3 parameter and fill in.
39313         (detect_caches_intel): Handle level3 cache.
39314
39315 2010-01-14  Andi Kleen  <ak@linux.intel.com>
39316
39317         * config/i386/drivers-i386.c (host_detect_local_cpu):
39318         Fix core duo detection.
39319
39320 2010-01-14  Andi Kleen  <ak@linux.intel.com>
39321
39322         * config/i386/drivers-i386.c (host_detect_local_cpu):
39323         Fix Atom detection.
39324
39325 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
39326
39327         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
39328         (rs6000_variable_issue_1): this.  Use...
39329         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
39330
39331 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
39332
39333         * sel-sched-ir.c (sel_restore_other_notes): Rename to
39334         sel_restore_notes.  Update all callers.  Call reemit_notes
39335         for all insns.
39336
39337 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
39338
39339         PR rtl-optimization/42246
39340         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
39341         loops.
39342
39343 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
39344
39345         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
39346         all successors is the same as number of successors in current region.
39347
39348 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
39349
39350         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
39351         to rename is not separable.  Otherwise check that its LHS is not NULL.
39352
39353 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
39354
39355         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
39356
39357 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
39358
39359         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
39360         available registers when failed to discover LHS register class.
39361         Fix indentation.  Update comment.
39362
39363 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
39364             Alexander Monakov  <amonakov@ispras.ru>
39365
39366         PR rtl-optimization/42389
39367         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
39368         to can_issue_more.
39369         (advance_state_on_fence): Likewise.
39370         (sel_target_adjust_priority): Print debug output only when
39371         sched_verbose >= 4, not 2.
39372         (get_expr_cost): Do not issue all unique insns on the next cycle.
39373         (fill_insns): Initialize can_issue_more from the value saved
39374         with the fence.
39375         * sel-sched-ir.c (flist_add): New parameter issue_more.
39376         Init FENCE_ISSUE_MORE with it.
39377         (merge_fences): Likewise.
39378         (init_fences): Update call to flist_add.
39379         (add_to_fences, add_clean_fence_to_fences)
39380         (add_dirty_fence_to_fences): Likewise.
39381         (move_fence_to_fences): Update call to merge_fences.
39382         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
39383         sched groups.
39384         * sel-sched-ir.h (struct _fence): New field issue_more.
39385         (FENCE_ISSUE_MORE): New accessor macro.
39386
39387 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
39388
39389         PR rtl-optimization/42388
39390         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
39391         that have no predecessors nor successors.  Do not call move_bb_info
39392         for empty blocks outside of current region.
39393
39394 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
39395
39396         PR rtl-optimization/42294
39397         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
39398         * sel-sched.c (move_exprs_to_boundary): Transitively add all
39399         originators' originators.
39400
39401 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
39402
39403         PR rtl-optimization/39453
39404         PR rtl-optimization/42246
39405         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
39406         for pipelining_p.
39407         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
39408
39409 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
39410             Alexander Monakov  <amonakov@ispras.ru>
39411
39412         PR middle-end/42245
39413         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
39414         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
39415         argument.  Update all callers.
39416         (tidy_control_flow): ... and here.  Recompute topological order
39417         of basic blocks in region if necessary.
39418         (sel_redirect_edge_and_branch): Change return type.  Return true
39419         if topological order might have been invalidated.
39420         (purge_empty_blocks): Export and move from...
39421         * sel-sched.c (purge_empty_blocks): ... here.
39422         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
39423         (maybe_tidy_empty_bb): Delete prototype.
39424         (purge_empty_blocks): Declare.
39425
39426 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
39427
39428         PR rtl-optimization/42249
39429         * sel-sched.c (try_replace_dest_reg): When chosen register
39430         and original register is the same, do not bail out early, but
39431         still check all original insns for validity of replacing destination
39432         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
39433         in this case.
39434
39435 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
39436
39437         PR c/42721
39438         Port from no-undefined-overflow branch:
39439         2009-03-09  Richard Guenther  <rguenther@suse.de>
39440
39441         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
39442
39443 2010-01-14  Richard Guenther  <rguenther@suse.de>
39444
39445         PR lto/42665
39446         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
39447
39448 2010-01-14  Ira Rosen  <irar@il.ibm.com>
39449
39450         PR tree-optimization/42709
39451         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
39452         as scalar type in creation of constant vector operand.
39453
39454 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
39455
39456         PR testsuite/42414
39457         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
39458         (check-parallel-%): Match `testsuite' directory component only
39459         at the end.
39460
39461 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
39462
39463         PR translation/39521
39464         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
39465         strings with _().
39466
39467 2010-01-13  Richard Guenther  <rguenther@suse.de>
39468
39469         PR tree-optimization/42730
39470         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
39471         offset zero.
39472
39473 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
39474
39475         PR target/pr42542
39476         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
39477         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
39478         them signed.
39479
39480 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
39481
39482         * config/bfin/libgcc-bfin.ver: Regenerate based on current
39483         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
39484         ___umulsi3_highpart.
39485
39486         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
39487         rather than schedule_insns if the pass is enabled.
39488
39489 2010-01-13  Martin Jambor  <mjambor@suse.cz>
39490
39491         PR tree-optimization/42704
39492         * tree-sra.c (sra_modify_assign): Do not delete assignments to
39493         SSA_NAMEs.
39494
39495 2010-01-13  Martin Jambor  <mjambor@suse.cz>
39496
39497         PR tree-optimization/42703
39498         * tree-sra.c (analyze_access_subtree): Check that we can build a
39499         reference to the original data within the aggregate.
39500
39501 2010-01-13  Richard Guenther  <rguenther@suse.de>
39502
39503         PR tree-optimization/42705
39504         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
39505
39506 2010-01-13  Richard Guenther  <rguenther@suse.de>
39507
39508         PR middle-end/42716
39509         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
39510
39511 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
39512
39513         PR debug/41371
39514         * var-tracking.c (values_to_unmark): New variable.
39515         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
39516         values_to_unmark vector.  Moved body to...
39517         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
39518         instead queue it into values_to_unmark vector.
39519         (vt_find_locations): Free values_to_unmark vector.
39520
39521 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
39522
39523         * config/s390/s390.c (override_options): Set
39524         default of max-pending-list-length to 256
39525
39526 2010-01-13  Richard Guenther  <rguenther@suse.de>
39527
39528         PR lto/42678
39529         * tree-pass.h (PROP_gimple_lcx): New.
39530         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
39531         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
39532         before the final cleanup_eh.
39533         (dump_properties): Dump PROP_gimple_lcx.
39534         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
39535         (tree_lower_complex_O0): Remove.
39536         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
39537         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
39538         tree_lower_complex, schedule TODO_update_ssa.
39539         * lto-streamer-out.c (output_function): Stream the functions
39540         properties.
39541         * lto-streamer-in.c (input_function): Likewise.
39542         (lto_read_body): Do not override them here.
39543
39544 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
39545
39546         PR c/42708
39547         * c-typeck.c (build_c_cast): Fold value cast to union type before
39548         wrapping it in a CONSTRUCTOR.
39549
39550 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
39551
39552         PR rtl-optimization/42699
39553         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
39554         involved.
39555
39556 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
39557
39558         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
39559         SUBTARGET_WARN_UNUSED_SPEC): Move ...
39560         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
39561         SUBTARGET_WARN_UNUSED_SPEC): ... here
39562         * config/mips/iris5.h (LIBGCC_SPEC): Define.
39563
39564 2010-01-12  Julian Brown  <julian@codesourcery.com>
39565
39566         * config/arm/neon-schedgen.ml (Utils): Don't try to
39567         open missing module.
39568         (find_with_result): New.
39569
39570 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
39571
39572         PR debug/42662
39573         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
39574         sharing when canonicalizing ({lt,ge}u (plus a b) b).
39575
39576         PR tree-optimization/42645
39577         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
39578         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
39579         decl_map, set processing_debug_stmt to -1 and return name without
39580         any remapping.
39581
39582 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
39583
39584         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
39585         binutils version, and reword target configuration description.
39586
39587 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
39588
39589         * config/avr/avr.h (LINKER_NAME): Remove.
39590
39591 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
39592
39593         PR target/42416
39594         * config/rs6000/rs6000.c (rs6000_override_options): On targets
39595         that support VSX, warn for -mno-altivec if vsx is not disabled,
39596         and disable vsx.
39597
39598 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
39599             Shujing Zhao  <pearly.zhao@oracle.com>
39600
39601         PR translation/42469
39602         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
39603         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
39604         character between option name and help text.
39605         * c.opt (imultilib): Likewise.
39606
39607 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
39608
39609         * lto-streamer-out.c (output_unreferenced_globals): Output static
39610         variables.
39611
39612 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
39613
39614         PR rtl-optimization/42621
39615         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
39616         optimizing for size.
39617         (duplicate_computed_gotos): Remove now-redundant check.
39618
39619 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
39620
39621         PR target/37454
39622         * configure.ac: Save and restore LDFLAGS and LIBS
39623         * configure: Regenerate.
39624
39625 2010-01-10  Richard Guenther  <rguenther@suse.de>
39626
39627         PR middle-end/42667
39628         * builtins.c (fold_builtin_strlen): Add type argument and
39629         convert the resulting length to it.
39630         (fold_builtin_1): Adjust.
39631
39632 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
39633
39634         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
39635         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
39636         1 insn.
39637         (num_insns_constant_wide): Adjust for that change.
39638
39639 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
39640
39641         PR debug/42631
39642         * web.c (union_defs): Add used argument, to combine uses of
39643         uninitialized regs.
39644         (entry_register): Adjust type and tests of used argument.
39645         (web_main): Widen used for new use.  Pass it to union_defs.
39646         * df.h (union_defs): Adjust prototype.
39647
39648 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
39649
39650         PR debug/42630
39651         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
39652         uses in new incoming argument.  Free body.
39653         (reset_debug_uses_in_loop): New.
39654         (analyze_insn_to_expand_var): Call the latter if the former found
39655         anything.  Fix whitespace.  Reject invalid dest overlaps before
39656         going through all insns in the loop.
39657
39658 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
39659
39660         PR debug/42629
39661         * haifa-sched.c (dying_use_p): Debug insns don't count.
39662
39663 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
39664
39665         PR middle-end/42363
39666         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
39667         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
39668         (verify_gimple_call): Reject LHS in noreturn calls.
39669
39670 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
39671
39672         PR debug/42604
39673         PR debug/42395
39674         * tree-vect-loop-manip.c (adjust_info): New type.
39675         (adjust_vec): New pointer to vector.
39676         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
39677         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
39678         (slpeel_update_phis_for_duplicate_loop): Use them.
39679         (slpeel_update_phi_nodes_for_guard1): Likewise.
39680         (slpeel_update_phi_nodes_for_guard2): Likewise.
39681         (slpeel_tree_peel_loop_to_edge): Likewise.
39682         (vect_update_ivs_after_vectorizer): Likewise.
39683
39684 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
39685
39686         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
39687         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
39688
39689 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
39690
39691         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
39692         bogus uninitialized warning.
39693
39694 2010-01-09  Richard Guenther  <rguenther@suse.de>
39695
39696         PR middle-end/42512
39697         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
39698         the evolution is compatible with the initial condition.
39699
39700 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
39701
39702         * gcc.c (process_command): Update copyright notice dates.
39703         * gcov.c (print_version): Likewise.
39704         * gcov-dump.c (print_version): Likewise.
39705         * mips-tfile.c (main): Likewise.
39706         * mips-tdump.c (main): Likewise.
39707
39708 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
39709
39710         PR target/41885
39711         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
39712         (rotlhi3): Delete.
39713         (rotlhi3_8): Delete.
39714         (rotlsi3): Delete.
39715         (rotlsi3_8): Delete.
39716         (rotlsi3_16): Delete.
39717         (rotlsi3_24): Delete.
39718         (rotl<mode>3): New.
39719         (*rotw<mode>3): New.
39720         (*rotb<mode>3): New.
39721         * config/avr/avr.c (avr_rotate_bytes): New function.
39722         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
39723
39724 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
39725
39726         PR target/37454
39727         * configure.ac: Modify -rdynamic check.
39728         * configure: Regenerate.
39729
39730 2010-01-08  DJ Delorie  <dj@redhat.com>
39731
39732         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
39733         register popping order.
39734
39735 2010-01-08  Richard Guenther  <rguenther@suse.de>
39736
39737         PR lto/42528
39738         * c.opt (fsigned-char): Also let LTO handle this option.
39739         (funsigned-char): Likewise.
39740
39741 2010-01-07  Richard Guenther  <rguenther@suse.de>
39742
39743         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
39744         (gimple_op): Likewise.
39745         (gimple_op_ptr): Likewise.
39746         (gimple_assign_set_lhs): Remove gcc_assert.
39747         (gimple_assign_set_rhs1): Likewise.
39748         (gimple_assign_set_rhs2): Likewise.
39749         (gimple_call_set_lhs): Likewise.
39750         (gimple_call_set_fn): Likewise.
39751         (gimple_call_set_fndecl): Likewise.
39752         (gimple_call_fndecl): Likewise.
39753         (gimple_call_return_type): Likewise.
39754         (gimple_call_set_chain): Likewise.
39755         (gimple_call_num_args): Likewise.
39756         (gimple_call_set_arg): Likewise.
39757         (gimple_cond_set_code): Likewise.
39758         (gimple_cond_set_lhs): Likewise.
39759         (gimple_cond_set_rhs): Likewise.
39760         (gimple_cond_set_true_label): Likewise.
39761         (gimple_cond_set_false_label): Likewise.
39762         (gimple_label_set_label): Likewise.
39763         (gimple_goto_set_dest): Likewise.
39764         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
39765         (gimple_debug_bind_get_value): Likewise.
39766         (gimple_debug_bind_get_value_ptr): Likewise.
39767         (gimple_debug_bind_set_var): Likewise.
39768         (gimple_debug_bind_set_value): Likewise.
39769         (gimple_debug_bind_reset_value): Likewise.
39770         (gimple_debug_bind_has_value_p): Likewise.
39771         (gimple_return_retval_ptr): Remove gcc_assert.
39772         (gimple_return_retval): Likewise.
39773         (gimple_return_set_retval): Likewise.
39774         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
39775         (safe_referenced_var_iterator): Remove.
39776         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
39777         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
39778         (fill_referenced_var_vec): Remove.
39779         (first_readonly_imm_use): Remove redundant gcc_assert.
39780         (phi_arg_index_from_use): Combine gcc_asserts.
39781         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
39782         (first_imm_use_stmt): Remove redundant gcc_assert.
39783         * tree-cfg.c (verify_gimple_call): Verify function and chain
39784         operands.  Verify arguments.
39785         (verify_types_in_gimple_stmt): Verify condition code and labels.
39786
39787 2010-01-07  Richard Guenther  <rguenther@suse.de>
39788
39789         PR tree-optimization/42641
39790         * sese.c (rename_map_elt_info): Use the SSA name version, do
39791         not hash pointers.
39792
39793 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
39794
39795         PR tree-optimization/42625
39796         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
39797         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
39798
39799 2010-01-07  Duncan Sands  <baldrick@free.fr>
39800
39801         * Makefile.in (PLUGIN_HEADERS): Add version.h.
39802
39803 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
39804
39805         PR target/42511
39806         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
39807         note itself is not function_invariant_p.
39808
39809 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
39810
39811         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
39812         Do not add the DF_NOTE problem.
39813         * store-motion.c (execute_rtl_store_motion): Likewise.
39814
39815 2010-01-07  Martin Jambor  <mjambor@suse.cz>
39816
39817         PR tree-optimization/42157
39818         * tree-sra.c (compare_access_positions): Stabilize sort if both
39819         accesses have integer types, return zero immediately if they are the
39820         same.
39821
39822 2010-01-06  Richard Henderson  <rth@redhat.com>
39823
39824         PR middle-end/41883
39825         * haifa-sched.c (add_to_note_list): Merge into ...
39826         (concat_note_lists): ... here, and ...
39827         (unlink_other_notes, rm_other_notes): Merge into...
39828         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
39829         NOTE_INSN_EPILOGUE_BEG.
39830
39831 2010-01-06  Richard Guenther  <rguenther@suse.de>
39832
39833         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
39834         not inline regular functions into always-inline functions.
39835
39836 2010-01-06  Nick Clifton  <nickc@redhat.com>
39837
39838         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
39839         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
39840         used together.
39841         (OVERRIDE_OPTIONS): Delete.
39842         (OPTIMIZATION_OPTIONS): Define.
39843         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
39844         * config/rx/rx.c (rx_handle_option): Issue an error message if
39845         -mcpu=rx200 and -fpu are used together.
39846         (rx_set_optimization_options): New function.  Issue an error
39847         message if an optimization attribute attempts to reset the FPU/
39848         math optimization pairing.
39849         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
39850         * config/rx/rx.opt: Set the default to 32-bit doubles.
39851         * config/rx/t-rx: Add multilibs for -nofpu option.
39852         * doc/invoke.texi: Update documentation of RX options.
39853
39854 2010-01-06  Richard Guenther  <rguenther@suse.de>
39855
39856         * tree-ssa-pre.c (name_to_id): New global.
39857         (alloc_expression_id): Simplify SSA name handling.
39858         (lookup_expression_id): Likewise.
39859         (init_pre): Zero name_to_id.
39860         (fini_pre): Free it.
39861
39862 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
39863
39864         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
39865
39866 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
39867
39868         PR target/42542
39869         * config/i386/sse.md (smaxv2di3): New.
39870         (umaxv2di3): Likewise.
39871         (sminv2di3): Likewise.
39872         (uminv2di3): Likewise.
39873
39874 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
39875
39876         PR target/42564
39877         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
39878         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
39879         (legitimize_tls_address): Likewise.
39880         (sparc_tls_referenced_p): Likewise.
39881         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
39882         and adjust calls to legitimize_pic_address.
39883         (legitimate_constant_p) Use sparc_tls_referenced_p.
39884         (legitimate_pic_operand_p): Likewise.
39885         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
39886         (sparc_tls_symbol_ref_1): Delete.
39887         (sparc_tls_referenced_p): Make static, recognize specific patterns.
39888         (legitimize_tls_address): Make static, handle CONST patterns.
39889         (legitimize_pic_address): Make static, remove unused parameter and
39890         adjust recursive calls.
39891         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
39892         and adjust call to legitimize_pic_address.
39893         (sparc_output_mi_thunk): Likewise.
39894
39895 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
39896             H.J. Lu  <hongjiu.lu@intel.com>
39897
39898         PR target/42542
39899         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
39900         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
39901         operands to make them signed.
39902
39903         Revert:
39904         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
39905
39906         PR target/42542
39907         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
39908         GTU to GT for V4SI and V2DI.
39909
39910         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
39911         (umin<mode>3): Removed.
39912         (uminv8hi3): New.
39913         (uminv4si3): Likewise.
39914
39915 2010-01-05  Martin Jambor  <mjambor@suse.cz>
39916
39917         PR tree-optimization/42462
39918         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
39919         current_function_decl to helper functions and macros.
39920
39921 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
39922
39923         PR bootstrap/41771
39924         * flags.h: Don't include real.h.
39925         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
39926         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
39927         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
39928         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
39929         * dominance.c: Update copyright.
39930         * gimple.c (walk_gimple_op): Remove inline.
39931         * tree-ssa-reassoc.c: Include real.h.
39932         * Makefile.in (FLAGS_H): Remove $(REAL_H).
39933         (tree-ssa-reassoc.o): Depend on $(REAL_H).
39934
39935 2010-01-05  Nick Clifton  <nickc@redhat.com>
39936
39937         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
39938         register to push into the stack frame when the accumulator has to
39939         be saved during interrupts.
39940
39941 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
39942
39943         * doc/invoke.texi: Remove the documentation about option
39944         -Wunreachable-code.
39945         * common.opt (Wunreachable-code):  Preserved for backward
39946         compatibility.
39947         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
39948         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
39949         the backward compatibility flag section.
39950
39951 2010-01-05  Richard Guenther  <rguenther@suse.de>
39952
39953         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
39954
39955 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
39956
39957         PR other/42611
39958         * cfgexpand.c (expand_one_var): Diagnose too large variables.
39959
39960         PR tree-optimization/42508
39961         * tree-sra.c (convert_callers): Check for recursive call
39962         by comparing cgraph nodes instead of decls.
39963         (modify_function): Call ipa_modify_formal_parameters also
39964         on all same_body aliases.
39965
39966         * cgraphunit.c (cgraph_materialize_all_clones): Compare
39967         cgraph nodes when checking for same_body aliases.
39968
39969 2010-01-05  Richard Guenther  <rguenther@suse.de>
39970
39971         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
39972         allocation and lookup.
39973         (get_or_alloc_expr_for_constant): Likewise.
39974         (phi_translate): Sink allocation.
39975
39976 2010-01-04  Richard Guenther  <rguenther@suse.de>
39977
39978         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
39979         a new entry only if needed.
39980         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
39981         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
39982         hashtable lookup.
39983         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
39984         the result array.
39985         (phi_translate): Handle CONSTANTs early.
39986
39987 2010-01-04  Martin Jambor  <mjambor@suse.cz>
39988
39989         PR tree-optimization/42398
39990         * tree-sra.c (struct access): Removed flag grp_different_types.
39991         (dump_access): Do not dump the removed flag.
39992         (sort_and_splice_var_accesses): Do not set the removed flag.
39993         (sra_modify_expr): Check for type compatibility directly.
39994
39995 2010-01-04  Martin Jambor  <mjambor@suse.cz>
39996
39997         PR tree-optimization/42366
39998         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
39999         edges with variable number of parameters.
40000         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
40001         flag instead of asserting it.
40002         (ipa_read_node_info): Read uses_analysis_done flag.
40003
40004 2010-01-04  Richard Guenther  <rguenther@suse.de>
40005
40006         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
40007         iterative_hash_* as intended.
40008         (vn_reference_compute_hash): Likewise.  Simplify hashing
40009         SSA names.
40010         (vn_reference_lookup_2): Likewise.
40011         (vn_nary_op_compute_hash): Likewise.
40012         (vn_phi_compute_hash): Likewise.
40013         (expressions_equal_p): Remove strange code.
40014         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
40015         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
40016         (bitmap_insert_into_set_1): Take value-id as parameter.
40017         (add_to_value): Pass it.
40018         (bitmap_insert_into_set): Likewise.
40019         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
40020
40021 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
40022
40023         PR driver/42442
40024         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
40025         (do_self_spec): For switches with SWITCH_IGNORE set set also
40026         SWITCH_IGNORE_PERMANENTLY.
40027         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
40028         of SWITCH_IGNORE.
40029
40030 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
40031
40032         * lto-streamer-out.c (output_unreferenced_globals): Output the full
40033         tree of an unreferenced global var.
40034
40035 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
40036
40037         PR target/42542
40038         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
40039         GTU to GT for V4SI and V2DI.
40040
40041         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
40042         (umin<mode>3): Removed.
40043         (uminv8hi3): New.
40044         (uminv4si3): Likewise.
40045
40046 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
40047
40048         PR lto/42581
40049         * collect2.c (main): Turn on trace in collect2 if -v is passed
40050         to gcc with LTO.
40051
40052 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
40053
40054         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
40055         description of expression operand.
40056
40057 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
40058
40059         * configure.ac: Add install-html to target_list for Make-hooks.
40060         * configure: Regenerate.
40061         * fortran/Make-lang.in (F95_HTMLFILES): New.
40062         (fortran.html): Use it.
40063         (fortran.install-html): New.
40064         * Makefile.in (install-html): Add lang.install-html.
40065         * java/Make-lang.in (JAVA_HTMLFILES): New.
40066         (java.html): Use it.
40067         (java.install-html): New.
40068         * objc/Make-lang.in (objc.install-html): New.
40069         * objcp/Make-lang.in (obj-c++.install-html): New.
40070         * cp/Make-lang.in (c++.install-html): New.
40071         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
40072         * lto/Make-lang.in (lto.install-html): New.
40073
40074 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
40075
40076         PR lto/42520
40077         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
40078
40079 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
40080
40081         PR rtl-optimization/41862
40082         * store-motion.c (store_killed_in_insn, compute_store_table,
40083         remove_reachable_equiv_notes, replace_store_insn,
40084         build_store_vectors): Ignore all DEBUG_INSNs.
40085
40086 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
40087
40088         PR lto/41564
40089         * common.opt: Add dumpdir.
40090
40091         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
40092         isn't specified.
40093         (option_map): Add --dumpdir.
40094
40095         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
40096
40097         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
40098
40099         * opts.c (decode_options): Try dump_dir_name first if
40100         dump_base_name isn't an absolute path.
40101         (common_handle_option): Handle OPT_dumpdir.
40102
40103         * toplev.c (dump_dir_name): New.
40104         (print_switch_values): Also ignore -dumpdir.
40105
40106         * toplev.h (dump_dir_name): New.
40107
40108 2010-01-03  Richard Guenther  <rguenther@suse.de>
40109
40110         PR tree-optimization/42589
40111         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
40112         double-word expansion of bswap32.
40113
40114 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
40115
40116         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
40117         with BLOCK_FOR_INSN.
40118         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
40119         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
40120         noce_process_if_block): Likewise.
40121         * gcse.c (compute_local_properties, insert_expr_in_table,
40122         insert_set_in_table, canon_list_insert, find_avail_set,
40123         pre_insert_copy_insn): Likewise.
40124
40125         * basic-block.h (BLOCK_NUM): Move from here...
40126         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
40127
40128 2010-01-03  Richard Guenther  <rguenther@suse.de>
40129
40130         PR tree-optimization/42438
40131         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
40132         contains_may_not_return_call flag.
40133         (BB_MAY_NOTRETURN): New.
40134         (valid_in_sets): Trapping nary operations are not valid
40135         in blocks that may not return.
40136         (insert_into_preds_of_block): Remove check for trapping expressions.
40137         (compute_avail): Compute also BB_MAY_NOTRETURN.
40138
40139 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
40140
40141         * doc/invoke.texi: Add 2010 to copyright years.
40142
40143 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
40144
40145         * config/sparc/sparc.c: Fix formatting nits.
40146
40147 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
40148             Alexander Monakov  <amonakov@ispras.ru>
40149
40150         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
40151
40152 2010-01-02  Richard Guenther  <rguenther@suse.de>
40153
40154         PR middle-end/42577
40155         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
40156         (simplify_switch_using_ranges): Mark to be removed edges
40157         as non-executable.
40158
40159 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
40160
40161         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
40162
40163         * collect2.c (scan_libraries): Add missing argument in call to
40164         scan_prog_file.
40165
40166 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
40167
40168         PR target/42448
40169         * config/alpha/predicates.md (aligned_memory_operand): Return false
40170         for CQImode.
40171         (unaligned_memory_operand): Return true for CQImode.
40172         * config/alpha/alpha.c (get_aligned_mem): Assert that location
40173         doesn not cross aligned SImode word boundary.
40174
40175 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
40176
40177         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
40178         Remove.
40179         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
40180         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
40181
40182 2010-01-02  Richard Guenther  <rguenther@suse.de>
40183
40184         PR lto/41597
40185         * toplev.c (compile_file): Emit LTO marker properly.  Change
40186         it to __gnu_lto_v1.
40187         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
40188
40189 2010-01-01  Richard Guenther  <rguenther@suse.de>
40190
40191         PR debug/42455
40192         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
40193
40194 2010-01-01  Richard Guenther  <rguenther@suse.de>
40195
40196         PR c/42570
40197         * c-decl.c (grokdeclarator): For zero-size arrays force
40198         structural equality checks as layout_type does.
40199
40200 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
40201
40202         * builtins.c: Update copyright to 2010.
40203
40204 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
40205
40206         PR lto/42531
40207         * lto-streamer-out.c (produce_asm): Revert the last change.
40208         (copy_function): Likewise.
40209
40210         * lto-streamer.c (lto_get_section_name): Skip any leading
40211         asterisk in name.
40212
40213 2010-01-01  Richard Guenther  <rguenther@suse.de>
40214
40215         PR middle-end/42559
40216         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
40217         for LABEL_DECLs.
40218
40219 \f
40220 Copyright (C) 2010 Free Software Foundation, Inc.
40221
40222 Copying and distribution of this file, with or without modification,
40223 are permitted in any medium without royalty provided the copyright
40224 notice and this notice are preserved.